目录:
1、什么是Token
2、什么是上下文
3、什么是参数
4、其它概念
1、什么是token:
大语言模型中的 Token(标记/词元) 是文本处理的基本单位,类似于人类语言中的“单词”或“词组”,但它的粒度更灵活。以下是直观解释:
- 定义:Token 是模型处理文本的最小单元,可以是一个单词、子词、字符,甚至标点符号。
- 核心作用:将自然语言转换为模型可理解的数字序列,简单的说就是将最小单位的文字内容映射为一个编号(例如,"Hello!" → [15496, 0])。 直观类比:
- 对人类:文本被拆分成单词(如 ["I", "love", "cats"]这个3个token)。
- 对模型:文本被拆分为 Token(如 ["I", " love", " cat", "s"]这4个token)。
1)、Token 的生成方式:
模型通过 Tokenizer(分词器) 将文本分割为 Token,然后给这些token进行编号,模型输入和输出的时候就可以根据这些编号来转换对应的人类或者机器能看的懂的内容,常见的分词方法:
(1)、基于单词的分词(Word-based):
按空格分割,直接映射单词。示例: "unhappy" → ["unhappy"]
缺点:无法处理未见过的新词(如 "unhappily" 需要单独存储)。
(2)、基于子词的分词(Subword-based)主流方法:
将单词拆分为更小的语义单元(如前缀、后缀、词根)。 常用算法:
- BPE(Byte-Pair Encoding):GPT 系列使用(如 "unhappy" → ["un", "happy"])。
- WordPiece:BERT 使用(如 "playing" → ["play", "##ing"])。
- Unigram:基于概率统计的子词拆分。 优势:平衡词典大小与泛化能力,可处理未知词。
(3)、基于字符的分词(Character-based):
按字符拆分(如 "A" → 1个 Token)。
优点:词典极小(ASCII 字符仅需 256 个 Token)。
缺点:序列过长,模型难以捕捉语义。
2)、Token 在模型中的实际应用:
(1)、输入输出流程:
文本 → Token化 → 数字ID → 模型处理 → 输出Token ID → 反Token化 → 文本
示例:
输入:"Hello!" → Token化 → [15496, 0] → 模型生成 → [15496, 0, 345] → 反Token化 → "Hello! How"。
(2)、Token 与模型资源的关系:
- 词典大小(Vocab Size):例如 GPT-4 的词典约 10万 Token,直接影响模型参数量。
- 上下文长度(Context Length):例如 GPT-4 支持 128k Token 的输入,决定模型能处理多长的文本。
2、什么是上下文:
在大模型中,“上下文”(Context)是一个核心概念,直接决定了模型对输入的理解能力和输出的质量。简单来说,上下文就是模型在处理当前任务时“看到”的所有相关信息。
1)、基础定义:上下文 = 模型需要参考的信息范围
- 类比:就像人类聊天时,你需要知道对方之前说了什么,才能理解当前这句话的含义。
- 大模型的上下文:模型生成回答时,除了当前的输入(如问题),还会依赖它“记住”或“看到”的前文信息。
2)、技术角度:
- 定义:模型单次处理的最大文本长度(如GPT-4的128k tokens约等于10万字)。
关键点:
- 窗口外的信息会被遗忘:如果输入超过这个长度,模型无法处理多余部分。
- 分块处理:对于超长文本(如整本书),需切割成多个片段分别输入。
例如:若用4k tokens窗口的模型处理一篇5k tokens的文章,模型只能“看到”前4k tokens,后1k tokens被丢弃。
3.1、上下文3中常见的形式:
(1)、输入文本的上下文(短上下文):
场景:单次问答或文本生成。 示例:
用户输入:"它是什么动物?"
上下文补充:"这只动物有黑白条纹,生活在非洲。"
模型实际看到的输入:
"这只动物有黑白条纹,生活在非洲。它是什么动物?"
输出:斑马(模型通过上下文中的“黑白条纹”“非洲”推断结果)。
(2)、对话历史(多轮上下文)
场景:聊天机器人或多轮对话。 示例:
用户第1轮:推荐一部科幻电影。
助理回答:《沙丘》值得一看。
用户第2轮:为什么推荐它?
模型实际看到的输入(包含对话历史):
[用户] 推荐一部科幻电影。
[助理] 《沙丘》值得一看。
[用户] 为什么推荐它?
输出:模型结合之前的推荐,解释《沙丘》的优点(如世界观、视觉效果)。
(3)、长文本上下文(如文档、代码)
场景:总结长文章、分析代码库。 示例:
输入一篇3000字的论文,让模型总结核心观点。
模型行为:逐段读取全文,在生成总结时综合所有段落的信息。
3.2、上下文在大模型中的使用:
- 显性上下文:直接输入给模型的文本(如对话历史、文档内容)。
- 隐性上下文:模型预训练时学到的知识(如“斑马有黑白条纹”这类常识,即使输入中没有明确说明,模型也能调用隐性知识补全信息)。
3.3、上下文和token之间关系:
可以理解为“上下文”为一张白纸,Token是白纸上面的字。而这张白纸上面能放多少字则由每个字体大小决定(即单个Token),比如如 GPT-4 Turbo 支持 128k Token,约 10 万汉字那一个Token大概等于1.2,具体怎么计算的这个是由各家大模型平台用的分词器系数决定。 所以Token可以看作是上下文的“尺子”,上下文长度、成本、性能均由 Token 数量直接决定。同时对Token管理可以看作是对ai计算资源管理,像优化内存和CPU一样优化 Token 使用。
3、什么是大模型的参数
大模型的参数就是一堆数字,比如DeepSeek R1模型的参数为671B,可以简单的理解为有个表格存放这671B的参数(数值,这些数值都是在训练期间根据输入的信息学习到的对应信息的特征值和权重信息等),而这些参数一般都是占了大模型体积的90%。下面从2个方面介绍参数、token、上下文之间的关系。
1)、参数是什,直观体现:
参数是什么:参数是模型内部存储的“知识”,通过海量数据训练得到,类似于厨师通过多年做菜积累的经验。示例,模型参数中可能存储:
- “西红柿”常和“鸡蛋”搭配(语义关联)。
- 写代码时“for循环”后通常接缩进(语法规则)。
参数的直观体现:
- 参数越多(如GPT-4有1.8万亿参数),模型“经验”越丰富,能处理更复杂的任务。
- 参数数值是模型对Token之间关系的“记忆强度”(比如“猫→动物”的关联权重高,“猫→汽车”的权重低)。
2)、参数与Token、上下文关系:
(1)、参数决定如何处理Token:
Token是食材,参数是厨艺:给定同样的食材(Token输入),不同参数(厨艺水平)会做出不同的菜(输出)。
示例,输入“写一首关于春天的诗”:
- 参数少的模型(如7B)可能生成平庸的句子。
- 参数多的模型(如70B)可能生成更押韵、意象丰富的诗。
参数控制Token之间的关联:
- 模型通过参数中的权重(Weight)判断哪些Token应该组合在一起。
示例:处理句子“猫在抓__”,参数会让“老鼠”(而非“天空”)的Token概率更高。
(2)、参数如何与上下文联动?:
参数是记忆,上下文是临时黑板:
- 参数存储长期知识(如“水的沸点是100℃”)。
- 上下文存储临时信息(如当前对话中的用户偏好)。
示例,用户说:“我不吃辣。” → 这个信息存在上下文中,参数会根据它调整后续推荐的菜品(Token生成)。
参数决定上下文的理解深度:大参数模型能从上下文中提取更隐晦的关联,这里提取指的就是将输入的文本信息转变为token然后计算这些token对应的维度向量值,然后在根据存储的记忆(参数)进行计算拟合出最接近我们想要的结果值。
示例:上下文提到“莫奈”,参数让模型联想到“印象派”“睡莲”,从而生成更相关的Token。
4、其它概念
除了上述三者,大模型中还有以下重要概念:
1、注意力机制(Attention Mechanism)
作用:决定模型在处理某个 Token 时,应关注上下文中的Token和其他Token之间的语义关系等。
关联示例:
- 参数中的注意力权重矩阵,控制 Token 之间的关联强度。
- 上下文窗口越大,注意力机制需处理更多 Token 的关系(计算量指数级增长)。
2、训练数据(Training Data)
作用:模型参数是通过海量数据训练得到的,数据质量直接影响模型能力。
关联示例:
- 训练数据中的 Token 分布影响模型的分词规则(Tokenizer)。
- 数据多样性决定模型能否处理不同领域的上下文(如代码、医学文献)。
3、微调(Fine-Tuning)
作用:在预训练模型基础上,用特定领域数据调整参数,适应具体任务。
关联示例:
- 微调可优化模型对特定上下文的理解(如法律合同中的专业术语 Token)。
4、温度(Temperature)
作用:控制生成 Token 的随机性(高温度=更多创意,低温度=更确定)。
关联示例:
- 参数中的概率分布被温度参数调整,影响生成 Token 的选择策略。
5、 损失函数(Loss Function)
作用:训练时衡量模型预测 Token 的误差,驱动参数优化。
关联示例:
- 参数通过损失函数反向传播更新,使模型更准确预测上下文中的下一个 Token。
6、词嵌入和位置嵌入
1)、词嵌入:
是什么:将每个词(Token)转换为一个数字向量(数值),表示这个词的“含义”。 作用:告诉模型这个词的语义特征(如“猫”是动物,“编程”是技术动作)。 直观类比: 想象你有一堆快递包裹,词嵌入就像在包裹上贴标签:
- 一个包裹上面贴着“苹果”这个标签表示:水果、红色、可食用
- 一个包裹上面贴着“苹果”这个标签表示:手机品牌、科技(根据上下文动态调整!)
- 一个包裹上面贴着“代码”这个标签表示:计算机、文本、逻辑
关键技术:
- 动态性:现代大模型(如Transformer)中,词嵌入会根据上下文调整(同一个词在不同句子中的向量不同)。
- 维度:通常为数百到数千维(如dim=768),维度越高表达能力越强。
2)、位置嵌入:
是什么:给每个词的位置(如第1个词、第5个词)分配一个数字向量,表示它在句子中的顺序。 作用:告诉模型词的位置关系(如“猫追狗”和“狗追猫”含义不同)。 直观类比: 快递包裹在传送带上流动,位置嵌入就像记录每个包裹的到达顺序:
- 一个贴着"猫"标签的包裹在传送带的第一个位置;
- 一个贴着"追"标签的包裹在传送带上的的第二个位置;
- 一个贴着"狗"标签的包裹在传送带的第三个位置;
关键技术点:
- 必要性:Transformer模型并行处理所有词(而非像RNN逐词处理),必须显式告诉模型词的位置;
- 编码方式:绝对位置(如sin/cos函数生成);相对位置(关注词之间的距离,如“相邻词权重更高”);
3)、协同工作:
步骤拆解 1.输入句子:“人工智能改变世界” 2.词嵌入:将每个词转为向量(“人工”→[0.3, -0.2, ...])以此类推对每个token进行词嵌入处理。 3.位置嵌入:为每个位置生成向量(位置1→[0.1, 0.5, ...])。 4.融合:词向量 + 位置向量 → 最终输入模型的表示。
类比解释,快递分拣系统需要同时知道:
- 包裹内容(词嵌入 → 决定送往哪个区域)。
- 包裹顺序(位置嵌入 → 决定处理的优先级)。
- 只有两者结合,才能正确分拣(生成合理的输出)。
至于为什么需要位置嵌入,是因为transformer的并行处理的缺陷,传统的模型(如RNN)天然能感知顺序(即逐一顺序进行词处理),但是transformer是同时并发的处理所有词,默认无法区分顺序,例如:“没有位置嵌入时,“猫吃鱼”和“鱼吃猫”的输入表示完全相同,模型无法区分”。通过添加位置编码,让模型知道“猫”在第1位,“鱼”在第3位,从而理解动作方向。