大语言模型(LLM)处理文本的全过程,可以形象地理解为一个“并行读懂输入,再逐个生成输出”的两阶段过程。

整个过程从你按下回车键开始,到屏幕上逐字浮现出回答,主要经历以下六个核心阶段:

📥 第一阶段:输入与预处理

当你输入一段文字(Prompt),比如“你好,请介绍一下大模型”模型并不能直接理解这些汉字。它需要先将文本转换成自己能处理的数字形式

  1. 分词 (Tokenization)
    模型会利用一个预定义的“词表”,将你的输入文本切割成更小的单元,这些单元被称为 Token。一个 Token 可以是一个字、一个词,甚至是一个词的一部分

    • 例如:“你好,请介绍一下大模型”可能被切分为:["你好", ",", "请", "介绍", "一下", "大", "模型"]
  2. 转换为ID (Token to ID)
    分词后,模型会通过查表,将每个 Token 映射成一个唯一的整数编号,即 Token ID

    • 例如:"你好" → 177519"," → 11"大" → 1640
      此时,你的文本已经变成了一串纯数字序列(Token ID序列):[177519, 11, 1640, ...]

🧠 第二阶段:理解与编码 (Prefill)

这一阶段是模型“思考”和“理解”你的问题的过程,在工程上被称为 预填充 (Prefill)

  1. 向量化 (Embedding)
    模型将上一步得到的 Token ID 序列,转换成高维的向量(一长串数字)。这个向量是词语的数学表示,语义相近的词(如“猫”和“狗”),其向量在数学空间中的距离也会很近。同时,模型还会加入位置编码,让它知道每个词在句子中的先后顺序。

  2. 核心计算 (Transformer & Self-Attention)
    这些向量被送入模型的核心——由数十甚至上百层 Transformer 模块堆叠而成的深度神经网络。在这里,自注意力机制 (Self-Attention) 开始工作。

    • 作用:它让模型能够分析输入文本所有词之间的关系,理解上下文。例如,当模型看到“它”这个词时,能通过注意力机制判断出“它”指的是前文的“大模型”而不是“介绍”。
    • 结果:经过层层计算,模型完全理解了你的问题,并将所有关键信息压缩、缓存下来(这个过程称为 KV Cache),为下一步生成回答做好了准备。

✍️ 第三阶段:生成与输出 (Decode)

这是模型开始“回答”你的阶段,它是一个循环往复的自回归过程,即根据已有的内容预测下一个内容。

  1. 预测下一个Token (Next Token Prediction)
    基于已经理解的全部上下文,模型会计算词表中所有可能的 Token 作为下一个词的概率

    • 例如,模型可能计算出下一个词是“大”的概率是30%,是“我”的概率是25%等等。然后,它会根据一定的策略(如选择概率最高的)挑出一个 Token。
  2. 循环生成 (Autoregressive Generation)
    模型将刚刚选出的新 Token 添加到已有的序列中,然后再次重复第一步的预测过程,计算再下一个 Token 的概率。

    • 这个过程就像一个接龙游戏,模型不断地根据上文预测并生成下一个 Token,直到生成一个代表“结束”的特殊 Token,或者达到预设的长度限制。这就是为什么你会看到模型的回答是一个字一个字“吐”出来的。
  3. 解码与后处理 (Decoding & Post-processing)
    生成每个 Token ID 后,模型会通过查表(与第1阶段的查表相反),将数字 ID 转换回人类可读的文本 Token。

    • 例如:56568 → "我"
      最后,这些 Token 被拼接起来,经过简单的格式优化,最终呈现给你。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐