LlamaIndex中的嵌入技术:开发者指南
欢迎,代码探险家们!今天,我们将深入探讨LlamaIndex中的嵌入技术,这是一项强大的自然语言处理工具。嵌入技术可以将文本转换为复杂的数值表示,从而捕捉文本的语义信息。这些嵌入模型经过训练,能够以这种方式表示文本,并支持包括搜索在内的多种应用。
嵌入技术的概念
嵌入技术在LlamaIndex中用于将文档表示为复杂的数值表示。嵌入模型接受文本作为输入,并返回一个长长的数字列表,用于捕捉文本的语义。这些嵌入模型经过训练,能够以这种方式表示文本,并支持包括搜索在内的多种应用。
高层次的理解
如果用户询问关于狗的问题,那么该问题的嵌入将与谈论狗的文本的嵌入高度相似。
相似度计算
在计算嵌入之间的相似度时,有许多方法可以使用(如点积、余弦相似度等)。默认情况下,LlamaIndex使用余弦相似度来比较嵌入。
嵌入模型的选择
有许多嵌入模型可供选择。默认情况下,LlamaIndex使用OpenAI的text-embedding-ada-002。我们还支持Langchain提供的任何嵌入模型,并提供了一个易于扩展的基础类,用于实现您自己的嵌入模型。
使用模式
在LlamaIndex中,嵌入模型通常在Settings对象中指定,然后在向量索引中使用。嵌入模型将用于在索引构建期间嵌入文档,并在稍后使用查询引擎进行查询时嵌入任何查询。您还可以按索引指定嵌入模型。
安装嵌入模型
如果您还没有安装嵌入模型,可以使用以下命令进行安装:
pip install llama-index-embeddings-openai
然后,您可以按如下方式使用嵌入模型:
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import VectorStoreIndex
from llama_index.core import Settings
# 全局设置
Settings.embed_model = OpenAIEmbedding()
# 按索引设置
index = VectorStoreIndex.from_documents(documents, embed_model=embed_model)
节省成本
为了节省成本,您可能希望使用本地模型。可以使用以下命令安装Hugging Face的嵌入模型:
pip install llama-index-embeddings-huggingface
然后,您可以按如下方式使用本地模型:
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.core import Settings
Settings.embed_model = HuggingFaceEmbedding(
model_name="BAAI/bge-small-en-v1.5"
)
这将使用Hugging Face提供的性能良好且快速的默认模型。
入门指南
最常见的嵌入模型使用方式是在全局Settings对象中设置它,然后使用它来构建索引和查询。输入文档将被分解为节点,嵌入模型将为每个节点生成一个嵌入。
默认情况下,LlamaIndex将使用text-embedding-ada-002,