嵌入是 LLM 捕获语义含义的方式。 它们是 LLM 可用于确定概念之间的关系的非数值数据的数值表示形式。 可以使用嵌入来帮助 AI 模型了解输入的含义,以便它可以执行比较和转换,例如汇总文本或从文本说明创建图像。 LLM 可以立即使用嵌入,并且可以在矢量数据库中存储嵌入内容,以便根据需要为 LLM 提供语义内存。
嵌入的用例
本部分列出了嵌入的主要用例。
使用您自己的数据来提高完成任务的相关性
使用自己的数据库为数据生成嵌入内容,并将其与 LLM 集成,使其可用于完成。 这种嵌入的使用是 检索扩充生成的一个重要组成部分。
增加可在提示中容纳的文本量
使用嵌入来增加可在提示中容纳的上下文量,而无需增加所需的令牌数。
例如,假设要在提示中包含 500 页的文本。 该原始文本的令牌数将超过输入令牌限制,因此无法直接包含在提示中。 可以使用嵌入内容将大量文本汇总和分解为足够小的片段,以适合一个输入,然后评估每个段落与整个原始文本的相似性。 然后,可以选择一个最能保留原始文本的语义含义的片段,并在提示中使用它,而不会达到令牌限制。
执行文本分类、摘要或翻译
使用嵌入来帮助模型了解文本的含义和上下文,然后对文本进行分类、汇总或翻译。 例如,可以使用嵌入来帮助模型将文本分类为正面或负面、垃圾邮件或非垃圾邮件,或者新闻或评论。
生成和转录音频
使用音频嵌入处理应用中的音频文件或输入。
例如, Azure AI 语音 支持一系列音频嵌入,包括 语音转文本 和 文本转语音。 可以实时或批量处理音频。
将文本转换为图像或图像转换为文本
语义图像处理需要图像嵌入,大多数 LLM 无法生成。 使用图像嵌入模型(如 ViT )为图像创建矢量嵌入。 然后,可以将这些嵌入与图像生成模型结合使用,以使用文本创建或修改图像,反之亦然。 例如,可以使用 DALL·用于生成图像的 E 模型 ,例如徽标、人脸、动物和景观。
生成或编写代码文档
通过将不同的代码或文本表达式转换为通用表示形式,使用嵌入来帮助模型从文本创建代码,反之亦然。 例如,可以使用嵌入来帮助模型在 C# 或 Python 中生成或文档代码。
选择嵌入模型
通过使用 AI 嵌入模型为原始数据生成嵌入,该模型可将非数值数据编码为向量(一个长的数字数组)。 该模型还可以解码嵌入到与原始原始数据具有相同或相似含义的非数值数据中。 可以使用许多嵌入模型,OpenAI 的 text-embedding-ada-002 模型是常用的模型之一。 有关更多示例,请参阅 Azure OpenAI 上提供的嵌入模型列表。
在向量数据库中存储和处理嵌入
生成嵌入内容后,需要一种方法来存储它们,以便稍后可以使用对 LLM 的调用来检索它们。 矢量数据库旨在存储和处理向量,因此它们是嵌入的自然家园。 不同的矢量数据库提供不同的处理功能,因此应根据原始数据和目标选择一个。 有关选项的信息,请参阅 可用的矢量数据库解决方案。
在 LLM 解决方案中使用嵌入内容
构建基于 LLM 的应用程序时,可以使用语义内核集成嵌入模型和矢量存储,以便快速拉取文本数据,并生成和存储嵌入内容。 这样,便可以使用矢量数据库解决方案来存储和检索语义记忆。