返回

文章详情

在M1 Mac上运行Kimi K3

Hacker News2026年7月28日 21:35

安装三个命令,你就可以开始生成。唯一的真正决定在于步骤3。 # 1. 环境(Python 3.12+,以及Xcode CLT用于clang) python3 -m venv venv ./venv/bin/pip install torch numpy safetensors tiktoken ml_dtypes blobfile \ "transformers==4.56.2" einops tokenizers # 2. 构建融合的MXFP4内核 clang -O3 -mcpu=native -shared -DNO_MAIN -o tools/libmxfp4gemv.dylib tools/fused_gemv.c # 3. 下载模型(参见下面的两种模式) ./venv/bin/python tools/setup_k3.py --full 两种模式: --full(推荐) --stream 对磁盘的需求: 约1.7 TB 约215 GB 下载时间: 5–10小时,可恢复 约30分钟 之后的速度: 每个token约60–76秒,任何未缓存的提示每个token约3分钟 推理时的网络: 无 每个token读取16个专家 × 92层 = 25.8 GB的专家数据。 从本地磁盘读取大约需要4秒;通过网络则需要几分钟。 这个单一的事实就是这两列之间的所有差异。 运行setup_k3.py时不带标志,系统会在磁盘允许的情况下选择--full,否则会回退到流式,并告诉你需要释放多少空间。 从流式开始并在后续升级是一种不错的方式,让你在不占用1.7 TB的情况下体验Deltafin。 当你需要速度时,一个命令完成工作——无需重新安装和重新配置,并且使用已缓存的内容: ./venv/bin/python tools/fetch_experts_all.py # 可恢复,随时运行 ./venv/bin/python tools/fetch_experts_all.py --dry-run # 仅显示数字 ./venv/bin/python tools/fetch_experts_all.py --layers 1-40 # 部分也是可以的 Deltafin在启动时会打印一个提醒——无论是对于CLI还是API服务器——每当它仍处于流式模式时,显示本地池的大小以及完成所需的成本。 可选:int8 spine 减少非专家权重每个token的I/O,质量检查没有显著变化。耗时几分钟: ./venv/bin/python tools/convert_spine_int8.py 使用 # 提问;生成直到模型完成其答案 ./venv/bin/python tools/kimi_run.py --chat --prompt "土星最大的三个卫星是什么?" # 原始完成(没有聊天模板);运行直到你按下Ctrl-C,或者设置上限 ./venv/bin/python tools/kimi_run.py --prompt "法国的首都为" --max-new 16 Tokens在生成时显示,因此你总是可以看到文本的即时反馈。Ctrl-C在任何时候都能干净地停止并打印到目前为止的结果;--max-new N限制长度。 真诚的警告:K3在回答之前会思考,每分钟大约一个token,完整的聊天回答可能需要一些时间——观看它流式输出是其体验的一部分。 路由选择记录在router_trace.jsonl中,如果你想研究K3的路由行为。 Deltafin可以提供标准的OpenAI API,因此聊天接口、openai SDK和编码代理可以通过更改基础URL来使用: ./venv/bin/python tools/serve_openai.py --port 8000 curl http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' \ -d '{"model": "deltafin-kimi-k3", "messages": [{"role": "user", "content": "你好!"}]}' from openai import OpenAI client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="none") r = client.chat.completions.create(model="deltafin-kimi-k3", messages=[{"role": "user", "content": "你好!"}]) print(r.choices[0].message.content) # 回答 print(r.choices[0].message.reasoning_content) # K3的思考内容(如果存在) /v1/chat/completions、/v1/completions和/v1/models已实现,并且流式("stream": true)可用。 大多数读取OPENAI_BASE_URL和OPENAI_API_KEY的工具将通过指向该服务器而正常工作。 在指向任何自动化内容之前,请阅读以下警告: 时间。回答在它们到达时才会到达——将你的客户端超时设置为小时而不是秒。 省略max_tokens会让模型完成其答案(推荐);原始完成结果从不自行结束,默认为256。操作员可以通过K3_SERVER_MAX_TOKENS设置硬限制。 流式安装在这里要慢得多。聊天模板提示为60个token或更多,并且预填充会触及每层的多个专家,因此在缓存部分填充的情况下,聊天请求可能需要几个小时来获取。完整安装则为正常(缓慢)推理。 如果你处于流式模式,服务器在启动时会打印警告。 只用于贪婪。接收temperature和top_p并予以忽略,同时每次只运行一个请求(第二个并发请求会返回429错误)。代理是好奇心,而不是工作流。编码助手在理论上是可行的,但他们的较长系统提示使得预填充成本高昂。 配置 一切无需配置:Deltafin在有GPU时会选择,已构建时会使用int8 spine,并在启动时指明选择的内容。这些变量可用于覆盖: 变量 默认 含义 K3_DEV auto 可用时为GPU(mps),否则为CPU K3_SPINE auto 已构建时为int8(推荐),否则为bf16 K3_SPEC 1 n-gram推测(无损)

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡