必须确认arm64架构、启用mps后端、使用miniforge arm64版conda、指定device="mps"并设max_memory_mb匹配实际内存,否则将触发设备不匹配、加载失败或推理卡死。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Mac系统上部署Fitten Code代码助手时,必须针对M系列芯片的ARM64架构、统一内存(UMA)和Metal加速特性做专项适配,否则会触发PyTorch设备不匹配、模型加载失败或推理卡死等典型错误。
确认基础环境是否兼容
打开终端,依次执行以下命令验证关键组件:
python3 --version → 确保输出 Python 3.10 或 3.11(【Python 3.12暂不支持部分Fitten Code依赖】);
conda --version → 若未安装Conda,【切勿使用Anaconda官方x86包】,改用Miniforge ARM64版;
python3 -c "import torch; print(torch.backends.mps.is_available())" → 必须返回 True,否则Metal后端未启用,后续所有推理将退化至CPU,速度下降5倍以上。
创建专用虚拟环境
这一步不能跳过:Fitten Code对依赖版本极其敏感,混用全局包极易导致d2l、transformers或tokenizers冲突。
运行 conda create -n fitcode python=3.10 创建独立环境;
执行 conda activate fitcode 激活;
输入 pip install --upgrade pip setuptools wheel 确保构建工具链最新;
注意:若此前用过pip install -e .方式安装过其他AI项目,需先执行 pip uninstall -y fitcode d2l transformers,避免残留.pth文件干扰。
安装Fitten Code核心依赖
方法一:直接安装官方发布版(推荐新手)
pip install fitten-code==0.4.2 → 该版本已内置M系列芯片适配补丁,包含metal-compatible tokenizer与mps-aware dataloader;
方法二:从源码安装(适合需调试或定制模型结构的用户)
git clone https://github.com/fitten-ai/fitten-code.git;
cd fitten-code;
Fitten Code 1.0.3是一款由清华博士团队打造的AI编程助手,基于国产计图(Jittor)深度学习框架开发。它支持VS Code、JetBrains系列等主流IDE及80多种编程语言。核心功能包括智能代码补全、注释生成、代码解释、Bug检测、单元测试生成等,旨在全方位提升开发效率。该工具对个人用户免费开放。
修改 pyproject.toml 中 [project.dependencies] 区块,将 torch>=2.0.0 替换为 torch==2.3.1+mps;
执行 pip install -e . 安装;
【关键提醒】源码安装前必须先运行 xcode-select --install,否则编译C++扩展会失败且报错信息极不明确。】
配置模型路径与设备参数
第一步:下载Fitten Code官方模型权重(如 fitten-code-7b-q4_k_m),解压后放入 ~/models/fitten-7b/ 目录;
第二步:编辑 ~/.fitten/config.yaml,确保以下字段准确无误:
model_path: "/Users/yourname/models/fitten-7b"
device: "mps" ← 【此处绝不可填 cpu 或 cuda,填错将无法调用GPU加速】
max_memory_mb: 32768 ← 根据你Mac的实际内存设定,M2 Pro(16GB)建议设为24576,M3 Max(64GB)可设为49152;
第三步:运行 python -m fitten.cli --list-models 验证模型能否被识别;若报错 OSError: unable to open file,说明 model_path 路径中存在中文或空格,需改为纯英文路径。
启动本地服务并验证响应
① 执行 python -m fitten.server --host 127.0.0.1 --port 8000 启动API服务;
② 等待终端出现 “Server started at http://127.0.0.1:8000” 提示后,在新终端中运行 curl -X POST http://127.0.0.1:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{"prompt":"def fibonacci(n):","max_tokens":32}';
③ 正常响应应为JSON格式,含 choices 字段且 text 值为有效Python代码;若返回 empty response 或 timeout,检查 config.yaml 中 device 是否拼写为 mps(不是 MPS 或 mps:0);
④ 关闭服务:按 Ctrl+C 停止进程,终端将自动退出。










