Yuan的博客
EN

深入解析类 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)

  1. 问题重构法(Question Reconstruction Method): 将现有文章转化为“问题–答案”对。 比较模型的回答与正确答案。 如果模型答错或信心不足,在训练集中添加类似 “抱歉,我不知道” 的示例来引导模型。

  2. 允许模型进行网页搜索: 在提示词末尾添加 “use the web search to make sure” 让模型在生成回答时自动考虑信息验证来源。

  3. 直接提供上下文信息: 相比依赖模型记忆,直接在提示词中嵌入上下文信息, 能显著提升准确率与回答质量。

    “重读总能带来更好的总结” —— 这就是背后的哲学思想。

  4. 让模型使用代码进行计算: 当提示涉及算术或精确结果时,让 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)

  • RLRLHF 有什么区别? 它们的奖励机制相同吗?
  • RLHF 更适用于没有唯一正确答案的任务, 例如判断笑话是否有趣 —— 这种创造性行为超越了数学或代码范畴。
  • 基础模型(Base Models) 可以被看作一种“双曲模型(Hyperbolic Models)”——存在多种基础变体。
  • 若想在本地运行,可使用 LM Studio