卡码笔记-最强八股文
首页
计算机基础
C++
Java
Go
🔥大模型🔥
  • 大模型面经
  • Java面经
  • C++面经
简历专栏
代码随想录 (opens new window)
首页
计算机基础
C++
Java
Go
🔥大模型🔥
  • 大模型面经
  • Java面经
  • C++面经
简历专栏
代码随想录 (opens new window)
  • 本栏必读

    • 卡码大模型专栏介绍
  • 大模型面经

  • 大模型动态

  • 入门认知

    • 大模型关键词全解
    • AI编程产品的三层架构
    • 大模型应用开发、算法岗、开发岗什么区别
    • 大模型应用开发到底在做什么
    • 大模型API到底怎么计费
    • 大模型到底是怎么训练出来的
      • 本篇文章目录
      • 先拆一个误区:大模型不是写规则写出来的
      • 第一步:先把文本变成 token
      • 第二步:数据不是越多越好,脏数据会把模型带歪
      • 第三步:预训练,到底在训练什么?
      • 模型参数到底是什么?
      • 为什么参数越大,通常越强?
      • 为什么预测下一个 token,能学出这么多能力?
      • 预训练完的模型,还不是 ChatGPT
      • SFT 解决的是“会不会按格式回答”,不是万能药
      • RLHF / DPO:让模型更符合人类偏好
      • 推理阶段:模型不是一次性想好整篇答案
      • 那第一个输出 token 是怎么来的?
      • 模型怎么知道要围绕问题回答?
      • temperature、top-p 到底控制什么?
      • 上下文窗口和 KV Cache,又是什么?
      • 为什么大模型会幻觉?
      • 训练大模型和做大模型应用,是两回事
      • 最后
    • 大模型蒸馏到底是什么
  • Prompt与调用基础

  • RAG检索增强

  • Agent智能体

  • 微调认知

  • 部署与工程化

  • 多模态入门

  • Transformer原理

  • 手撕Transformer

  • 模型家族与Llama架构

# 大模型到底是怎么训练出来的?预训练、模型参数、SFT微调、RLHF对齐、推理一次讲明白

大家有没有好奇过:大模型到底是怎么被制作(训练)出来的。

大模型什么都会,它是程序逻辑,还是靠的什么魔法。

一个像 ChatGPT、Claude、DeepSeek 这样的大模型,从一开始什么都不会,到后来能写代码、能聊天、能总结文档、能分析问题,中间到底发生了什么?

很多人其实都不懂,包括程序员。

有人以为大模型是工程师写了一堆规则。

有人以为训练就是把百科、代码、论文塞进去,让模型背下来。

有人以为推理阶段模型是先在脑子里想好完整答案,再一次性吐出来。

这些理解都不对。

大模型的工作原理简单概括一下:

大模型不是被人一条条写规则写出来的,而是先通过海量文本学习“下一个 token 应该是什么”,再通过指令数据和人类偏好,把它校准成一个更像助手的模型。

后面所有概念,预训练、SFT、RLHF、DPO、推理、幻觉,都可以从这句话里展开。

大模型从数据到推理的完整链路

# 本篇文章目录

这篇文章就用通俗易懂的方式,给大家介绍清楚,大模型究竟是怎么来的,本篇会按大模型从“训练出来”到“回答问题”的顺序讲:

  • 先拆误区:大模型不是工程师写规则写出来的
  • Token 化:模型看到的不是文字,而是 token 和数字序列
  • 数据工程:为什么脏数据会把模型带歪
  • 预训练:为什么预测下一个 token 能学出语言、代码和知识
  • 模型参数:参数到底是什么,为什么参数越大通常越强
  • SFT 和对齐:Base Model 怎么变成更像助手的 Chat Model
  • 推理阶段:模型如何逐 token 生成答案,第一个输出 token 怎么来
  • 围绕问题回答:模型为什么知道要回答用户问题,而不是乱续写
  • 幻觉问题:为什么大模型会胡说,以及如何降低幻觉风险
  • 岗位边界:训练大模型和做大模型应用到底有什么区别

# 先拆一个误区:大模型不是写规则写出来的

传统程序是我们熟悉的模式。

你写 if else,写 for 循环,写数据库查询,写接口逻辑。

输入 A,代码走固定路径,输出 B。

但大模型不是这样。

工程师没有写一条规则说:

“如果用户问 HashMap,就先回答数组 + 链表 + 红黑树。”

也没有写一条规则说:

“如果用户让你写简历点评,就先指出问题,再给优化版本。”

大模型的能力,主要来自训练。

训练不是写规则,而是让模型在大量样本里反复做一件事:

根据前面的 token,预测下一个 token。

这个任务看起来太简单了,简单到很多人第一次听会觉得离谱:

就这?

就靠预测下一个词,能学会写代码、做数学、讲道理?

关键就在于两个字:规模。

数据规模足够大,模型参数足够多,训练次数足够多,这个简单任务就会逼着模型去学习文本背后的各种规律。

语法、事实、代码结构、推理模板、问答习惯、领域术语,都藏在“下一个 token 应该是什么”这个任务里。

# 第一步:先把文本变成 token

模型不是直接看中文、英文、代码文件的。

它看到的是 token。

录友可以先粗暴理解:

token 就是模型处理文本的基本颗粒。

一个 token 可能是一个汉字,也可能是一个英文单词的一部分,也可能是一个符号,也可能是一段常见字符串。

比如一句话:

“大模型训练很贵”

经过 tokenizer 之后,可能会被切成类似这样的 token 序列:

“大模型” “训练” “很” “贵”

代码也是一样。

public static void main 这种东西,不是作为一整段代码塞给模型,而是切成一串 token。

为什么要这么做?

因为神经网络不能直接处理自然语言字符串,它要处理的是数字。

tokenizer 会把文本切成 token,再把 token 映射成 id,模型拿到的是一串数字。

这一步听起来不起眼,但非常重要。

模型不是在字符层面理解世界,而是在 token 序列上学习规律。

文本先被切成 token,模型看到的是数字序列

# 第二步:数据不是越多越好,脏数据会把模型带歪

训练大模型之前,先要准备数据。

数据从哪里来?

大体包括:

  • 网页文本
  • 书籍
  • 论文
  • 问答数据
  • 代码仓库
  • 文档
  • 多语言语料
  • 数学题、推理题、工具调用样本

但不是把互联网全量抓下来就完事了。

互联网上有大量垃圾内容:

  • 重复页面
  • 广告
  • 采集站
  • 低质量问答
  • 错误代码
  • 机翻内容
  • 色情、暴力、诱导性内容
  • 互相复制的 AI 生成文本

如果这些东西不过滤,模型会照单全收。

所以训练前要做大量数据工程:

清洗、去重、分类、质量打分、过滤敏感内容、控制不同类型数据比例。

录友要注意一个点:

大模型训练不是只有算法,数据工程占了非常大的工作量。

很多模型能力差,不一定是架构不行,而是数据配比、数据质量、训练策略没做好。

同样是 Transformer,同样是几十亿参数,不同团队训练出来的效果可能差很多。

差距往往就在这些看起来不炫技的工程细节里。

# 第三步:预训练,到底在训练什么?

预训练是大模型训练里最烧钱、最核心的一步。

它的目标很直接:

给模型一段 token,让它预测下一个 token。

举个例子:

输入:

“Java 中 HashMap 的底层结构是”

模型要预测下一个 token 可能是什么。

如果训练数据里大量高质量 Java 文章都在讲 HashMap,模型就会慢慢学到:

后面很可能是“数组”“链表”“红黑树”“哈希表”这一类内容。

一开始模型是乱猜的。

它猜错了,就会算 loss。

loss 越大,说明预测越离谱。

然后通过反向传播,更新模型参数,让下一次预测更接近真实答案。

这个过程重复无数次。

不是几千次,不是几万次,而是在海量 token 上训练很久。

模型就在这个过程中,把语言规律和世界知识压进参数里。

预训练就是反复预测下一个 token 并更新参数

# 模型参数到底是什么?

讲到“更新模型参数”,很多录友又会懵。

大模型动不动几百亿参数、几千亿参数。

这个“参数”到底是啥?

先说人话版:

模型参数就是神经网络里一大堆可以被训练调整的数字。

它不是我们写代码时手动配置的参数,比如 temperature=0.7、max_tokens=2048。

那种叫调用参数或者超参数。

大模型里的参数,是模型内部的权重。

你可以把它理解成无数个小旋钮。

每个旋钮都是一个数字。

训练之前,这些旋钮基本是随机初始化的,模型当然也就不会回答问题。

预训练时,模型不断做预测:

“基于前面的 token,下一个 token 应该是什么?”

预测错了,就算 loss。

loss 会告诉模型:你这次错得有多离谱。

然后反向传播会把错误信号传回模型内部,把这些数字一点点调到更合适的位置。

这个过程重复很多很多次。

最后,模型参数里就压缩了大量语言规律、代码模式、事实关联和推理模板。

注意,参数不是一条条知识。

不是说第 9527 个参数存着“Redis 为什么快”。

也不是说第 10086 个参数存着“HashMap 底层结构”。

真实情况更像是:

大量参数共同形成一种高维空间里的规律。

当你问 Redis 为什么快,输入 token 会经过一层层参数矩阵计算,最后变成下一个 token 的概率分布。

所以参数不是数据库字段。

参数更像是模型的“神经连接强度”。

连接强度不同,模型对同一段输入的判断就不同。

这也是为什么预训练这么重要:

预训练的本质,就是用海量 token 反复调模型参数。

训练前,参数是一堆不会说话的数字。

训练后,这堆数字就能把输入上下文映射成合理的输出概率。

模型参数是训练过程中被不断调出来的内部权重

# 为什么参数越大,通常越强?

既然参数是一堆可训练的数字,那参数越多是不是越好?

大方向上,是的。

参数越多,模型的表达能力通常越强。

你可以粗暴理解成:

参数越多,模型内部可调的旋钮越多,能表示的规律就越复杂。

小模型参数少,就像一个容量很小的压缩包。

它也能学东西,但能装下的模式有限。

大模型参数多,就像容量更大的压缩包。

它有机会学到更多语言风格、知识关联、代码模式、推理路径和任务格式。

所以同等训练质量下,大模型通常更容易表现出更强的能力。

但录友千万别理解成:

参数越大,一定越好。

这也太简单了。

参数大,只是给了模型更大的容量。

容量能不能用好,还要看:

  • 数据质量好不好
  • 数据配比合不合理
  • 训练 token 够不够
  • 算力和训练稳定性够不够
  • 模型架构是否合适
  • 后训练和对齐做得怎么样

如果数据很脏,参数再大,也可能学一堆垃圾规律。

如果训练 token 不够,大模型也可能没训透。

如果后训练没做好,模型可能会续写,但不一定会好好回答问题。

所以更准确的说法是:

参数越大,模型上限通常越高,但能不能达到这个上限,要靠预训练和后训练把参数调出来。

参数、预训练、能力三者的关系,可以这样理解:

参数规模决定模型容量。

预训练负责把容量填满、调准。

后训练负责把能力变成用户更好用的回答方式。

还有一个现实问题:

参数越大,推理成本也越高。

显存更贵,延迟更高,部署更难。

所以工程上不是永远追最大模型,而是选“够用且划算”的模型。

这也是为什么有些场景会做蒸馏、量化、小模型部署。

# 为什么预测下一个 token,能学出这么多能力?

这里是很多录友最难理解的地方。

“预测下一个 token”听起来像文字接龙,怎么会变成智能?

我们换个角度。

如果模型要准确预测这句话后面应该接什么:

“MySQL 的 B+ 树索引适合范围查询,是因为”

它就不能只背几个字。

它必须学到:

  • MySQL 是数据库
  • B+ 树是一种索引结构
  • 范围查询和叶子节点链表有关
  • 索引查询和磁盘 IO 有关
  • 面试回答通常要按原因分点讲

再比如它要预测代码:

for (int i = 0; i < nums.length; i++)

它要学到循环结构、变量作用域、数组访问、边界条件。

所以表面看是在预测 token,实际上是在逼模型学习:

语言怎么组织。

代码怎么写。

知识怎么关联。

问题怎么回答。

推理过程通常怎么展开。

预训练不是把知识一条条存进数据库,而是把大量文本中的统计规律压缩进模型参数。

这也是为什么大模型有时候很厉害,有时候又很离谱。

它不是查表。

它是在概率空间里生成最可能的后续内容。

下一个 token 任务逼模型学习多层规律

# 预训练完的模型,还不是 ChatGPT

预训练完的模型,一般叫 Base Model。

Base Model 很强,但它不一定好用。

为什么?

因为它学会的是“续写文本”,不是“听人话办事”。

你问它:

“请解释一下 Redis 为什么快。”

Base Model 可能会继续续写一段文章,可能会补一个问答样本,可能会编一段论坛帖子,甚至可能反问你。

它不一定知道自己应该扮演一个助手。

所以预训练之后,还要做后训练。

后训练的第一步,通常是 SFT。

SFT,全称 Supervised Fine-Tuning,监督微调。

你可以理解成:

给模型看大量“用户问题 -> 优质回答”的样本,让它学会按指令回答。

比如训练数据长这样:

用户:HashMap 为什么线程不安全?

助手:HashMap 在多线程场景下可能发生数据覆盖、链表环、扩容异常等问题……

模型通过这些样本学到:

  • 用户问问题时,我要回答问题
  • 回答要有结构
  • 不要乱续写
  • 不要把问题也接着写下去
  • 编程问题要先讲结论,再讲原因,再讲场景

这一步之后,模型才开始像一个聊天助手。

Base Model 通过 SFT 变成更会听指令的 Chat Model

# SFT 解决的是“会不会按格式回答”,不是万能药

很多录友一听微调,就觉得什么问题都能靠微调解决。

太简单了。

SFT 确实很重要,但它不是万能药。

SFT 主要解决的是:

  • 模型会不会听指令
  • 回答风格是否稳定
  • 某些任务格式是否固定
  • 某个领域的表达方式是否更贴合
  • 工具调用、JSON 输出、分类抽取是否更规范

但 SFT 不适合解决所有问题。

比如你的公司知识库每天都在更新,今天新增了几十份产品文档。

你不可能每天拿这些文档去重新微调一次模型。

这种问题更适合 RAG。

再比如模型算账不准、数据库状态不知道、订单实时状态不知道。

这不是单纯 SFT 能解决的。

要接工具,要查数据库,要做检索。

所以录友要记住:

微调是改变模型行为,不是给模型外挂一个实时数据库。

# RLHF / DPO:让模型更符合人类偏好

SFT 之后,模型已经会回答问题了。

但“会回答”和“回答得让人满意”,中间还有距离。

比如同一个问题,模型可能有几种回答:

A:很短,但没讲透。

B:讲得很全,但废话太多。

C:有结构,有重点,也没有乱编。

人类通常更喜欢 C。

这时候就需要偏好对齐。

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习是一种机器学习技术) 和 DPO (Direct Preference Optimization, 直接偏好优化)都是在做类似的事:

让模型更倾向于输出人类更喜欢的答案。

RLHF 的经典流程是:

先让模型对同一个问题生成多个回答。

然后让人类标注员比较哪个回答更好。

再训练一个奖励模型,学习人类偏好。

最后用强化学习方法,让模型往高奖励方向调整。

DPO 则更直接一些,可以用“好回答 / 坏回答”成对数据来优化模型,不一定要单独训练奖励模型。

这里录友不用陷入公式。

你只要理解本质:

偏好对齐不是让模型突然懂了新知识,而是让模型更像一个靠谱助手。

比如更有帮助、更少胡说、更少攻击性、更愿意承认不确定、更符合安全边界。

SFT之后还要用偏好数据校准回答质量

# 推理阶段:模型不是一次性想好整篇答案

训练讲完了,再看推理。

推理就是模型上线后,用户输入问题,模型生成答案的过程。

很多人以为模型看到 prompt 后,会先在内部想好完整答案,然后一次性输出。

不是。

大模型生成答案,通常是一个 token 一个 token 往外吐。

流程大概是:

  1. 用户输入 prompt
  2. prompt 被 tokenizer 切成 token
  3. 模型根据上下文计算下一个 token 的概率分布
  4. 按照策略选出一个 token
  5. 把这个 token 拼回上下文
  6. 继续预测下一个 token
  7. 直到遇到停止条件

所以你看到模型流式输出,本质上就是这个过程。

它不是一口气写完答案。

它是在不断做:

“基于目前已经出现的内容,下一个 token 最可能是什么?”

推理阶段逐 token 生成答案的循环

# 那第一个输出 token 是怎么来的?

这里很多录友会有一个疑惑:

如果已经有一句话了,模型继续预测下一个 token,这个我能理解。

但用户刚问一个问题时,模型回答的第一个词是怎么来的?

比如我问:

“Redis 为什么快?”

模型怎么知道回答第一个 token 应该是“Redis”,还是“因为”,还是“主要”?

这个问题问得非常关键。

答案是:

模型不是凭空预测第一个输出 token,而是基于用户输入的 prompt 来预测第一个输出 token。

你问:

“Redis 为什么快?”

模型看到的不是空白,而是一串 token:

[Redis] [为什么] [快] [?]
1

所以第一步不是“从零开始写答案”,而是:

基于“Redis 为什么快?”这个上下文,预测回答的第一个 token。

它会给很多候选 token 算概率。

比如可能是:

Redis:30%
它:22%
主要:18%
因为:12%
首先:8%
其他:...
1
2
3
4
5
6

如果采样策略选中了“Redis”,上下文就变成:

Redis 为什么快? Redis
1

接下来模型再预测第二个输出 token。

比如第二个 token 可能是“之所以”:

Redis 为什么快? Redis 之所以
1

再继续预测第三个 token。

所以不是“先有一句完整回答,再往下预测”。

而是:

用户的问题本身,就是模型预测第一个输出 token 的上下文。

如果是 ChatGPT 这种对话模型,它看到的上下文还不止用户问题,通常还包括:

  • 系统提示词
  • 历史对话
  • 当前用户问题
  • 工具返回结果
  • RAG 检索出来的资料

这些内容都会被拼成一整段 token 序列。

模型基于这整段上下文,预测第一个输出 token。

第一个 token 出来后,再拼回上下文,预测第二个 token。

第二个 token 出来后,再拼回上下文,预测第三个 token。

一直循环下去。

如果真的什么都不给模型,让它从空白开始生成,它也能生成。

但那就像让它随机续写互联网文本的开头,可能是文章标题,可能是代码,可能是故事,也可能是一段网页内容。

方向会非常不稳定。

所以录友记住一句话:

大模型不是从空白里猜第一个词,而是根据 prompt 预测回答的第一个 token。

第一个输出 token 不是凭空生成,而是基于 prompt 上下文预测

# 模型怎么知道要围绕问题回答?

继续追问下去,录友还会有一个更细的问题:

既然大模型只是根据已有 token 预测下一个 token,那它怎么知道自己是在“回答问题”?

用户问:

“Redis 为什么快?”

模型为什么不是随便续写一段网页内容,而是围绕 Redis 的内存、IO 多路复用、单线程事件循环去回答?

这个问题要分两层看。

第一层:模型在训练阶段学过“问题后面通常应该接回答”。

预训练时,模型看过大量网页、论坛、问答、教程、代码注释、文档。

这些数据里天然有很多结构:

问题:Redis 为什么快?
回答:Redis 快主要有几个原因……
1
2

或者:

面试官:HashMap 为什么线程不安全?
候选人:主要原因是……
1
2

模型在预训练里,不只是学词语搭配,也在学这种文本结构:

一个问题出现后,后面通常会出现解释、原因、步骤、结论。

所以预训练已经让模型具备了“问题 -> 回答”的基础模式。

但这还不够。

因为 Base Model 学的是互联网文本的续写模式,它可能会续写成文章,续写成论坛帖子,续写成另一个问题。

它不一定稳定地按助手方式回答。

第二层:SFT 把这种模式校准成“用户提问 -> 助手回答”。

SFT 会给模型大量明确的样本:

用户:Redis 为什么快?
助手:Redis 快主要有以下几个原因……
1
2

这种样本会反复告诉模型:

看到“用户问题”之后,不要乱续写网页,不要接着编问题,而是生成“助手回答”。

也就是说:

模型会围绕问题回答,主要是在 SFT 阶段被训练出来的。

再往后,RLHF / DPO 会继续做偏好校准。

比如同样问 Redis 为什么快,模型可能有几种回答:

  • 只回答“因为基于内存”,太浅
  • 讲了一堆但没有结构,读起来累
  • 分点讲内存、IO 多路复用、单线程、数据结构,还提醒持久化和网络不是重点

人类更喜欢第三种。

偏好对齐就会让模型更倾向这种回答。

所以,对齐阶段解决的不是“模型是否知道要回答问题”这个基础动作,而是:

回答得是不是更有帮助、更清楚、更安全、更符合人类偏好。

那推理阶段做什么?

推理阶段不是重新教模型怎么回答。

推理阶段是把当前 prompt 喂给已经训练好的模型,让它根据当前上下文生成下一个 token。

比如当前上下文是:

系统:你是一个有帮助的助手
用户:Redis 为什么快?
助手:
1
2
3

模型在训练中已经见过大量类似结构,所以它会判断:

“助手:”后面最合理的下一个 token,大概率应该是围绕 Redis 的解释。

于是第一个 token 可能是:

Redis
1

接下来上下文变成:

系统:你是一个有帮助的助手
用户:Redis 为什么快?
助手:Redis
1
2
3

模型继续预测下一个 token,可能是“快”,再下一个可能是“主要”,再下一个可能是“有”。

一步步生成:

Redis 快主要有几个原因……
1

所以答案是:

“知道如何回答问题”这件事,是在预训练、SFT、对齐阶段学出来的;“针对当前这个问题输出具体回答”,是在推理阶段逐 token 生成出来的。

更准确地拆一下:

  • 预训练:学语言、知识和“问题后面接解释”的通用模式
  • SFT:学“用户提问后,助手应该认真回答”的指令格式
  • RLHF / DPO:学什么样的回答更受人类喜欢
  • 推理:把当前用户问题作为上下文,按已经学到的模式生成答案

这几个步骤不是互相替代,而是接力关系。

没有预训练,模型没有基础能力。

没有 SFT,模型可能会续写,但不一定像助手。

没有对齐,模型可能能回答,但不一定好用。

没有推理,训练好的能力也不会变成当前这次对话里的具体答案。

模型围绕问题回答,是训练学到模式,推理按当前上下文生成

# temperature、top-p 到底控制什么?

既然模型每一步都会算出一堆候选 token 的概率,那就有一个问题:

下一个 token 到底选谁?

如果永远选概率最高的那个,回答会更稳定,但也可能更死板。

如果允许从多个高概率候选里采样,回答会更丰富,但也更容易发散。

这就是 temperature、top-p 这些参数的作用。

temperature 越低,模型越保守。

适合代码、分类、结构化输出、严肃问答。

temperature 越高,模型越发散。

适合创意写作、头脑风暴、广告文案。

top-p 则是限制采样范围。

比如 top-p = 0.9,意思是只在累计概率达到 90% 的候选 token 里挑。

录友别把这些参数想神秘了。

它们本质上是在控制:

模型生成时,到底是更稳,还是更放开。

# 上下文窗口和 KV Cache,又是什么?

推理阶段还有两个常见概念:上下文窗口和 KV Cache。

上下文窗口,就是模型一次能看的 token 数量。

你发给模型的系统提示词、用户问题、历史对话、检索出来的文档、已经生成的答案,都要占上下文。

上下文窗口不是无限的。

如果塞太多内容,超出窗口,模型就看不到前面的东西。

这也是为什么长文档问答要做切分、检索、压缩,而不是把所有材料一股脑塞进去。

KV Cache 则是推理加速的关键。

模型生成第 100 个 token 时,前 99 个 token 的很多中间计算结果可以缓存下来,不用每次都从头算。

所以 KV Cache 能显著降低重复计算,提高生成速度。

但它也会占显存。

并发越高、上下文越长、生成越长,KV Cache 压力越大。

这就是为什么大模型部署不仅是“把模型跑起来”,还要考虑显存、吞吐、延迟和并发。

# 为什么大模型会幻觉?

讲到这里,录友就能理解幻觉了。

大模型的原始目标,不是保证每句话都真实,而是生成最可能的下一个 token。

这句话非常关键。

模型在训练里学到的是语言和知识的统计规律。

当它不知道答案时,它不一定会像数据库一样返回 null。

它可能会生成一段“看起来很像正确答案”的内容。

这就是幻觉。

为什么幻觉常常很有迷惑性?

因为大模型非常擅长语言形式。

它知道一个正式回答应该长什么样。

它知道论文引用应该长什么样。

它知道技术解释应该怎么分点。

所以即使内容是错的,也可能说得很顺。

这就是大模型最危险的地方:

它不一定知道自己不知道。

要减少幻觉,不能只靠一句“请不要胡说”。

更靠谱的方式是:

  • 用 RAG 给它提供可靠资料
  • 让它调用工具查实时数据
  • 做引用来源校验
  • 做结构化输出约束
  • 做自动评测和人工抽检
  • 对高风险场景设置拒答边界

幻觉来自生成目标和真实校验之间的错位

# 训练大模型和做大模型应用,是两回事

这里也顺便帮录友厘清一个岗位问题。

训练大模型,主要是算法岗、训练岗、基础模型团队做的事。

他们关注:

  • 数据配比
  • 模型架构
  • 训练稳定性
  • 分布式训练
  • loss 曲线
  • 对齐算法
  • benchmark
  • 模型权重

大模型应用开发,更多是用模型做系统。

他们关注:

  • Prompt
  • RAG
  • Agent
  • 工具调用
  • API 接入
  • 成本控制
  • 延迟优化
  • 业务效果
  • 安全兜底

两者有交集,但不是一回事。

应用开发者不一定要亲手训练一个千亿参数模型。

但你一定要理解训练和推理的基本逻辑。

因为你只有知道模型是怎么来的,才知道它能做什么、不能做什么。

你才不会动不动说“这个问题微调一下就行”。

你也不会把模型当成绝对正确的数据库。

# 最后

理解大模型的原理,你就抓住一条主线:

训练阶段,把海量文本里的规律压进参数;推理阶段,根据当前 prompt 一个 token 一个 token 往外生成。

这句话理解了,很多概念就顺了。

为什么要预训练?

因为模型一开始什么都不会,参数就是一堆没调好的数字。

为什么要 SFT?

因为 Base Model 只会续写,不一定知道自己要当助手。

为什么要 RLHF、DPO?

因为会回答不代表答得好,模型还得学人类喜欢什么样的答案。

为什么会幻觉?

因为它本质上是在生成最可能的 token,不是在查数据库。

为什么 RAG、工具调用、评测这么重要?

因为真实业务不能靠“看起来像对的”上线。

录友做大模型应用开发,不一定要亲手训练一个千亿参数模型。

但你必须知道模型是怎么来的。

不然很容易犯两个低级错误:

一个是把模型当神,觉得什么问题都能问它。

另一个是把模型当普通接口,觉得调一下参数就能稳定解决业务问题。

都不对。

大模型应用开发真正难的地方,不是把 API 调通。

而是你要知道:

什么该交给模型,什么该交给检索,什么该交给工具,什么必须做校验。

这篇看懂了,再去学 RAG、Agent、微调、部署,就不是背概念了。

Last Updated: 5/23/2026, 4:25:44 PM

← 大模型API到底怎么计费 大模型蒸馏到底是什么 →

评论

验证登录状态...

侧边栏 侧边栏
夜间模式 夜间
卡码简历 卡码简历
代码随想录 代码随想录
卡码投递表 卡码投递表🔥
2026实习校招群 2026群
添加客服微信 2026实习校招客服微信 PS:通过微信后,请发送姓名-学校-年级-2026实习/校招
支持卡码笔记 支持卡码笔记
鼓励/支持/赞赏Carl 卡码笔记赞赏码
1. 如果感觉本站对你很有帮助,也可以请Carl喝杯奶茶,金额大小不重要,心意已经收下
2. 希望大家都能梦想成真,有好的前程,加油💪