前言
你有没有想过——
当你说“今天天气真好”,
AI 读到的,不是“天”“气”“真”“好”这四个字,
而是一串数字:
[1243, 892, 501, 733]
它看不见文字,听不到声音,
它只认识数字。
那问题来了:
人类的语言,是怎么变成这些数字的?
这不是魔法,也不是玄学。
这是大语言模型(LLM)最基础、也最精妙的第一步:
文本编码(Tokenization)。
今天,我们就来彻底拆解:
LLM 是如何把“文字”,变成“数字”,
并让它们在神经网络里“跑起来”的。

🌟 第一步:文字 ≠ 数字,但机器只认数字
计算机的底层,只有0和1。
哪怕你发一条微信、写一篇论文,
最终都会被转成二进制——
但LLM的输入,不是“二进制”,而是整数序列。
为什么?
因为直接把“天”“气”映射成数字(比如“天”=1,“气”=2)
会带来灾难性问题:
| 文字 | 数字 | 问题 |
|---|---|---|
| 天 | 1 | 与“地”=2,但“天地”≠“天”+“地” |
| 地 | 2 | “天气”=1+2=3,但“三”=3 → 语义错乱 |
| 三 | 3 | 模型会误以为“天气”=“三” |
所以,LLM不能用“字典映射”。
它需要一种既能保留语义,又能处理无限词汇的编码方式。
这就是——分词(Tokenization)。
🧩 第二步:分词的智慧 —— BPE:把词“切碎”再重组
LLM 用的不是“一个字一个编号”,也不是“一个词一个编号”,
而是Byte-Pair Encoding(BPE)——一种“聪明的切碎术”。
✅ 举个例子:
假设我们有以下语料:
"low""lowest""newer""wider""wide"
BPE 的工作流程:
- 初始化:把每个词拆成字符,统计字符对频次
- “low” → l, o, w,
- “lowest” → l, o, w, e, s, t,
- ( 表示词尾)
- 找最常出现的字符对 → “o” + “w” 出现2次
→ 合并成新符号:ow - 更新词表:
- “low” → l, ow,
- “lowest” → l, ow, e, s, t,
- 继续找:下一轮,“e” + “s” 出现1次,合并为
es
→ “lowest” → l, ow, es, t, - 重复直到达到目标词表大小(比如50,000个Token)
最终,你的词表可能长这样:
| Token | 含义 |
|---|---|
| l | 字母 l |
| ow | 字母组合 “ow” |
| es | 字母组合 “es” |
| t | 字母 t |
| 词尾 | |
| new | 新词 |
| er | 后缀 “er” |
| wide | 完整词 |
| wider | 完整词 |
✅ 你会发现:
“wider” = “wide” + “er”
“lowest” = “low” + “est” = “ow” + “es” + “t”
语义单元被拆解、复用,效率极高!
🔢 第三步:把句子变成数字序列 —— Tokenizer 的魔法
现在,我们输入一句话:
“The capital of France is Paris.”
Tokenizer 会这样处理:
- 分词(Tokenize):
- “The” →
[452] - “ capital” →
[123](注意空格是token的一部分) - “ of” →
[78] - “ France” →
[912] - “ is” →
[201] - “ Paris.” →
[678](“.” 与 “Paris” 合并)
-
最终输出:
[452, 123, 78, 912, 201, 678]
这就是LLM真正“看到”的输入——
一串整数,没有字母,没有标点,只有编号。
💡 你可以把Tokenizer想象成一个“翻译官”:
把中文/英文 → 翻译成“AI语言”
而AI语言,就是这50,000个Token组成的“词典”。
🧠 第四步:数字如何“变成语义”?—— Embedding层登场
数字本身没有意义。
但LLM有一个神奇的层,叫 Embedding Layer(词嵌入层)。
它的作用是:
给每一个Token,分配一个高维向量(比如4096维),
这个向量,编码了这个词的语义、语法、上下文关系。
假设:
- Token
[452]= “The” → 嵌入向量E[452] = [0.23, -1.12, 0.87, ..., 0.51](共4096个数) - Token
[123]= “capital” →E[123] = [0.41, 0.98, -0.33, ..., 0.19]
那么,输入序列 [452, 123, 78, 912, 201, 678]
就变成了一个6×4096的矩阵:
[ [0.23, -1.12, 0.87, ...], ← "The" [0.41, 0.98, -0.33, ...], ← "capital" [0.11, 0.05, 1.22, ...], ← "of" [0.67, -0.45, 0.77, ...], ← "France" [0.33, 0.21, -0.91, ...], ← "is" [0.89, 0.14, 0.55, ...] ← "Paris."]
这个矩阵,就是LLM的“输入世界”。
✅ 这个向量不是随便给的,而是通过训练学出来的。
“capital”和“city”的向量会很接近,
“France”和“Germany”会靠近欧洲区域,
“is”和“was”会靠近动词区域。
语义,藏在向量的几何空间里。
这就是为什么:
“king - man + woman ≈ queen”
不是巧合,而是向量空间的线性关系。
⚙️ 第五步:数字开始“运算”——从Embedding到Transformer
现在,LLM拿到了一个6×4096的数字矩阵。
接下来,它做的,就是用数学运算,不断重构这些数字。
每一层Transformer,都会做:
-
矩阵乘法
:
Q = X @ Wq(计算查询向量) -
点积相似度
:
scores = Q @ K.T(哪个词和当前词最相关?) -
Softmax
:把分数变成概率(注意力权重)
-
加权求和
:
output = attention_weights @ V(融合上下文) -
残差连接 + 归一化
:让信号稳定传递
-
前馈网络
:
x → W1 → GELU → W2(非线性变换)
每一步,都是纯数学运算:
- 矩阵乘法
- 指数函数
- 加法、除法、激活函数
没有“理解”,没有“意识”,
只有数字在高维空间里跳舞。
但奇妙的是——
当这些数字被反复变换、叠加、融合后,
输出的最后一个向量,
恰好能预测下一个最可能的Token:
输入:“The capital of France is” →
输出:[0.01, 0.02, ..., 0.85, ..., 0.001]
最大值在Token[678]= “Paris.”
→ 所以AI说:“Paris.”
🧪 真实演示:用Python模拟一次Tokenization + Embedding
# 伪代码:模拟LLM的前两步tokenizer = {"The": 452," capital": 123," of": 78," France": 912," is": 201," Paris.": 678}# 输入文本text = "The capital of France is Paris."# Step 1: Tokenizetokens = [452, 123, 78, 912, 201, 678]# Step 2: Embedding (简化版)embedding_dim = 4embedding_table = {452: [0.23, -1.12, 0.87, 0.51],123: [0.41, 0.98, -0.33, 0.19],78: [0.11, 0.05, 1.22, 0.44],912: [0.67, -0.45, 0.77, -0.21],201: [0.33, 0.21, -0.91, 0.66],678: [0.89, 0.14, 0.55, 0.88]}# 转换成矩阵x = [embedding_table[t] for t in tokens]print("输入序列的嵌入向量(6×4):")for row in x:print(row)# 输出:# [0.23, -1.12, 0.87, 0.51]# [0.41, 0.98, -0.33, 0.19]# [0.11, 0.05, 1.22, 0.44]# [0.67, -0.45, 0.77, -0.21]# [0.33, 0.21, -0.91, 0.66]# [0.89, 0.14, 0.55, 0.88]
🌟 你看到的,不是文字,
而是6个4维的数字向量,
它们承载了“首都”“国家”“系动词”等语义关系。
AI,就是靠这些数字,推理世界的。
🧭 为什么这如此重要?
很多人以为LLM“懂语言”,
其实它只是:
- 把文字 → 切成Token(分词)
- 把Token → 映射成向量(Embedding)
- 把向量 → 用数学变换不断融合(Transformer)
- 把最终向量 → 映射回Token(输出层)
- 选概率最高的 → 输出文字
它没有“理解”“意思”“意图”,
但它完美模拟了语言的统计规律。
就像一个精通围棋的AI,
它不理解“胜负”“艺术”,
但它知道:哪一步赢的概率最高。
✅ 总结:LLM的“语言翻译器”三步曲
| 步骤 | 输入 | 输出 | 关键技术 |
|---|---|---|---|
| 1. 分词 | “The capital of France is Paris.” | [452, 123, 78, 912, 201, 678] | BPE(Byte-Pair Encoding) |
| 2. 嵌入 | Token序列 | 6×4096 的数字矩阵 | 学习型词嵌入(Learned Embedding) |
| 3. 运算 | 数字矩阵 | 更高阶的数字矩阵 | Transformer(Attention + FFN) |
🚫 LLM 不认识“字”
✅ LLM 只认识“编号”
💡 它的“语言”,是数学的语言
🌌 最后一句:AI的“语言”,是你看不见的宇宙
你看到的“对话”,是AI输出的文字。
你没看到的,是数万维空间里,数十亿个数字的精密舞蹈。
每一个字的背后,
是成千上万次矩阵乘法,
是数万亿参数的协同演化,
是人类用数学,为语言建模的壮举。
下一次,当你对AI说“帮我写一首诗”,
请记住:
它听到的,不是诗意,
是一串编号,
和一串在高维空间里,
悄悄旋转的向量。
📌 动手实验建议:
用 Hugging Face 的 transformers 试试:
from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-chat-hf")print(tokenizer.encode("Hello, world!"))# 输出:[1, 15043, 11, 13]
你看到的,就是LLM眼中的“世界”。
如何学习AI大模型?
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

10万+

被折叠的 条评论
为什么被折叠?



