在 M3 Pro 上离线运行 Claude Code,使用 Qwen3.6
设置、使其工作的修复以及硬件的节奏。Claude Code 连接到运行在笔记本电脑上的本地模型。您提供一个 Kubernetes 事件进行调查。在十分钟后,Claude Code 超时未产生任何结果。模型没有使用任何集成工具——它整个允许的会话都在思考中。它加载了,但还不工作。四个修复后,同一台笔记本电脑将事件从调查推进到打开_pull 请求——找到了根本原因,编写了补丁,推送了分支,通过 gh 提交 PR——一切都在机器上完成。它花了一些时间,但它完成了整个循环。加载和工作的差距就是这四个修复,一旦你解决了它们,将34分钟的会话与快速会话区分开的因素就是硬件,而不是方法。在我们开始之前,这里是接下来的内容:逐步设置、四个关键修复,以及硬件如何影响速度的清晰解释。我们开始吧。为什么要本地运行 ¶ 一个原因至关重要:数据不能跨越防火墙。在受监管环境和隔离集群中,本地运行并不是选择——而是必需。好消息是:它有效。其他人在为交易准备。地方为您提供隐私和固定成本。它以延迟和小于前沿的模型计费——但正如上面完成的循环所示,能力并不是你在这样的任务上放弃的东西,而是速度。这个交易是否适合是第2部分在三篇文章中回答的问题。这篇确定了运行所需的东西,以及您的硬件决定了什么。堆栈 ¶ 说明配置。所有数字都依赖于此。硬件:苹果 M3 Pro,18 个 GPU 核心,36 GiB 统一内存,约 150 GB/s 内存带宽。模型:qwen3.6:35b-a3b-coding-nvfp4——351 亿参数,专家混合,每个令牌约有 30 亿处于活动状态,NVFP4 量化。磁盘上 21 GB,一旦加载约占 20 GiB。运行时:Ollama 0.24.0,MLX 运行程序(苹果的硅原生后端,而不是 llama.cpp/Metal 路径)。客户端:Claude Code v2.1.84,指向本地 Ollama 端点。MoE 让 35B 模型可以在本地运行。每个令牌只有约 3B 处于活动状态,因此成本类似于 14B 密集模型,而答案则接近 35B。一个密集的 35B 模型无法装入 36 GiB。调整的环境:变量值原因 OLLAMA_MLX 1 使用苹果硅 MLX 运行程序,而不是 llama.cpp/Metal 后端 OLLAMA_CONTEXT_LENGTH 32768 36 GiB 允许的——更多内存在下方说明 OLLAMA_FLASH_ATTENTION 1 降低注意力内存 OLLAMA_MULTIUSER_CACHE 1 在请求之间重用前缀缓存 OLLAMA_KEEP_ALIVE 24h 保持 20 GiB 的模型驻留;重新加载很慢 从零到工作会话 ¶ 从头到尾:假设使用苹果硅和 kubectl 指向您的集群。 1. 安装 Ollama,确认版本。 ollama --version # 必须是 0.24.0 或更新版本——见下面的修复 #2 2. 拉取模型。一次性,约 21 GB。 ollama pull qwen3.6:35b-a3b-coding-nvfp4 3. 用调整后的环境提供服务。让它保持运行。 OLLAMA_MLX = 1 \ OLLAMA_CONTEXT_LENGTH = 32768 \ OLLAMA_FLASH_ATTENTION = 1 \ OLLAMA_MULTIUSER_CACHE = 1 \ OLLAMA_KEEP_ALIVE = 24h \ OLLAMA_NO_CLOUD = 1 \ ollama serve 为了持久性,配置这些在 launchd plist 中。Ollama 作为服务运行,而不仅仅是在您的终端中。 4. 将 Claude Code 指向本地模型,并从工作目录启动: ANTHROPIC_BASE_URL = http://localhost:11434 \ MAX_THINKING_TOKENS = 0 \ claude --model qwen3.6:35b-a3b-coding-nvfp4 环境中没有 ANTHROPIC_API_KEY——没有这个密钥使 Claude Code 使用本地模型端点,而不是联系 Anthropic 的云服务。 5. 第一个提示——烟雾测试,而不是主要事件。选择一些微不足道的事情,强制进行一次工具调用:运行 kubectl get pods -A 并告诉我有没有状态不健康的情况。你会看到:第一次工具调用在几秒钟内发生(当思考被禁用时),然后你可能会等待大约 60 秒,因为模型执行预填充(预填充是指将所有必要的输入数据(例如提示和上下文)加载到内存中,以便模型开始生成响应,对于此设置大约为 25,000 个令牌)。在预填充后,您将得到答案。后续会话(“轮”或用户与模型之间的交互)更快,因为前缀缓存存储提示的静态部分,因此它们不需要重新加载。在此过程中,Ollama 日志中显示的 404 错误是一种正常现象(在修复 #4 中解决)。 6. 确认没有什么离开机器。服务器在启动时打印了“Ollama cloud disabled: true”;基本 URL 是 localhost,且没有设置 API 密钥。唯一的流量是回环。这就是所声称的,经过验证。Claude Code 现在使用在您的机器上完全运行的模型来调查一个真实的集群。它可以处理困难事件的能力是什么——以及它与前沿的比较——将在第 2 部分介绍。使其工作所需的四个修复 ¶ 这些修复使设置正常工作。错过它们设置将停滞。它们都不在快速启动中。所有都是软件,而不是硅-无论硬件如何都会持续有效。 1. 禁用思考——它
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡