一、【ChatGLM-6B学习】-搭建一个简单的大模型

发布时间 2023-08-25 15:13:36作者: funnyboy0128

最近业务上需要用到大模型相关的知识,所以准备简单的搭建一个环境,详细的细节后面慢慢研究,现记录下搭建过程。至于为什么选择ChatGLM-6B,主要原因是它支持中英双语,同时支持离线部署,可以方便的构建本地化的问答知识库。

由于ChatGLM-6B对python版本有一定要求,目前要求3.7+版本,为了减少python版本冲突的影响,可以通过使用conda来管理python环境。

安装Anaconda3

1、下载地址:https://www.anaconda.com/download/,选择自己机器对应的版本下载,我这里以Linux环境

2、安装:执行脚本   bash Anaconda3-2022.5-Linux-x86_64.sh

创建python虚拟环境

1、创建虚拟环境:conda create --name xxx_name pyhton=3.8     # xxx_name 为创建的虚拟环境的名称  通过python指定相应的版本,这里需要>=3.7即可

2、激活虚拟环境:source activate xxx_name

部署ChatGLM-6B

1、下载ChatGLM-6B代码

git clone https://github.com/THUDM/ChatGLM-6B.git

进入到ChatGLM-6B中,执行相应的安装命令

pip install gradio     # 用于启动图形化界面

pip install -r requrement.txt

 

2、下载模型代码(ChatGLM-6B的模型代码在huggingface上托管:https://huggingface.co/THUDM/chatglm-6b)

下载模型代码不是必须的,可以启动后在线下载,不过受限于网络速度,这里提前下载好放在本地,并修改代码指向本地模型。

git clone https://huggingface.co/THUDM/chatglm-6b

 

3、修改web_demo.py的模型应用路径如下图:

 

4、启动

python web_demo.py

 

实现效果

通过启动完成后的链接访问,如下:

 参数解释:

Maximum length:限制输入序列的最大长度

Top P:指在生成文本等任务中,选择可能性最高的前P个词的概率累加和(值越高,准确性更高,但是多样性可能降低)

Temperature:增加或减少模型对不同类别的置信度(值越小,会使得模型更加自信)

 

常见问题/报错:

1、RuntimeError

 解决办法:

a、检查下载的模型文件是否完整(8个文件每个都在1G以上,痛殴对比文件大小可以看出来是否正确)

b、检查模型文件中的其他文件是否和huggingface仓库文件一致,如果不一致可以手动下载

 

2、CUDA OOM问题

解决办法: