LlamaIndex入门教程:使用本地模型的五步指南
在本教程中,我们将展示如何使用本地LLM和嵌入模型来构建一个简单的LlamaIndex应用。我们将使用BAAI/bge-base-en-v1.5作为嵌入模型,并通过Ollama服务Llama3模型。
提示
确保你已经按照自定义安装步骤进行了操作。
下载数据
本示例使用Paul Graham的散文《What I Worked On》的文本。你可以在我们的仓库的示例文件夹中找到许多其他示例。
获取它的最简单方法是点击此链接下载,并将其保存在名为data的文件夹中。
设置
Ollama是一个帮助你在本地设置LLM的工具(目前支持OSX和Linux。你可以通过WSL 2在Windows上安装Ollama)。
按照README学习如何安装它。
要下载Llama3模型,只需执行ollama pull llama3
。
注意:你需要一台至少有32GB RAM的机器。
要导入llama_index.llms.ollama
,你应该运行pip install llama-index-llms-ollama
。
要导入llama_index.embeddings.huggingface
,你应该运行pip install llama-index-embeddings-huggingface
。
更多集成都可以在https://llamahub.ai 上找到。
加载数据并构建索引
在你创建了data文件夹的同一文件夹中,创建一个名为starter.py的文件,内容如下:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama
documents = SimpleDirectoryReader("data").load_data()
# bge-base embedding model
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-base-en-v1.5")
# ollama
Settings.llm = Ollama(model="llama3", request_timeout=360.0)
index = VectorStoreIndex.from_documents(
documents,
)
这将在data文件夹中的文档上构建一个索引(在本例中仅包含散文文本,但可以包含许多文档)。
你的目录结构应该如下所示:
├── starter.py
└── data
└── paul_graham_essay.txt
我们通过HuggingFaceEmbedding类使用BAAI/bge-base-en-v1.5模型,并通过Ollama LLM包装器加载Llama3模型。更多信息请参见本地嵌入模型页面。
查询你的数据
将以下行添加到starter.py中:
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
这将为你的索引创建一个问答引擎,并提出一个简单的问题。你应该得到一个类似于以下的响应:作者写了短篇故事,并试图在IBM 1401上编程。
你可以查看日志,类似我们的入门示例,持久化/加载索引。
提示
- 了解更多高级概念。
- 告诉我如何自定义事物。
- 对特定模块感到好奇?查看组件指南。
通过LlamaIndex,我们不仅提供了一个强大的工具集,还构建了一个充满活力的社区,致力于推动LLMs在各种应用中的潜力。无论你是初学者还是经验丰富的开发者,LlamaIndex都为你提供了探索和实现上下文增强LLM应用的途径。加入我们,一起解锁LLMs的无限可能!