InternLM + LlamaIndex RAG 实践
任务描述
-
任务要求1:基于 LlamaIndex 构建自己的 RAG 知识库,寻找一个问题 A 在使用 LlamaIndex 之前 浦语 API 不会回答,借助 LlamaIndex 后 浦语 API 具备回答 A 的能力,截图保存。注意:写博客提交作业时切记不要泄漏自己 api_key!
-
任务要求2:基于 LlamaIndex 构建自己的 RAG 知识库,寻找一个问题 A 在使用 LlamaIndex 之前 InternLM2-Chat-1.8B 模型不会回答,借助 LlamaIndex 后 InternLM2-Chat-1.8B 模型具备回答 A 的能力,截图保存。
-
任务要求3 :将 Streamlit+LlamaIndex+浦语API的 Space 部署到 Hugging Face。
任务要求1:构建浦语API的RAG
模型/环境准备
1. 创建新的conda环境,激活并安装依赖
conda create -n llamaindex-api python=3.10
conda activate llamaindex-api
在激活环境时遇到 VScode Terminal 终端出现显示两个环境名的问题(这里忘记截图了),命令行大概是这样的情况:
(llamaindex-api)(base) root@intern-studio-76105313:~#
感觉问题不大,但看着不大舒服,还是解决了一下。参考这个链接https://github.com/microsoft/vscode-python/wiki/Activate-Environments-in-Terminal-Using-Environment-Variables的解决方案,运行以下命令后重新启动Terminal即可。
conda config --set auto_activate_base False
之后安装 llamaindex
的各种依赖,注意这里采取先 llamaindex 后 pytorch 的安装顺序。
pip install einops==0.7.0 protobuf==5.26.1
pip install llama-index==0.11.20
pip install llama-index-llms-replicate==0.3.0
pip install llama-index-llms-openai-like==0.2.0
pip install llama-index-embeddings-huggingface==0.3.1
pip install llama-index-embeddings-instructor==0.2.1
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu121
一次性运行 pip install
命令,安装耗费时间较长,且无法看清安装进度,需要耐心等待。时间真的很漫长,进度好慢,另外开启一个新终端同时进行 Sentence Transformer
模型和 NLTK
下载。
2. 下载 Sentence Transformer 模型
首先创建两个文件夹,llamaindex_demo
存放模型下载 、仅API、API+RAG的 .py
文件以及RAG所需的知识库,model
存放下载的 Sentence Transformer 模型。
cd ~
mkdir llamaindex_demo
mkdir model
从 HF Mirror
下载不仅慢而且还下载失败,转而采用推荐的 modelscope
下载。
在运行 git lfs install
之前,需要先安装 apt-get install git-lfs
。安装好后再运行出现以下错误,因此使用 git init
命令在当前目录初始化一个新的 Git 仓库。
Error: Failed to call git rev-parse --git-dir: exit status 128
Git LFS initialized.
之后正常运行下面的下载命令进行模型下载,相比较HF Mirror
,简直就是飞速。
git lfs install
cd /root/model/
git clone https://www.modelscope.cn/Ceceliachenen/paraphrase-multilingual-MiniLM-L12-v2.git
mv paraphrase-multilingual-MiniLM-L12-v2 sentence-transformer
3. 下载NLTK相关资源
从国内仓库镜像地址下载相关资源,并解压保存到服务器上:
cd /root