Llm

Embeddings 入门指南

LLM Embeddings 的核心概念、演进历史与实践

核心概念

Embeddings(词向量/嵌入)是将文本转换为数值向量的技术,是 LLM 理解语言的语义基础。当文本进入模型时,首先被转换为高维向量空间中的点,语义关系变为数学关系。

好的 Embedding 有什么特征?

  • 语义表示:语义相近的词在向量空间中距离更近。如 "cat" 和 "dog" 的向量应比 "dog" 和 "strawberry" 更相似
  • 维度权衡:低维度向量(50-300)存储和计算效率高,高维度向量(768-7168)能捕获更复杂关系但易过拟合。GPT-2 最小 768 维,DeepSeek-V3 达 7168 维

静态 vs 动态 Embeddings

  • 静态 Embeddings:Token 在输入层获得的固定向量,每个 token 有唯一的嵌入向量
  • 动态/上下文 Embeddings:经过 Transformer 层处理后,融入上下文信息的表示。"银行"在"河岸"和"银行抢劫"中静态 embedding 相同,但动态 embedding 会根据上下文分化

技术演进

TF-IDF(词频-逆文档频率)

基于统计的方法,通过计算词在文档中的重要性生成嵌入:

  • TF(词频):词在文档中出现频率,越高越重要
  • IDF(逆文档频率):词在所有文档中的稀缺程度,常见词(如"的")权重低

局限性:词在向量空间中的距离与语义无关,仅反映共现频率。大多数词的 embedding 聚集在同一区域,缺乏区分度。

Word2Vec

神经网络驱动的嵌入方法,核心思想是通过上下文预测词(或反之):

  • CBOW:根据上下文词预测目标词
  • Skip-gram:根据目标词预测上下文词

网络结构简单:输入层 → 隐藏层(存储 embeddings)→ 输出层。训练完成后丢弃输出层,隐藏层即为词向量。通过 Negative Sampling 优化大规模词汇表的训练效率。

优势:能捕获语义关系,支持向量运算(如 king - man + woman ≈ queen)。

BERT

首个基于 Transformer 的上下文嵌入模型, encoder-only 架构:

  • Tokenizer:将文本分割为 token 序列
  • Embedding:将 token 转为向量
  • Encoder:多层自注意力 + 前馈网络,融合上下文
  • Task Head:任务特定的输出层

预训练任务:

  • Masked Language Modeling:预测被遮蔽的词
  • Next Sentence Prediction:判断两句子是否连续

突破:同一词在不同上下文中产生不同表示,解决了多义词问题。

现代 LLM 的 Embeddings

LLM 的 embedding 层作为查找表(Look-up Table)工作:给定 token ID,返回对应的嵌入向量。torch.nn.Embedding 本质上是接收索引而非 one-hot 编码的线性层。

Embedding 在 LLM 训练中与模型参数一起优化,而非使用预训练的 Word2Vec——这样 embedding 能针对特定任务和数据定制。

可视化与分析

Embedding Atlas

将词汇 embedding 映射到二维/三维空间可视化,语义相近的词会聚集。例如 "bridge"、"bridges"、"桥"、"橋" 在空间中距离很近,反映了跨语言的语义相似性。

  • Apple Embedding Atlas - Apple 开源的大规模嵌入可视化工具,支持自动聚类、实时搜索、WebGPU 渲染

Embedding Graph

将 embedding 空间建模为图网络:token 为节点,向量相近的 token 之间建立边。可用于分析词汇的语义邻域结构。

实践工具

延伸阅读


Copyright © 2024 Lionad - CC-BY-NC-CD-4.0