Bootstrap

LangChain+ChatGLM基本原理及私有化部署

一、LangChain
1.作用:用于提升大型语言模型(LLMs)功能的框架,能够让大型语言模型结合外部的计算和数据源,并根据信息执行指定操作。
结合LLM大模型外部数据等,外部工具及数据等实现特定文档问答、聊天机器人、代理执行任务以及文本摘要。
2.核心组件:
Prompts(提示): 管理LLM输入工具
Compents(组件):为LLMs提供接口封装、模板提示和信息检索索引;
Chains(链):能将LLM与其他组件如外部API、数据库等连接起来组合起来解决复杂任务流程,如在大量文本中查找信息;
Agents(代理):使用LLM决策的工具,执行特定任务并生成文本输出,通常由动作、观察和决策三部分组成。
Memory(记忆):用来存储先前输入、输出或其他信息,保存记忆多次调用上下文或历史数据。
3.执行流程:
用户问题->语言模型生成向量->向量数据库搜索相似->语言模型->根据结果执行操作
二、ChatGLM
1.GLM框架:
整体基于Transformer基础三个微小改动:
重新排列了层归一化和残差连接的顺序、针对token的输出预测使用单一线性层、用GeLU替换ReLU激活函数。
2. 应用场景:
基于 GLM(Generative Language Model)的自然语言处理模型,它具备强大的文本生成能力和语义理解能力,可以为用户提供高质量的对话体验。

三、安装部署

  1. ChatGLM环境要求
    硬件配置:
    Int4 版本的 ChatGLM3-6B最低配置:
    内存>= 8GB
    显存>= 5GB(1060 6GB,2060 6GB
    FP16 版本的ChatGLM3-6B最低配置:
    内存>= 16GB
    显存>= 13GB(4080 16GB)
    软件环境:
    python>=3.10
    python 版本推荐3.10.12
    transformers 库版本推荐为 4.30.2
    torch 推荐使用 2.0 及以上的版本

2.ChatGLM源码安装部署
下载源码:

git clone https://github.com/THUDM/ChatGLM3.git

下载模型:
先安装git lfs命令

git lfs install
git clone https://swanhub.co/ZhipuAI/chatglm3-6b.git

安装依赖

cd ChatGLM3
pip install -r requirements.txt

安装cuda
参考安装Tesla驱动(Linux)_GPU云服务器(EGS)-阿里云帮助中心
运行openai_api_demo目录
(1)激活环境:conda activate xnenv
(2)进入目录:cd /home/chatglm/ChatGLM3/openai_api_demo
(3)启动应用:nohup python api_server.py > openai_api_demo.out &
主要4个接口:
接口1-检查服务健康状态(get):http://127.0.0.1:8000/health
接口2-列出可用模型列表(get):http://127.0.0.1:8000/v1/models/
接口3-处理聊天完整请求(post):http://127.0.0.1:8000/v1/chat/completions
接口4-处理文本输入列表嵌入请求(get):http://192.168.0.129:8000/v1/chat/embeddings

3.Langchain-Chatchat本地部署
基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,通过RAG提供了本地创建用户知识库的支持,使得在大语言模型基础上,可以接入用户数据,实现基于大语言模型的数据抽取和分析,并提供更加灵活友好的人性化交互方式。

安装python3.11: pip install python=3.11.7
下载源码:git clone https://github.com/chatchat-space/Langchain-Chatchat.git
安装依赖:cd Langchain-Chatchat
         pip install -r requirements.txt   
         pip install -r requirements_api.txt
         pip install -r requirements_webui.txt
下载模型:git lfs install 
         wget https://hf-mirror.com/hfd/hfd.sh
         chmod a+x hfd.sh
         export HF_ENDPOINT=https://hf-mirror.com
         ./hfd.sh THUDM/chatglm3-6b --repo-type dataset
 生成配置:python copy_config_example.py
 创建向量数据库:python init_database.py --recreate-vs
 修改configs/model_config.py以及configs/server_config.py适配平台环境
 启动服务: python startup.py -a
 访问: http://localhost:8501
;