从文字到数字:Tokenization与Embedding技术
大语言模型无法直接理解文字,必须先将文本转换为数字表示。本讲将深入讲解文本输入处理的两大核心技术: Tokenization(文本分词)和Embedding(向量嵌入)。你将理解如何将自然语言转换为模型可以处理的数值形式, 以及这个过程中的关键技术细节和设计权衡。
Tokenization是将文本分解为更小单元(tokens)的过程。 这是大语言模型处理文本的第一步。
为什么需要?模型不能直接理解文字,需要将文字转换为数字。 Tokenization是这个转换过程的基础。
常见方法:字符级、词级、子词级(BPE、WordPiece等)。 现代LLM多使用子词级分词。
Tokenization是将连续的文本流切分为离散token序列的过程。这是LLM处理文本的第一步, 也是最基础但至关重要的一步。分词策略直接影响模型的词汇表大小、训练效率、语义理解能力。 选择合适的分词粒度是平衡效率与表达能力的关键。
子词分词通过BPE、WordPiece等算法,能够在较小的词汇表(通常5万-10万)内, 覆盖几乎所有文本。既避免了字符级的序列过长,又解决了词级的OOV问题。 更重要的是,它能捕捉形态学规律(如前缀un-、后缀-ness),提升泛化能力。
字节对编码(Byte Pair Encoding, BPE)是目前最流行的子词分词算法,被GPT系列、BERT等主流模型采用。 它通过迭代合并最频繁出现的字符对,自动学习出最优的子词单元,完全数据驱动,无需语言学知识。
分词后,每个token只是一个整数ID(如"cat"→42),模型无法直接从ID中理解语义。 Embedding技术将每个token映射到一个高维连续向量(通常512-4096维), 在这个向量空间中,语义相近的词距离更近,实现了从离散符号到连续语义表示的转换。
Transformer架构本身是位置无关的——如果打乱输入顺序,Self-Attention的计算结果不变。 但语言是强序列依赖的("狗咬人"和"人咬狗"意义完全不同),因此必须显式地告诉模型每个token的位置。 位置编码(Positional Encoding)就是为每个位置生成独特的向量,与token embedding相加后输入模型。
实验表明,去掉位置编码后,Transformer在需要理解词序的任务上性能大幅下降。 位置编码虽然只是简单的向量加法,但它是Transformer理解序列结构的关键机制。 选择合适的位置编码方案,对模型处理长文本的能力影响巨大。
子词分词(BPE/WordPiece)平衡了效率与表达能力, 是现代LLM的标准选择
将离散token映射到连续向量空间, 让模型能够理解和泛化语义关系
位置编码为Transformer注入序列顺序信息, 是理解语言结构的关键
完整的讲义PDF,包含所有图表和详细内容