大模型开发基础:Embedding 从入门到实战,一篇就够了!
★计算机如何理解"国王"和"皇后"的关系?为什么
King - Man + Woman ≈ Queen?这就是 Embedding 的魔力!今天带你彻底搞懂大模型开发的核心基础——Embedding。
一、从哲学到AI:通用人工智能的前夜
波普尔的三个世界
1978年,奥地利哲学家卡尔·波普尔提出了一种观察现实的方法——**"三个世界"理论**:
|
|
|
|
|---|---|---|
|
|
|
客观世界
|
|
|
|
主观世界
|
|
|
|
人造知识世界 |
★计算机要处理的是"世界三"中的客观知识,但计算机只能理解0和1,我们该如何把人类的知识世界"翻译"给计算机?[pdf_7]
图灵测试(Turing Test)
-
1950年,艾伦·图灵发表划时代论文,预言了创造真正智能机器的可能性。 -
由于"智慧"难以定义,他提出了图灵测试:如果一台机器能够与人类展开对话(通过电传设备)而不被辨别出机器身份,那么称这台机器具有智慧。 -
这是人工智能哲学方面首个严肃的提案。[pdf_7]
二、计算机的数据表示
灰度图像表示
图像以像素值矩阵的形式存储,每个像素用数值表示灰度强度。
彩色图像表示
彩色图像通过 RGB 三个颜色通道(红、绿、蓝)组合表示,每个像素由三个数值构成。[pdf_7]
西文表示:ASCII
-
ASCII(美国信息交换标准代码)是IEEE里程碑之一,1963年发布第一版。 -
基于拉丁字母,主要用于显示现代英语,完整编码对照表包含二进制、十进制、十六进制与字符。[pdf_7]
中文表示的演进
ASCII扩展(GB2312/Big5等)
↓
Unicode + UTF-8(全球字符统一编码)
↓
One-hot编码(向量长度=词汇表大小)
↓
深度学习词嵌入(低维稠密向量,捕捉语义)
One-hot编码:每个字表示为一个向量,只有一个元素为1,其余为0。优点是简单直观,但词汇量大时占用巨大内存。
深度学习词嵌入:将每个字或词映射到高维向量,可以捕捉语义信息,是当前主流方案。[pdf_7]
三、表示学习(Representation Learning)
什么是表示学习?
★表示学习是指通过学习算法自动地从原始数据中学习到一种表示形式,该表示能够更好地表达数据的重要特征和结构。[pdf_7]
三大核心目标
🎯 可分性——让不同类别的样本在特征空间中有明显的边界
★例如:在图像分类中,让"猫"和"狗"的图像在特征空间中更容易区分
🎯 可解释性——学习到的特征应具有可理解的语义含义
★例如:词向量中,相似的词在向量空间中更接近
🎯 推理能力——在特征空间中可执行推理、类比或关联操作
★例如:
国王 - 男人 + 女人 ≈ 皇后[pdf_7]
典型方法:深度神经网络(DNN)
深度神经网络是一种高效学习数据抽象特征表示的方法。Yoshua Bengio 等人的经典论文《Representation Learning: A Review and New Perspectives》(2012年,IEEE T-PAMI,10251次引用)是该领域的奠基之作。[pdf_7]
四、嵌入(Embedding)——表示学习的核心实践
嵌入的四大价值
1. 降维 📉 One-hot编码的维度等于词汇表大小,可能达数十万。通过Embedding可将高维数据映射到低维空间,大大减少模型复杂度。[pdf_7]
2. 捕捉语义信息 🧠 Embedding不仅仅是降维,更重要的是能捕捉数据的语义信息。语义上相近的词在向量空间中也会相近。[pdf_7]
3. 适应性 🔄 Embedding通过数据驱动的方式学习,能自动适应数据特性,无需人工设计特征。[pdf_7]
4. 泛化能力 🌐 即使遇到训练数据中未出现过的数据,Embedding仍能给出合理的表示,因为它捕捉到了数据的内在规律。[pdf_7]
表示学习 vs 嵌入
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
★一句话:嵌入是表示学习的一种特定形式,旨在将高维数据转换为低维向量表示;表示学习则涉及更广泛的概念和方法,包括嵌入在内。[pdf_7]
三种常见的嵌入类型
① 词嵌入(Word Embedding)
将词语映射到低维向量空间,捕捉语义和句法关系。代表方法:Word2Vec、GloVe、FastText。[pdf_7]
② 图像嵌入(Image Embedding)
将图像映射到低维向量空间,表示视觉特征,通常通过卷积神经网络(CNN) 提取。[pdf_7]
③ 图嵌入(Graph Embedding)
将图中的节点和边映射到低维向量空间,捕捉结构和关联关系。代表算法:DeepWalk、Node2Vec、GraphSAGE。[pdf_7]
五、Word Embedding 深度解析
经典案例:向量运算的魔力
King - Man + Woman = Queen
Paris - France + Germany = Berlin
通过在词嵌入空间中执行向量运算,我们可以发现词语之间的类比关系![pdf_7]
Word Embedding 的五大应用
-
语义表示和相似度计算:相似含义的单词在向量空间中彼此靠近,可通过向量距离度量语义相似度 -
词语关系和类比推理:如同义词、反义词、上下位关系,通过向量运算发现 -
上下文理解:捕捉单词的语境信息,帮助解决语义歧义 -
文本分类和情感分析:提供丰富的词语特征表示,提升分类性能 -
机器翻译和生成模型:源语言和目标语言都映射为嵌入向量,提升翻译准确率[pdf_7]
Word Embedding vs 语言模型
|
|
|
|
|---|---|---|
| 本质 |
|
|
| 特点 |
|
|
| 目标 |
|
|
| 上下文处理 | 无法区分
|
|
| 关系 |
|
|
★更先进的模型(如BERT、GPT)能生成上下文相关的词嵌入,即词的嵌入会根据上下文变化,弥补了传统词嵌入模型的不足。[pdf_7]
六、OpenAI Embeddings 开发实战
开发环境准备
-
Python 版本:3.10+ -
交互式开发:Jupyter Lab -
IDE:VS Code、PyCharm -
API密钥:OpenAI API-KEY[pdf_7]
课程项目:GitHub openai-quickstart
本项目(GitHub: DjangoPeng/openai-quickstart)是一个一站式学习资源,提供理论基础、开发基础和实战示例,涵盖AI生成内容(AIGC)场景。[pdf_7]
OpenAI Embeddings 模型
text-embedding-ada-002(第二代模型):
|
|
|
|---|---|
|
|
|
|
|
|
|
|
1536
|
★旧版嵌入模型(如 text-search-davinci-doc-001)需在 2024年1月4日前 迁移到 text-embedding-ada-002。[pdf_7]
实战步骤
Step 1:设置API密钥
export OPENAI_API_KEY='你的-api-key'
Step 2:安装依赖
pip install tiktoken openai pandas matplotlib plotly scikit-learn numpy
Step 3:生成Embedding 基于 text-embedding-ada-002 模型,将文本转换为向量表示。[pdf_7]
实战数据集:亚马逊美食评论数据集(Amazon Fine Food Reviews),约500,000条美食评论,可用于搜索、聚类、主题建模和分类等任务。[pdf_7]
七、可视化:t-SNE
t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种统计算法,用于在低维空间(2D或3D) 中展示高维数据的结构。
其核心目标是保持原有高维空间中近邻点的距离关系——距离近的点在低维空间中仍然距离近,距离远的点仍然距离远。[pdf_7]
通过 t-SNE 可视化,我们可以直观地观察到:
-
同类书籍的Embedding在空间中聚集在一起 -
不同体裁(科幻小说、犯罪小说、奇幻小说等)有明显的边界 -
语义相近的作品在向量空间中距离更近[pdf_7]
八、核心概念全景图
所有核心概念之间的关系可以用一张维恩图来概括:[pdf_7]
┌─────────────────────────────────────┐
│ 表示学习(Representation Learning) │
│ ┌───────────────────────────────┐ │
│ │ 嵌入(Embedding) │ │
│ │ ┌────┬────┬──────────────┐ │ │
│ │ │Word2Vec│GloVe│FastText│ │ │
│ │ └────┴────┴──────────────┘ │ │
│ │ ┌───────────────────────┐ │ │
│ │ │ DNN 深度神经网络 │ │ │
│ │ └───────────────────────┘ │ │
│ │ ┌───────────────────────┐ │ │
│ │ │ t-SNE 可视化 │ │ │
│ │ └───────────────────────┘ │ │
│ └───────────────────────────────┘ │
│ ┌───────────────────────────────┐ │
│ │ 大语言模型(LLM) │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ 语言模型(LM) │ │ │
│ │ │ text-embedding-ada-002 │ │ │
│ │ └─────────────────────────┘ │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
九、实用技巧总结
Embedding 应用场景速查
|
|
|
|
|---|---|---|
| 语义搜索 |
|
|
| 文本聚类 |
|
|
| 推荐系统 |
|
|
| 文本分类 |
|
|
| 类比推理 |
|
|
一句话总结
★Embedding 就是把人类世界的语义信息"翻译"成计算机能理解的向量语言,让机器不仅"看到"数据,还能"理解"其中的关系!
推荐阅读
-
Representation Learning: A Review and New Perspectives – Bengio et al., 2012, IEEE T-PAMI [pdf_7] -
Word2Vec: Efficient Estimation of Word Representations in Vector Space – Mikolov et al., 2013 [pdf_7] -
GloVe: Global Vectors for Word Representation – Pennington et al., 2014 [pdf_7] -
Deep Learning – LeCun, Bengio, Hinton, 2015, Nature [pdf_7]
★💡 想获取更多AI大模型干货?关注我,每天带你学习一个AI知识点!

