<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>大模型 on 你怂你mua</title>
        <link>https://liusir521.github.io/categories/%E5%A4%A7%E6%A8%A1%E5%9E%8B/</link>
        <description>Recent content in 大模型 on 你怂你mua</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Example Person</copyright>
        <lastBuildDate>Sat, 02 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://liusir521.github.io/categories/%E5%A4%A7%E6%A8%A1%E5%9E%8B/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>大语言模型原理详解：从预测下一个词到智能涌现</title>
        <link>https://liusir521.github.io/p/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3%E4%BB%8E%E9%A2%84%E6%B5%8B%E4%B8%8B%E4%B8%80%E4%B8%AA%E8%AF%8D%E5%88%B0%E6%99%BA%E8%83%BD%E6%B6%8C%E7%8E%B0/</link>
        <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
        
        <guid>https://liusir521.github.io/p/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3%E4%BB%8E%E9%A2%84%E6%B5%8B%E4%B8%8B%E4%B8%80%E4%B8%AA%E8%AF%8D%E5%88%B0%E6%99%BA%E8%83%BD%E6%B6%8C%E7%8E%B0/</guid>
        <description>&lt;img src="https://liusir521.github.io/p/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3%E4%BB%8E%E9%A2%84%E6%B5%8B%E4%B8%8B%E4%B8%80%E4%B8%AA%E8%AF%8D%E5%88%B0%E6%99%BA%E8%83%BD%E6%B6%8C%E7%8E%B0/llm.png" alt="Featured image of post 大语言模型原理详解：从预测下一个词到智能涌现" /&gt;&lt;h2 id=&#34;引言&#34;&gt;引言
&lt;/h2&gt;&lt;p&gt;大语言模型看起来很神奇：能聊天、写代码、总结文章、翻译文本、分析日志，甚至能像助手一样完成复杂任务。&lt;/p&gt;
&lt;p&gt;但如果把外壳拆开，它最核心的目标其实非常朴素：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;根据前面的内容，预测下一个 token。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;例如给模型一句话：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;今天天气很
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;模型要做的是预测后面最可能接什么：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;好、热、冷、差、舒服……
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;当这个能力被放大到海量数据、巨大参数、强大的 Transformer 架构和精心设计的训练流程上，就出现了我们今天看到的大语言模型。&lt;/p&gt;
&lt;p&gt;这篇文章不追求堆公式，而是用尽量直观的方式讲清楚：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模型如何“读”文字&lt;/li&gt;
&lt;li&gt;Transformer 为什么有效&lt;/li&gt;
&lt;li&gt;注意力机制到底在注意什么&lt;/li&gt;
&lt;li&gt;模型是怎么训练出来的&lt;/li&gt;
&lt;li&gt;对齐为什么能让模型更像助手&lt;/li&gt;
&lt;li&gt;推理参数如何影响回答&lt;/li&gt;
&lt;li&gt;大模型为什么会幻觉、受上下文限制&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;一句话理解-llm&#34;&gt;一句话理解 LLM
&lt;/h2&gt;&lt;p&gt;大语言模型可以理解成一个巨大的概率预测器。&lt;/p&gt;
&lt;p&gt;它接收一串 token，输出下一个 token 的概率分布：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输入：我 喜欢 吃
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  苹果：0.31
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  米饭：0.18
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  火锅：0.12
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  代码：0.01
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后系统从这个概率分布里选一个 token，接到原文后面，再继续预测下一个。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;我喜欢吃 → 苹果
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;我喜欢吃苹果 → 。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;我喜欢吃苹果。 → 今天
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;一句话、一段代码、一篇文章，都是这样一个 token 一个 token 生成出来的。&lt;/p&gt;
&lt;p&gt;这听起来像“文字接龙”，但关键在于：为了准确预测下一个 token，模型必须学会大量隐含能力。&lt;/p&gt;
&lt;p&gt;它要知道：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;语法结构&lt;/li&gt;
&lt;li&gt;词义关系&lt;/li&gt;
&lt;li&gt;世界知识&lt;/li&gt;
&lt;li&gt;常识推理&lt;/li&gt;
&lt;li&gt;代码模式&lt;/li&gt;
&lt;li&gt;对话格式&lt;/li&gt;
&lt;li&gt;上下文约束&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;预测下一个 token 是训练目标，理解和推理是这个目标逼出来的能力。&lt;/p&gt;
&lt;h2 id=&#34;token模型眼中的文字&#34;&gt;Token：模型眼中的文字
&lt;/h2&gt;&lt;p&gt;模型不能直接读“文字”。它看到的是 token。&lt;/p&gt;
&lt;p&gt;Token 可以是一个字、一个词、一个词的一部分，甚至是标点或空格。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;原文：ChatGPT 很强
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;可能被切成：[&amp;#34;Chat&amp;#34;, &amp;#34;GPT&amp;#34;, &amp;#34; 很&amp;#34;, &amp;#34;强&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;不同模型的分词器不一样，所以同一句话在不同模型里可能切成不同 token。&lt;/p&gt;
&lt;h3 id=&#34;为什么不用字或词&#34;&gt;为什么不用字或词
&lt;/h3&gt;&lt;p&gt;如果按字切，英文会很碎：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;transformer → t r a n s f o r m e r
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果按词切，又会遇到新词、拼写变体、代码变量名：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;getUserProfileById
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;现代模型通常使用子词分词。它在“太碎”和“太粗”之间折中：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;unbelievable → un + believe + able
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样既能处理常见词，也能拼出没见过的新词。&lt;/p&gt;
&lt;h3 id=&#34;token-影响成本和上下文&#34;&gt;Token 影响成本和上下文
&lt;/h3&gt;&lt;p&gt;上下文窗口不是按字数算，而是按 token 算。&lt;/p&gt;
&lt;p&gt;如果模型上下文是 128K token，意思是一次最多能看到约 128K 个 token，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统提示&lt;/li&gt;
&lt;li&gt;用户输入&lt;/li&gt;
&lt;li&gt;历史对话&lt;/li&gt;
&lt;li&gt;检索文档&lt;/li&gt;
&lt;li&gt;工具结果&lt;/li&gt;
&lt;li&gt;模型输出&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;token 越多，成本越高，推理越慢，上下文管理也越重要。&lt;/p&gt;
&lt;h2 id=&#34;embedding把-token-变成向量&#34;&gt;Embedding：把 token 变成向量
&lt;/h2&gt;&lt;p&gt;模型不能直接对 token 字符串做计算。它会先把每个 token 映射成一个向量。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;苹果&amp;#34; → [0.12, -0.38, 0.57, ...]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;香蕉&amp;#34; → [0.10, -0.35, 0.61, ...]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;数据库&amp;#34; → [-0.44, 0.72, 0.08, ...]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个向量叫 Embedding。&lt;/p&gt;
&lt;p&gt;可以把它理解成 token 在语义空间里的坐标。语义接近的 token，向量距离通常也更接近。&lt;/p&gt;
&lt;p&gt;但在大语言模型里，Embedding 只是第一步。真正强大的地方在于：这个向量会经过很多层 Transformer，不断吸收上下文信息。&lt;/p&gt;
&lt;p&gt;例如“苹果”这个 token，在不同句子里的含义不同：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;我买了一个苹果。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;苹果发布了新款芯片。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;初始 Embedding 可能相同，但经过上下文处理后，模型会逐渐区分它是水果还是公司。&lt;/p&gt;
&lt;h2 id=&#34;transformerllm-的主干架构&#34;&gt;Transformer：LLM 的主干架构
&lt;/h2&gt;&lt;p&gt;现代大语言模型的核心架构基本都来自 Transformer。&lt;/p&gt;
&lt;p&gt;一个简化版流程：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;文本
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tokenization
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Embedding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Transformer Block × N
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出下一个 token 的概率
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Transformer Block 可以理解成一层“信息加工器”。每一层主要做两件事：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. Attention：让每个 token 从其他 token 那里取信息
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. Feed Forward：对每个位置的信息做进一步加工
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;几十层甚至上百层叠起来后，模型就能从简单词义逐步抽象到语法、语义、推理和任务意图。&lt;/p&gt;
&lt;h2 id=&#34;attention让-token-互相看见&#34;&gt;Attention：让 token 互相看见
&lt;/h2&gt;&lt;p&gt;Attention 是 Transformer 最核心的机制。&lt;/p&gt;
&lt;p&gt;一句话理解：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attention 让当前位置的 token 判断：我应该重点关注前文里的哪些 token。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;小明把书放进书包，因为它太重了。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里“它”指的更可能是“书”，不是“书包”。模型要理解这件事，就需要让“它”这个位置去关注前面的相关词。&lt;/p&gt;
&lt;h3 id=&#34;querykeyvalue&#34;&gt;Query、Key、Value
&lt;/h3&gt;&lt;p&gt;Attention 里常见三个词：Query、Key、Value。&lt;/p&gt;
&lt;p&gt;可以用查资料来类比：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Query：我想找什么？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Key：每份资料的标签是什么？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Value：资料真正的内容是什么？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;每个 token 都会生成自己的 Query、Key、Value。&lt;/p&gt;
&lt;p&gt;然后当前位置的 Query 会和所有位置的 Key 做匹配，算出注意力分数。分数越高，说明越值得关注。最后再按这些分数加权汇总 Value。&lt;/p&gt;
&lt;p&gt;简化成三步：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 当前 token 发出 Query：我需要什么信息？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 其他 token 提供 Key：我能提供什么线索？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 根据匹配程度汇总 Value：把有用信息拿过来。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;self-attention&#34;&gt;Self-Attention
&lt;/h3&gt;&lt;p&gt;Self-Attention 的意思是：同一句话内部的 token 互相关注。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;张三告诉李四，他明天会来。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;模型需要判断“他”更可能指谁。这就需要结合上下文中的多个 token。&lt;/p&gt;
&lt;p&gt;Self-Attention 的强大之处在于：任意两个位置之间都可以直接建立联系。不像 RNN 那样必须从左到右一步步传递信息。&lt;/p&gt;
&lt;h3 id=&#34;causal-mask&#34;&gt;Causal Mask
&lt;/h3&gt;&lt;p&gt;GPT 这类生成式模型在训练和生成时不能偷看未来。&lt;/p&gt;
&lt;p&gt;预测第 5 个 token 时，只能看前 4 个 token，不能看第 6 个 token。&lt;/p&gt;
&lt;p&gt;这靠 Causal Mask 实现。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位置 1 只能看 1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位置 2 只能看 1,2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;位置 3 只能看 1,2,3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样模型学到的才是“根据前文预测后文”，而不是提前看答案。&lt;/p&gt;
&lt;h2 id=&#34;multi-head-attention从多个角度看上下文&#34;&gt;Multi-Head Attention：从多个角度看上下文
&lt;/h2&gt;&lt;p&gt;一个 Attention 头只能从一种角度关注上下文。&lt;/p&gt;
&lt;p&gt;但一句话里有很多关系：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;主谓关系&lt;/li&gt;
&lt;li&gt;指代关系&lt;/li&gt;
&lt;li&gt;时间关系&lt;/li&gt;
&lt;li&gt;因果关系&lt;/li&gt;
&lt;li&gt;代码里的变量引用&lt;/li&gt;
&lt;li&gt;Markdown 里的结构层级&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Multi-Head Attention 就是让模型同时用多个 Attention 头观察文本。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Head 1：关注语法
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Head 2：关注指代
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Head 3：关注代码变量
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Head 4：关注段落结构
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这些头的结果会被合并，让模型得到更丰富的上下文表示。&lt;/p&gt;
&lt;p&gt;不需要把每个头想得太神秘。它们不一定真的严格分工成“语法头”“指代头”，但多头机制确实给了模型从不同子空间捕捉关系的能力。&lt;/p&gt;
&lt;h2 id=&#34;feed-forward对信息做加工&#34;&gt;Feed Forward：对信息做加工
&lt;/h2&gt;&lt;p&gt;Attention 负责“从哪里拿信息”，Feed Forward 负责“怎么加工信息”。&lt;/p&gt;
&lt;p&gt;在每个 Transformer Block 中，Attention 汇总上下文后，会经过一个前馈网络。&lt;/p&gt;
&lt;p&gt;可以粗略理解为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Attention：把相关信息拿到当前 token 身边
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Feed Forward：根据这些信息更新当前 token 的表示
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;很多研究认为，模型里的事实知识和模式记忆相当一部分保存在前馈网络参数中。&lt;/p&gt;
&lt;p&gt;例如模型知道：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;巴黎是法国的首都
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Redis 的 zset 常用跳表
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Go 的 goroutine 由调度器管理
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这些知识并不是以数据库记录的形式存储，而是分散在大量参数里。&lt;/p&gt;
&lt;h2 id=&#34;位置编码让模型知道顺序&#34;&gt;位置编码：让模型知道顺序
&lt;/h2&gt;&lt;p&gt;Attention 本身不天然知道顺序。&lt;/p&gt;
&lt;p&gt;如果只看一堆 token 向量，模型并不知道谁在前谁在后。&lt;/p&gt;
&lt;p&gt;所以模型需要位置编码。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;我 爱 你
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;你 爱 我
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这两句话 token 一样，但顺序不同，意思不同。&lt;/p&gt;
&lt;p&gt;位置编码就是给每个 token 加上“我在第几个位置”的信息。&lt;/p&gt;
&lt;p&gt;现代模型常用 RoPE 这类相对位置编码。你不必记住复杂数学，只要知道它解决的是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;模型如何理解 token 之间的距离和顺序。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;残差连接与归一化让深层网络稳定训练&#34;&gt;残差连接与归一化：让深层网络稳定训练
&lt;/h2&gt;&lt;p&gt;Transformer 可以堆很多层，但层数越深，训练越难。&lt;/p&gt;
&lt;p&gt;残差连接和归一化是两个稳定训练的关键技巧。&lt;/p&gt;
&lt;h3 id=&#34;残差连接&#34;&gt;残差连接
&lt;/h3&gt;&lt;p&gt;残差连接就是让每层不要完全重写输入，而是在输入基础上做增量修改：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;输出 = 输入 + 本层加工结果
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样信息可以更顺畅地穿过很多层，训练也更稳定。&lt;/p&gt;
&lt;h3 id=&#34;layernorm&#34;&gt;LayerNorm
&lt;/h3&gt;&lt;p&gt;LayerNorm 用来让每层的数值分布更稳定。&lt;/p&gt;
&lt;p&gt;可以类比成：每一层处理完后，把数据尺度整理一下，避免数值忽大忽小导致训练崩掉。&lt;/p&gt;
&lt;p&gt;这些机制不直接决定模型“懂不懂”，但决定了模型能否被训练得足够深、足够大。&lt;/p&gt;
&lt;h2 id=&#34;训练从海量文本中学习规律&#34;&gt;训练：从海量文本中学习规律
&lt;/h2&gt;&lt;p&gt;预训练阶段的任务很简单：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;给定前文，预测下一个 token。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;训练数据来自大量文本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网页&lt;/li&gt;
&lt;li&gt;书籍&lt;/li&gt;
&lt;li&gt;代码&lt;/li&gt;
&lt;li&gt;论文&lt;/li&gt;
&lt;li&gt;问答&lt;/li&gt;
&lt;li&gt;文档&lt;/li&gt;
&lt;li&gt;论坛&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;模型一开始是随机参数，预测很差。每次预测错了，就根据误差微调参数。&lt;/p&gt;
&lt;p&gt;这个过程重复数万亿 token 后，模型逐渐学会语言和世界知识的统计规律。&lt;/p&gt;
&lt;h3 id=&#34;预训练学到什么&#34;&gt;预训练学到什么
&lt;/h3&gt;&lt;p&gt;预训练让模型学会：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;词和词如何搭配&lt;/li&gt;
&lt;li&gt;句子如何组织&lt;/li&gt;
&lt;li&gt;代码如何书写&lt;/li&gt;
&lt;li&gt;常见事实&lt;/li&gt;
&lt;li&gt;推理模式&lt;/li&gt;
&lt;li&gt;不同领域的表达方式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但预训练模型本质上仍然是“续写器”。&lt;/p&gt;
&lt;p&gt;你问：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;请解释什么是 Redis。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Base Model 可能会继续补成一段网页、问答、代码注释，未必像助手一样回答你。&lt;/p&gt;
&lt;p&gt;这就是为什么还需要指令微调和对齐。&lt;/p&gt;
&lt;h2 id=&#34;指令微调从续写器到助手&#34;&gt;指令微调：从续写器到助手
&lt;/h2&gt;&lt;p&gt;SFT（Supervised Fine-Tuning，监督微调）会用人工整理的指令数据继续训练模型。&lt;/p&gt;
&lt;p&gt;数据长这样：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;instruction&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;解释什么是 Redis&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;response&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Redis 是一种基于内存的键值数据库...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;模型通过这些样本学会：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户提问应该回答&lt;/li&gt;
&lt;li&gt;要遵循指令&lt;/li&gt;
&lt;li&gt;要保持对话格式&lt;/li&gt;
&lt;li&gt;要按要求输出结构&lt;/li&gt;
&lt;li&gt;不要无意义续写&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;经过 SFT 后，模型才更像我们熟悉的聊天助手。&lt;/p&gt;
&lt;h2 id=&#34;对齐让模型更符合人类偏好&#34;&gt;对齐：让模型更符合人类偏好
&lt;/h2&gt;&lt;p&gt;SFT 解决“会不会听指令”，但不完全解决“回答得好不好”。&lt;/p&gt;
&lt;p&gt;同一个问题可以有很多回答：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;太短：Redis 是数据库。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;太长：从网络协议讲到源码实现。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;刚好：解释核心概念、使用场景和特点。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;对齐训练就是让模型更符合人类偏好。&lt;/p&gt;
&lt;p&gt;常见方法包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RLHF：基于人类反馈的强化学习&lt;/li&gt;
&lt;li&gt;DPO：直接偏好优化&lt;/li&gt;
&lt;li&gt;RLAIF：用 AI 反馈辅助偏好数据&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它们的共同目标是让模型更倾向于输出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有帮助&lt;/li&gt;
&lt;li&gt;准确&lt;/li&gt;
&lt;li&gt;安全&lt;/li&gt;
&lt;li&gt;不胡乱承诺&lt;/li&gt;
&lt;li&gt;格式清晰&lt;/li&gt;
&lt;li&gt;符合用户意图&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以把训练流程简化成：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;预训练：学语言和知识
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SFT：学会按指令回答
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;对齐：学会什么回答更好
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;推理模型如何生成回答&#34;&gt;推理：模型如何生成回答
&lt;/h2&gt;&lt;p&gt;训练完成后，模型参数固定。用户输入问题时，进入推理阶段。&lt;/p&gt;
&lt;p&gt;推理流程：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用户输入
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;转成 token
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;模型计算下一个 token 概率
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;采样或选择一个 token
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;加入上下文
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;继续预测
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个循环一直进行，直到模型输出结束符或达到最大长度。&lt;/p&gt;
&lt;h3 id=&#34;temperature&#34;&gt;Temperature
&lt;/h3&gt;&lt;p&gt;Temperature 控制随机性。&lt;/p&gt;
&lt;p&gt;低 temperature：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;更稳定、更保守、更可复现
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;高 temperature：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;更多样、更有创意、也更容易跑偏
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;写代码、做问答通常用较低温度；写故事、头脑风暴可以适当提高。&lt;/p&gt;
&lt;h3 id=&#34;top-k&#34;&gt;Top-K
&lt;/h3&gt;&lt;p&gt;Top-K 表示只从概率最高的 K 个 token 中选择。&lt;/p&gt;
&lt;p&gt;如果 K=5，模型只会在前 5 个候选里采样，低概率 token 会被排除。&lt;/p&gt;
&lt;h3 id=&#34;top-p&#34;&gt;Top-P
&lt;/h3&gt;&lt;p&gt;Top-P 也叫 nucleus sampling。&lt;/p&gt;
&lt;p&gt;它不是固定取前 K 个，而是取累计概率达到 P 的候选集合。&lt;/p&gt;
&lt;p&gt;例如 P=0.9，模型会从累计概率前 90% 的候选里采样。&lt;/p&gt;
&lt;p&gt;Top-P 比 Top-K 更灵活，因为不同位置的候选分布可能差异很大。&lt;/p&gt;
&lt;h2 id=&#34;上下文窗口模型的工作记忆&#34;&gt;上下文窗口：模型的工作记忆
&lt;/h2&gt;&lt;p&gt;模型不会真正“记住”当前对话之外的东西。它每次生成时，只能看到上下文窗口里的内容。&lt;/p&gt;
&lt;p&gt;上下文包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统提示&lt;/li&gt;
&lt;li&gt;用户消息&lt;/li&gt;
&lt;li&gt;历史对话&lt;/li&gt;
&lt;li&gt;工具结果&lt;/li&gt;
&lt;li&gt;RAG 检索文档&lt;/li&gt;
&lt;li&gt;代码片段&lt;/li&gt;
&lt;li&gt;记忆摘要&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果信息不在上下文里，模型就无法直接使用。&lt;/p&gt;
&lt;p&gt;这也是为什么 RAG、记忆系统、上下文压缩很重要。它们本质上都在解决一个问题：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;该把什么信息放进模型当前能看到的窗口？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;上下文窗口变大不代表问题完全解决。信息越多，噪声也越多。真正关键的是上下文质量。&lt;/p&gt;
&lt;h2 id=&#34;参数量数据和算力&#34;&gt;参数量、数据和算力
&lt;/h2&gt;&lt;p&gt;大模型能力提升通常来自三件事：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;更多参数
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;更多高质量数据
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;更多训练算力
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;参数可以理解成模型内部可调的“旋钮”。参数越多，模型能表达的模式越复杂。&lt;/p&gt;
&lt;p&gt;但参数不是越大越无脑好。&lt;/p&gt;
&lt;p&gt;模型效果还取决于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据质量&lt;/li&gt;
&lt;li&gt;训练 token 数&lt;/li&gt;
&lt;li&gt;模型架构&lt;/li&gt;
&lt;li&gt;对齐质量&lt;/li&gt;
&lt;li&gt;推理成本&lt;/li&gt;
&lt;li&gt;部署约束&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个训练得好的小模型，在特定任务上可能比一个泛用大模型更划算。&lt;/p&gt;
&lt;h2 id=&#34;涌现能力规模带来的质变&#34;&gt;涌现能力：规模带来的质变
&lt;/h2&gt;&lt;p&gt;当模型规模、数据量和训练计算达到一定程度后，会出现一些小模型不明显的能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多步推理&lt;/li&gt;
&lt;li&gt;代码生成&lt;/li&gt;
&lt;li&gt;工具调用&lt;/li&gt;
&lt;li&gt;少样本学习&lt;/li&gt;
&lt;li&gt;指令泛化&lt;/li&gt;
&lt;li&gt;跨语言迁移&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类现象常被称为涌现能力。&lt;/p&gt;
&lt;p&gt;但“涌现”不等于魔法。它更像是大量统计规律、表示能力和训练目标叠加后，在某些任务上表现出突然变强的现象。&lt;/p&gt;
&lt;p&gt;理解这一点很重要：大模型很强，但它不是全知系统。&lt;/p&gt;
&lt;h2 id=&#34;为什么会幻觉&#34;&gt;为什么会幻觉
&lt;/h2&gt;&lt;p&gt;幻觉是大模型最典型的问题之一。&lt;/p&gt;
&lt;p&gt;原因很简单：模型的目标是生成“概率上合理的下一个 token”，不是从数据库里查真相。&lt;/p&gt;
&lt;p&gt;当它不知道答案时，也可能生成一个看起来像答案的回答。&lt;/p&gt;
&lt;p&gt;幻觉常见于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;问题超出训练知识&lt;/li&gt;
&lt;li&gt;需要最新信息&lt;/li&gt;
&lt;li&gt;上下文缺少证据&lt;/li&gt;
&lt;li&gt;用户要求编造式任务&lt;/li&gt;
&lt;li&gt;检索结果不相关&lt;/li&gt;
&lt;li&gt;模型被错误前提诱导&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;降低幻觉的方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RAG 引入外部证据&lt;/li&gt;
&lt;li&gt;工具调用查询真实系统&lt;/li&gt;
&lt;li&gt;要求引用来源&lt;/li&gt;
&lt;li&gt;不确定时允许回答不知道&lt;/li&gt;
&lt;li&gt;对高风险场景做人工审核&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;幻觉不能完全消除，只能通过工程手段降低。&lt;/p&gt;
&lt;h2 id=&#34;为什么数学和逻辑会出错&#34;&gt;为什么数学和逻辑会出错
&lt;/h2&gt;&lt;p&gt;LLM 不是传统符号推理引擎。&lt;/p&gt;
&lt;p&gt;它可以学到很多推理模式，但本质上仍然在生成 token。&lt;/p&gt;
&lt;p&gt;所以它可能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;算术中间步骤出错&lt;/li&gt;
&lt;li&gt;忘记约束条件&lt;/li&gt;
&lt;li&gt;被题目措辞误导&lt;/li&gt;
&lt;li&gt;在长推理链中偏离目标&lt;/li&gt;
&lt;li&gt;给出看似合理但错误的解释&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;解决方法通常不是“让模型更努力想”，而是结合工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;计算器&lt;/li&gt;
&lt;li&gt;代码执行器&lt;/li&gt;
&lt;li&gt;定理证明器&lt;/li&gt;
&lt;li&gt;SQL 查询&lt;/li&gt;
&lt;li&gt;测试用例&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;模型负责理解问题和组织流程，工具负责精确计算和验证。&lt;/p&gt;
&lt;h2 id=&#34;llm-与-agent-的关系&#34;&gt;LLM 与 Agent 的关系
&lt;/h2&gt;&lt;p&gt;LLM 是大脑，但 Agent 是系统。&lt;/p&gt;
&lt;p&gt;一个 Agent 通常包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LLM 推理&lt;/li&gt;
&lt;li&gt;工具调用&lt;/li&gt;
&lt;li&gt;记忆系统&lt;/li&gt;
&lt;li&gt;任务规划&lt;/li&gt;
&lt;li&gt;权限控制&lt;/li&gt;
&lt;li&gt;错误恢复&lt;/li&gt;
&lt;li&gt;评估与日志&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LLM 本身只负责生成下一步内容或动作意图。Agent 工程负责把它放进可执行、可观察、可控制的系统里。&lt;/p&gt;
&lt;p&gt;这就是为什么同一个模型，在不同产品里的表现差异很大。真正决定可用性的，不只有模型，还有上下文、工具、流程和评估。&lt;/p&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;大语言模型的核心可以压缩成一句话：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;在大量文本上训练一个 Transformer，让它根据上下文预测下一个 token。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;但这句话背后包含一整套机制：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tokenization：把文字切成模型能处理的单位
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Embedding：把 token 变成向量
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Attention：让 token 从上下文中取信息
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Feed Forward：加工和存储模式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Position Encoding：让模型知道顺序
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pre-training：学习语言和世界规律
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SFT：学会听指令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Alignment：学会更符合人类偏好
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Decoding：一个 token 一个 token 生成答案
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Context：决定模型当前能看到什么
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;理解 LLM，不需要一开始就陷进公式。先抓住主线：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;它如何读文本 → 如何理解上下文 → 如何训练 → 如何生成 → 为什么会出错
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这条线理清了，再去看 Transformer 细节、RAG、Agent、Tool Calling、模型部署，就会顺很多。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>RAG架构详解：从大模型局限到检索增强生成</title>
        <link>https://liusir521.github.io/p/rag%E6%9E%B6%E6%9E%84%E8%AF%A6%E8%A7%A3%E4%BB%8E%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%B1%80%E9%99%90%E5%88%B0%E6%A3%80%E7%B4%A2%E5%A2%9E%E5%BC%BA%E7%94%9F%E6%88%90/</link>
        <pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate>
        
        <guid>https://liusir521.github.io/p/rag%E6%9E%B6%E6%9E%84%E8%AF%A6%E8%A7%A3%E4%BB%8E%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%B1%80%E9%99%90%E5%88%B0%E6%A3%80%E7%B4%A2%E5%A2%9E%E5%BC%BA%E7%94%9F%E6%88%90/</guid>
        <description>&lt;img src="https://liusir521.github.io/p/rag%E6%9E%B6%E6%9E%84%E8%AF%A6%E8%A7%A3%E4%BB%8E%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%B1%80%E9%99%90%E5%88%B0%E6%A3%80%E7%B4%A2%E5%A2%9E%E5%BC%BA%E7%94%9F%E6%88%90/rag.png" alt="Featured image of post RAG架构详解：从大模型局限到检索增强生成" /&gt;&lt;h2 id=&#34;大模型的四大局限性&#34;&gt;大模型的四大局限性
&lt;/h2&gt;&lt;p&gt;以 GPT-4、Claude 为代表的大语言模型（LLM）能力惊艳，但在实际落地中存在几个&amp;quot;先天不足&amp;quot;：&lt;/p&gt;
&lt;h3 id=&#34;1-知识截止日期&#34;&gt;1. 知识截止日期
&lt;/h3&gt;&lt;p&gt;大模型的训练数据有明确的时间窗口。比如 GPT-4 的训练数据截止到 2023 年 12 月，在此之后发生的事情一概不知。你问它&amp;quot;2024 年奥运会金牌榜&amp;quot;，它只能编造或拒绝回答。&lt;/p&gt;
&lt;h3 id=&#34;2-幻觉问题&#34;&gt;2. 幻觉问题
&lt;/h3&gt;&lt;p&gt;大模型本质是概率模型，它不&amp;quot;知道&amp;quot;答案，而是预测最可能的下一个 token。当训练数据中没有足够的相关信息时，模型会&amp;quot;自信地编造&amp;quot;——这就是幻觉（Hallucination）。在法律、医疗等场景下，幻觉可能造成严重后果。&lt;/p&gt;
&lt;h3 id=&#34;3-私有知识缺失&#34;&gt;3. 私有知识缺失
&lt;/h3&gt;&lt;p&gt;企业内部的业务文档、代码库、设计规范等私有数据，从未出现在公开训练语料中。通用大模型对此一无所知，无法直接用于企业内部场景。&lt;/p&gt;
&lt;h3 id=&#34;4-上下文窗口限制&#34;&gt;4. 上下文窗口限制
&lt;/h3&gt;&lt;p&gt;即使将私有文档塞进 prompt，大模型的上下文窗口也是有限的。GPT-4 Turbo 支持 128K token，看似很大，但当你面对几千页的企业文档时，仍然杯水车薪。而且长上下文的推理成本、延迟都会线性增长。&lt;/p&gt;
&lt;p&gt;这四大痛点催生了一个关键范式：&lt;strong&gt;RAG（Retrieval-Augmented Generation，检索增强生成）&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;什么是-rag&#34;&gt;什么是 RAG
&lt;/h2&gt;&lt;p&gt;RAG 的核心思想很简单：&lt;strong&gt;先检索，再生成&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;在用户提出问题后，系统先去外部知识库中检索相关文档片段，然后将检索到的内容连同用户问题一起喂给大模型，让模型基于这些&amp;quot;参考资料&amp;quot;来生成答案。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用户提问 → 检索相关文档 → 将文档+问题拼接成 prompt → LLM 生成答案
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这就像考试时允许翻书——大模型不再需要记住所有知识，只需要理解问题并从参考资料中提炼答案即可。&lt;/p&gt;
&lt;p&gt;RAG 论文&amp;quot;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks&amp;quot;由 Facebook AI Research（现 Meta AI）于 2020 年提出，论文将 RAG 定义为&amp;quot;将预训练的参数化记忆（大模型）与非参数化记忆（外部知识库）相结合的通用框架&amp;quot;。&lt;/p&gt;
&lt;h2 id=&#34;rag-架构详解&#34;&gt;RAG 架构详解
&lt;/h2&gt;&lt;p&gt;一个完整的 RAG 系统通常包含三个核心阶段：&lt;/p&gt;
&lt;h3 id=&#34;第一阶段索引indexing&#34;&gt;第一阶段：索引（Indexing）
&lt;/h3&gt;&lt;p&gt;将原始文档处理成可供高效检索的形式。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;原始文档 → 文本提取 → 分块（Chunking） → 向量化（Embedding） → 存入向量数据库
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;文档加载&lt;/strong&gt;：支持 PDF、Word、网页、Markdown、数据库等多种数据源。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;文本分块（Chunking）&lt;/strong&gt;：将长文档切分成适当大小的文本片段。分块策略直接影响检索效果：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;策略&lt;/th&gt;
          &lt;th&gt;做法&lt;/th&gt;
          &lt;th&gt;适用场景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;固定大小&lt;/td&gt;
          &lt;td&gt;按 token 数一刀切&lt;/td&gt;
          &lt;td&gt;通用场景&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;语义分割&lt;/td&gt;
          &lt;td&gt;按段落/章节自然边界&lt;/td&gt;
          &lt;td&gt;结构化文档&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;滑动窗口&lt;/td&gt;
          &lt;td&gt;重叠切分，保留上下文&lt;/td&gt;
          &lt;td&gt;对上下文敏感的场景&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;层级分块&lt;/td&gt;
          &lt;td&gt;父子文档层级索引&lt;/td&gt;
          &lt;td&gt;需要多粒度检索&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;分块大小是核心权衡：太小会丢失上下文，太大会引入噪声。通常 512~1024 token 是一个经验范围。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;向量化（Embedding）&lt;/strong&gt;：用嵌入模型将文本片段转成高维向量。语义相近的文本，向量距离也相近。&lt;/p&gt;
&lt;p&gt;常用嵌入模型：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;模型&lt;/th&gt;
          &lt;th&gt;维度&lt;/th&gt;
          &lt;th&gt;特点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;OpenAI text-embedding-3-large&lt;/td&gt;
          &lt;td&gt;3072&lt;/td&gt;
          &lt;td&gt;通用性强，付费&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;BGE-M3 (BAAI)&lt;/td&gt;
          &lt;td&gt;1024&lt;/td&gt;
          &lt;td&gt;多语言，开源&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Cohere Embed v3&lt;/td&gt;
          &lt;td&gt;1024&lt;/td&gt;
          &lt;td&gt;企业级，付费&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;jina-embeddings-v3&lt;/td&gt;
          &lt;td&gt;1024&lt;/td&gt;
          &lt;td&gt;长文本支持&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;向量数据库&lt;/strong&gt;：存储和检索向量化后的文档。主流选择：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chroma&lt;/strong&gt;：轻量开源，适合原型开发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Milvus&lt;/strong&gt;：高性能分布式，适合生产环境&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pinecone&lt;/strong&gt;：全托管云服务，零运维&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Weaviate&lt;/strong&gt;：自带向量化和混合搜索&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elasticsearch&lt;/strong&gt;：传统搜索引擎 + 向量检索&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;第二阶段检索retrieval&#34;&gt;第二阶段：检索（Retrieval）
&lt;/h3&gt;&lt;p&gt;当用户提问时，将问题向量化并在知识库中检索最相关的 k 个文档片段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;检索流程&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;用户问题 → 向量化（Query Embedding） → 向量相似度搜索 → Top-K 文档片段
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;相似度算法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;余弦相似度&lt;/strong&gt;：最常用，计算向量夹角&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;欧氏距离&lt;/strong&gt;：适合低维向量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内积&lt;/strong&gt;：适合归一化向量&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;检索策略优化&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;基础的向量检索在实际应用中常常不够，需要多种增强手段：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;混合检索（Hybrid Search）&lt;/strong&gt;：向量检索 + 关键词检索（BM25）结合，兼顾语义和精确匹配&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重排序（Re-ranking）&lt;/strong&gt;：初检后用小模型对结果二次排序，提升 Top-K 精准度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;查询改写（Query Rewriting）&lt;/strong&gt;：用 LLM 将用户问题重写为更利于检索的形式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多轮检索（Multi-hop）&lt;/strong&gt;：复杂问题拆分多步，逐步检索和推理&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;第三阶段生成generation&#34;&gt;第三阶段：生成（Generation）
&lt;/h3&gt;&lt;p&gt;将检索到的文档片段与用户问题组装成 prompt，交由 LLM 生成最终答案。&lt;/p&gt;
&lt;p&gt;一个典型的 RAG prompt 模板：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基于以下参考资料回答问题。如果参考资料中没有相关信息，请如实说明。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;参考资料：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{检索到的文档内容}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;问题：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{用户问题}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;回答：
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;关键点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明确指示&amp;quot;无法回答时如实说明&amp;quot;，降低幻觉&lt;/li&gt;
&lt;li&gt;引用来源，让答案可追溯&lt;/li&gt;
&lt;li&gt;控制 prompt 长度，避免超出模型上下文窗口&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rag-的进阶架构&#34;&gt;RAG 的进阶架构
&lt;/h2&gt;&lt;p&gt;基础 RAG 能解决简单问答，但面对复杂场景时力不从心。业内发展出几种进阶架构：&lt;/p&gt;
&lt;h3 id=&#34;modular-rag&#34;&gt;Modular RAG
&lt;/h3&gt;&lt;p&gt;将 RAG 的索引、检索、生成三阶段进一步拆分为可替换的模块。不同场景使用不同的检索器、生成器组合，灵活度高。&lt;/p&gt;
&lt;h3 id=&#34;graph-rag&#34;&gt;Graph RAG
&lt;/h3&gt;&lt;p&gt;用知识图谱替代向量库作为外部知识。适合实体关系复杂、需要多跳推理的场景。微软开源的 GraphRAG 是该方向的代表实现。&lt;/p&gt;
&lt;h3 id=&#34;agentic-rag&#34;&gt;Agentic RAG
&lt;/h3&gt;&lt;p&gt;将 RAG 与 AI Agent 结合。Agent 自主决定何时检索、检索什么、是否需要重新检索、是否需要拆分子问题。Agentic RAG 是 RAG 从&amp;quot;被动回答&amp;quot;到&amp;quot;主动推理&amp;quot;的进化方向。&lt;/p&gt;
&lt;h3 id=&#34;self-rag&#34;&gt;Self-RAG
&lt;/h3&gt;&lt;p&gt;让 LLM 在生成过程中自我评估是否需要检索，以及检索结果是否相关。通过特殊的&amp;quot;反思 token&amp;quot;训练模型具备检索判断能力。&lt;/p&gt;
&lt;h2 id=&#34;rag-的应用场景&#34;&gt;RAG 的应用场景
&lt;/h2&gt;&lt;h3 id=&#34;1-企业知识库问答&#34;&gt;1. 企业知识库问答
&lt;/h3&gt;&lt;p&gt;最典型的 RAG 落地场景。将企业内部的规章制度、技术文档、产品手册、会议纪要等导入知识库，员工用自然语言提问即可获得答案。&lt;/p&gt;
&lt;p&gt;优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新员工入职可快速上手&lt;/li&gt;
&lt;li&gt;打破部门信息壁垒&lt;/li&gt;
&lt;li&gt;降低老员工答疑成本&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-智能客服&#34;&gt;2. 智能客服
&lt;/h3&gt;&lt;p&gt;将产品文档、FAQ、历史工单导入 RAG 系统，替代传统的关键词匹配客服。能理解用户复杂问题，给出针对性解答。&lt;/p&gt;
&lt;h3 id=&#34;3-代码助手&#34;&gt;3. 代码助手
&lt;/h3&gt;&lt;p&gt;对代码库建立索引，开发者直接用自然语言询问：&amp;ldquo;这个项目的鉴权逻辑在哪？&amp;ldquo;&amp;ldquo;如何添加一个新的 API 接口？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;与直接依赖 LLM 训练数据中的代码知识不同，RAG 让 AI 真正&amp;quot;理解&amp;quot;当前项目的代码。这个思路也是当下 AI 编程工具（如 Claude Code、Cursor、Copilot 的 codebase 检索）的核心能力。&lt;/p&gt;
&lt;h3 id=&#34;4-法律医疗辅助&#34;&gt;4. 法律/医疗辅助
&lt;/h3&gt;&lt;p&gt;导入法规条文和判例，辅助律师快速查找相关法律依据。导入医学文献和临床指南，辅助医生获取循证建议。这两个领域对准确性要求极高，必须有来源引用来降低幻觉风险。&lt;/p&gt;
&lt;h3 id=&#34;5-学术研究&#34;&gt;5. 学术研究
&lt;/h3&gt;&lt;p&gt;研究人员将论文 PDF 导入知识库，用 RAG 快速梳理文献、发现跨领域关联、生成文献综述初稿。&lt;/p&gt;
&lt;h3 id=&#34;6-多模态-rag&#34;&gt;6. 多模态 RAG
&lt;/h3&gt;&lt;p&gt;不仅检索文本，还能检索图片、表格、音视频。比如上传一张设备故障的照片，系统检索维修手册中的相关章节并给出修理建议。&lt;/p&gt;
&lt;h2 id=&#34;rag-的挑战&#34;&gt;RAG 的挑战
&lt;/h2&gt;&lt;p&gt;RAG 并非银弹，实际落地面临不少挑战：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;挑战&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;文档解析&lt;/td&gt;
          &lt;td&gt;PDF 表格、扫描件、复杂排版的解析效果参差不齐&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;分块策略&lt;/td&gt;
          &lt;td&gt;一刀切容易割裂语义，自动化语义分块不够成熟&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;检索质量&lt;/td&gt;
          &lt;td&gt;高维向量空间的&amp;quot;语义漂移&amp;quot;导致检索结果不相关&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;生成质量&lt;/td&gt;
          &lt;td&gt;检索到不相关文档可能误导 LLM&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;评估困难&lt;/td&gt;
          &lt;td&gt;缺乏统一的 RAG 系统评估标准&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;延迟&lt;/td&gt;
          &lt;td&gt;嵌入+检索+LLM 生成，端到端延迟可能难以接受&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;数据更新&lt;/td&gt;
          &lt;td&gt;知识库如何增量更新，无需全量重建索引&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;rag-技术栈一览&#34;&gt;RAG 技术栈一览
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;┌─────────────────────────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│        LLM 框架             │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│  LangChain / LlamaIndex     │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│        向量数据库            │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│  Milvus / Pinecone / Chroma │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│        嵌入模型              │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│  OpenAI / BGE / Cohere      │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│        文档处理              │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│  Unstructured / PyPDF       │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─────────────────────────────┤
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│        编排部署              │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│  FastAPI / Ray / Docker     │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─────────────────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;RAG 解决了大模型在落地中的三个核心矛盾：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;知识的时效性与静态训练的矛盾&lt;/strong&gt;——RAG 随时更新知识库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识的广度与私有化需求的矛盾&lt;/strong&gt;——RAG 接入企业私有数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识的准确性与概率输出的矛盾&lt;/strong&gt;——RAG 用参考资料约束幻觉&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;随着 Agentic RAG、Graph RAG 等进阶架构的成熟，RAG 正在从&amp;quot;带检索的问答系统&amp;quot;进化为&amp;quot;具备推理能力的企业知识中枢&amp;rdquo;。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
