ChatGLM-6B
ChatGLM-6B copied to clipboard
[BUG/Help] M1 Pro 运行报错
Is there an existing issue for this?
- [X] I have searched the existing issues
Current Behavior
>>> response, history = model.chat(tokenizer, "你好", history=[])
/Users/w-mai/.pyenv/versions/ChatGLM-6B/lib/python3.10/site-packages/transformers/generation/utils.py:686: UserWarning: MPS: no support for int64 repeats mask, casting it to int32 (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/aten/src/ATen/native/mps/operations/Repeat.mm:236.)
input_ids = input_ids.repeat_interleave(expand_size, dim=0)
loc("varianceEps"("(mpsFileLoc): /AppleInternal/Library/BuildRoots/9e200cfa-7d96-11ed-886f-a23c4f261b56/Library/Caches/com.apple.xbs/Sources/MetalPerformanceShadersGraph/mpsgraph/MetalPerformanceShadersGraph/Core/Files/MPSGraphUtilities.mm":228:0)): error: input types 'tensor<1x4x1xf16>' and 'tensor<1xf32>' are not broadcast compatible
LLVM ERROR: Failed to infer result type(s).
fish: Job 1, 'python' terminated by signal SIGABRT (Abort)
/Users/w-mai/.pyenv/versions/3.10.10/lib/python3.10/multiprocessing/resource_tracker.py:224: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
warnings.warn('resource_tracker: There appear to be %d '
已经按照https://github.com/THUDM/ChatGLM-6B/issues/152 修改过代码
Expected Behavior
No response
Steps To Reproduce
根据readme
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 加速模型推理。
>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
>>> print(response)
晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:
1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。
2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。
3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。
4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。
5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。
6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。
如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。
Environment
- OS: Ventura 13.2.1
- Python: 3.10.10
- Transformers: 4.26.1
- PyTorch: 2.0.0 (nightly)
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
Anything else?
No response
same problem
same error, after force update pytorch version, I succeed
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu

same error, after force update pytorch version, I succeed
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu
![]()
感谢,安装nightly版本后确实能运行了,不过请问推理用的是用half还是float呢,我用half之后对话就胡言乱语了,float才正常但是速度跟cpu一样慢
同样的错误,强制更新pytorch版本后,我成功了
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu
![]()
我尝试了更新pytorch 也和楼主一样根据https://github.com/THUDM/ChatGLM-6B/issues/152修改过代码,虽然运行起了界面,但是我还是报错了,我不清楚我现在具体哪里出了问题
half() 改成 float()
half() 改成 float()
如果我使用float的话我会存在内存不足的情况,我看他说是可以在我mac上使用gpu加速这样只需要用到4G左右,我系统是最新的 16G m1 pro 的mac本,但是我目前不确定是不是我运行的时候报的警告这里是不是有相关的影响
同样的错误!
我是mac m2 pro,mps 加速能加载,但是提问之后没有任何回复
我是mac m2 pro,mps 加速能加载,但是提问之后没有任何回复
我的大概4s左右
我是mac m2 pro,mps 加速能加载,但是提问之后没有任何回复
能请问一下你是如何做到的嘛?用的是那个模型?
m1 32G内存运行情况如下: 拉取最新git代码和模型(非量化),只需要按官方说明改为使用mps后端即可运行。 如果运行异常,可以尝试先用cpu跑。 我前几天拉了代码、装了pytorch跑mps总是内存不足。 今天用以下命令更新了一下就可以正常跑了,供参考: pip3 install -U --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu BTW:建议使用Python Virtualenv创建虚拟环境来“玩” 04/09补充一下: 昨晚再次拉了本项目代码、模型并升级pytorch,结果mps又跑不起来了。还好我提前做了备份,发现原因在于本项目代码。 所以,模型和pytorch可以保持更新为最新的。本项目代码请谨慎更新。
m1 32g内存运行:git git代码代码和非量化模型模型 ( )了代码、装了pytorch跑mps总是里面存不足。 今天用下面命令更新了一下就可以正常跑了,供参考: pip3 install -U --pre torchvision torchaudio --extra-index-url https:// download.pytorch.org/whl/nightly/cpu BTW:建议使用Python Virtualenv创建虚拟环境来“玩”
我不太清楚如果我用虚拟环境,我16G能否运行的起来,回头我去尝试一下试试
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu
我是M1Pro和你一模一样,提问之后等半天无任何回复
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu
我是M1Pro和你一模一样,提问之后等半天无任何回复
获取你可以考虑一下重新下载一下最新的那个无量化模型,好像优化过了,今晚我在试试看能否运行起来
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu
我是M1Pro和你一模一样,提问之后等半天无任何回复
今晚我确实可以运行了 但是回复非常的久...日常使用感觉都很有问题...
我是8g显存的m1,装了nightly,但还是会内存不足。mbp好像用量化那些模型会提示调用cuda报错, 不知道咋整呢
我认为这个问题应该是 PyTorch 的,报错的语句是一个很正常的调用

![]()
这个是我在m1尝试调用 in4-qe模型的报错,我调用的代码是
model = AutoModel.from_pretrained("/Users/jacob/Documents/ChatGLM-6B-main/model 2", trust_remote_code=True).half().to('mps')
mps 不能用量化的模型,因为量化的 kernel 是用 CUDA 写的
same error, after force update pytorch version, I succeed
pip3 install --pre --force-reinstall torch --index-url https://download.pytorch.org/whl/nightly/cpu
![]()
非常感谢!在M1 MBP 32GB上按上面命令装了nightly后用把.float()改成.half().to('mps')后快了很多基本能用了!