目录
参考官方wiki,本文以Ubuntu20.04_x64,RTX4090,chatglm3-6b 模型为基础
1、软硬件要求
1.1、软件要求
- Linux Ubuntu 22.04.5 kernel version 6.7
开发者在以下环境下进行代码调试,在该环境下能够避免最多环境问题。
- Python 版本 == 3.11.7
- CUDA 版本: == 12.1
1.2、硬件要求
在GPU运行本地模型的 FP16 版本
- ChatGLM3-6B & LLaMA-7B-Chat 等 7B模型
- 最低显存要求: 14GB
- 推荐显卡: RTX 4080
- Qwen-14B-Chat 等 14B模型
- 最低显存要求: 30GB
- 推荐显卡: V100
- Yi-34B-Chat 等 34B模型
- 最低显存要求: 69GB
- 推荐显卡: A100
- Qwen-72B-Chat 等 72B模型
- 最低显存要求: 145GB
- 推荐显卡:多卡 A100 以上
一种简单的估算方式为:
FP16: 显存占用(GB) = 模型量级 x 2
Int4: 显存占用(GB) = 模型量级 x 0.75
1.3、个人配置参考
处理器: Intel® Core™ i9 processor 14900K
内存: 256 GB DDR5
显卡组: NVIDIA RTX4090 X 1 / NVIDIA RTXA6000 X 1
硬盘: 1 TB
操作系统: Ubuntu 22.04 LTS / Arch Linux, Linux Kernel 6.6.7
显卡驱动版本: 545.29.06
Cuda版本: 12.3 Update 1
Python版本: 3.11.7
2、创建cuda环境
# 创建chatchat 环境
conda create -n chatchat python=3.11.8
# 激活环境
conda activate chatchat
3、下载源码及模型
cd /home/chatchat
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
cd Langchain-Chatchat
# 安装全部依赖
pip install -r requirements.txt
# 模型下载 chatglm3-6b
# 需要在hugging face中下载,依赖lfs 插件, 并且需要借助VPN
cd /home/chatchat/models
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
git clone https://huggingface.co/BAAI/bge-large-zh-v1.5
# git clone https://huggingface.co/THUDM/chatglm2-6b
# git clone https://huggingface.co/moka-ai/m3e-base
4、配置文件修改
1、在/home/chatchat/Langchain-Chatchat/configs
目录下面找到model_config.py
修改其中模型配置
我的目录结构
Langchain-Chatchat
models
--bge-large-zh
--chatglm3-6b
2、服务和端口配置项 server_config.py
通常,这个页面并不需要进行大量的修改,仅需确保对应的端口打开,并不互相冲突即可。
如果你是Linux系统推荐设置
DEFAULT_BIND_HOST ="0.0.0.0"
5、初始化知识库
当前项目的知识库信息存储在数据库中,在正式运行项目之前请先初始化数据库(我们强烈建议您在执行操作前备份您的知识文件)。
5.1、训练自己的知识库
cd /home/chatchat/models
# 文字转向量模型
git clone https://huggingface.co/BAAI/bge-large-zh
-
如果您是第一次运行本项目,知识库尚未建立,或者之前使用的是低于最新master分支版本的框架,或者配置文件中的知识库类型、嵌入模型发生变化,或者之前的向量库没有开启
normalize_L2
,需要以下命令初始化或重建知识库:cd /home/chatchat/Langchain-Chatchat
python init_database.py --recreate-vs -
如果您已经有创建过知识库,可以先执行以下命令创建或更新数据库表:
cd /home/chatchat/Langchain-Chatchat
python init_database.py --create-tables
如果可以正常运行,则无需再重建知识库。
6、启动
python startup.py -a
可视化页面
注意左侧的温度参数:Temperature。对回答结果有影响
启动参数
--all-webui
为一键启动 WebUI 所有依赖服务;--all-api
为一键启动 API 所有依赖服务;--llm-api
为一键启动 Fastchat 所有依赖的 LLM 服务;--openai-api
为仅启动 FastChat 的 controller 和 openai-api-server 服务;- 其他为单独服务启动选项。
若想指定非默认模型,需要用 --model-name
选项,示例:
python startup.py --all-webui --model-name Qwen-7B-Chat
更多信息可通过 查看。
python startup.py -h
7、API接口调用
7.1、使用openai
# 需要安装openai 依赖,如果报错,安装指定版本,
# pip install openai==0.28
import openai
openai.api_key = "EMPTY"
openai.api_base = "http://192.168.1.1:20000/v1"
model = "chatglm3-6b"
# create a chat completion
completion = openai.ChatCompletion.create(
model=model,
messages=[{"role": "user", "content": "你好"}]
)
print(completion.choices[0].message.content)