如何在矩池云复现开源对话语言模型 ChatGLM

这篇具有很好参考价值的文章主要介绍了如何在矩池云复现开源对话语言模型 ChatGLM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

今天给大家分享如何在矩池云服务器复现 ChatGLM-6B,用 GPU 跑模型真是丝滑啊。

硬件要求

如果是GPU: 显存需要大于6G。

如何在矩池云复现开源对话语言模型 ChatGLM

  • ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGLM 相同的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
  • ChatGLM-6B-INT8 是 ChatGLM-6B 量化后的模型权重。具体的,ChatGLM-6B-INT8 对 ChatGLM-6B 中的 28 个 GLM Block 进行了 INT8 量化,没有对 Embedding 和 LM Head 进行量化。量化后的模型理论上 8G 显存(使用 CPU 即内存)即可推理,具有在嵌入式设备(如树莓派)上运行的可能。
  • ChatGLM-6B-INT4 是 ChatGLM-6B 量化后的模型权重。具体的,ChatGLM-6B-INT4 对 ChatGLM-6B 中的 28 个 GLM Block 进行了 INT4 量化,没有对 Embedding 和 LM Head 进行量化。量化后的模型理论上 6G 显存(使用 CPU 即内存)即可推理,具有在嵌入式设备(如树莓派)上运行的可能。

如果是CPU: 内存需要大于32G。

云服务器配置

如果你自己没有显卡,或者电脑运行内存不怎么办?很简单,租一个云电脑就可以了,今天将教大家如何在矩池云上复现 ChatGLM。

以下步骤需要在电脑上操作,手机屏幕太小不好操作!

注册账号

直接在矩池云官网进行注册,注册完成后可以关注矩池云公众号可以获得体验金,可租用机器进行测试配置。

上传模型文件

由于 Huggingface 下载不稳定,建议大家本地先下载好相关模型文件。

  • FP16 无量化模型下载地址:https://huggingface.co/THUDM/chatglm-6b
  • INT8 模型下载地址:https://huggingface.co/THUDM/chatglm-6b-int8
  • INT 4模型下载地址:https://huggingface.co/THUDM/chatglm-6b-int4

如何在矩池云复现开源对话语言模型 ChatGLM

本地下载方法:

  • 安装 git
  • 安装 git lfs: 直接官网下载安装包安装即可 https://git-lfs.com/
  • 使用 git lfs 下载
# 初始化
git lfs install
# 下载
git clone https://huggingface.co/THUDM/chatglm-6b-int4

大家本地下载好后,上传到云平台网盘(可离线上传不花钱)。

  • 方法1: 直接通过矩池云网盘上传 https://matpool.com/user/matbox

不用租用机器传数据
上传后如果空间不够,需要进行扩容。

如何在矩池云复现开源对话语言模型 ChatGLM

  • 方法2: 租用机器后,通过 scp 上传数据

需要花钱开机传数据,每次租用都得上传,不方便。

比如你租用机器后显示 ssh 链接为:ssh -p 26378 root@matpool.com

本地打开CMD/PowerShell/终端,输入下面指令进行数据传输:

scp -r -P 26378 本地文件/文件夹路径 root@matpool.com:/home

这样数据会上传到租用机器的 /home 目录下。

租用机器

在矩池云主机市场:https://matpool.com/host-market/gpu,如果复现 FP16无量化模型,至少需要选择 A4000 显卡;如果复现 INT4或者INT8模型,至少需要选择 A2000 显卡。 然后点击租用按钮。(你选其他显卡也行)

如何在矩池云复现开源对话语言模型 ChatGLM

租用页面,搜索 pytorch1.11,选择这个镜像,我就是用这个镜像复现的 ChatGLM-6B。

如何在矩池云复现开源对话语言模型 ChatGLM

选择镜像后在高级选项里添加一个 8000 端口,后面部署 Web 服务用。

如何在矩池云复现开源对话语言模型 ChatGLM

机器租用成功后点击 Jupyterlab 点击打开,即可快速打开 Jupyterlab,开始运行代码了。

如何在矩池云复现开源对话语言模型 ChatGLM

环境配置+代码运行

在自己电脑配置进行的安装 miniconda安装 Python3.9以及安装Nvidia驱动+Cuda都不用操作,因为矩池云已经帮我们配置好了。

1> Clone项目代码

你也可以自己 clone 代码,代码我们存到 /home 下。

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

项目目录结构:

.
├── PROJECT.md            
├── README.md
├── README_en.md
├── api.py                # 应用层:GLMAPI 版本
├── cli_demo.py           # 应用层:GLMCLI 版本
├── examples
├── limitations
├── ptuning
├── requirements.txt      # 依赖:项目Python依赖
├── resources
├── utils.py
├── web_demo.py           # 应用层:GLMWEB 版本
├── web_demo2.py          # 应用层:GLMWEB2 版本
└── web_demo_old.py       # 应用层:GLMWEB3 版本

2> 安装项目依赖包

# 进入项目目录
cd ChatGLM-6B
# 安装依赖
pip install -r requirements.txt 

如何在矩池云复现开源对话语言模型 ChatGLM

3> 下载模型文件

在最开始你应该就已经下载好模型,并把相关文件上传到服务器了。

如何在矩池云复现开源对话语言模型 ChatGLM

将网盘模型文件夹复制到项目文件夹下,按以下操作创建:

mkdir /home/ChatGLM-6B/THUDM
cd /home/ChatGLM-6B/THUDM
# 将网盘下的 chatglm-6b-int4 模型文件夹复制到当前目录(/home/ChatGLM-6B/THUDM)
cp -r /mnt/chatglm-6b-int4 ./

测试运行

/home/ChatGLM-6B 下新建一个 notebook,

如何在矩池云复现开源对话语言模型 ChatGLM

  • 测试运行
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True)
# CPU
model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True).float()

# GPU
# model = AutoModel.from_pretrained("THUDM/chatglm-6b-int4", trust_remote_code=True).half().cuda()

model = model.eval()

response, history = model.chat(tokenizer, "你好, 自我介绍下,我可以用你做什么", history=[])
print(response)

首先会检查模型是否正确~
如何在矩池云复现开源对话语言模型 ChatGLM

简单问个问题,2-3s 可以出答案:

如何在矩池云复现开源对话语言模型 ChatGLM

response, history = model.chat(tokenizer, "Python写一个Excel表合并脚本", history=[])
print(response)

问代码的话运行稍微慢点~得10-20s左右。

如何在矩池云复现开源对话语言模型 ChatGLM

GPU使用情况:
如何在矩池云复现开源对话语言模型 ChatGLM

response, history = model.chat(tokenizer, "我现在有个csv数据表, 表头是:用户手机号	上次登录时间	超出空间,需要统计指定日期前登录用户超出空间总和,并打印这些用户手机号;另外还需要统计超出指定容量用户的总超出空间数,并打印这些用户手机号,使用python pandas 实现,假设数据文件为:123.csv", history=[])
print(response)

对于复杂问题,等待时间更长40s左右,回复的代码里参数命名竟然还有中文!!!

如何在矩池云复现开源对话语言模型 ChatGLM

  • GLMCLI 版本 运行
# 进入项目目录
cd /home/ChatGLM-6B
# 启动脚本
python cli_demo.py

效果如图所示:

如何在矩池云复现开源对话语言模型 ChatGLM

  • GLMAPI 版本 运行
# 进入项目目录
cd /home/ChatGLM-6B
# 启动脚本
python api.py

如何在矩池云复现开源对话语言模型 ChatGLM

启动成功后,服务在 8000 端口,你需要发送POST请求。前面租用机器我们自定义了 8000 端口,在租用页面可以获得对应的公网链接:

如何在矩池云复现开源对话语言模型 ChatGLM

比如:https://hz.xxxx.com:xxxx/?token=xxxxx

需要注意,实际我们请求不需要 token,所以直接用:https://hz.xxxx.com:xxxx 这段即可。

curl请求:

curl -X POST "https://hz.xxxx.com:xxxx" \
     -H 'Content-Type: application/json' \
     -d '{"prompt": "你好", "history": []}'

Python请求:

import requests
import json
def getGLM(prompt, history):
    '''
    curl -X POST "https://hz.xxxx.com:xxxx" \
     -H 'Content-Type: application/json' \
     -d '{"prompt": "你好", "history": []}'
    '''
    url = 'https://hz.xxxx.com:xxxx'
    # 设置请求头
    headers = {
    'Content-Type': 'application/json'
    }
    data = {
    'prompt': prompt,
    'history': history
    }
    # 发送请求并获取响应
    response = requests.post(url, headers=headers, data=json.dumps(data))
    # 检查响应状态码
    if response.status_code == 200:
        # 获取响应数据
        rsp = response.json()
        return rsp
    else:
        print('请求失败,状态码:', response.status_code)
        
# 测试请求
history=[]
prompt = "假设你是一位Python高手,请用Python Pandas 模块实现一个Excel文件批量合并脚本"
getGLM(prompt, history)

和服务器上直接请求速度差不多,30s左右。

如何在矩池云复现开源对话语言模型 ChatGLM

  • GLMWEB3 版本 运行
# 进入项目目录
cd /home/ChatGLM-6B
# 安装依赖
pip install streamlit streamlit_chat
# 启动脚本
streamlit run web_demo2.py --server.port 8000 --server.address 0.0.0.0

如何在矩池云复现开源对话语言模型 ChatGLM

运行后服务会启动到 8000端口,host 设置成0.0.0.0,这样我们访问租用页面 8000 端口链接即可访问到对应服务了。

前面租用机器我们自定义了 8000 端口,在租用页面可以获得对应的公网链接:

如何在矩池云复现开源对话语言模型 ChatGLM

比如:https://hz.xxxx.com:xxxx/?token=xxxxx

需要注意,实际我们请求不需要 token,所以直接用:https://hz.xxxx.com:xxxx 这段即可。

如何在矩池云复现开源对话语言模型 ChatGLM

这个第一次运行可能比较慢,它是提问的时候才开始加载检查模型。

说实话,这个问题的回答有点出乎意料,给了一个用 pygame 写的猜数游戏,一般都会回复那种 cmd 版本。

如何在矩池云复现开源对话语言模型 ChatGLM文章来源地址https://www.toymoban.com/news/detail-511911.html

到了这里,关于如何在矩池云复现开源对话语言模型 ChatGLM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在GPU服务器(如AutoDL,矩池云)上运行GUI程序

    最近在搞算法和设计GUI系统的时候遇到了问题,因为自己的算力不够,所以租用的GPU服务器,由于需要设计一个GUI平台,但是服务器不支持图形界面,按照租用服务器的帮助文档以及客服的解答,终于实现了在服务器上运行GUI程序,在这里分享一下踩过的坑和方法步骤。 Au

    2024年02月05日
    浏览(46)
  • 【新手入门】矩池云使用指南

    矩池云按使用时间收费,是一款性价比较高的服务器平台,下面根据个人经验介绍第一次如何使用矩池云服务器。 链接: https://www.matpool.com 记得关注公众号领5个算力豆,用于新手体验 等待一分钟左右,页面出现jupyterlab链接 此时代码自动运行。注意第一次使用需要下载包 代

    2024年02月09日
    浏览(65)
  • 矩池云上使用nvidia-smi命令教程

    nvidia-smi全称是NVIDIA System Management Interface ,它是一个基于NVIDIA Management Library(NVML)构建的命令行实用工具,旨在帮助管理和监控NVIDIA GPU设备。 接下来我介绍一下,用nvidia-smi命令来查询机器GPU使用情况的相关内容。​ 我以上图的查询内容为例,已经复制出来了,如下, 我们来

    2024年02月16日
    浏览(45)
  • 【矩池云】YOLOv3~YOLOv5训练红外小目标数据集

    数据集下载地址:https://github.com/YimianDai/sirst 参考链接:https://github.com/pprp/voc2007_for_yolo_torch 1.1 检测图片及其xml文件 1.2 划分训练集 1.3 转为txt标签 1.4 构造数据集 最终数据集格式如下: 根据以上数据集 需要单独构建一个datasets文件夹,存放标签和图像,具体格式如下: 可以

    2024年02月08日
    浏览(72)
  • 使用矩池云 Docker 虚拟机安装VNC、Conda、Python及CUDA

    矩池云虚拟机支持 Docker 使用,但是由于虚拟机目前不支持启动时传递环境变量来设置VNC、Jupyterlab 连接密码,所以我们没有创建相关基础镜像(设置固定密码容易泄漏),下面给大家介绍手动安装使用 VNC、Jupyterlab、CUDA等步骤,以便支持使用 OpenGL 等功能的使用,开启更完善

    2024年03月25日
    浏览(44)
  • 开源双语对话语言模型 ChatGLM-6B 本地私有化部署

    本文首发于:https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGL

    2024年02月10日
    浏览(73)
  • IDEFICS 简介: 最先进视觉语言模型的开源复现

    我们很高兴发布 IDEFICS ( I mage-aware D ecoder E nhanced à la F lamingo with I ninterleaved C ross-attention S ) 这一开放视觉语言模型。IDEFICS 基于 Flamingo,Flamingo 作为最先进的视觉语言模型,最初由 DeepMind 开发,但目前尚未公开发布。与 GPT-4 类似,该模型接受任意图像和文本输入序列并生成

    2024年02月09日
    浏览(94)
  • 使用pipreqs生成requirements文件,并在服务器(矩池云)上通过requirements文件安装环境采坑记录

    今天用requirements文件想在服务器上安装环境,遇到了许多的坑,在这里记录一下,有需要的朋友可以看看这里有没有记录你存在的问题。 报错内容: ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: \\\'/home/ktietz/src/ci/alabaster 161192154452/work! 在网上看到的方法:

    2024年01月24日
    浏览(92)
  • AI最新开源:LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊

    一周SOTA:LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊 最近UC伯克利主导的LMSYS Org发布了大语言模型排位赛,刷新了大家对当下比较出名的开源和「闭源」聊天机器人的认识。 传送门:UC伯克利LLM排行榜再更新!GPT-4稳居第一,Vicuna-33B登顶开源模型第一

    2024年02月12日
    浏览(47)
  • 必看新手教程!一篇就够!pycharm链接云服务器--yolov5 yolov7训练自己的数据集(矩池云)

    趁着寒假期间稍微尝试跑了一下yolov5和yolov7的代码,由于自己用的笔记本没有独显,台式机虽有独显但用起来并不顺利,所以选择了租云服务器的方式,选择的平台是矩池云(价格合理,操作便捷) 需要特别指出的是,如果需要用pycharm链接云服务器训练,必须要使用pycharm的

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包