llamaindex+Internlm2 RAG实践
个人对RAG的理解,并不对大语言模型进行微调,而是为其增加一个知识库,该知识库的的输入可以是word,pdf等格式文字,这些文字通过词嵌入向量模块后被转化为词向量储存,当用户进行提问时,问题也会被转化为词向量,问题向量会在知识向量库中寻找最相关,也就是距离最近的知识向量,然后将原始的用户问题和该知识共同作为提示,输入到大模型中,生成最终问答。
实践:1、配置基础环境,此处适用的是30%的A100,python版本3.10,安装Llamaindex、Pytorch、源词向量模型Sentence Transformer等相关依赖库。
2、下载InternLM2 1.8B,并询问xtuner是什么,得到答案如下图:
可以看出效果不好,模型并没有学习过xtuner的知识。
因此使用RAG对模型进行优化。先安装词向量依赖
pip install llama-index-embeddings-huggingface llama-index-embeddings-instructor
然后通过git clone https://github.com/InternLM/xtuner.git命令,获取知识库xtuner/README_zh-CN.md。
之后新建llamaindex_RAG.py并运行,这次得到的回答非常准确。
然后是在web上对llm进行询问,这个需要ssh连接,参考L0中的Linux课程,否则无法打开local网址。创建app.py并运行,得到下图:
然后提问: