当前位置:首页|资讯|ChatGLM|ChatGPT|清华|人工智能

电脑小白挑战本地部署ChatGLM-6B

作者:C2H6S发布时间:2023-06-25

观前提示:这不是一个教程,只是个人的使用经历,遇到问题的话也许Bing AI是比我更好的解决方案

ChatGPT是去年爆火的一款语言模型,它实现了人类与AI的"对话"。ChatGPT是基于英文的语言环境训练的,我之前试玩的时候常常是用英语来进行对话的。最近,我了解到了还有一款由清华大学参与联合开发的对中文语言环境进行了优化的语言模型:ChatGLM-6B,有望解决我文案写不出来的问题

ChatGLM-6B 是一个人工智能助手,基于清华大学 KEG 实验室与智谱 AI 于 2023 年联合训练的语言模型 GLM-6B 开发而成,具有如下特点:
1. 语言理解:ChatGLM-6B 可以理解用户的语言输入,并从中获取相关信息。
2. 语言生成:ChatGLM-6B 可以根据用户的语言输入,生成相应的文本。
3. 上下文理解:ChatGLM-6B 可以上下文理解,即理解用户输入的上下文信息,从而更好地理解用户的语言输入。
4. 对多语言的支持:ChatGLM-6B 可以支持多种语言的输入和输出,包括中文、英文、西班牙语等。
5. 自动问答:ChatGLM-6B 可以根据用户的提问,自动生成答案,并且可以不断学习和更新知识。
综上所述,ChatGLM-6B 是一个功能强大、易于使用的语言模型,可以为用户提供良好的语言理解、语言生成和上下文理解等功能。                                                                                                                                  

                                                                                                                 ——ChatGLM-6B

我用的电脑配置(因为是准大学生所以是笔记本):
  1. CPU:R9 7940H

  2. 显卡:RTX 4060 8G(移动端)

  3. 内存容量:32G

  4. 系统为win11

可能需要的网站:

https://github.com/THUDM/ChatGLM-6B (这里可以下载语言模型相关代码的主体)

https://huggingface.co/THUDM/chatglm-6b-int4 (这里下载int4量化的模型,小显存可以用,但也要至少6G

https://github.com/ZhangErling/ChatGLM-6B/blob/main/deployment_windows.md (教程,后文提到的教程指的是这个,A卡可能要找额外的教程

https://developer.nvidia.com/cuda-downloads (CUDA Toolkit下载地址,下载时选择合适的系统和版本)

要在本地部署,我首先要准备一个运行环境。我了解到huggingface网站上的模型兼容Linux系统的居多,作为Windows用户,我选择了在WSL(Windows Subsystem for Linux)上部署。教程上用的是Linux的发行版Debian,所以我用的也是这个,这些可在Windows自带的微软商店上安装。

运行Debian后会自动安装到wsl上,设置完用户名和密码后输入exit退出

按教程给的链接安装完显卡驱动,然后教程中的2~4步实际上都可以跳过(微软win11上安装的已经是wsl2,迁移无特殊需求没必要)。接下来以管理员权限打开Windows PowerShell,输入wsl --user root以root用户登录,然后从第五步开始。键入vi /etc/apt/sources.list ,然后按dd将每一条删除,然后按i再右键粘贴

deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb http://mirrors.aliyun.com/debian-security buster/updates main
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian-security buster/updates main

deb http://mirrors.163.com/debian/ buster main non-free contrib
deb http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib

以替换下载源

替换后

然后按esc,再输入:x 然后回车,再apt update 执行更新,后续步骤就是:


安装apt包管理工具

apt install aptitude  # y

安装 python3

aptitude install python3  # y y

安装 python3-pip

aptitude install python3-pip  # y y

更新 pip

pip3 install --upgrade pip -i https://pypi.mirrors.ustc.edu.cn/simple/

#y 的意思是遇到类似于这个的选项,键入y回车即可

后续创建文件夹的步骤可以直接在文件资源管理器中完成,创好后可以把预先下载的文件解压后放这里

比如我创建的文件夹,相关文件已经下载好了并解压缩到这里

然后我们进入目录

/mnt/c/data1  (/mnt/c/相当于C:/)

此时如果直接进行后续步骤,最后结果很可能会是这样

出错

观察记录可以发现是缺少了cudart

为此,我们还需安装CUDA Toolkit

就是这个

先CTRL+C 终止,然后输入aptitude install gcc 先安装gcc,安装好后回到data1 文件夹输入bash cuda_12.1.1_530.30.02_linux.run(安装文件名)执行安装即可,然后按照教程进入main文件夹后安装相关运行依赖(过程有些漫长,给点耐心)

pip3 install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/

安装过程是有可能因为网络问题失败的,如果出现提示失败的红字,可以多重试几次。如果试了太多次还是不行,可以把-i后面的地址替换为https://pypi.tuna.tsinghua.edu.cn/simple两个网站都可以使用,哪个稳定选择哪个。

最后就可以使用web demo来体验这款语言模型了,不过在此之前还会有漫长的差不多4GB的模型文件下载。如果下载太慢,可以尝试先把模型下载到本地,如果不使用自动下载而使用自己下载的模型,那么我们需要修改web_demo.py中的模型目录。

在文件管理器中用能够打开.py文件的编辑器打开ChatGLM-6B-main文件夹里的web_demo.py文件

把这两行中的路径改为你下载的模型的路径,就可以了(这里我用的是int4量化后的模型,因为显存只有8G)

现在就可以跟着后续步骤运行了

进入main文件夹的目录,然后输入python3 web_demo.py

模型已经被正确装在,而且WEB服务也已经启动了,我们可以用浏览器打开下面的URL

大功告成了,现在就可以和ChatGLM愉快地对话了。

使用nvidia-smi查看,显卡已经被使用了6G多了

今天我只是完成了一个初级的本地部署大语言模型的工作,随后我还会结合Langchain来尝试一下为ChatGlm接入本地知识库,从而提高知识问答的能力。我想把ChatGlm与化学知识结合起来,应该是很酷的。也可以解决我文案写不出来的问题


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1