生成式AI导论:从“文字接龙”说起
1. 生成式AI的本质:文字接龙
LLM(大型语言模型,如 ChatGPT、Gemini、Claude、DeepSeek 等)的核心机制其实非常简单——就是文字接龙。
举个直观的例子:
- 你输入:“人工智” → 模型预测下一个内容很可能是“能”
- 你输入:“大预言模” → 模型会立刻纠正为“型”(基于上下文的概率推算)
在这一过程中,有两个核心概念需要明确:
- Prompt(提示词):你输入给模型的前面内容,也就是模型进行“接龙”的上下文依据。
- Token(词元):模型预测并输出的最小单位。它可以是单个汉字、一个词语片段、一个标点,甚至是一个空格。注意:这里说的 Token 不是指 API 计费消耗的那个量,而是指生成的基本语义单元。
完整接龙过程示例(以常见问答为例):
用户输入: 世界上最高的峰是?
模型内部一步一步接龙输出:
珠 → 穆 → 朗 → 玛 → 峰 → 。 → [结束]模型每一步都在预测“接下来最合理出现的字或词是什么”。整个生成式AI做的事情,本质就是:给定一个 Prompt,不断预测并输出下一个 Token,直到结束。
文本生成流程示意:
Prompt(输入内容)
↓
模型处理(计算概率)
↓
输出下一个 Token 的概率分布(从几万到几十万的 Vocabulary 中选择)
↓
采样选中一个 Token(如“珠”)
↓
将新 Token 拼接到上下文末尾 → 再次预测下一个 Token
↓
循环往复,直到生成特殊的结束标记(如 <|endoftext|>)2. 模型是怎么知道该接什么的?
模型输出的其实并不是一个确定的字词,而是一个概率分布。它内部维护着一个庞大的 Vocabulary(词汇表),通常包含几万到几十万个 Token(涵盖常用汉字、英文子词、数字、符号等)。
例如输入“人工”后,模型内部的计算结果可能是:
- “智能” → 概率 45%
- “呼吸” → 概率 5%
- “降雨” → 概率 0.1%
- …… 其余概率极低的奇怪组合
随后,模型会像“扔骰子”一样,根据这个概率分布随机采样下一个 Token。这也是为什么你问同一个问题两次,得到的回答可能在措辞上略有不同。
程序员视角类比:这很像 IDE 里的代码自动补全。你输入
System.out.,补全列表里println排第一,而不是随机乱码。
因为模型是在“扔骰子”,所以它必须具备两种基础能力:
- 语言知识(语法、表达习惯、句式)——相对容易通过海量语料学到。
- 世界知识(事实、常识、逻辑推理)——非常困难,因为真实世界的知识几乎是无穷无尽的,且不断更新。
案例对比:
- 问:“在标准大气压下,水的沸点是多少?”
→ 模型大概率回答“100摄氏度”(因为这是训练语料里概率最高的搭配)。 - 问:“在海拔4000米的高山上,不盖锅盖水的沸点大约是多少?”
→ 如果模型没见过相关物理常识的上下文,可能就胡乱编一个数字(比如还是100度),这就是“幻觉”的早期苗头。
3. 大模型是怎么学会这些的?
我们可以把语言模型抽象成一个极其复杂的数学函数:
f(x) = 极其复杂的神经网络运算
- x 是输入的 Prompt(转为向量后的数字)。
- f(x) 是输出的下一个 Token 的概率分布。
这个函数内部有海量的参数(权重)。普通模型可能只有几亿参数,而真正意义上的“大模型”通常拥有数百亿甚至数千亿参数。这些参数并不是程序员一行行写的规则,而是模型通过“自学”从数据中挖掘出来的。
训练数据的主要来源:
- 互联网公开语料(网页、维基百科、书籍、开源代码库)。
- 人工标注的高质量指令数据(一问一答,教会模型“对话感”)。
- 用户使用过程中的反馈数据(点赞、点踩、重新生成)。
4. 为什么AI有时会回答“答案是……”而不是直接说?
严格来说,未经特别调整的基座模型只会做续写。比如你问“1+1=”,它可能接着写“2,这是一个简单的数学题……”。
我们之所以觉得 AI 像助手一样直接回答,是因为平台在你的输入前面自动拼接了一段隐藏指令,这叫做 Chat Template(对话模板)。
一个典型的隐式 Chat Template 大概长这样:
<|system|>你是一个乐于助人、知识渊博的AI助手。回答要清晰、准确。</s>
<|user|>世界上最高的峰是?</s>
<|assistant|>正是基于这个前缀,模型看到 assistant 标记后,就知道接下来应该直接输出答案内容了。
4.1 幻觉(Hallucination)的根源
正因为 AI 本质上是在做概率续写,它并没有一个像数据库那样的“真实资料库”。当遇到记忆模糊或没见过的事实,它会“编造”出概率上通顺、但事实上错误的文本。这在学术上被称为幻觉。
4.2 应对幻觉的利器:RAG(检索增强生成)
RAG(Retrieval-Augmented Generation) 是目前工业界最常用的“外挂记忆”方案。
原理简述:模型在动笔回答之前,先跑去查阅一下“小抄”(外部知识库),把查到的真实内容塞进 Prompt 里,再开始文字接龙。
RAG 简化流程:
用户问题:公司今年的年假政策是什么?
↓
Step 1: 检索(Retrieve)
在内部 Wiki / PDF / 数据库 中搜索“年假政策”
找到相关文档片段:“员工入职满一年享有5天年假...”
↓
Step 2: 增强(Augment)
构建新 Prompt = [检索到的文档内容] + [用户原始问题]
↓
Step 3: 生成(Generate)
模型阅读文档后回答:“根据公司政策,年假为5天...”(大幅减少幻觉)程序员实例:当你问一个 2025 年新发布的框架用法时,RAG 可以先实时抓取最新的 GitHub README 或官方 Changelog,再为你生成代码,而不是靠模型 2024 年的过期记忆瞎编一个不存在的 API。
5. 大模型其实是一个“黑盒子”
我们可以把模型理解成一个状态不断变化的黑箱。输入的内容不同、语境不同,输出的结果就会截然不同。
- 问:“今天是几号?”
- 如果模型没联网:它可能随机回答一个训练数据里的常见日期(通常是错的)。
- 如果模型调用了时间查询工具:它能准确回答当前时间。
因此,我们对输入(Prompt)的设计直接决定了输出的质量。这个设计过程就是 Prompt Engineering(提示词工程)。
5.1 核心概念区分
- System Prompt(系统指令):设定 AI 的角色、语气、安全边界(比如“你是一个严谨的律师”),在整场对话中持续生效。
- User Prompt(用户指令):具体的任务指令或问题。
一个完整的 Prompt 后台拼接示意:
[System Prompt] 你是一个程序员导师,回答时要附带关键代码注释。
[User Prompt] 如何在 Python 中读取 JSON 文件?
↓
(Chat Template 自动包装成模型能理解的 Token 序列)
↓
模型生成结构清晰、带代码示例的回答进阶小贴士:现代 Prompt 工程不仅仅指写话术,还包括 Context Engineering(上下文工程)——即管理模型的“记忆窗口”,决定把哪些历史对话、哪些文档片段塞进有限的 Token 长度里。
6. 不只是文本:图像、声音、视频的生成
生成式 AI 的原理并不局限于文字。图像、声音、甚至视频的生成,本质上也是一种“接龙”——只是接龙的对象发生了变化。
- 图像生成:对像素块进行接龙(扩散模型去噪过程可视作一种接龙)。
- 声音生成:对音频采样点序列进行接龙。
然而,直接在原始像素或波形上计算极其消耗算力。目前的多模态大模型普遍采用 “压缩-处理-还原” 的架构:
多模态生成流程:
原始图像/声音(高维信号)
↓
[Encoder 编码器] 压缩成 Token 序列(离散的符号表示)
↓
大模型 Transformer 处理(在 Token 空间里做文字/图像接龙)
↓
[Decoder 解码器] 将 Token 还原成图像像素/声音波形
↓
最终输出的图片或音频扩展开来:生成式 AI 的基本逻辑就是学习复杂对象的序列概率分布。这些对象的基本构成单元,我们都可以抽象地称为 Token。比如:
- 文本的 Token:字、词。
- 图像的 Token:压缩后的视觉特征块。
- 蛋白质的 Token:氨基酸序列(生物学里的天然 Token)。
7. 实战小建议与延伸阅读
如果你想自己动手试一试,以下是入门配置建议:
- 开源模型推荐:Gemma(Google)、Llama(Meta)、Mistral、Qwen(通义千问)。
- 运行平台:Google Colab(免费 T4 GPU)、Kaggle Notebooks。
- 本地工具:Ollama(一键运行大模型)、LM Studio。
总结回顾:
- 核心本质:生成式 AI = 给定 Prompt 预测下一个 Token 的接龙游戏。
- 能力边界:擅长语言表达(语法、文采),但事实知识有限(需要 RAG 辅助)。
- 统一抽象:无论文本、图像还是蛋白质,一切皆为 Token 的有序生成。
