langchain-chatglm浅尝

2023/6/15

# 运行环境

# 环境要求

# 首先,确定你的机器安装了 Python 3.8 及以上版本
$ python --version
Python 3.8.13
1
2
3

建议在linux上运行,windows会出现比较多的错误,本次在windows的ubuntu wsl子系统运行。

需要注意,WSL子系统版本需要是2。

在CMD执行命令查看WSL子系统版本,如果不是2或为空则为1需要升级
>wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
1
2
3
4

升级请参考WSL文档。

# 显卡环境

参考大模型N卡环境配置 (opens new window)安装显卡驱动、CUDA Toolkit 、cuDNN

# 安装pytorch

python参考pytorch安装 (opens new window)

# 项目运行

# ChatGLM

只需要需要下载模型实现和参数 (opens new window),详细见chatGLM (opens new window)

# langchain-ChatGLM

 拉取仓库
$ git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git

# 进入目录
$ cd langchain-ChatGLM

# 项目中 pdf 加载由先前的 detectron2 替换为使用 paddleocr,如果之前有安装过 detectron2 需要先完成卸载避免引发 tools 冲突
$ pip uninstall detectron2

# 检查paddleocr依赖,linux环境下paddleocr依赖libX11,libXext
$ yum install libX11 libXext -y
#以上包在ubuntu上替换为
sudo apt-get install libxext6 libX11-dev -y

# 安装依赖
$ pip install -r requirements.txt
$ apt-get install ffmpeg libsm6 libxext6  -y



# 验证paddleocr是否成功,首次运行会下载约18M模型到~/.paddleocr
$ python loader/image_loader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 配置修改

vim configs/model_config.py

# embedding模型使用了text2vec,建议提前下载到本地
# embedding_model_dict里面对应的text2vec的值就可以改为绝对路径地址
embedding_model_dict = {
    "text2vec": "/data/rd/llm/huggingface.co/text2vec-large-chinese",
}
EMBEDDING_MODEL = "text2vec"  # 指定embedding模型
# llm配置也是同样思路,将模型实现下载到本地,llm_model_dict里面对应的模型地址改为绝对路径
LLM_MODEL = "chatglm2-6b" 如chatglm2-6b

#  文本分句长度按需修改,100大概是50多个汉字,50-75个单词
# 尽量每句话不要太长
SENTENCE_SIZE = 100
# 热度我设置了800,按需测试,我这调小了没什么高质量回答
# VECTOR_SEARCH_SCORE_THRESHOLD = 800
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 启动项目

可以参考docs下的StartOption.md

python webui.py --model chatglm2-6b --no-remote-model

# 错误处理

ImportError: libGL.so.1: cannot open shared object file: No such file or directory
1

解决方法:

sudo apt-get install ffmpeg libsm6 libxext6  -y
1

错误:nvidia-smi 无法找到gpu

解决方法:

dpkg list |grep nvidia-utils 
apt-get remove nvidia-utils*
1
2

# 参考

Last Updated: 2023/9/27
只爱西经
林一