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