在MacM1上运行ChatGLM-6B推理

这篇具有很好参考价值的文章主要介绍了在MacM1上运行ChatGLM-6B推理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 简介

ChatGLM 6B是清华大学和智谱合作的一个62亿参数的大语言模型。基于清华的GLM模型开发。和Meta的LLaMA模型还不是一种模型。

由于LLaMA缺乏中文语料,中文能力不佳。在中文大模型中,ChatGLM 6B参数较小,运行硬件要求较低。而表现可谓出色。所以这里作为一个基础模型先让他运行起来看看有多大的能力。

2. 准备环境

在这里我们一般使用miniconda来做python的包管理。

新建一个Python3.10环境,环境名叫chatglm-6b

conda create -n chatglm-6b python=3.10

激活这个环境,从此之后都在这个环境chatglm-6b中操作

conda activate chatglm-6b

 文章来源地址https://www.toymoban.com/news/detail-482452.html

3. 下载代码

执行下列命令

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

这里没有什么花哨的地方,下载下来就可以了。

 

4. 安装Python依赖

python环境切到chatglm-6b, 在上面克隆下来的ChatGLM-6B代码目录中执行下列命令

pip install -r requirements.txt

根据ChatGLM-6B的官方文档,需要安装Pytorch Nightly(似乎不安装nightly也可以)。所以我们在装完上面的依赖包之后,删除torch,重新安装pytorch nightly。

安装方法:链接

执行命令

pip uninstall torch
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu

 

然后,我们看下下载下来的pytorch是不是支持m1的gpu加速

执行python进入python命令行

输入命令

import torch; torch.backends.mps.is_available()

输出True即为可以用M1的GPU加速。但是这里int4量化后的版本不支持MPS GPU加速。而非量化的版本虽然支持MPS GPU加速,但是如果没有32G内存的话,内存不足导致执行速度非常的慢。所以在用int4量化后的模型后,有没有MPS GPU加速都会使用CPU推理。

Python 3.10.11 (main, Apr 20 2023, 13:58:42) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch; torch.backends.mps.is_available()
True
>>> 

 

安装icetk

奇怪的是运行web_demo.py需要icetk包,但是没有写在requirements.txt里

补上

pip install icetk

这样就把包依赖安装好了。

 

5. 使用模型推理

5.1. 使用int4量化模型

Mac M1上如果没有32G及32G以上内存,一般还是int4量化模型会快一点。

5.1.1. 下载模型到本地

先运行huggingface.co下的ChatGLM 6B 4int量化后的模型。这个模型推理需要6G内存,finetune需要7G内存。对于小内存用户来说是最小硬件需求的模型。

huggingface.co克隆git repo需要git-lfs

所以先运行

git lfs install

如果没有装过git-lfs,可以看这个链接安装git-lfs

克隆int4量化model

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

Mac上没有CUDA可以用,而量化模型是基于CUDA开发的。所以M1/M2的MPS GPU加速也不可用,这里只能用CPU推理。CPU推理需要安装g++和openmp

由于本机安装的g++版本是14.x,所以可以按照链接的指示安装openmp

然后把THUDM/chatglm-6b-int4拷贝到代码的ChatGLM-6B下。所以在本地克隆下来的代码目录下,模型放在

代码目录/THUDM/chatglm-6b-int4下

5.1.2. 修改代码

打开web_demo.py,修改代码。

把下面代码

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()

改为

tokenizer = AutoTokenizer.from_pretrained("./THUDM/chatglm-6b-int4/", trust_remote_code=True)
model = AutoModel.from_pretrained("./THUDM/chatglm-6b-int4/", trust_remote_code=True).float()

5.1.3. 执行推理

执行命令

python web_demo.py

输出

Arguments: (RuntimeError('Unknown platform: darwin'),)
No compiled kernel found.
Compiling kernels : ...
Compiling clang -O3 -fPIC -pthread -Xclang -fopenmp -lomp -std=c99 /Users/heye/.cache/huggingface/modules/transformers_modules/quantization_kernels_parallel.c -shared -o ...
Load kernel : ...
Setting CPU quantization kernel threads to 4
Using quantization cache
Applying quantization to glm layers
Running on local URL:  http://127.0.0.1:7860

自动弹出浏览器:http://127.0.0.1:7860/

就可以用了。

可以试试输入几个问题

1. 方程和函数有什么区别


 

 

2.

6. 性能

由于用CPU推理,一个词一个词往外蹦,每个词耗时大约是3-4秒。

如果在Windows下用GPU推理的话速度大约会提升十倍。

量化和非量化版本在表现上差异很少。这点比LLaMA要好很多。LLaMA的7Bint4量化版本表现比较差。

7. 评价

这个模型部署的坑非常少,清大的工程能力可谓出色。整体完成度很高。

 

到了这里,关于在MacM1上运行ChatGLM-6B推理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 本地推理,单机运行,MacM1芯片系统基于大语言模型C++版本LLaMA部署“本地版”的ChatGPT

    OpenAI公司基于GPT模型的ChatGPT风光无两,眼看它起朱楼,眼看它宴宾客,FaceBook终于坐不住了,发布了同样基于LLM的人工智能大语言模型LLaMA,号称包含70亿、130亿、330亿和650亿这4种参数规模的模型,参数是指神经网络中的权重和偏置等可调整的变量,用于训练和优化神经网络

    2024年01月22日
    浏览(41)
  • 清华ChatGLM-6B本地GPU推理部署

    目录 1 简介 2 硬件需求 3 Demo和模型下载 3.1 安装Git LFS 3.2 Demo下载 3.3 模型下载 3.4 文件目录 4 环境安装 5 运行 5.1 FP16 5.2 量化 6 演示 ChatGLM-6B是一个开源的、支持中英双语的对话语言模型,基于General Language Model(GLM)架构,具有62亿参数。结合模型量化技术,用户可以在消费级

    2024年02月07日
    浏览(46)
  • 手把手带你linux部署清华大学大模型最新版 chaglm2-6b

    准备工作: 如果安装出现问题,可尝试手动分别安装torch 1 # 1第一步安装虚拟环境并激活环境 3 安装torch第一种方式 pytorch官网:https://pytorch.org/ 经过多次尝试,发现conda装,真的很快,真香。前几次尝试用pip装torch都会出现timeout的错误,这个跟服务器有关系,视情况而定。

    2024年02月12日
    浏览(50)
  • 人工智能_CPU安装运行ChatGLM大模型_安装清华开源人工智能AI大模型ChatGlm-6B_004---人工智能工作笔记0099

    上一节003节我们安装到最后,本来大模型都可以回答问题了,结果, 5分钟后给出提示,需要GPU,我去..继续看官网,如何配置CPU运行  没办法继续看: 这里是官网可以看到  需要gcc的版本是11.3.0,这里我们先没有去安装,直接试试再说 yum install epel-release yum install gcc-11.3.0 安装的话执行这

    2024年02月21日
    浏览(66)
  • Python:清华ChatGLM-6B中文对话模型部署

    1、简介 ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话

    2024年02月08日
    浏览(49)
  • 【ChatGLM】本地版ChatGPT ?6G显存即可轻松使用 !ChatGLM-6B 清华开源模型本地部署教程

    目录 感谢B站秋葉aaaki大佬 前言 部署资源 部署流程  实机演示 ChatGML微调(人格炼成)(个人感觉蛮有趣的地方)  分享有趣の微调人格  实机演示(潘金莲人格) 秋葉aaaki的个人空间_哔哩哔哩_bilibili https://space.bilibili.com/12566101 由于ChatGLM-6B的规模较小,目前已知其具有相当

    2024年02月06日
    浏览(51)
  • 【LLM】chatglm-6B模型训练和推理

    本篇文章记录下 chatglm-6B 训练和推理过程 环境:Ubuntu 20.04 + 1.13.0+cu116 chatglm-6B 源代码仓库:链接 chatglm-6B 模型权重:链接 这里使用的是 THUDM 在 hugging face 开源的模型。 因为模型比较大,仓库保存模式使用的是 git lfs 模式,再 clone 之后再使用 git lfs pull 去 download 大文件。 c

    2024年02月10日
    浏览(53)
  • AIGC - ChatGLM大模型:ChatGLM2-6B模型推理部署

    如果你要问我为什么直接部署ChatGLM2的模型? 因为当我在8月份在上海召开的全球人工智能大会上了解到清华-智谱发布的ChatGLM模型时,它已经发布了新的版本ChatGLM2,并且推理的效果提升了不少,那么本着只要最好的原则,我就直接上手先玩新版本了。 作为AIGC方面的小白来说

    2024年02月06日
    浏览(48)
  • 十分钟部署清华ChatGLM-6B,实测效果还可以~~(Linux版)

    前段时间,清华公布了中英双语对话模型  ChatGLM-6B ,具有60亿的参数,初具问答和对话功能。最!最!最重要的是它能够支持私有化部署,大部分实验室的服务器基本上都能跑起来。 因为条件特殊,实验室网络不通,那么如何进行离线部署呢? 经过一上午的折腾终于搞定了

    2024年02月08日
    浏览(50)
  • 【AI】清华开源中英双语对话模型ChatGLM2-6B本地安装笔记

    首先,直接上资源,网盘中是ChatGLM2-6B源码及模型文件: 链接:https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ 提取码:cssa 官方的Readme已经很详尽了,再写点安装博客有点画蛇添足。本着记录自己的工作内容的初衷,还是写一写吧,毕竟输出才是最好的学习。 本文记录了本地安装Cha

    2024年02月16日
    浏览(60)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包