Embedding 是一种在深度学习和自然语言处理(NLP)中常用的特征工程方法,本质上是将高维度的数据(如单词、短语、句子等)转换为低维度的向量。其主要目的是降低数据的抽象性和复杂性,以便机器学习模型更有效地理解和处理数据,同时帮助模型理解语义关系,如单词之间的相似性、句子的情感等。
以下是几个关于 Embedding 的例子:
此外,在 Stable Diffusion 中,Embedding 相当于提示词打包的功能,能将大量提示词汇总到一个文件里,调用该文件就相当于输入了很多提示词,尤其在负向提示词中,当文本量很大且固定不变时,使用打包好的负向提示词 Embedding 可达到一词顶一百词的效果。
Embedding 是一个浮点数的向量(列表),两个向量之间的距离可度量它们的相关性,小距离表示高相关性,大距离表示低相关性。Embedding 有词、句子、文档、图像等分类。在大模型中,Embedding 具有重要价值,例如从数据集中获取 Embedding 结果并保存为 csv 文件。进阶到企业级应用开发的大模型技术还会涉及利用开源的 Embedding 模型、向量数据库去做检索增强生成(RAG),以及购买 GPU 服务器去基于开源大模型搭建企业级大模型项目。
参考链接:OpenAI 官网文档 https://platform.openai.com/docs/introduction
感谢Arthur提供建议Stephen的书,他在里面强调Embedding本质上是在将文本转换为数值表示.在这个过程中,用到了向量空间映射答:在深度学习和自然语言处理(NLP)中,Embedding是一种特征工程方法,用于将高维度的数据(如单词,短语,句子等)转换为低维度的向量。Embedding的主要目的是将数据的抽象和复杂性降低,使得机器学习模型能够更有效地理解和处理数据。Embedding可以帮助模型理解语义关系,例如单词之间的相似性,句子的情感,等等。下面是两个例子,可以帮助你更好地理解Embedding:例子1:电影推荐系统假设我们有一个电影推荐系统,用户可以给电影打分,我们的目标是预测用户未看过的电影的评分。在这个情况下,每个用户和每个电影都可以被视为一个独特的分类标签。直接处理这些标签将会非常困难,因为它们是高维度和稀疏的。这时,我们可以使用Embedding。对于每个用户和每个电影,我们可以创建一个Embedding,这是一个低维度的向量,可以捕捉用户的兴趣和电影的特性。然后,我们可以通过比较用户和电影的Embedding来预测用户可能会给电影的评分。例子2:文本分类
我们认识了Embedding(嵌入)是一个浮点数的向量(列表),两个向量之间的距离度量它们的相关性,小的距离表示高相关性,大的距离表示低相关性。知道了Embedding共有:词、句子、文档、图像等分类。还分析了Embedding在大模型中的价值。最后是Embedding的实战部分:从数据集中获取Embedding结果,并保存为csv文件。最后,本示例中的实战代码,参考的是官方最新文档的内容,加上个人测试阶段的遇到的问题、代码注释等OpenAI官网文档链接:https://platform.openai.com/docs/introduction大模型技术,除了在OpenAI官网能看到的:Embedding、Function Call和Fune Tuning等。进阶到企业级应用开发的大模型技术还会涉及到:利用开源的Embedding模型、向量数据库去做检索增强生成(RAG),以及购买GPU服务器去基于开源大模型搭建企业级大模型项目。
在Stable Diffusion中,Embedding相当于是一个提示词打包的功能,它能够把很多的提示词汇总到一个文件里。这时候,我们只需要调用这一个embedding文件,就相当于输入了很多的提示词,非常的方便。那什么时候会用到文本量很大且固定不变的提示词呢?很多小伙伴可能猜到了,那就是我们的负向提示词。这是我们最常见的负向起手式,可以排除掉一些低质量、坏手、姿态错误等等情况。我见过有人最夸张的是在负向提示词中使用词汇达几百个,密密麻麻的十几行,然后弹幕中有人就问他:你是在辟邪么……如果不想把提示词搞得这么复杂,我们就可以使用一些打包好的负向提示词Embedding,就可以达到一词顶一百词的效果。