参考:
本项目 https://github.com/PromtEngineer/localGPT
模型 https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML
云端知识库项目:基于GPT-4和LangChain构建云端定制化PDF知识库AI聊天机器人_Entropy-Go的博客-CSDN博客
1. 摘要
相比OpenAI的LLM ChatGPT模型必须网络连接并通过API key云端调用模型,担心数据隐私安全。基于Llama2和LangChain构建本地化定制化知识库AI聊天机器人,是将训练好的LLM大语言模型本地化部署,在没有网络连接的情况下对你的文件提问。100%私有化本地化部署,任何时候都不会有数据离开您的运行环境。你可以在没有网络连接的情况下获取文件和提问!
介绍一款尖端应用,使用户能够在没有互联网连接的情况下利用语言模型的功能。这款先进工具作为一个不可或缺的资源,帮助用户在超越传统语言模型工具(如ChatGPT)的限制之外获取信息。
这个应用的一个关键优势在于数据控制的保留。当处理需要保持在组织内部或具有最高机密性的个人文件时,这个功能尤为重要,消除了通过第三方渠道传输信息的需求。
将个人文件无缝集成到系统中非常简单,确保用户体验流畅。无论是文本、PDF、CSV还是Excel文件,用户都可以方便地提供所需查询的信息。该应用程序快速处理这些文档,有效地创建了一个全面的数据库供模型利用,实现准确而深入的回答。
这种方法的一个显著优势在于其高效的资源利用。与替代方法中资源密集型的重新训练过程不同,这个应用程序中的文档摄取要求更少的计算资源。这种效率优化可以实现简化的用户体验,节省时间和计算资源。
体验这个技术奇迹的无与伦比的能力,使用户能够在离线状态下充分发挥语言模型的潜力。迎接信息获取的新时代,提高生产力,拓展可能性。拥抱这个强大的工具,释放您的数据的真正潜力。
2. 准备工作
2.1 Meta's Llama 2 7b Chat GGML
These files are GGML format model files for Meta's Llama 2 7b Chat.
GGML files are for CPU + GPU inference using llama.cpp and libraries and UIs which support this format
2.2 安装Conda
CentOS 上快速安装包管理工具Conda_Entropy-Go的博客-CSDN博客
2.3 升级gcc
CentOS gcc介绍及快速升级_Entropy-Go的博客-CSDN博客
3. 克隆或下载项目localGPT
git clone https://github.com/PromtEngineer/localGPT.git
4. 安装依赖包
4.1 Conda安装并激活
conda create -n localGPT conda activate localGPT
4.2 安装依赖包
如果Conda环境变量正常设置,直接pip install
pip install -r requirements.txt
否则会使用系统自带的python,可以使用Conda的安装的绝对路径执行,后续都必须使用Conda的python
whereis conda conda: /root/miniconda3/bin/conda /root/miniconda3/condabin/conda
/root/miniconda3/bin/pip install -r requirements.txt
安装时如遇下面问题,参考2.3 gcc升级,建议升级至gcc 11
ERROR: Could not build wheels for llama-cpp-python, hnswlib, lxml, which is required to install pyproject.toml-based project
5. 添加文档为知识库
5.1 文档目录以及模板文档
可以替换成需要的文档
~localGPT/SOURCE_DOCUMENTS/constitution.pdf
注入前验证下help,如前面提到,建议直接使用Conda绝对路径的python
/root/miniconda3/bin/python ingest.py --help Usage: ingest.py [OPTIONS] Options: --device_type [cpu|cuda|ipu|xpu|mkldnn|opengl|opencl|ideep|hip|ve|fpga|ort|xla|lazy|vulkan|mps|meta|hpu|mtia] Device to run on. (Default is cuda) --help Show this message and exit.
5.2 开始注入文档
默认使用cuda/GPU
/root/miniconda3/bin/python ingest.py
可以指定CPU
/root/miniconda3/bin/python ingest.py --device_type cpu
首次注入时,会下载对应的矢量数据DB,矢量数据DB会存放到 /root/localGPT/DB
首次注入过程
/root/miniconda3/bin/python ingest.py
2023-08-18 09:36:55,389 - INFO - ingest.py:122 - Loading documents from /root/localGPT/SOURCE_DOCUMENTS
all files: ['constitution.pdf']
2023-08-18 09:36:55,398 - INFO - ingest.py:34 - Loading document batch
2023-08-18 09:36:56,818 - INFO - ingest.py:131 - Loaded 1 documents from /root/localGPT/SOURCE_DOCUMENTS
2023-08-18 09:36:56,818 - INFO - ingest.py:132 - Split into 72 chunks of text
2023-08-18 09:36:57,994 - INFO - SentenceTransformer.py:66 - Load pretrained SentenceTransformer: hkunlp/instructor-large
Downloading (…)c7233/.gitattributes: 100%|███████████████████████████████████████████████████████████████████████████| 1.48k/1.48k [00:00