agent学习
这篇文章用来记录所学到的关于agent、大模型等关于AI的知识
学习资料:Lordog/dive-into-llms: 《动手学大模型Dive into LLMs》系列编程实践教程
大模型是如何理解自然语言的
将自然语言转换为高维向量做数据相似匹配
| 文本 | 向量(简化版) | 含义 |
|---|---|---|
猫喜欢吃鱼 |
(0.9, 0.1) |
靠近 “宠物 / 动物” 方向 |
猫咪爱吃鱼 |
(0.88, 0.12) |
和上一句向量几乎重合 → 关联度极高 |
汽车需要加油 |
(0.1, 0.9) |
靠近 “交通工具” 方向,和前两句距离很远 → 关联度极低 |
概念引入
LLM(大语言模型):一个会说话会生成文本的大脑,例如deepseek,chatgpt这样的模型,它能够理解自然语言,生成连贯的文本,基于上下文做推理等
向量(一个高维数组):
| 维度 | 数学里的向量 | Embedding 里的向量 |
|---|---|---|
| 形式 | (x, y) 或 (x, y, z) 等低维数组 |
比如长度为 1536、768 的高维数组,例如 [0.12, -0.34, 0.56, ..., 0.78] |
| 核心作用 | 表示空间中的方向和大小 | 表示文本的 “语义含义”,比如 “猫” 和 “猫咪” 的向量距离很近,“猫” 和 “汽车” 的向量距离很远 |
| 距离计算 | 用欧氏距离、余弦相似度等 | 同样用余弦相似度 / 欧氏距离,来判断文本之间的语义相似度 |
原理解析
第一步:文本拆解
当我们发送一段文字,大语言模型会先把文字拆分成一个个词元,也就是我们常提到的token
比如:
猫喜欢吃鱼→[猫, 喜欢, 吃, 鱼]
每个token会被映射成一个整数ID也就是给它第一个编号,再通过词嵌入矩阵,转换成一个初始向量,这个相当于是在给每个字放到一个超级大的字典里,这个字典每个字有对应的索引,让后续能够根据索引选择具体的字
一句话概括为 “词的身份编号”
第二步:加上位置信息
给刚才生成的初始向量加上位置编码
像猫吃鱼,和鱼吃猫是完全不同的两句话,我们需要把猫和鱼排序
那为什么不能用一开始的ID来直接排序呢?
是因为Transformer 的核心机制 —— 自注意力,本身是 “无序” 的。
自注意力会计算句子中所有词两两之间的关系,它不依赖顺序来判断谁在前谁在后。如果没有位置信息,猫吃鱼和鱼吃猫在模型眼里,就只是三个向量的集合,它无法区分这两种完全不同的语序。
而位置编码是一组和位置强相关的向量
它的核心作用是:
- 给每个词向量打上位置标记,让模型能够区分,同一个词出现在不同位置的情况
- 保留句子的语序信息,让模型能理解”猫吃鱼”和”鱼吃猫”的语义差异
- 它是可学习的(或者固定的三角函数),能让模型学到位置和语义的关联
它直接和生成的初始向量相加,成为”有语序的向量”
- 举个极小例子

第三步:Transformer 编码器层层加工
这里我目前还只了解了大概没有深入
这是 LLM 最关键的部分,通过多层 Transformer 编码器,对每个 Token 的向量进行迭代更新,核心有两个机制:
(1)自注意力机制(Self-Attention)
让每个 Token 都能 “关注” 到句子里其他 Token 的信息,更新自己的向量:
- 比如 “我的猫喜欢吃鱼,它每天都要吃一只” 里的 “它”,会通过注意力,关联到前面的 “猫”,向量里就会带上 “猫” 的语义信息;
- 再比如 “银行” 这个词,在 “去银行存钱” 和 “在河边银行散步” 里,会通过上下文的注意力,生成不同的向量。
(2)前馈神经网络(Feed-Forward Network)
对每个 Token 的向量做非线性变换,进一步提炼语义特征,让相似的词向量更接近,不同的词向量更远。
举个完整的例子,把流程串起来
以句子 我想吃苹果 为例:
分词:
[我, 想, 吃, 苹果]→ 对应 ID[123, 456, 789, 1011]初始词嵌入:每个 ID 从词嵌入矩阵里取出初始向量:
我→[0.2, -0.1, 0.5, ...]想→[0.3, 0.2, -0.1, ...]吃→[0.1, 0.4, 0.3, ...]苹果→[0.8, -0.2, 0.6, ...]
加位置编码:给每个向量加上位置信息,比如 “我” 是第 1 个词,加上位置向量
[0.1, 0.05, 0.02, ...]自注意力加工:
吃会关注到我和苹果,向量更新为包含 “谁吃、吃什么” 的信息;苹果会关注到吃,向量里带上 “食物” 的语境,和 “苹果手机” 的向量拉开距离。
池化输出:把 4 个 Token 的向量取平均,得到最终的句子向量:[0.35, 0.08, 0.28, …, -0.12]
(长度通常是 768/1024/1536 维)
RAG
一句话总结:是一种大语言模型 (LLM) 落地架构,核心思路:不只用模型自身训练知识,先从外部私有知识库检索相关内容,再把「用户问题 + 检索到的上下文」一起交给大模型生成答案。
RAG 全称 Retrieval-Augmented Generation(检索增强生成),是一种进阶提示工程技术,用来解决大模型的两大痛点:
- 知识过时:模型训练完后,无法获取新数据;
- 幻觉问题:模型会编造不存在的信息。

