【AI编程思考:第一篇】理解LLM的实际工作原理:从直觉到内核

很多人还没弄清底层逻辑就开始"玩"AI,结果陷入浅层认知。

你不需要成为数学家,但若能像理解一辆汽车的引擎一样理解LLM,你就能驾驭它,而不是被它驾驭。


第一章:先跑起来

在深究理论之前,先做一件反直觉的事:调用一次API,让模型生成一句话。比如:

python 复制代码
import openai
openai.ChatCompletion.create(
  model="gpt-4",
  messages=[{"role": "user", "content": "解释什么是token"}]
)

这个简单动作会给你三个直觉:

  1. 模型不是"搜索",而是"续写" ------ 它根据你的输入,一个字一个字地生成下文。
  2. 每次调用都有成本 ------ 按输入+输出的长度计费,这暗示了"长度"是核心约束。
  3. 同样的输入,每次输出可能不同 ------ 温度等参数在背后作祟。

有了这些感性认识,再钻进去看原理,就会事半功倍。


第二章:底层基石 ------ 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维)。

  • 语义相似的词,在向量空间中距离近。
  • 这些向量不是预先固定的,而是在训练中通过自监督学习不断调整,最终形成奇妙的"语义地图"。

渲染错误: Mermaid 渲染失败: Parse error on line 3: ... B --> CToken序列 \[1024, 785, 339] -----------------------^ Expecting 'SQE', 'DOUBLECIRCLEEND', 'PE', '-)', 'STADIUMEND', 'SUBROUTINEEND', 'PIPE', 'CYLINDEREND', 'DIAMOND_STOP', 'TAGEND', 'TRAPEND', 'INVTRAPEND', 'UNICODE_TEXT', 'TEXT', 'TAGSTART', got 'SQS'


第三章:Transformer架构 ------ 注意力是核心引擎

现代LLM都基于Transformer ,它用一个核心机制取代了旧式循环网络:注意力(Attention)

3.1 注意力机制:让词"互相看"

当模型处理句子中的每个词时,它会计算该词与句子中其他所有词的相关度,然后根据相关度加权融合信息。

例如,在句子"苹果 公司发布新手机"中,处理"手机"时,模型会特别关注"苹果"(公司)而不是水果"苹果",因为上下文中的"公司""发布"提供了注意力权重。

数学上,注意力是 Q(查询)、K(键)、V(值)的加权求和。但通俗讲:每个词都在问"谁对我最重要"

3.2 Transformer的宏观结构

#mermaid-svg-LLeXUvMUVObXHHaN{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-LLeXUvMUVObXHHaN .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-LLeXUvMUVObXHHaN .error-icon{fill:#552222;}#mermaid-svg-LLeXUvMUVObXHHaN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LLeXUvMUVObXHHaN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LLeXUvMUVObXHHaN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LLeXUvMUVObXHHaN .marker.cross{stroke:#333333;}#mermaid-svg-LLeXUvMUVObXHHaN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LLeXUvMUVObXHHaN p{margin:0;}#mermaid-svg-LLeXUvMUVObXHHaN .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-LLeXUvMUVObXHHaN .cluster-label text{fill:#333;}#mermaid-svg-LLeXUvMUVObXHHaN .cluster-label span{color:#333;}#mermaid-svg-LLeXUvMUVObXHHaN .cluster-label span p{background-color:transparent;}#mermaid-svg-LLeXUvMUVObXHHaN .label text,#mermaid-svg-LLeXUvMUVObXHHaN span{fill:#333;color:#333;}#mermaid-svg-LLeXUvMUVObXHHaN .node rect,#mermaid-svg-LLeXUvMUVObXHHaN .node circle,#mermaid-svg-LLeXUvMUVObXHHaN .node ellipse,#mermaid-svg-LLeXUvMUVObXHHaN .node polygon,#mermaid-svg-LLeXUvMUVObXHHaN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LLeXUvMUVObXHHaN .rough-node .label text,#mermaid-svg-LLeXUvMUVObXHHaN .node .label text,#mermaid-svg-LLeXUvMUVObXHHaN .image-shape .label,#mermaid-svg-LLeXUvMUVObXHHaN .icon-shape .label{text-anchor:middle;}#mermaid-svg-LLeXUvMUVObXHHaN .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-LLeXUvMUVObXHHaN .rough-node .label,#mermaid-svg-LLeXUvMUVObXHHaN .node .label,#mermaid-svg-LLeXUvMUVObXHHaN .image-shape .label,#mermaid-svg-LLeXUvMUVObXHHaN .icon-shape .label{text-align:center;}#mermaid-svg-LLeXUvMUVObXHHaN .node.clickable{cursor:pointer;}#mermaid-svg-LLeXUvMUVObXHHaN .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-LLeXUvMUVObXHHaN .arrowheadPath{fill:#333333;}#mermaid-svg-LLeXUvMUVObXHHaN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LLeXUvMUVObXHHaN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LLeXUvMUVObXHHaN .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LLeXUvMUVObXHHaN .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-LLeXUvMUVObXHHaN .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LLeXUvMUVObXHHaN .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-LLeXUvMUVObXHHaN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LLeXUvMUVObXHHaN .cluster text{fill:#333;}#mermaid-svg-LLeXUvMUVObXHHaN .cluster span{color:#333;}#mermaid-svg-LLeXUvMUVObXHHaN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LLeXUvMUVObXHHaN .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-LLeXUvMUVObXHHaN rect.text{fill:none;stroke-width:0;}#mermaid-svg-LLeXUvMUVObXHHaN .icon-shape,#mermaid-svg-LLeXUvMUVObXHHaN .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LLeXUvMUVObXHHaN .icon-shape p,#mermaid-svg-LLeXUvMUVObXHHaN .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-LLeXUvMUVObXHHaN .icon-shape .label rect,#mermaid-svg-LLeXUvMUVObXHHaN .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LLeXUvMUVObXHHaN .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-LLeXUvMUVObXHHaN .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-LLeXUvMUVObXHHaN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-LLeXUvMUVObXHHaN .encoderNode>*{fill:#E3F2FD!important;stroke:#1565C0!important;stroke-width:2px!important;color:#0D47A1!important;rx:8!important;ry:8!important;}#mermaid-svg-LLeXUvMUVObXHHaN .encoderNode span{fill:#E3F2FD!important;stroke:#1565C0!important;stroke-width:2px!important;color:#0D47A1!important;rx:8!important;ry:8!important;}#mermaid-svg-LLeXUvMUVObXHHaN .encoderNode tspan{fill:#0D47A1!important;}#mermaid-svg-LLeXUvMUVObXHHaN .decoderNode>*{fill:#FFF3E0!important;stroke:#E65100!important;stroke-width:2px!important;color:#BF360C!important;rx:8!important;ry:8!important;}#mermaid-svg-LLeXUvMUVObXHHaN .decoderNode span{fill:#FFF3E0!important;stroke:#E65100!important;stroke-width:2px!important;color:#BF360C!important;rx:8!important;ry:8!important;}#mermaid-svg-LLeXUvMUVObXHHaN .decoderNode tspan{fill:#BF360C!important;}#mermaid-svg-LLeXUvMUVObXHHaN .specialNode>*{fill:#F3E5F5!important;stroke:#7B1FA2!important;stroke-width:2px!important;color:#4A148C!important;rx:8!important;ry:8!important;stroke-dasharray:5 5!important;}#mermaid-svg-LLeXUvMUVObXHHaN .specialNode span{fill:#F3E5F5!important;stroke:#7B1FA2!important;stroke-width:2px!important;color:#4A148C!important;rx:8!important;ry:8!important;stroke-dasharray:5 5!important;}#mermaid-svg-LLeXUvMUVObXHHaN .specialNode tspan{fill:#4A148C!important;}#mermaid-svg-LLeXUvMUVObXHHaN .outputNode>*{fill:#E8F5E9!important;stroke:#2E7D32!important;stroke-width:3px!important;color:#1B5E20!important;rx:12!important;ry:12!important;}#mermaid-svg-LLeXUvMUVObXHHaN .outputNode span{fill:#E8F5E9!important;stroke:#2E7D32!important;stroke-width:3px!important;color:#1B5E20!important;rx:12!important;ry:12!important;}#mermaid-svg-LLeXUvMUVObXHHaN .outputNode tspan{fill:#1B5E20!important;}#mermaid-svg-LLeXUvMUVObXHHaN .subgraphStyle>*{fill:#FAFAFA!important;stroke:#BDBDBD!important;stroke-width:1px!important;stroke-dasharray:8 4!important;rx:12!important;ry:12!important;}#mermaid-svg-LLeXUvMUVObXHHaN .subgraphStyle span{fill:#FAFAFA!important;stroke:#BDBDBD!important;stroke-width:1px!important;stroke-dasharray:8 4!important;rx:12!important;ry:12!important;} 🔸 解码器 (Decoder) --- GPT 系列核心
🔹 编码器 (Encoder) --- 仅 BERT 等
隐藏状态

Hidden States
📥 输入嵌入

Input Embedding
🔄 多头自注意力

Multi-Head Self-Attention
⚙️ 前馈网络

Feed-Forward Network
🔗 层归一化 & 残差连接

LayerNorm + Residual
📥 输入嵌入

Input Embedding
🎭 掩码多头自注意力

Masked Self-Attention

⚠️ 不可见未来词
🔀 交叉注意力

Cross-Attention

可选 · 用于 Enc-Dec
⚙️ 前馈网络

Feed-Forward Network
🔗 层归一化 & 残差连接

LayerNorm + Residual
📤 线性 + Softmax 输出

Linear + Softmax

GPT系列实际只使用"解码器"部分 ,且去掉了交叉注意力,成为自回归模型:预测下一个Token时,只能看到左边的Token(掩码注意力),从而逐词生成。

3.3 推理过程(生成答案时)

  1. 输入:用户问题 → 分词 → 嵌入 → 位置编码。
  2. 逐层前传:经过数十层Transformer块,每层都做自注意力+前馈。
  3. 输出概率:最后一层输出一个概率分布(覆盖词表所有Token)。
  4. 采样:根据概率和温度等参数,选择下一个Token。
  5. 重复:将新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不改变模型权重,而是在生成前先从外部知识库检索相关信息,然后将"检索结果 + 用户问题"一并送入模型,让模型基于真实资料回答。
#mermaid-svg-IwFtKIQbi7J2noXQ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-IwFtKIQbi7J2noXQ .error-icon{fill:#552222;}#mermaid-svg-IwFtKIQbi7J2noXQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-IwFtKIQbi7J2noXQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-IwFtKIQbi7J2noXQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-IwFtKIQbi7J2noXQ .marker.cross{stroke:#333333;}#mermaid-svg-IwFtKIQbi7J2noXQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-IwFtKIQbi7J2noXQ p{margin:0;}#mermaid-svg-IwFtKIQbi7J2noXQ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ .cluster-label text{fill:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ .cluster-label span{color:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ .cluster-label span p{background-color:transparent;}#mermaid-svg-IwFtKIQbi7J2noXQ .label text,#mermaid-svg-IwFtKIQbi7J2noXQ span{fill:#333;color:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ .node rect,#mermaid-svg-IwFtKIQbi7J2noXQ .node circle,#mermaid-svg-IwFtKIQbi7J2noXQ .node ellipse,#mermaid-svg-IwFtKIQbi7J2noXQ .node polygon,#mermaid-svg-IwFtKIQbi7J2noXQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-IwFtKIQbi7J2noXQ .rough-node .label text,#mermaid-svg-IwFtKIQbi7J2noXQ .node .label text,#mermaid-svg-IwFtKIQbi7J2noXQ .image-shape .label,#mermaid-svg-IwFtKIQbi7J2noXQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-IwFtKIQbi7J2noXQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-IwFtKIQbi7J2noXQ .rough-node .label,#mermaid-svg-IwFtKIQbi7J2noXQ .node .label,#mermaid-svg-IwFtKIQbi7J2noXQ .image-shape .label,#mermaid-svg-IwFtKIQbi7J2noXQ .icon-shape .label{text-align:center;}#mermaid-svg-IwFtKIQbi7J2noXQ .node.clickable{cursor:pointer;}#mermaid-svg-IwFtKIQbi7J2noXQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-IwFtKIQbi7J2noXQ .arrowheadPath{fill:#333333;}#mermaid-svg-IwFtKIQbi7J2noXQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-IwFtKIQbi7J2noXQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-IwFtKIQbi7J2noXQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-IwFtKIQbi7J2noXQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-IwFtKIQbi7J2noXQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-IwFtKIQbi7J2noXQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-IwFtKIQbi7J2noXQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-IwFtKIQbi7J2noXQ .cluster text{fill:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ .cluster span{color:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-IwFtKIQbi7J2noXQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-IwFtKIQbi7J2noXQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-IwFtKIQbi7J2noXQ .icon-shape,#mermaid-svg-IwFtKIQbi7J2noXQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-IwFtKIQbi7J2noXQ .icon-shape p,#mermaid-svg-IwFtKIQbi7J2noXQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-IwFtKIQbi7J2noXQ .icon-shape .label rect,#mermaid-svg-IwFtKIQbi7J2noXQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-IwFtKIQbi7J2noXQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-IwFtKIQbi7J2noXQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-IwFtKIQbi7J2noXQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 查询向量
返回Top-K文档片段
组装: 背景资料 + 问题
用户提问
检索器
外部知识库

向量数据库
提示词构造器
LLM生成
带引用的答案

对比:微调是"内在学习",RAG是"外挂资料"。两者可互补。


第六章:Agent ------ 不是魔法,而是工程组合

很多新人以为AI Agent是"有自我意识的数字生命",其实它只是结构化工作流的产物。

一个典型的Agent由四个组件构成:
#mermaid-svg-m6pyJksdCS9bEkBz{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-m6pyJksdCS9bEkBz .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-m6pyJksdCS9bEkBz .error-icon{fill:#552222;}#mermaid-svg-m6pyJksdCS9bEkBz .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-m6pyJksdCS9bEkBz .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-m6pyJksdCS9bEkBz .marker{fill:#333333;stroke:#333333;}#mermaid-svg-m6pyJksdCS9bEkBz .marker.cross{stroke:#333333;}#mermaid-svg-m6pyJksdCS9bEkBz svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-m6pyJksdCS9bEkBz p{margin:0;}#mermaid-svg-m6pyJksdCS9bEkBz .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-m6pyJksdCS9bEkBz .cluster-label text{fill:#333;}#mermaid-svg-m6pyJksdCS9bEkBz .cluster-label span{color:#333;}#mermaid-svg-m6pyJksdCS9bEkBz .cluster-label span p{background-color:transparent;}#mermaid-svg-m6pyJksdCS9bEkBz .label text,#mermaid-svg-m6pyJksdCS9bEkBz span{fill:#333;color:#333;}#mermaid-svg-m6pyJksdCS9bEkBz .node rect,#mermaid-svg-m6pyJksdCS9bEkBz .node circle,#mermaid-svg-m6pyJksdCS9bEkBz .node ellipse,#mermaid-svg-m6pyJksdCS9bEkBz .node polygon,#mermaid-svg-m6pyJksdCS9bEkBz .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-m6pyJksdCS9bEkBz .rough-node .label text,#mermaid-svg-m6pyJksdCS9bEkBz .node .label text,#mermaid-svg-m6pyJksdCS9bEkBz .image-shape .label,#mermaid-svg-m6pyJksdCS9bEkBz .icon-shape .label{text-anchor:middle;}#mermaid-svg-m6pyJksdCS9bEkBz .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-m6pyJksdCS9bEkBz .rough-node .label,#mermaid-svg-m6pyJksdCS9bEkBz .node .label,#mermaid-svg-m6pyJksdCS9bEkBz .image-shape .label,#mermaid-svg-m6pyJksdCS9bEkBz .icon-shape .label{text-align:center;}#mermaid-svg-m6pyJksdCS9bEkBz .node.clickable{cursor:pointer;}#mermaid-svg-m6pyJksdCS9bEkBz .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-m6pyJksdCS9bEkBz .arrowheadPath{fill:#333333;}#mermaid-svg-m6pyJksdCS9bEkBz .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-m6pyJksdCS9bEkBz .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-m6pyJksdCS9bEkBz .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-m6pyJksdCS9bEkBz .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-m6pyJksdCS9bEkBz .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-m6pyJksdCS9bEkBz .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-m6pyJksdCS9bEkBz .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-m6pyJksdCS9bEkBz .cluster text{fill:#333;}#mermaid-svg-m6pyJksdCS9bEkBz .cluster span{color:#333;}#mermaid-svg-m6pyJksdCS9bEkBz div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-m6pyJksdCS9bEkBz .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-m6pyJksdCS9bEkBz rect.text{fill:none;stroke-width:0;}#mermaid-svg-m6pyJksdCS9bEkBz .icon-shape,#mermaid-svg-m6pyJksdCS9bEkBz .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-m6pyJksdCS9bEkBz .icon-shape p,#mermaid-svg-m6pyJksdCS9bEkBz .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-m6pyJksdCS9bEkBz .icon-shape .label rect,#mermaid-svg-m6pyJksdCS9bEkBz .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-m6pyJksdCS9bEkBz .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-m6pyJksdCS9bEkBz .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-m6pyJksdCS9bEkBz :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Agent核心
LLM

(大脑/推理器)
工具调用

(API、计算器、搜索)
记忆模块

(短期对话历史 + 长期向量记忆)
规划与工作流

(ReAct, Plan-and-Execute等)
执行动作
上下文增强
分解复杂任务

  • LLM:负责理解目标、生成计划和调用指令。
  • 工具:扩展LLM的能力(如代码执行、网页抓取、数据库查询)。
  • 记忆:让Agent"记住"之前做了什么事。
  • 工作流:决定Agent如何思考(如"观察-思考-行动"循环)。

Agent并非自主推理,而是LLM在预设框架下,通过工具反馈不断迭代的过程。理解这点,你就不会再对它感到神秘或失望。


第七章:行动指南 ------ 如何从新手进阶为老手

  1. 先玩API

    • 注册OpenAI / Anthropic / Google Gemini / Meta Llama (通过Replicate或HuggingFace)
    • 用Python写几个demo,体验温度和上下文窗口的影响。
  2. 再读源码级概念

    • 阅读Transformer论文(Attention Is All You Need)的摘要和图示。
    • 手算一次注意力(小维度),或用Notebook可视化嵌入向量。
  3. 对比不同生态

    • OpenAI:闭源,生态最成熟。
    • Anthropic:注重安全和可解释性(Constitutional AI)。
    • Google DeepMind:Gemini多模态,技术前沿。
    • Meta:Llama开源,适合本地部署和微调。
  4. 动手实现一个迷你RAG

    • 用ChromaDB + 本地Embedding模型,构建一个问答机器人。
    • 你会立刻感受到"检索"如何拯救幻觉。
  5. 尝试构建一个简单的Agent

    • 用LangChain或自己写循环:LLM决定调用"天气API"还是"搜索",并维护对话状态。
    • 你将看到Agent的本质就是 while not done: think -> act -> observe

终章:总结 ------ 从"用"到"懂"

当你明白Token不是字母、注意力不是玄学、温度不是魔法、RAG不是万能药、Agent不是人造神,你就已经超越了绝大多数"使用者"。

真正的掌控力来自对机理的直觉------知道何时调参、何时RAG、何时微调、何时退一步改用简单提示。这份直觉,正是你从"调用者"成长为"架构师"的起点。

记住:LLM是概率机器,不是真理机器。你的任务不是膜拜它,而是用工程思维驯服它。