清华版Chatgpt牛到天上了,1/100的资源就可以在阿里云上部署

清华版Chatgpt牛到天上了,1/100的资源就可以在阿里云上部署

AI的浪潮席卷全球,各种AI技术和应用层出不穷。我在尝试了国外的一些AI模型后,觉得它们相对来说还有很大的提升空间。我决定尝试一下咱们中国自家研发的AI技术。

近期,我关注到了清华大学出品的ChatGLM。这款AI语言模型在GitHub上已经获得了9.1K Star,可见它在国际上的影响力是非常显著的。看着这个国产AI模型如此受欢迎,真是让人为中国人自豪!

我尝试使用ChatGLM进行了一番体验,发现它的对话生成能力非常出色,准确度相当高。这与国外的一些知名模型相比,毫不逊色,甚至在某些方面还更胜一筹。通过这次体验,我深感中国在AI领域的实力已经日渐强大。

更让人惊喜的是,ChatGLM居然能在单卡的服务器上顺利运行,这在以往的AI模型中是非常罕见的。看到如此强大的性能,我不禁感叹:咱们中国的AI技术已经厉害到令人难以置信的地步!

效果是这样的:

例如:

你是谁

我是一个名为 ChatGLM-6B 的人工智能助手,是基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型开发的。我的任务是针对用户的问题和要求提供适当的答复和支持。

给我做一个旅游攻略

旅游攻略如下:

如果你喜欢探索未知的地方,那么你一定会喜欢下面的旅游攻略。

旅行前做好计划和准备。了解目的地的天气、货币、语言和交通方式等,同时带上必要的旅行用品和证件。制定一个旅行路线,包括要去的景点、交通工具和住宿安排。在旅行前收集有关目的地的信息,并考虑你的时间限制。了解当地的文化和历史,有助于更好地享受旅程。可以参观当地的博物馆、图书馆或文化遗址。在选择交通工具时,要考虑到旅行的距离和时间。你可以选择飞机、火车、汽车或自驾车。在住宿方面,你可以选择酒店、民宿或青年旅社。不同住宿类型有不同的优缺点,你需要根据自己的需求和预算做出选择。在旅行中,要注意安全,避免走失或被盗等情况。在旅行前准备好必要的旅行装备和应急用品。享受旅程的过程中,不要忘记品尝当地的美食和购物。当地的手工艺品和特产也是不错的选择。

希望上面的旅游攻略能对你有所帮助,祝你旅途愉快!

官网的介绍

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

不过,由于 ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性,如事实性/数学逻辑错误,可能生成有害/有偏见内容,较弱的上下文能力,自我认知混乱,以及对英文指示生成与中文指示完全矛盾的内容。请大家在使用前了解这些问题,以免产生误解。更大的基于1300亿参数GLM-130B的ChatGLM正在内测开发中。

阿里云上的实战:

我选了8C32GT4显卡的GPUECS实例进行了部署

踩了如下的几个大坑:

OS:开始选了CentOS7.9,结果Python版本太老了,跑不起来。改为Ubuntu22.04,一路很通畅了。Cuda驱动:需要到Nvida的官网下载驱动,必须要选T4卡的。内存:开始我选了16G主机内存,结果跑不起。改了升配内存以后解决。

其他基本就是官方教程一路点下去

git clone https://github.com/THUDM/ChatGLM-6B
cd ChatGLM-6B
pip install -r requirements.txt
pip install gradio

官方给的demo中,因为只能是本地的,需要修改下面web_demo.py增加参数可以通过ECS的公网IP访问了。

server_name=“0.0.0.0”

python web_demo.py

访问的效果非常惊艳

最大的优势

低成本部署

模型量化

默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:

# 按需修改,目前只支持 4/8 bit 量化
model = AutoModel.from_pretrained(“THUDM/chatglm-6b”, trust_remote_code=True).half().quantize(4).cuda()

进行 2 至 3 轮对话后,8-bit 量化下 GPU 显存占用约为 10GB,4-bit 量化下仅需 6GB 占用。随着对话轮数的增多,对应消耗显存也随之增长,由于采用了相对位置编码,理论上 ChatGLM-6B 支持无限长的 context-length,但总长度超过 2048(训练长度)后性能会逐渐下降。

模型量化会带来一定的性能损失,经过测试,ChatGLM-6B 在 4-bit 量化下仍然能够进行自然流畅的生成。使用 GPT-Q 等量化方案可以进一步压缩量化精度/提升相同量化精度下的模型性能,欢迎大家提出对应的 Pull Request。

[2023/03/19] 量化过程需要在内存中首先加载 FP16 格式的模型,消耗大概 13GB 的内存。如果你的内存不足的话,可以直接加载量化后的模型,仅需大概 5.2GB 的内存:

model = AutoModel.from_pretrained(“THUDM/chatglm-6b-int4”, trust_remote_code=True).half().cuda()

[2023/03/24] 我们进一步提供了对Embedding量化后的模型,模型参数仅占用4.3 GB显存:

model = AutoModel.from_pretrained(“THUDM/chatglm-6b-int4-qe”, trust_remote_code=True).half().cuda()

CPU 部署

如果你没有 GPU 硬件的话,也可以在 CPU 上进行推理,但是推理速度会更慢。使用方法如下(需要大概 32GB 内存)

model = AutoModel.from_pretrained(“THUDM/chatglm-6b”, trust_remote_code=True).float()

[2023/03/19] 如果你的内存不足,可以直接加载量化后的模型:

model = AutoModel.from_pretrained(“THUDM/chatglm-6b-int4”,trust_remote_code=True).float()

如果遇到了报错 Could not find module nvcuda.dll 或者 RuntimeError: Unknown platform: darwin (MacOS) 的话请参考这个Issue.

Mac 上的 GPU 加速

对于搭载了Apple Silicon的Mac(以及MacBook),可以使用 MPS 后端来在 GPU 上运行 ChatGLM-6B。首先需要参考 Apple 的 官方说明 安装 PyTorch-Nightly。然后将模型仓库 clone 到本地

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

将代码中的模型加载改为从本地加载,并使用 mps 后端

model = AutoModel.from_pretrained(“your local path”, trust_remote_code=True).half().to(mps)

即可使用在 Mac 上使用 GPU 加速模型推理。

    THE END
    喜欢就支持一下吧
    点赞9 分享
    评论 抢沙发
    头像
    欢迎您留下宝贵的见解!
    提交
    头像

    昵称

    取消
    昵称表情代码图片

      暂无评论内容