<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>LLM on 我的技术博客</title><link>https://buvidk1234.github.io/tags/llm/</link><description>Recent content in LLM on 我的技术博客</description><generator>Hugo -- 0.153.0</generator><language>zh-cn</language><lastBuildDate>Wed, 11 Mar 2026 03:41:01 +0800</lastBuildDate><atom:link href="https://buvidk1234.github.io/tags/llm/index.xml" rel="self" type="application/rss+xml"/><item><title>用基础数学看懂LLM的本质</title><link>https://buvidk1234.github.io/posts/foundational-mathematics-explanation-for-llms/</link><pubDate>Wed, 11 Mar 2026 03:41:01 +0800</pubDate><guid>https://buvidk1234.github.io/posts/foundational-mathematics-explanation-for-llms/</guid><description>&lt;blockquote&gt;
&lt;p&gt;函数的表达能力，决定了计算机能在多大程度上逼近对自然语言的理解。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本文尝试用直觉性的方式，从&amp;quot;计算机如何理解语言&amp;quot;这个根本问题出发，逐步推导出大语言模型背后的核心数学原理。&lt;/p&gt;
&lt;p&gt;假设词典中有若干单词，单词之间存在各种语义关系——近义、反义、上下位等。如何让计算机捕捉这些关系？&lt;/p&gt;
&lt;h2 id="如何让计算机理解单词"&gt;如何让计算机理解单词？&lt;/h2&gt;
&lt;p&gt;可以借助一种数学工具——&lt;strong&gt;向量&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;两个向量的夹角余弦可以衡量它们的相似度：&lt;/p&gt;
$$\cos(\theta) = \frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\| \|\mathbf{b}\|}$$&lt;p&gt;$\cos(\theta)$ 越接近 1，两个向量越相似；越接近 -1，越相反。&lt;/p&gt;
&lt;p&gt;因此，可以用向量来表示单词，向量之间的余弦相似度就反映了两个词之间的语义关系。这种表示方式称为 &lt;strong&gt;Token Embedding&lt;/strong&gt;：每个单词对应一个 d 维向量 $\mathbf{x} = (x_1, x_2, \dots, x_d)$。&lt;/p&gt;
&lt;h2 id="如何让计算机理解句子"&gt;如何让计算机理解句子？&lt;/h2&gt;
&lt;p&gt;同一个词在不同句子中含义不同。Token Embedding 只能表示&lt;strong&gt;孤立&lt;/strong&gt;单词的语义，还需要一种方式来编码单词在上下文中的含义。&lt;/p&gt;
&lt;p&gt;为此引入&lt;strong&gt;位置向量（Positional Embedding）&lt;/strong&gt;：假设句子由 m 个单词组成，为每个位置分配一个 d 维向量 $\mathbf{p}_j$。将两者相加得到最终表示：&lt;/p&gt;
$$\mathbf{x}_j = \text{token\_embedding}_j + \text{pos\_embedding}_j$$&lt;p&gt;直觉上理解：向量加法会让结果同时保留两个加数的特征。就像把&amp;quot;红色&amp;quot;和&amp;quot;大&amp;quot;两个标签贴在同一个物体上，加法后的向量 $\mathbf{x}_j$ 就同时携带了&amp;quot;这个词是什么&amp;quot;和&amp;quot;它在第几个位置&amp;quot;两层信息。&lt;/p&gt;
&lt;p&gt;这样，一个由 m 个单词组成的句子就可以用 m 个向量 $(\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_m)$ 来表示，计算机便能通过向量运算&amp;quot;理解&amp;quot;句子的含义。&lt;/p&gt;
&lt;h2 id="如何训练模型生成文本"&gt;如何训练模型生成文本？&lt;/h2&gt;
&lt;p&gt;GPT 类 LLM 的核心目标是&lt;strong&gt;预测下一个词&lt;/strong&gt;——给定前面的所有词，预测最可能的下一个词：&lt;/p&gt;
$$P(x_{t+1} \mid x_1, x_2, \dots, x_t)$$&lt;p&gt;例如输入&amp;quot;今天天气真&amp;quot;，模型应输出&amp;quot;好&amp;quot;的概率最高。生成长文本时，只需不断把预测出的词拼接到输入末尾，重复这个过程即可。&lt;/p&gt;
&lt;p&gt;完整的流程是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将输入文本通过 Embedding 转换为向量序列&lt;/li&gt;
&lt;li&gt;向量序列经过模型的函数映射，得到输出向量&lt;/li&gt;
&lt;li&gt;输出向量与词表中所有词的向量计算相似度，通过 softmax 得到每个词的概率分布&lt;/li&gt;
&lt;li&gt;从概率分布中选出下一个词&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;其中 Embedding 映射表（词 → 向量）也是函数的一部分，无法手工指定，需要和整个模型一起学习。&lt;/p&gt;</description></item><item><title>Agent</title><link>https://buvidk1234.github.io/posts/agent/</link><pubDate>Mon, 09 Mar 2026 21:18:26 +0800</pubDate><guid>https://buvidk1234.github.io/posts/agent/</guid><description>系统梳理 LLM Agent 的经典架构（Planning、Memory、Tools）及演进方向（Multi-Agent、MCP、A2A、Skills）。</description></item></channel></rss>