深入解析类 ChatGPT 的大型语言模型(LLMs)
第一步 — 预训练数据(互联网)
- 通过大规模文本数据训练,产生一个基础模型(base model)。
第二步 — 分词(Tokenization)
- 将原始文本转换成符号,我们称之为 token(词元)。
- 可以使用 tiktokenizer 来测试一段文本在特定模型中会被分成多少个 token。
第三步 — 神经网络训练(Neural Network Training)
- 推理(Inference):指模型生成新内容的过程。
- 模型参数(model parameters) 与 token 之间是什么关系?
- 复述问题(Regurgitation):模型记忆过度时,预测出的 token 会偏离原始内容——该如何缓解?
- 大模型的预训练数据通常有一个截止日期(cutoff date),因此不会包含最新的信息。
- 当你只有一个基础模型,却想让它变成一个对话助理(LLM Assistant)时,可以在提示词中为模型提供一个身份(identity)和示例回复(example responses)。
第四步 — 后训练(Post-Training)
- 让 LLM 变成一个助理(assistant)。
- 后训练所用数据:对话数据集(conversation datasets)。
- 核心关注点包括:幻觉(hallucinations)、工具使用(tool use)、知识 / 工作记忆(knowledge / working memory)。
如何减少 AI 幻觉(How to Reduce AI Hallucinations)
问题重构法(Question Reconstruction Method): 将现有文章转化为“问题–答案”对。 比较模型的回答与正确答案。 如果模型答错或信心不足,在训练集中添加类似 “抱歉,我不知道” 的示例来引导模型。
允许模型进行网页搜索: 在提示词末尾添加 “use the web search to make sure” 让模型在生成回答时自动考虑信息验证来源。
直接提供上下文信息: 相比依赖模型记忆,直接在提示词中嵌入上下文信息, 能显著提升准确率与回答质量。
“重读总能带来更好的总结” —— 这就是背后的哲学思想。
让模型使用代码进行计算: 当提示涉及算术或精确结果时,让 AI “心算”往往出错。 因此应让模型使用它擅长的工具—— 在提示中加入 “use code”。 例如模型不擅长数字母: 在 “raspberry” 这个单词中,字母 “r” 出现了几次? 很多模型数出 2 次,正确答案是 3。 有些模型甚至把这种答案“硬编码”在数据中。 → 模型依靠 token 来思考,而不是字符。
第五步 — 强化学习(Reinforcement Learning)
- 后训练完成后,会得到一个监督微调模型(SFT Model)。 然后再对其进行强化学习。
- 经过这一阶段后,我们获得一个强化学习模型(RL Model)。
- DeepSeek-R1 在论文中展示:强化学习可以通过鼓励模型“思考更久”来提升回答准确度。 多角度、多步骤的推理显著提升输出质量。
- 所谓的“推理模型(reasoning models)”,本质上就是强化学习模型(RL models)。
- 若担心数据安全,可使用 together.ai 等 AI 托管平台,安全地测试和比较不同大模型。
- AlphaGo 类比:
- 监督学习(Supervised Learning) 就像模仿最强棋手,表现会持续提升,但最终会遇到瓶颈。
- 强化学习(Reinforcement Learning) 则能通过自我对弈持续进化,没有上限。
人类反馈强化学习(RLHF, Reinforcement Learning from Human Feedback)
- RL 与 RLHF 有什么区别? 它们的奖励机制相同吗?
- RLHF 更适用于没有唯一正确答案的任务, 例如判断笑话是否有趣 —— 这种创造性行为超越了数学或代码范畴。
- 基础模型(Base Models) 可以被看作一种“双曲模型(Hyperbolic Models)”——存在多种基础变体。
- 若想在本地运行,可使用 LM Studio。