分享
InternLM + LlamaIndex RAG 实践
输入“/”快速插入内容
InternLM + LlamaIndex RAG 实践
用户1672
用户9803
2024年7月31日修改
2976
本文将分为以下几个部分来介绍,如何使用
LlamaIndex
来部署
InternLM2 1.8B(以 InternStudio 的环境为例)
•
前置知识
•
环境、模型准备
•
LlamaIndex HuggingFaceLLM
•
LlamaIndex RAG
1.
前置知识
正式介绍检索增强生成(Retrieval Augmented Generation,RAG)技术以前,大家不妨想想为什么会出现这样一个技术。
给模型注入新知识的方式,可以简单分为两种方式,一种是内部的,即更新模型的权重,另一个就是外部的方式,给模型注入格外的上下文或者说外部信息,不改变它的的权重。
第一种方式,改变了模型的权重即进行模型训练,这是一件代价比较大的事情,大语言模型具体的训练过程,可以参考
InternLM2
技术报告。第二种方式,并不改变模型的权重,只是给模型引入格外的信息。类比人类编程的过程,第一种方式相当于你记住了某个函数的用法,第二种方式相当于你阅读函数文档然后短暂的记住了某个函数的用法。
对比两种注入知识方式,第二种更容易实现。RAG正是这种方式。它能够让基础模型实现非参数知识更新,无需训练就可以掌握新领域的知识。本次课程选用了LlamaIndex框架。LlamaIndex 是一个上下文增强的 LLM 框架,旨在通过将其与特定上下文数据集集成,增强大型语言模型(LLMs)的能力。它允许您构建应用程序,既利用 LLMs 的优势,又融入您的私有或领域特定信息。
RAG 效果比对
如图所示,由于
xtuner
是一款比较新的框架,
InternLM2-Chat-1.8B
训练数据库中并没有收录到它的相关信息。左图中问答均未给出准确的答案。右图未对
InternLM2-Chat-1.8B
进行任何增训的情况下,通过 RAG 技术实现的新增知识问答。
2.
环境、模型准备
2.1
配置基础环境
这里以在
Intern Studio
服务器上部署LlamaIndex为例。
首先,打开
Intern Studio
界面,点击
创建开发机
配置开发机系统。
填写
开发机名称
后,点击 选择镜像 使用
Cuda11.7-conda
镜像,然后在资源配置中,使用
30% A100 * 1
的选项,然后立即创建开发机器。
点击
进入开发机
选项。