当前位置: 首页 > news >正文

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 将在更多领域发挥重要作用。

http://www.xdnf.cn/news/100747.html

相关文章:

  • 反激电源中的爬电距离
  • 监督学习(Supervised Learning)与无监督学习(Unsupervised Learning)​
  • 批量将多个 Excel 表格中的某张图片替换为新的图片
  • 基础算法合集-并查集
  • 《解锁vLLM:大语言模型推理的加速密码》
  • 赞奇AIknow知识图谱能力/案例介绍
  • 在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器
  • RK3568平台开发系列讲解(调试篇)debugfs API接口及案例
  • 亚马逊选品:手工与插件的差异剖析!
  • 飞帆控件:在编辑模式下额外加载的库
  • softirq
  • 网页设计规范:从布局到交互的全方位指南
  • axios 在请求拦截器中设置Content-Type无效问题
  • Generative AI for Krita - Krita 生成式 AI 插件
  • 机器学习学习笔记
  • 迭代器模式:统一数据遍历方式的设计模式
  • 基于自适应汉克尔子空间的快速且超高分辨率的弥散磁共振成像(MRI)图像重建|文献速递-深度学习医疗AI最新文献
  • 第七篇:linux之基本权限、进程管理、系统服务
  • FPGA开发流程初识
  • 大数据学习(112)-Analytic函数集
  • (2025最新版)CUDA安装及环境配置
  • 文件上传过程中出现EOFException的解决方案
  • 建筑安全员 A 证与 C 证:差异决定职业方向
  • 【3.1】pod详解——Pod的结构
  • Science Robotics 新型层级化架构实现250个机器人智能组队,“单点故障”系统仍可稳定运行
  • 汽车租赁管理系统分析方案
  • Redis核心技术知识点全集
  • C#语言实现PDF转Excel
  • 【论文阅读】Dual-branch Cross-Patch Attention Learning for Group Affect Recognition
  • Tkinter:Python 3官方轻量级GUI库