Datawhale干货 

作者:宋志学,Datawhale成员

注意事项-写在最前

  • 显卡需要至少6GB的显存

  • 使用GPU部署模型需要自行安装torch和与自己显卡匹配的CUDA、cudnn

下载ChatGLM-6B

在GitHub上下载chatglm-6b的源码,地址如下

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

开源双语对话语言模型  | An Open Bilingual Dialogue Language Model

可以使用git clone代码,也可以下载代码压缩包到本地(看你心情)

9c542dd6fea1cafd8dae6de1f7692ce3.png

然后,安装一些包。

pip install -r requirements.txt

下载int4模型

在Hugging Face上下载chatglm-6b int4量化模型地址如下:

https://huggingface.co/THUDM/chatglm-6b-int4

ca88e564112c64d735036820df48f88f.png

这些所有文件都需要下载(可能需要一点点魔法,但是相信聪明的你,一定可以!)

在刚刚下载好的chatglm源码中新建一个用于下载模型文件的文件夹,命名为chatglm-6b-int4(你也可以换一个你喜欢的名字)。将Hugging Face上的int4量化模型下载到里面。

932ecf23204e10fde123d6fecc9ec4db.png

修改源码

web_demo.py

将源码中wei_demo.py文件中的第5、6两行代码中的模型路径修改为chatglm-6b-int4也就是刚刚下载模型的文件夹。如下图所示。

切记:不要用./chatglm-6b-in4不要出现"点杠"的形式,如果你把模型文件放在了其他地方,请务必使用绝对路径,如:"G:\日常文件\Chatgpt相关\ChatGLM-6B\chatglm-6b-int4"。(要使用双斜杠,双斜杠,双斜杠!!!)鼓励你像我这样直接放在源码里面,免去路径问题的困扰。(相信你足够聪明,可以解决这个问题!)

fa1cdf21cf5806b6e7610da46059e8e5.png bebb629b47437ec5159cf30f8beb627c.png

api.py

daf13e9213d34e91b5f6d59cfd4834f0.png 1eb1d9c67a9b44be160a4b3f30b7130e.png

cli_demo.py

3640bcffbe345e24eda537cfdb896f91.png 7b97c79e674cca187f424a0d64e3987d.png

运行代码

web_demo.py

在下载chatglm源码的目录,打开cmd,输入python web_demo.py经过一段时间的等待,出现如下图一样的输出就代表运行成功,在浏览器输入地址:http://127.0.0.1:7860,就可以愉快地使用chatglm啦~

  • gcc报错不需要管,属于windows自己问题,咱们使用GPU运行,gcc与我们无关

    在 CPU 上运行时,会根据硬件自动编译 CPU Kernel ,请确保已安装 GCC 和 OpenMP (Linux一般已安装,对于Windows则需手动安装),以获得最佳并行计算能力。

2a51d4d3a79b5cc0897fa3bfd873d345.png 299fd8f913f6ec9b463b6f669edb70fa.png

可以看到显存占了5.7GB,所以需要至少一张6GB的显存的显卡,再来玩这个。

  • 注意:对话太长也会爆显存。

17c4fbec5d992edc42fcc645ba497903.png

api.py

在命令行输入python api.py,经过一段时间的运行,出现如下输出,就是运行成功。

747e77ddd21d05b46985ccdbf44d9be8.png

按照官网给的示例

curl -X POST "http://127.0.0.1:8000"
-H 'Content-Type: application/json'
-d '{"prompt": "你好", "history": []}'

可以使用python中的requests库进行访问,聪明的你可以把这个代码封装一下实现多轮对话。

import requests
import json

url = 'http://127.0.0.1:8000'
headers = {'Content-Type': 'application/json'}
data = {"prompt": "你好", "history": []}

response = requests.post(url=url, headers=headers, data=json.dumps(data))
response.json()
a9285df52a6765e233340d69bc028000.png

cli_demo.py

在命令行输入python cli_demo.py,经过一段时间的运行,出现如下输出,就是运行成功。

9f5ce733846cb033291ebf9aa5ec81f5.png

然后,可以和他进行对话,就像运行wei_demo.py一样。

9155dbe3e056b440e676daad671c1f4e.png

086d5ef7e6841bc64028b8ae11f73d69.png

原创不易,三连

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐