在m1/m2 mac上流畅运行codegeex需确保arm64架构、macos sonoma 14.5+、pytorch mps可用,使用int4量化模型并指定device='mps',响应延迟应稳定在200–400ms。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在M1/M2 Mac上安装并流畅运行CodeGeeX,必须绕过x86_64兼容层、启用Metal加速、控制显存占用,否则模型加载失败或响应延迟超3秒——这不是配置问题,而是ARM64环境未被正确激活的典型表现。
确认芯片架构与系统版本前提
打开「关于本机」→ 查看「芯片」是否为Apple M1、M2、M3或M4;同时点击「系统报告」→ 「软件」→「操作系统版本」,确认为macOS Sonoma 14.5或更高版本。低于14.4的系统无法启用MPS后端,【强行安装将导致torch.backends.mps.is_available()返回False】。
终端执行:uname -m,输出必须为arm64。若显示x86_64,说明当前shell仍运行于Rosetta环境,需退出终端重开或执行arch -arm64 $SHELL切换。
安装适配ARM64的Python与PyTorch
方法一:用Homebrew安装原生arm64 Python(推荐)
终端执行:brew install python@3.11 → brew link python@3.11 → python3.11 -m venv ~/codegeex-env → source ~/codegeex-env/bin/activate。
方法二:验证PyTorch MPS支持
激活环境后执行:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu → python -c "import torch; print(torch.backends.mps.is_available())"。若输出False,立即停止后续步骤——说明PyTorch未识别到Metal设备,常见原因是系统版本不足或虚拟环境未激活。
这一步不能跳过,也无需额外加--force-reinstall。PyTorch官方wheel已内置MPS支持,只要系统和Python架构匹配,安装即生效。
下载并加载量化版CodeGeeX2模型
第一步:克隆仓库并进入目录
git clone https://gitcode.com/gh_mirrors/co/CodeGeeX2 → cd CodeGeeX2
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
第二步:安装依赖
pip install -r requirements.txt。注意requirements.txt中若有torch>=2.0.0,需手动删掉该行——因为已单独安装了MPS兼容版,重复安装会覆盖关键后端。
第三步:加载INT4量化模型
在Python脚本中使用:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/codegeex2-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/codegeex2-6b-int4", trust_remote_code=True, device='mps')。
【device必须指定为'mps',不能写'cuda'或'auto',否则默认走CPU,推理速度下降5倍以上】
第四步:强制绑定神经引擎(可选但强烈建议)
在加载模型前添加环境变量:import os; os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"。这能防止部分算子在MPS不支持时静默降级到CPU,避免隐性卡顿。
启动本地服务并验证响应延迟
直接运行:python server.py --host 127.0.0.1 --port 8080 --device mps --quantize int4。
打开新终端,用curl测试:
curl -X POST "http://127.0.0.1:8080/generate" \
-H "Content-Type: application/json" \
-d '{"prompt":"# language: Python\n# 计算斐波那契数列前10项\n","max_length":128}'
观察返回时间。首次响应含模型加载,约需8–12秒;后续请求应在【200–400ms区间内完成】。若持续超过800ms,检查是否误用了非量化模型路径或device参数未设为mps。










