前言
在上篇LlamIndex二 RAG应用开发 - 掘金 (juejin.cn)中,我们学习到LlamaIndex
对RAG
的全面支持。这篇文章,我们就来细化这个过程,尝试各种配置选项,满足不同场景需求。学习过后,大家再开发RAG
应用,会更轻松。
自定义文档分块
chunk_size
参数通常用于指定在处理大量数据时一次处理的数据项数量,用于计算索引的长度。如下代码:
python复制代码from llama_index import ServiceContext
service_context = ServiceContext.from_defaults(chunk_size=500)
自定义向量存储
我们可以选择自定义的vector_store数据库,设置存储方式。
python复制代码import chromadb
from llama_index.vector_stores import ChromaVectorStore
from llama_index import StorageContextchroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("quickstart")
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
在这里我们使用的向量数据库是chromadb,LlamaIndex 专门提供了ChromaVectorStore
API。StorageContext
可以让我们配置存储上下文。 在上面的代码中,首先chroma_client = chromadb.PersistentClient()
实例化了chromadb的持久化存储,chroma_collection = chroma_client.create_collection("quickstart")
并将当前项目的向量数据库命名为qucikstart,vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
生成存储实例,最后storage_context = StorageContext.from_defaults(vector_store=vector_store)
生成存储上下文对象。
自定义检索
当我们在使用查询引擎检索时,我们可以通过设置similarity_top_k
来定义检索时的相似文档数。这样可以在满足检索需求的同时,节省token 开销。
ini复制代码index = VectorStoreIndex.from_documents(documents)
# 指定返回5条相似数据
query_engine = index.as_query_engine(similarity_top_k=5)
指定大模型
在自定义文档分块中,我们使用了ServiceContext.from_defaults
来配置chunk_size, 其实还可以给它传递llm参数,来指定使用的大模型。
ini复制代码service_context = ServiceContext.from_defaults(llm=OpenAI())
指定响应模式
在第一篇文章中,我们使用query_engine = index.as_query_engine(response_mode='tree_summarize')
创建了一个查询引擎,它基于文档索引进行查询。参数response_mode
值设置为tree_summarize
,查询结果以树形结构显示。
ini复制代码query_engine = index.as_query_engine(response_mode='tree_summarize')
指定流式响应
ini复制代码query_engine = index.as_query_engine(streaming=True)
响应格式为流。
案例
我们将综合以上配置,并用到了下面的示例中,上colab。
- 安装llama-index 和chromadb向量数据库
css复制代码!pip install -q -U llama-index chromadb
-q -U 的意思是省略一些下载细节。
- 拉取文档
bash复制代码!mkdir data
!wget https://raw.githubusercontent.com/jerryjliu/llama_index/main/examples/paul_graham_essay/data/paul_graham_essay.txt -O data/paul_graham_essay.txt
使用mkdir 创建data文件夹,colab
有类似虚拟机的文件系统。 wget
拉取文件存放到data目录下,文件名为 paul_graham_essay.txt。
- 安装openai,设置OPENAI_API_KEY环境变量
lua复制代码!pip install
import os
os.environ['OPENAI_API_KEY'] = 'your valid openai api key'
- 引入向量数据库相关模块
python复制代码import chromadb
from llama_index import VectorStoreIndex, SimpleDirectoryReader from llama_index import ServiceContext
from llama_index.vector_stores import ChromaVectorStore
from llama_index import StorageContext
from llama_index.llms import OpenAI
- 实例化ServiceContext, 配置chunk_size和llm
python复制代码service_context = ServiceContext.from_defaults(chunk_size=500, llm=OpenAI())
- 配置向量存储
python复制代码chroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("quickstart") vector_store = ChromaVectorStore(chroma_collection=chroma_collection) storage_context = StorageContext.from_defaults(vector_store=vector_store)
- 索引文档
python复制代码documents = SimpleDirectoryReader('data').load_data()
index = VectorStoreIndex.from_documents(documents, service_context=service_context,storage_context=storage_context)
原来配置了chunk_size和llm的service_context和配置了chromadb向量数据库的storage_context与documents一起在VectorStoreIndex.from_documents中相汇,生成等下查询引擎需要的索引对象,了解,此刻,可以带上LlamaIndex的紧箍儿…
- 指定响应模式,以及启用流式响应
python复制代码query_engine = index.as_query_engine(response_mode='tree_summarize', streaming=True)
response = query_engine.query("What did the author do?") response.print_response_stream()
好,现在让我们一起来看下执行结果吧。
这张截图可以看到chroma文件
总结
今天搞清楚了LlamaIndex的配置细节,以Rag应用为例,能干活了, 哈哈。
那么,我们该如何学习大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。
L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署
一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。
以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。