阶段一:预处理与编码
用户输入
用户在前端界面(如网页、App)输入一段文本:“Explain quantum computing in simple terms.”
文本预处理
分词:将输入的句子分解成模型能理解的更小单元(Token)。例如,“Explain” -> “Explain”, “quantum” -> “ quant”, “computing” -> “uting”。分词器(Tokenizer)的词汇表是在预训练阶段就确定好的。
格式化:为当前对话添加上下文标识符。例如,可能会在输入前加上“User: ”这样的角色标识,以帮助模型区分对话中的不同角色。
格式化后的输入可能看起来像:[系统消息] User: Explain quantum computing in simple terms. Assistant:
输入编码
将分词后的Token转换为对应的数字ID(因为模型只处理数字)。
将这些ID转换为词向量,即高维空间中的向量表示,这些向量捕获了单词的语义信息。
阶段二:核心推理与生成
上下文管理
模型并非只看到当前这一句话。为了维持连贯的对话,系统会将当前输入与之前几轮的对话历史(存储在对话记忆库中)拼接在一起。
这形成了一个完整的“上下文窗口”,模型基于这个完整的上下文来生成回复,从而“记住”之前聊过什么。
核心LLM推理
这是最核心的步骤,预训练好的Transformer模型在此被激活。
前向传播:编码后的输入向量流经模型的数十亿甚至数百亿个参数。
自注意力机制:模型分析输入序列中所有单词之间的关系,理解“simple terms”是修饰“explain”的关键。
下一个词预测:模型输出一个所有可能词汇表上单词的概率分布。它计算在给定上下文的情况下,下一个词最可能是什么(例如,“Sure”的概率最高,“Okay”次之,“Quantum”也有可能)。
采样与策略:模型不会总是选择概率最高的词(否则回复会非常机械)。它会根据“温度”等参数进行抽样,引入一定的随机性,使回复更具创造性和多样性。
这个过程是自回归的,即模型生成第一个词“Sure”后,会将“Sure”也加入上下文,再生成下一个词“,”,如此循环,直到生成一个完整的回复序列或遇到停止符。
输出解码
将模型输出的词ID序列转换回人类可读的文本。例如,[“Sure”, “,”, “let”, “’s”, “break”, …] -> “Sure, let's break it down...”
阶段三:后处理与交付
回复后处理
对生成的文本进行最后的润色,比如调整标点符号、确保格式正确。
在某些场景下,可能还会进行二次检查,例如确保没有生成不安全的、虽然概率高但不符合事实的内容。
返回最终回复
将处理好的最终文本发送回前端界面,展示给
阶段一:预处理与编码
用户输入
用户在前端界面(如网页、App)输入一段文本:“Explain quantum computing in simple terms.”
文本预处理
分词:将输入的句子分解成模型能理解的更小单元(Token)。例如,“Explain” -> “Explain”, “quantum” -> “ quant”, “computing” -> “uting”。分词器(Tokenizer)的词汇表是在预训练阶段就确定好的。
格式化:为当前对话添加上下文标识符。例如,可能会在输入前加上“User: ”这样的角色标识,以帮助模型区分对话中的不同角色。
格式化后的输入可能看起来像:[系统消息] User: Explain quantum computing in simple terms. Assistant:
输入编码
将分词后的Token转换为对应的数字ID(因为模型只处理数字)。
将这些ID转换为词向量,即高维空间中的向量表示,这些向量捕获了单词的语义信息。
阶段二:核心推理与生成
上下文管理
模型并非只看到当前这一句话。为了维持连贯的对话,系统会将当前输入与之前几轮的对话历史(存储在对话记忆库中)拼接在一起。
这形成了一个完整的“上下文窗口”,模型基于这个完整的上下文来生成回复,从而“记住”之前聊过什么。
核心LLM推理
这是最核心的步骤,预训练好的Transformer模型在此被激活。
前向传播:编码后的输入向量流经模型的数十亿甚至数百亿个参数。
自注意力机制:模型分析输入序列中所有单词之间的关系,理解“simple terms”是修饰“explain”的关键。
下一个词预测:模型输出一个所有可能词汇表上单词的概率分布。它计算在给定上下文的情况下,下一个词最可能是什么(例如,“Sure”的概率最高,“Okay”次之,“Quantum”也有可能)。
采样与策略:模型不会总是选择概率最高的词(否则回复会非常机械)。它会根据“温度”等参数进行抽样,引入一定的随机性,使回复更具创造性和多样性。
这个过程是自回归的,即模型生成第一个词“Sure”后,会将“Sure”也加入上下文,再生成下一个词“,”,如此循环,直到生成一个完整的回复序列或遇到停止符。
输出解码
将模型输出的词ID序列转换回人类可读的文本。例如,[“Sure”, “,”, “let”, “’s”, “break”, …] -> “Sure, let's break it down...”
阶段三:后处理与交付
回复后处理
对生成的文本进行最后的润色,比如调整标点符号、确保格式正确。
在某些场景下,可能还会进行二次检查,例如确保没有生成不安全的、虽然概率高但不符合事实的内容。
返回最终回复
将处理好的最终文本发送回前端界面,展示给