大模型的上下文窗口:从Token限制到有效上下文管理的完整解析

大模型的上下文窗口:从Token限制到有效上下文管理的完整解析 当你向一个语言模型发送请求时,你有没有想过:为什么有些模型只能处理几千字,而有些却能吞下整本书?为什么即便模型声称支持128K上下文,你的长文档问答效果却时好时坏?为什么同样的提示词放在文档开头和中间,模型的回答准确率会相差几十个百分点? ...

15 min · 7425 words

多查询注意力:为什么共享一个KV头能让大模型推理提速数倍

2019年11月,Noam Shazeer在arXiv上发表了一篇标题颇为大胆的论文——《Fast Transformer Decoding: One Write-Head is All You Need》。这篇仅6页的论文提出了一个看似简单的问题:Transformer解码时,我们真的需要那么多Key和Value头吗? ...

17 min · 8445 words

Token ID:大模型如何用一个数字代表一个词

当你打开ChatGPT输入"你好"两个字,模型看到的是什么? 它看到的不是汉字,不是笔画,甚至不是图像像素。它看到的是两个整数:[22024, 22845]。 ...

15 min · 7483 words

Logits:神经网络输出的原始真相,从概念到实践的完整解析

当你问一个大语言模型"法国的首都是哪里?",它回答"巴黎"。这个看似简单的过程背后,模型经历了一系列复杂的计算。在最终的文字出现之前,模型首先要给出一个答案:对于词表中的每一个词,它认为这个词作为下一个输出的可能性有多大。这个"可能性"的原始形式,就是logits。 ...

13 min · 6400 words

Logprobs深度解析:大模型输出的隐藏信息

当你问一个大模型一个问题,它吐出一串文字作为回答。这个过程看似简单,但模型内部究竟发生了什么?它有多确信自己的答案?如果它在"胡编乱造",我们能否察觉? ...

19 min · 9161 words

滑动窗口注意力:为什么一个「局部窗口」能看完全局信息?

2023年9月,Mistral AI发布了一款仅有73亿参数的模型,却在几乎所有基准测试上超越了拥有130亿参数的LLaMA 2。这个令人意外的结果背后,一个关键技术就是滑动窗口注意力(Sliding Window Attention,SWA)。 ...

18 min · 8571 words

Transformer的权重共享:为什么一行代码能省下两亿参数

一行代码的魔法 在PyTorch中实现一个简单的语言模型时,你可能会看到这样一行看似普通的代码: self.lm_head.weight = self.embedding.weight 这行代码做的事情非常简单:让输出层的权重指针直接指向嵌入层的权重。但就是这样一行代码,却能够为一个典型的70亿参数大模型节省约2亿个参数——相当于模型总参数量的3%左右。 ...

13 min · 6138 words