Skip to content

Commit 005d5df

Browse files
committed
update
1 parent 282adb2 commit 005d5df

3 files changed

Lines changed: 632 additions & 3 deletions

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,18 @@
161161
### :eyes: 大数据 ###
162162

163163
- [Spark入门指南:从基础概念到实践应用全解析](https://mp.weixin.qq.com/s?__biz=Mzg4Nzc3NjkzOA==&mid=2247487398&idx=1&sn=077859e1109e07b1469d242ec2b8091a&chksm=cf847c63f8f3f575e50012ef3667d9724998f07e32ebd27b6e3a37c5bdf2251d02e89030cff0#rd)
164-
164+
165165
- [HBase入门指南](https://mp.weixin.qq.com/s?__biz=Mzg4Nzc3NjkzOA==&mid=2247487105&idx=1&sn=2ee82c9b239aa502bd3dffcf320b3f93&chksm=cf847d44f8f3f452e1b8ac83b9f62f380e349615b67da92343539d4014077c2ad9e787e256cc#rd)
166-
166+
167167
- [全网最详细4W字Flink全面解析与实践(上)](https://mp.weixin.qq.com/s?__biz=Mzg4Nzc3NjkzOA==&mid=2247487459&idx=1&sn=a1826b2d592fff29b5e11a374468796a&chksm=cf847c26f8f3f53073cc24584264fa2752a26c98bbd31c86bcf519296789eff05d72904d27ac#rd)
168-
168+
169169
- [全网最详细4W字Flink全面解析与实践(下)](https://mp.weixin.qq.com/s?__biz=Mzg4Nzc3NjkzOA==&mid=2247487535&idx=1&sn=736f1adda56cc550191f17e7111598b5&chksm=cf8463eaf8f3eafc38819e342705df1884683e03d5d39e9df876834ab0a84f61cc55923a5a03#rd)
170170

171+
### :watch:AI
172+
173+
- [深度解析Skills:从Prompt到能力复用的技术革命](https://mp.weixin.qq.com/s/Se6_L1PbhlEUGaBSY8sZsQ)
174+
- 为什么ChatGPT能听懂你说的话?Embedding技术揭秘
175+
171176

172177
### :jack_o_lantern: 其他 ###
173178

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
ChatGPT、Claude这些AI助手能理解我们说的话,还能给出像样的回答。做到这点,靠的是Embedding技术。
2+
3+
没有它,大语言模型根本没法处理文字输入。Embedding把人类语言变成数字,让机器能"读懂"。
4+
5+
## 什么是Embedding
6+
7+
Embedding就是把词语、句子变成一串数字。听起来简单,但背后的想法很有意思。
8+
9+
我们说"北京"这个词时,脑子里会想到:城市、首都、政治中心、文化古都。这些概念连在一起,构成我们对"北京"的理解。Embedding做的,就是把这种理解映射到数学空间里。
10+
11+
每个词变成一个向量——一组数字。有意思的是,语义相近的词,向量也靠得近。"北京"和"上海"的向量距离很近,都是城市。但"北京"和"苹果"就离得远,语义完全不同。
12+
13+
<img src="https://mmbiz.qpic.cn/mmbiz_jpg/55IJsnyicJucfIkzIauekcGXHVJ8AfUUecL31ibKlI7Jsf4PwkO3t790Y5lJ1dW2lEAZm2f7WiaAIvibhyD8ldicJglq4bFr4fVZmoXOchnib1kuM/640?wx_fmt=jpeg&amp;from=appmsg">
14+
15+
这就让机器能通过距离来理解语义,不是简单匹配关键词。
16+
17+
## 怎么把词变成数字
18+
19+
举个通俗的例子。描述几个水果:
20+
21+
- 苹果:红色的、中等大小、甜度适中、脆的、圆形的。
22+
- 香蕉:黄色的、细长的、很甜、软的、弯曲的。
23+
- 西瓜:绿色的、很大的、甜度中等、多汁的、圆形的。
24+
25+
用数字表示这些特征,比如给每个特征打分(0到1):
26+
27+
- 苹果:[0.9(红色),0.5(大小),0.7(甜度),0.8(脆度),1.0(圆润)]
28+
- 香蕉:[0.1(红色), 0.3(大小),0.9(甜度),0.2(脆度), 0.2(圆润)]
29+
- 西瓜:[0.1(红色),0.95(大小),0.6(甜度),0.3(脆度),1.0(圆润)]
30+
31+
真实的Embedding要复杂得多,通常是几百到几千维。但思路就是这样:用数字刻画特征。
32+
33+
模型怎么学会这些特征?它看上下文。就像通过朋友圈了解一个人,模型通过观察一个词周围经常出现什么词,理解这个词的含义。
34+
35+
比如"银行":
36+
- "我去银行存钱"——周围是"存钱",指金融机构。
37+
- "他坐在银行边钓鱼"——周围是"钓鱼",指河岸。
38+
39+
模型通过阅读海量文本,学会根据上下文判断词义。语义相近的词,向量也接近。
40+
41+
## 怎么衡量向量的相似度
42+
43+
用余弦相似度。计算两个向量的夹角:
44+
45+
- 夹角小,相似度接近1,语义相似。
46+
- 夹角大,相似度接近0,语义不相关。
47+
48+
余弦相似度关注向量的方向,不是长度。在自然语言里,概念的相似性更多体现在"方向"上。
49+
50+
<img src="https://mmbiz.qpic.cn/sz_mmbiz_jpg/55IJsnyicJudJrXEiay4GgJn2gHDZX73LCx6onL4w8tHDeHoBqah1DKiae5Z215b0MlStHUR9tY67X757dn9J9sDjUa36OANdxsPlEZanLicpqQ/640?wx_fmt=jpeg&amp;from=appmsg">
51+
52+
## 向量和张量的关系
53+
54+
机器学习里有个更广的概念——张量(Tensor),就是N维数组:
55+
56+
- 0维张量是标量(单个数字)。
57+
- 1维张量是向量(一维数组)。
58+
- 2维张量是矩阵(二维数组)。
59+
- 更高维张量表示更复杂的数据结构。
60+
61+
Embedding向量是一维张量。在大语言模型里,虽然每个词的Embedding是向量,但批量处理时会组织成矩阵或更高维张量。
62+
63+
## 技术演进
64+
65+
Embedding技术从简单到复杂,走了一段路。
66+
67+
### Word2Vec:早期的尝试
68+
69+
Word2Vec是早期代表,关注单个词的向量化。思路是:通过上下文学习词的语义。
70+
71+
模型观察大量文本,学习哪些词经常出现在相似的语境中。"猫"和"老虎"都会出现在"动物园"、"宠物"这些上下文里。通过统计学习,这些词在向量空间中位置靠近。
72+
73+
这揭示了一个特性:语义相似性可以通过上下文分布的相似性来捕捉。
74+
75+
但Word2Vec有局限:每个词只有固定向量,处理不了一词多义。"苹果"可以指水果,也可以指科技公司,Word2Vec把它们映射到同一个向量。
76+
77+
### 自注意力机制:突破
78+
79+
Transformer引入的自注意力机制(Self-Attention)是重大突破。模型生成某个词的向量时,能同时考虑句子中所有其他词。
80+
81+
两个优势:
82+
83+
- **长距离依赖**:传统序列模型里,词与词的依赖关系随距离增加而减弱。自注意力机制能直接计算句子中任意两个词的关联强度,不管它们离多远。这帮助模型理解复杂的句法和语义。
84+
- **动态上下文表示**:Word2Vec给每个词分配固定向量,自注意力机制根据上下文生成不同向量。"我吃了一个苹果"和"苹果公司发布了新产品",两个"苹果"向量完全不同。
85+
86+
### BERT:双向理解
87+
88+
BERT(Bidirectional Encoder Representations from Transformers)实现了双向上下文理解。预训练时同时考虑一个词左右两侧的所有词。
89+
90+
以"很长"这个词组为例:
91+
- "这条河很长"——指河流长度。
92+
- "他当了很长时间的厂长"——指时间持续。
93+
94+
BERT根据不同上下文为"很长"生成不同向量。Embedding技术从静态表示迈向动态、上下文感知的语义理解。
95+
96+
<img src="https://mmbiz.qpic.cn/mmbiz_jpg/55IJsnyicJufh9Vw6ZURoZibvQFKu3F3b9pDvNOXew0VCoU6fSv2hqPyoTGnicl3sP20lPG8gR2ibWV2VgDibXIKNnjObM1pnlsc9Ojo4Ox3yibaA/640?wx_fmt=jpeg&amp;from=appmsg">
97+
98+
## Embedding在LLM里的作用
99+
100+
Embedding是大语言模型(LLM)运转的基石。
101+
102+
### LLM内部怎么工作
103+
104+
用户向ChatGPT输入问题时,系统内部经历几个步骤:
105+
106+
- **第一步:Tokenization(分词)**:分词器把文本拆成token。一个token可能是一个词、一个字,也可能是一个词组。"请写一首关于秋天的诗"会被拆为["请"、"写"、"一首"、"关于"、"秋天"、"的"、"诗"]
107+
- **第二步:Embedding Lookup(向量查询)**:每个token有唯一ID。LLM内部维护巨大Embedding矩阵,类似字典。模型看到token ID,在矩阵中查找对应向量。
108+
- **第三步:Position Encoding(位置编码)**。模型要知道每个token在句子中的位置。给每个token加上位置编码向量,保留顺序信息。
109+
- **第四步:向量处理与生成**:语义向量和位置编码结合,形成最终输入。这些向量经过Transformer多层网络计算,生成输出。
110+
111+
Embedding把人类可读的语言变成机器可计算的数字。没有这一步,推理、理解、生成都无从谈起。
112+
113+
<img src="https://mmbiz.qpic.cn/mmbiz_jpg/55IJsnyicJuc0kicrRFJfcAZHpw1CO8piazriaO8BibPUXh9ndjUukYsicu1oKicg1zrYYibhGx121D2wDmPwatKibEk9emWNbmb2j5atStURnHhgdc0/640?wx_fmt=jpeg&amp;from=appmsg">
114+
115+
### 理解和推理的数学基础
116+
117+
Embedding的重要性不只体现在输入阶段。在向量空间里,复杂语义操作通过数学运算实现:
118+
119+
- 语义相似性:向量余弦相似度度量。
120+
- 语义关系:向量运算捕捉("国王" - "男人" + "女人" ≈ "女王")。
121+
- 语义组合:向量加权求和。
122+
123+
这些数学操作让LLM进行推理和生成,不是简单模式匹配。
124+
125+
## RAG框架里的Embedding
126+
127+
除了在LLM内部,Embedding在实际应用中也很重要,特别是在RAG(Retrieval-Augmented Generation,检索增强生成)框架中。
128+
129+
### RAG是什么
130+
131+
RAG把大语言模型和可搜索的外部知识库结合。核心想法:让模型访问训练时没见过的新信息,提升回答准确性和时效性。
132+
133+
传统LLM应用里,模型知识来自训练数据。GPT-4的训练数据截止到2023年,之后发生的事它不知道。RAG通过连接外部知识库,让模型实时获取最新信息。
134+
135+
### Embedding在RAG里的作用
136+
137+
在RAG框架中,Embedding连接外部知识库与大语言模型。工作流程:
138+
139+
- **知识库准备**:把外部文档(PDF、网页等)分割成文本块。用Embedding模型把每个文本块转换为向量,存储在向量数据库。文本内容变成可计算的数学表示。
140+
- **查询与检索**:用户提问时,系统把查询语句转换为查询向量。在向量数据库中通过余弦相似度计算,找出最相似的top-k个文本块。这是语义检索,不是关键词匹配。
141+
- **生成**:检索出的文本块和用户查询一起传给大语言模型。模型基于这些信息生成回答。
142+
143+
<img src="https://mmbiz.qpic.cn/sz_mmbiz_jpg/55IJsnyicJudNMdU6ayLdlM9mZucYxqNTibJfXiadVmZ4RibsXkia1YElNvU1unxwTLK36h8KFzn7y4yPgPvsSXLDIo7cDWr9FbOY9zhCYTj0Wrg/640?wx_fmt=jpeg&amp;from=appmsg">
144+
145+
### 模型一致性原则
146+
147+
RAG里有个原则必须遵守:导入数据和查询时,必须用同一个Embedding模型。
148+
149+
不同模型把相同文本映射到不同向量空间。导入和查询用不同模型,就像用英语语法规则理解中文句子,匹配会失败。保持模型一致,检索才准确。
150+
151+
### Embedding质量影响RAG效果
152+
153+
Embedding模型性能直接决定RAG效果。高质量模型能准确捕捉文本语义,检索出最相关的信息。模型性能不佳会:
154+
155+
- 检索不准确:返回的内容相关性不高。
156+
- 遗漏关键信息:没检索到有用的信息。
157+
- 引入噪音:检索出不相关内容,干扰模型判断。
158+
159+
选合适的Embedding模型,是RAG系统成功的关键。
160+
161+
## 向量数据库
162+
163+
Embedding技术广泛应用后,专门存储和检索高维向量的向量数据库出现了。这类数据库的核心能力是相似性搜索,根据向量距离查找最相似的向量。
164+
165+
### 两类向量数据库
166+
167+
- **专用向量数据库**:完全为向量检索构建,采用高级索引算法(HNSW、IVF)在海量数据中实现毫秒级查询。代表产品有Pinecone、Milvus、Weaviate。优势是检索快、性能优化好,适合大规模向量检索。
168+
- **集成向量检索功能的通用数据库**:传统关系型或文档型数据库,通过插件或内置功能支持向量检索。代表产品有Elasticsearch(dense_vector字段)、PostgreSQL(pgvector插件)、Redis。优势是同时处理结构化数据和向量数据,适合混合检索场景。
169+
170+
<img src="https://mmbiz.qpic.cn/sz_mmbiz_jpg/55IJsnyicJufYQmafqySxXnaD0hYKqQx1AzXdrUV0DJLkgqSVe1lRmrNicQ0PK5Uyvz5VVOMAqzCweBQ1TrR4p6VliciaZe1fLRVcS3hg1I3ZNo/640?wx_fmt=jpeg&amp;from=appmsg">
171+
172+
### Elasticsearch的语义检索
173+
174+
Elasticsearch通过dense_vector字段和kNN(最近邻)搜索功能,把Embedding转换、存储和检索封装在一起。用户可以直接把Elasticsearch作为RAG框架的向量存储:
175+
176+
- 导入文档时,配置处理管道让Elasticsearch自动调用模型把文本转换为向量并存储。
177+
- 查询时,系统自动把查询转换为向量,执行相似性搜索。
178+
179+
这降低了技术门槛,开发者不用单独部署向量数据库,就能实现语义检索。
180+
181+
## Embedding的价值
182+
183+
Embedding技术把语言变成数学,让计算机能"理解"人类语言。
184+
185+
从技术演进看,Embedding从简单的词向量发展到上下文感知的动态表示。从Word2Vec到BERT,再到如今的大语言模型,每次技术突破都伴随着Embedding能力提升。
186+
187+
从应用看,Embedding在LLM内部把自然语言转化为数学表示。在RAG等应用中,Embedding实现从关键词匹配到语义检索,大幅提升信息检索准确性。
188+
189+
未来,Embedding还会承担更多:
190+
191+
- 多模态融合:把文本、图像、音频映射到统一的向量空间,实现跨模态理解和生成。
192+
- 知识图谱构建:通过向量表示构建大规模知识网络,支持复杂推理和决策。
193+
- 个性化推荐:基于用户行为和偏好的向量表示,实现精准个性化服务。
194+
- 隐私保护计算:在向量空间进行加密计算,保护数据隐私同时实现智能分析。
195+
196+
理解Embedding的原理和应用,有助于更好地使用AI工具,也为探索AI技术未来提供视角。在AI时代,Embedding将继续连接人类智慧与机器能力。

0 commit comments

Comments
 (0)