【AI编程思考:第一篇】理解LLM的实际工作原理:从直觉到内核
很多人还没弄清底层逻辑就开始“玩”AI,结果陷入浅层认知。
你不需要成为数学家,但若能像理解一辆汽车的引擎一样理解LLM,你就能驾驭它,而不是被它驾驭。
第一章:先跑起来
在深究理论之前,先做一件反直觉的事:调用一次API,让模型生成一句话。比如:
import openai
openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": "解释什么是token"}]
)
这个简单动作会给你三个直觉:
- 模型不是“搜索”,而是“续写” —— 它根据你的输入,一个字一个字地生成下文。
- 每次调用都有成本 —— 按输入+输出的长度计费,这暗示了“长度”是核心约束。
- 同样的输入,每次输出可能不同 —— 温度等参数在背后作祟。
有了这些感性认识,再钻进去看原理,就会事半功倍。
第二章:底层基石 —— Token、上下文窗口与嵌入向量
2.1 Token:模型的“字母”
LLM看不懂汉字或英文单词,它只看Token——一种将文本切分为最小语义单元的方式。
- 英文中,
"eating"可能被切为"eat"+"ing"。 - 中文中,
"你好"可能是一个token,也可能拆为"你"和"好"(取决于分词器)。
模型的所有运算,都是基于Token ID(整数)进行的。
2.2 上下文窗口(Context Window)
这是模型一次能“看到”的最大Token数量(输入+输出)。比如GPT-4 Turbo支持128k token,相当于一本《三体》的厚度。
- 窗口越大,模型能“记住”的对话历史或文档内容就越多。
- 但窗口是硬性限制——超过窗口的内容会被截断或遗忘(除非使用RAG等扩展手段)。
2.3 嵌入向量(Embedding Vector)
Token ID只是编号,没有语义。为了让模型理解“国王”和“女王”相近,需要把它们映射到高维空间中的向量(例如768维或4096维)。
- 语义相似的词,在向量空间中距离近。
- 这些向量不是预先固定的,而是在训练中通过自监督学习不断调整,最终形成奇妙的“语义地图”。
第三章:Transformer架构 —— 注意力是核心引擎
现代LLM都基于Transformer,它用一个核心机制取代了旧式循环网络:注意力(Attention)。
3.1 注意力机制:让词“互相看”
当模型处理句子中的每个词时,它会计算该词与句子中其他所有词的相关度,然后根据相关度加权融合信息。
例如,在句子“苹果公司发布新手机”中,处理“手机”时,模型会特别关注“苹果”(公司)而不是水果“苹果”,因为上下文中的“公司”“发布”提供了注意力权重。
数学上,注意力是 Q(查询)、K(键)、V(值)的加权求和。但通俗讲:每个词都在问“谁对我最重要”。
3.2 Transformer的宏观结构
GPT系列实际只使用“解码器”部分,且去掉了交叉注意力,成为自回归模型:预测下一个Token时,只能看到左边的Token(掩码注意力),从而逐词生成。
3.3 推理过程(生成答案时)
- 输入:用户问题 → 分词 → 嵌入 → 位置编码。
- 逐层前传:经过数十层Transformer块,每层都做自注意力+前馈。
- 输出概率:最后一层输出一个概率分布(覆盖词表所有Token)。
- 采样:根据概率和温度等参数,选择下一个Token。
- 重复:将新Token追加到输入,继续预测,直到遇到停止符或达到长度限制。
第四章:控制输出的旋钮 —— 温度等采样参数
同样是“请写一首诗”,模型每次输出不同,这并非随机的混乱,而是受采样策略控制。
| 参数 | 作用 | 直观效果 |
|---|---|---|
| 温度(Temperature) | 调整概率分布的“尖锐程度”。温度→0,选择最高概率Token(确定性);温度→1,保持原始分布;温度>1,分布更平坦(更随机)。 | 低温 → 保守、重复;高温 → 创意、易跑题。 |
| Top-p(核采样) | 只从累积概率达到p的最小Token集合中采样。 | p=0.9 → 剔除极低概率的“废话”候选。 |
| Top-k | 只保留概率最高的k个Token。 | k=50 → 限制选择范围,避免离奇输出。 |
这些参数不改变模型的知识,只改变“决策风格”。调参是一门艺术,也是工程实践。
第五章:模型“说谎”怎么办?—— 幻觉、微调、提示词与RAG
5.1 幻觉(Hallucination)
模型编造事实、引用不存在的文献、自信地胡说。这源于:
- 训练数据不完整或过时;
- 概率驱动:模型只关心“最可能的续写”,并不关心“真实”。
幻觉不是bug,而是生成式模型的天然属性。我们要学会与其共处,并用工具降低其影响。
5.2 提示词工程(Prompt Engineering)
通过精心设计输入指令,引导模型行为。例如:
- 零样本:“解释量子力学”
- 少样本:“示例1: … 示例2: … 现在请回答…”
- 思维链(CoT):“请逐步推理,最后给出答案。”
提示词是“运行时”的操控,不改变模型本身。
5.3 微调(Fine-tuning)
用特定领域的数据集,继续训练模型,更新其权重。这相当于给模型“换血”,让其专精于某领域(如法律文书、医学报告)。
- 成本高,需要数据与算力;
- 效果持久,模型“真正学会”了新模式。
5.4 检索增强生成(RAG)—— 对抗幻觉的利器
RAG不改变模型权重,而是在生成前先从外部知识库检索相关信息,然后将“检索结果 + 用户问题”一并送入模型,让模型基于真实资料回答。
对比:微调是“内在学习”,RAG是“外挂资料”。两者可互补。
第六章:Agent —— 不是魔法,而是工程组合
很多新人以为AI Agent是“有自我意识的数字生命”,其实它只是结构化工作流的产物。
一个典型的Agent由四个组件构成:
- LLM:负责理解目标、生成计划和调用指令。
- 工具:扩展LLM的能力(如代码执行、网页抓取、数据库查询)。
- 记忆:让Agent“记住”之前做了什么事。
- 工作流:决定Agent如何思考(如“观察-思考-行动”循环)。
Agent并非自主推理,而是LLM在预设框架下,通过工具反馈不断迭代的过程。理解这点,你就不会再对它感到神秘或失望。
第七章:行动指南 —— 如何从新手进阶为老手
-
先玩API
- 注册OpenAI / Anthropic / Google Gemini / Meta Llama (通过Replicate或HuggingFace)
- 用Python写几个demo,体验温度和上下文窗口的影响。
-
再读源码级概念
- 阅读Transformer论文(Attention Is All You Need)的摘要和图示。
- 手算一次注意力(小维度),或用Notebook可视化嵌入向量。
-
对比不同生态
- OpenAI:闭源,生态最成熟。
- Anthropic:注重安全和可解释性(Constitutional AI)。
- Google DeepMind:Gemini多模态,技术前沿。
- Meta:Llama开源,适合本地部署和微调。
-
动手实现一个迷你RAG
- 用ChromaDB + 本地Embedding模型,构建一个问答机器人。
- 你会立刻感受到“检索”如何拯救幻觉。
-
尝试构建一个简单的Agent
- 用LangChain或自己写循环:LLM决定调用“天气API”还是“搜索”,并维护对话状态。
- 你将看到Agent的本质就是
while not done: think -> act -> observe。
终章:总结 —— 从“用”到“懂”
当你明白Token不是字母、注意力不是玄学、温度不是魔法、RAG不是万能药、Agent不是人造神,你就已经超越了绝大多数“使用者”。
真正的掌控力来自对机理的直觉——知道何时调参、何时RAG、何时微调、何时退一步改用简单提示。这份直觉,正是你从“调用者”成长为“架构师”的起点。
记住:LLM是概率机器,不是真理机器。你的任务不是膜拜它,而是用工程思维驯服它。
更多推荐


所有评论(0)