欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > LLM基础-什么是嵌入(Embeddings)

LLM基础-什么是嵌入(Embeddings)

2025/4/24 13:43:26 来源:https://blog.csdn.net/zg_hover/article/details/147461505  浏览:    关键词:LLM基础-什么是嵌入(Embeddings)

在自然语言处理(NLP)领域,Token Embeddings(标记嵌入)扮演着至关重要的角色。它不仅是语言模型的基础,更是连接人类语言与机器理解的桥梁。本文将深入探讨 Token Embeddings 的原理、生成过程、应用场景,以及它在现代语言模型中的重要性。

1. Embeddings 的基本概念

语言模型将语言视为一系列的标记(tokens),这些标记可以是单词、子词或字符等。Token Embeddings 的核心任务是将这些标记转换为数值向量,使计算机能够处理和理解语言。这些向量不仅能够表示标记的语义信息,还能捕捉标记之间的关系。

例如,当我们训练一个包含大量英语文本的语言模型时,模型能够学习到英语语言的复杂模式。这些模式通过 Token Embeddings 体现出来,使模型能够生成连贯的英语文本。同样,如果训练数据包含事实信息(如维基百科),模型则能够生成相关的事实内容。

2. 语言模型中的Embeddings

每个语言模型都有一个词表(Vocabulary),是它能理解的所有 token 的列表,比如 BERT 的词表大小大约是 30,000。

语言模型通过训练过程为每个标记生成一个嵌入向量。这些向量最初是随机初始化的,但随着训练的进行,它们被赋予了能够捕捉语言模式的值。例如,DeBERTa v3 模型是一种高效的语言模型,它能够生成高质量的 Token Embeddings。

from transformers import AutoModel, AutoTokenizer# 加载分词器和语言模型
tokenizer = AutoTokenizer.from_pretrained("microsoft/deberta-base")
model = AutoModel.from_pretrained("microsoft/deberta-v3-xsmall")# 对句子进行分词和处理
tokens = tokenizer('Hello world', return_tensors='pt')
output = model(**tokens)[0]# 输出向量的维度
print(output.shape)

在上述代码中,模型将输入的句子“Hello world”转换为嵌入向量(Embeddings Vector)。这些向量可以用于各种自然语言处理任务,如命名实体识别、文本摘要等。

模型会为词表中的每个 token 都准备一个初始向量(通常是随机的),然后在模型训练的过程中不断更新这些向量,让它们能表达更深层次的语义信息。

举个例子
  • “king”和“queen”的向量距离很近,因为它们语义上相关。
  • “banana”和“keyboard”则应该距离较远。

这就构建出了“语义空间” —— 向量之间的“距离”代表了它们语义上的相似程度。

3. 上下文化(Contextualized Embeddings)

传统的词向量模型有个问题:一个词只有一个向量。但一个词在不同语境下意思可能不同。

比如:

  • “He sat by the bank of the river.”(河岸)
  • “She deposited money in the bank.”(银行)

静态嵌入没法区分这两种用法。但像 BERT、DeBERTa 这样的 LLM 会根据上下文为每个词生成不同的向量表示,这就叫做“上下文相关嵌入”。

语言模型不仅能够生成静态的 Token Embeddings,还能生成上下文化的 Token Embeddings。这意味着同一个单词在不同的上下文中会有不同的嵌入向量。刚才的例子,“银行”在“河边的银行”和“银行账户”中会有不同的嵌入向量。

这种上下文化的嵌入向量能够更好地捕捉单词的语义信息,从而提高模型在各种任务中的性能。例如,AI 图像生成系统(如 DALL·E)就是基于上下文化的 Token Embeddings 来生成图像的。

4. 文本嵌入(Text Embeddings)

有时候我们不仅仅想表示一个“词”的意思,而是想表示一整段话、一个句子,甚至一篇文档的意思。这时我们就需要 Text Embedding —— 表示整段文本的向量。这导致了能够生成文本的特殊语言模型的出现。

文本嵌入是一个单一的向量,用于表示整个句子、段落或文档的语义信息。

生成文本嵌入向量的方法有很多种。最常见的方法之一是对模型生成的所有Token Embeddings的值取平均值。然而,高质量的文本嵌入模型往往是专门针对文本嵌入任务进行训练的。

from sentence_transformers import SentenceTransformer# 加载文本嵌入模型
model = SentenceTransformer("sentence-transformers/all-mpnet-base-v2")# 将文本转换为文本嵌入
vector = model.encode("Best movie ever!")
print(vector.shape)

在上述代码中,模型将句子“Best movie ever!”转换为一个维度为 768 的向量。这种文本嵌入可以用于分类、语义搜索等任务。

5. 预训练词向量(word2vec、GloVe)

这些是 LLM 之前广泛使用的词向量技术。

Word2Vec 和 GloVe 的主要区别:
  • Word2Vec:通过上下文窗口训练(预测邻居词)
  • GloVe:通过统计词共现频率构建向量

虽然它们不能做上下文建模,但在小型任务中仍然很好用。

应用:
  • 找近义词
  • 找语义相关的词
  • 做简单的文本分类或聚类

6. Embeddings 的应用场景

Embeddings 不仅在语言模型中发挥重要作用,还在推荐系统、机器人等领域中具有广泛的应用。例如,word2vec 算法通过训练标记的嵌入向量来预测单词是否在同一上下文中出现。这种方法可以用于生成高质量的单词嵌入,从而为推荐系统提供支持。

Token Embeddings
语言模型
文本嵌入
推荐系统
多模态模型

7. 关键点分析

Token Embeddings 的核心在于将语言的语义信息转换为数值向量,使计算机能够处理和理解语言。上下文化的 Token Embeddings 能够更好地捕捉单词的语义信息,而文本嵌入则可以用于表示整个文本的语义。此外,Token Embeddings 还在推荐系统、多模态模型等领域中具有广泛的应用。

8. 总结表格

概念作用相关工具或模型
Token Embeddings把词转成向量,供模型使用Transformers 模型(BERT、DeBERTa)
Contextualized Embeddings同一个词在不同上下文中有不同的向量LLM(BERT、GPT、DeBERTa)
Text Embeddings将整句或整段文本编码为向量SentenceTransformers(适用于语义搜索等任务)
预训练词向量抽取静态语义知识word2vec、GloVe
对比学习训练方法让模型分清“语义接近”和“不相关”的词Word2Vec 的训练核心

9. 总结

Token Embeddings 是自然语言处理中的关键技术之一。它通过将标记转换为数值向量,使语言模型能够理解和生成语言。上下文化的 Token Embeddings 能够更好地捕捉单词的语义信息,而文本嵌入则可以用于表示整个文本的语义。

此外,Token Embeddings 还在推荐系统、多模态模型等领域中具有广泛的应用。随着技术的不断发展,Token Embeddings 将在更多领域发挥重要作用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词