尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

【DL】GPT|Tokenizer|Embedding,token

【DL】GPT|Tokenizer|Embedding,token 一.一句人类语言到底是怎么变成神经网络能够处理的数字的我喜欢学习人工智能 ↓ Tokenizer ↓ Token IDs ↓ Embedding ↓ 向量矩阵 ↓ Transformer神经网络为什么不能直接处理文字因为神经网络进行计算的基础是数字和向量而“我”“喜欢”“学习”这些文字本身不是可以直接进行矩阵运算的数值表示,必须把文字转换成数字这就是tokenizer的工作。什么是tokenToken 是模型处理文本时使用的基本文本单位它不一定等于一个字也不一定等于一个单词。Token 是 Tokenizer 根据词表和切分规则产生的模型输入单位。二.GPT —— 一个 Token 到底是怎么生成出来的GPT 到底是什么使用 Decoder-only Transformer 架构进行自回归语言建模的模型GPT │ ├── Transformer │ ├── Decoder-only │ └── 自回归语言模型根据已经出现的token一个一个预测后面的token输入 ↓ 预测下一个 Token ↓ 把预测结果加入输入 ↓ 再次预测 ↓ 重复GPT是怎么预测的文本 ↓ Tokenization ↓ Embedding ↓ Position ↓ Transformer ↓ Logits ↓ Softmax ↓ 概率Tokenization文本 ↓ 切成 Token ↓ 每个 Token 映射成一个 ID举个例子吧假设有文本“我喜欢吃”GPT并不是直接理解而是把文本拆成Token我–token1喜欢–token2吃–token3Embedding文本 ↓ Tokenizer ↓ [101,205,308] ↓ Embedding ↓ [[0.2,...], [0.7,...], [0.1,...]]token本身只是一个id这些id本身没有语义所以需要Embedding把token id转换成向量,Embedding 的作用是把离散的 Token ID 映射成连续的高维向量使模型能够通过向量空间表示和学习 Token 的特征。它本质上是一个矩阵。把离散token转成向量让模型可以进行数学运算通过训练学习token的表示那这些向量是谁设计出来的不是人工设计的而是在模型训练过程中通过反向传播不断学习出来的,它会在训练过程中不断发生变化。position例子我 ↓ 向量 位置1 喜欢 ↓ 向量 位置2 吃 ↓ 向量 位置3transformer的输出就是Eembedding positiontransformer:负责向量之间的关系我 喜欢 吃加入多个transformer block每一层Input ↓ Self-Attention ↓ Residual Norm ↓ FFN ↓ Residual Norm ↓ Output这里Self-Attention 会让不同 Token 之间互相交流模型通过attention学习当前这个位置应该参考哪些上下文。logitstransformer最后一层会得到一个向量然后经过linear层得到logitssoftmax将logits转换成概率得到概率尽可能大的token这里不一定选最大的概率而是使用sampling从概率分布中进行采样。“我喜欢吃” ↓ Tokenization ↓ Token IDs ↓ Embedding ↓ Position Information ↓ Transformer ↓ Hidden Representation ↓ Linear ↓ Logits ↓ Softmax ↓ Probability ↓ Sampling / Selection ↓ “苹果”“我喜欢吃苹果” ↓ Tokenizer ↓ [101, 205, 308, 512] ↓ Embedding ↓ 四个向量 ↓ 加入位置信息 ↓ Transformer ↓ 预测下一个 Token深入讲解token1.为什么不直接一个字一个token因为这样会导致词表过大、序列过长或者无法很好地处理新词和陌生词。如果一个字符一个token就会序列变得非常长而 Transformer 的 Attention 对序列长度非常敏感不能太长也不能太短。2.Subword Tokenization把文本拆成比较有意义同时又能复用的子词单位在完整单词和单个字符中找到一个平衡。3.BPEBPEByte Pair Encoding是一种通过不断合并高频符号对逐渐建立子词词表的 Tokenization 方法,核心思想经常出现在一起的东西就把它们合并起来。类似于前缀和的思想4.token数量为什么这么重要Tokenization 的效率会直接影响模型的上下文容量和计算成本不同的tokenizer返回的token数量不同tokenizer会影响同样的上下文能装多少内容。中文和英文的token数量可能不同因为 Tokenizer 并不是简单按照“一个字/一个单词”固定切分而是根据具体词表和编码方式进行切分。词表大小、Token 数量、文本覆盖能力之间需要一个平衡。5.训练好的 Tokenizer 和 GPT 训练是什么关系?Tokenizer训练 ↓ 建立词表和切分规则 ↓ GPT训练 ↓ 使用Tokenizer把文本变成Token ↓ 训练Transformer训练 vs 推理训练推理/生成是否有真实答案✅❌是否计算 Loss✅通常不需要是否反向传播✅❌是否更新参数✅❌是否自回归生成不需要逐 Token 生成✅是否可以高度并行✅受到自回归限制整个LLM输入流程人类语言 ↓ Tokenizer ↓ Token IDs ↓ Embedding ↓ Position 信息 ↓ Transformer ↓ Hidden State ↓ Linear ↓ Logits ↓ Softmax ↓ Next Token
返回列表