AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LlamaIndex快速上手
发布日期:2024-04-20 18:41:16 浏览次数: 2721 来源:PyTorch研习社


这里要说明一下,我们需要两种模型:

  • LLM,也就是负责生成内容的大模型。

  • embedding model,也就是负责生成以向量形式表示文本语义的嵌入模型。


设置 OpenAI 的 API key

默认情况下,LlamaIndex 使用的都是 OpenAI 的 LLM 和嵌入模型,所以我们首先要有一个 OpenAI 的 API key:

import os
os.environ["OPENAI_API_BASE"] = "https://example.com/v1"os.environ["OPENAI_API_KEY"] = "sk-example-key"

加载数据和建立索引

现在,我们可以加载文档数据集,并从文档数据集中建立索引:

from llama_index.core import (VectorStoreIndex,SimpleDirectoryReader,)
documents = SimpleDirectoryReader("./data").load_data()index = VectorStoreIndex.from_documents(documents)

SimpleDirectoryReader 可以直接扫描到指定目录中所有文档。

我们的目录结构如下:

查询索引

现在可以在建立好的索引上生成一个查询引擎,然后我们就可以利用查询引擎去提问:

这个答案是对的吗?

由于 data 目录中只有《中国航天发展简史》,所以我们问的所有问题,查询引擎都会试图从《中国航天发展简史》中去寻找答案,我们看一下原文的这一段:

可以看到答案是正确的。LLM 利用我们查询的问题和检索到的信息,稍微进行了一点推理,生成了答案。

如果没有这些检索到的信息,同样是 OpenAI 的 ChatGPT 3.5 给出的回复如下:

想要看看查询过程的日志吗?

那么就得在代码文件的开头加上:

import loggingimport sys
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

当把日志级别设置为 logging.INFO 时,打印出的日志就会少一点。

保存索引

索引其实就是一系列表示文本语义的嵌入向量(vector embedding),这些向量现在都位于内存中。我们可以将索引保存到磁盘:

index.storage_context.persist(persist_dir="./storage")

执行完之后就可以看到生成了一个 storage 目录。

现在我们的代码可以完善一下:

  • 如果索引不在磁盘上,那么就加载数据,建立索引,并将索引保存到磁盘。

  • 否则,直接从磁盘上加载索引,节省了生成索引的时间和调用 OpenAI 的嵌入模型的 token 开销。


使用本地的模型

基于费用、网络环境、数据隐私等原因。我们需要使用开源的模型。现在我们将默认的嵌入模型和 LLM 分别换成 BGE 的和基于 Meta 开源的 Llama2-chat-13B 的中文版:

from llama_index.embeddings.huggingface import HuggingFaceEmbeddingfrom llama_index.llms.llama_cpp import LlamaCPPfrom llama_index.core import Settings
embed_model = HuggingFaceEmbedding(model_name="../models/BAAI/bge-large-zh-v1.5",query_instruction="为这个句子生成表示以用于检索相关文章:")
Settings.embed_model = embed_model
llm = LlamaCPP(model_path="../models/Llama/chinese-alpaca-2-13b-q8_0.gguf")
Settings.llm = llm

并通过 Settings 设置了全局的嵌入模型和 LLM。

然后重新建立索引,并询问。

虽然回复不怎么样,但是还是正确的。

注意!要在本地运行 Llama2 13B 模型,你至少要有 32GB 的内存。至于 GPU 就无所谓了,有就快,没有就慢。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询