agent第一周学习

1. Token(最小处理单位)

是什么?

大模型不能直接处理文字。

比如:

复制代码
复制代码
我喜欢苹果

需要切成:

复制代码
复制代码
我
喜欢
苹果

或者:

复制代码
复制代码
我
喜
欢
苹果

这些片段叫:

Token


注意

Token ≠ 字

Token 是模型认为合适的信息单位。

例如英文:

复制代码
复制代码
playing

可能拆:

复制代码
复制代码
play
ing

因为:

复制代码
复制代码
play + ing

可以组合更多单词。


为什么需要 Token?

因为:

模型处理的是数字。

流程:

复制代码
复制代码
文字

↓

Token

↓

Token ID

↓

数字

2. Tokenizer(分词器)

是什么?

负责:

文字 → Token

例如:

输入:

复制代码
复制代码
I love AI

Tokenizer:

复制代码
复制代码
I
love
AI

然后:

映射:

复制代码
复制代码
I → 12
love → 532
AI → 891

得到:

Token ID。


为什么 Token ID?

因为模型不能理解:

复制代码
复制代码
love

它只能计算:

复制代码
复制代码
532

但是:

注意:

Token ID 本身没有语义。

比如:

复制代码
复制代码
苹果 = 1001

香蕉 = 1002

1001和1002没有任何意义。

只是编号。

真正有意义的是后面的:

Embedding。


3. Embedding(词向量)

是什么?

把:

Token ID

转换成:

向量。

例如:

复制代码
复制代码
苹果

↓

[0.23,0.51,0.72,...]

这个向量叫:

Embedding。


为什么向量有意义?

因为训练过程中:

语义相近的词:

距离更近。

例如:

复制代码
复制代码
苹果

香蕉

橙子

可能靠近:

复制代码
复制代码
水果区域

而:

复制代码
复制代码
汽车

发动机

在另一个区域。


核心:

Token ID:

只是门牌号。

Embedding:

才是房间里的东西。


4. Position Embedding(位置编码)

为什么需要?

因为 Transformer 不像人:

天然知道顺序。

例如:

复制代码
复制代码
我喜欢你

和:

复制代码
复制代码
你喜欢我

Token一样。

但是意思不同。


所以加入:

位置信息。

例如:

复制代码
复制代码
我
+
位置1

喜欢
+
位置2

你
+
位置3

最终输入:

复制代码
复制代码
Token Embedding

+

Position Embedding

↓

Transformer

5. Attention(注意力)

解决什么问题?

一句话:

当前 Token 应该关注哪些 Token?

例如:

复制代码
复制代码
小明把篮球放下,因为它太大了

"它"

需要知道:

是:

复制代码
复制代码
篮球

不是:

复制代码
复制代码
小明

Attention:

计算:

复制代码
复制代码
哪个词和我关系最大

6. Self Attention(自注意力)

为什么叫 Self?

因为:

Q、K、V 都来自同一句话。

例如:

复制代码
复制代码
猫 吃 鱼

每个 Token:

都会生成:

复制代码
复制代码
Q

K

V

然后:

自己的 Q:

去看:

所有人的 K。

流程:

复制代码
复制代码
Q

↓

和所有K比较

↓

得到关注权重

↓

加权V

↓

更新自己

7. Q、K、V(Attention核心)

Q Query

表示:

我想找什么?

例如:

"吃"

想找:

复制代码
复制代码
谁吃?
吃什么?

K Key

表示:

我有什么标签?

例如:

猫:

复制代码
复制代码
动物
主体

鱼:

复制代码
复制代码
食物
对象

V Value

表示:

我真正提供的信息。


记忆:

复制代码
复制代码
Q 找 K

K 决定匹配

V 提供内容

8. Multi Head Attention(多头注意力)

为什么需要?

一个 Attention:

只能学习一种关系。

但是一句话:

复制代码
复制代码
小明昨天在北京买车

"买":

同时需要知道:

复制代码
复制代码
谁买?
小明

什么时候?
昨天

哪里?
北京

买什么?
车

所以:

多个 Head:

分别关注不同关系。

例如:

复制代码
复制代码
Head1:

人物关系


Head2:

时间关系


Head3:

地点关系


Head4:

对象关系

结构:

复制代码
复制代码
输入

↓

多个Attention并行

↓

Concat拼接

↓

Linear融合

↓

输出

9. Feed Forward(FFN)

Attention 做什么?

负责:

信息交流

例如:

复制代码
复制代码
猫

知道

鱼的信息

但是:

还需要:

加工信息。

所以:

FFN:

负责:

对每个 Token 自己进行计算。

结构:

复制代码
复制代码
Linear

↓

激活函数

↓

Linear

典型:

复制代码
复制代码
768

↓

3072

↓

768

一句话:

Attention:

"和别人交流"

FFN:

"自己思考加工"


10. Residual(残差连接)

为什么需要?

防止信息丢失。

没有:

复制代码
复制代码
输入

↓

Attention

↓

输出

可能:

原始信息丢掉。

所以:

加回来:

复制代码
复制代码
输出

=

Attention(x)

+

x

作用:

保留原始信息。

让深层网络训练更容易。


11. LayerNorm(层归一化)

为什么需要?

Transformer很多层。

如果数据越来越乱:

例如:

复制代码
复制代码
0.1

100

-50

不好训练。

所以:

归一化:

让数据稳定。

作用:

不是改变语义。

只是调整数值分布。


12. Transformer(整体)

现在把所有东西串起来:

复制代码
复制代码
文本

↓

Tokenizer

↓

Token ID

↓

Embedding

↓

Position Embedding

↓

Transformer Block

        |
        |
        ↓

Multi Head Attention

        ↓

Residual

        ↓

LayerNorm

        ↓

FFN

        ↓

Residual

        ↓

LayerNorm


↓

输出预测

最重要的一句话总结

如果面试问:

Transformer 是怎么理解一句话的?

你可以这样回答:

Transformer首先通过Tokenizer将文本转换为Token,再通过Embedding将Token映射成向量,并加入位置编码。进入Transformer Block后,通过Multi-Head Self-Attention让每个Token动态关注上下文信息,再通过Feed Forward进行特征加工,Residual和LayerNorm保证深层网络稳定训练。经过多层堆叠后,模型获得上下文语义表示,最终预测输出。

相关推荐
小心亦新20 小时前
STM32学习16--定时器输出比较2直流电机
stm32·嵌入式硬件·学习
themingyi20 小时前
Abaqus PythonReaderPro
学习
zengorange20 小时前
Dart语言
学习·flutter
一只小菜鸡..21 小时前
Stanford CS144 学习笔记 (七):跨越虚实的边界——物理层、链路层与无线网络
网络·笔记·学习
YM52e1 天前
鸿蒙Flutter Stack堆叠布局:实现多层级界面
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
HYDtomako1 天前
Claude Code学习
学习·ai·agent·claude code
AOwhisky1 天前
Python 学习笔记(第十一期)——运维自动化(上·后篇):进程级监控与子进程管理——psutil进阶
运维·开发语言·python·学习·云原生·运维开发
凉、介1 天前
Virtio(三):Virtqueue 建立与 Buffer 提交
笔记·学习·嵌入式·arm·虚拟化·virtio
大模型丫丫1 天前
Agent开发的难点是什么呢?
大数据·人工智能·学习