简介:本文深入剖析大语言模型与RAG系统中的核心数据处理机制——Token与Embedding。通过解析分词原理、子词切分技术及高维向量映射,帮助开发者系统理解模型如何将离散文本转化为可计算的连续空间表达,提升模型选型与应用效率。
在大语言模型(LLM)与检索增强生成(RAG)系统的技术架构中,数据处理机制是决定模型认知能力与计算效率的底层基石。对于开发者和架构师而言,深入理解文本数据如何被机器解析与表征,是优化模型推理性能、规避应用瓶颈的必经之路。本文将围绕这一数据处理流水线中的两个核心概念——Token与Embedding,从定义、原理、场景到注意事项进行系统阐述。
在自然语言处理流程中,原始文本无法被神经网络直接消费,必须经过两步核心转换:离散化编码与连续化表征。
Token(词元):从技术视角看,Token是代表字、词或词片段的数字编号。它是文本数据经过分词器切割并查表后得到的最小语义单元。在业务视角下,Token就像是计算机理解人类语言的“基础积木”,将无限的文本组合映射为有限的离散数值序列。
Embedding(嵌入向量):从数学视角看,Embedding是将孤立的Token编号映射为高维连续向量的过程。如果说Token是给每个词发了一张身份证号,Embedding则是为每个词构建了一组多维度的性格特征值。它将离散的符号空间转化为模型可进行微积分计算的连续函数空间。
计算机底层以离散字符(如字母、字节)存储文字。如果模型直接以字符为单位进行训练,面对成千上万的字符组合,网络需要耗费巨量算力从无序的字母序列中识别出单词边界与语义。通过引入Token机制,将常见的字符组合预聚合为单一编号,大幅缩短了输入序列的长度,显著提升了底层计算效率。
传统的全词切分面临着词表无限膨胀的困境,且无法处理训练集中未出现过的生僻词。现代分词器引入了子词切分技术。例如,遇到词汇“goodest”(假设其不在词表中),模型可将其拆分为“good”和“est”两个已知Token。这种机制使得模型能够通过已知片段组合理解未知词汇,极大地增强了模型的泛化能力与鲁棒性。
大模型本质上是一个极其复杂的连续函数。连续函数的数学特性要求:当输入的数值发生微小变化时,输出的数值也应是平滑过渡的。单维度的Token编号(如1代表苹果,2代表香蕉)无法表达语义距离(苹果与香蕉同属水果,但苹果与“Apple”语义完全相同)。Embedding通过引入多维向量空间,让语义相近的词汇在空间距离上更近,从而利用函数的连续性降低了梯度下降的训练难度,提高了模型的收敛性与泛化能力。
分词器负责文字与Token之间的双向转换,属于数据预处理阶段。它的特性在模型训练与推理过程中是固定不变的,不属于模型的可学习参数。主流的切分算法包括:
词表大小决定了分词器认识的Token总量,直接影响文本的压缩率与多语言支持效果。
以中文处理为例:在早期模型时代,由于词表较小(约5万左右),对中文支持较差,往往一个汉字需要对应一个甚至多个Token,导致序列冗长、计算效率低下。随着技术演进,现代模型的词表已扩大至约20万级别,涵盖了更丰富的中文词汇,使得中文的编码效率与模型理解能力得到显著提升。
Embedding向量的长度(通常称为 $d_{model}$)决定了模型观察世界的细腻程度。向量中的每一个维度都潜在地代表了某种语义特征(如语言、形状、颜色、类别等)。
当前业界模型的维度不断攀升,部分基础模型的维度已达数千,而前沿的某行业领先模型其维度已高达7168维,未来顶尖模型可能突破万维。在如此高维的空间中,向量之间的余弦相似度或欧氏距离能够精准刻画词汇间的语义相关性,这是RAG系统中向量检索得以成立的理论基础。
开发者初学时常将这两个概念混淆:
Token与Embedding共同构筑了自然语言与深度学习模型之间的沟通桥梁。Token通过子词切分技术,以有限的离散数字高效表征了无限的文本世界;Embedding则通过高维连续向量空间,赋予了这些数字以丰富的语义距离与逻辑关系。对于开发者而言,深刻理解这两者的运作机理,不仅是进行大模型应用开发的前提,更是开展RAG架构设计、性能调优及成本管控的核心抓手。