M1 Mac で Kimi K3 を動かす方法

2026/07/29 6:35

M1 Mac で Kimi K3 を動かす方法

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Deltafin は、正常なハードウェア制限を超えて単一の Apple Silicon Mac 上で、82,432 のエキスパートを有する大規模なパラメータ数 2.8 兆の Mixture-of-Experts(MoE)モデル Kimi K3 を成功裏に実行しています。この達成は、各トークンに対してデータの小さなサブセットのみを処理するアーキテクチャに基づいています。具体的には、92/93 のレイヤーにおけるトップ-16 ルーティング選択を通じて~25.8 GB のエキスパートデータを読み込みます。完全なローカルインストールでは約 1.7 TB のディスク容量が必要で、M1 Max チップ上での処理速度は約 16 セカンド/トークンですが、最適化されたストリーミングモードではフットプリントを 215 GB に削減でき、しかしキャッシュされていないエキスパートに対してはレイテンシが 3 分以上に大幅に増加します。この設定では、RAM にピン留めされた int8 のクアンタライズ済み 60 GB のリジデントスパインと、ディスク帯域幅の制限を緩和するための最適化されたフューズド MXFP4 カーネルが使用されます。ユーザーは Python 3.12+ の仮想環境を設定し、専用カーネルを構築して

setup_k3.py
を実行する必要があります。デフォルトでは、サービスはポート 8000 で OpenAI API を公開しており、
openai
SDK などの標準クライアントとの互換性を確保します。設定変数により GPU の選択、スパインの精度、推論的デコードのカスタマイズが可能であり、特に出力は
exact
(ログイット-ファイトフルモード)に設定されており、これは
temperature
および
top_p
を無視します。このアプローチは、激しい最適化により大規模言語モデルが消費者向けハードウェア上で動作することを示しますが、非インタラクティブな研究プロトタイプにとどまります。速度制限(長いプロンプトでは数時間必要)、複数リクエストの同時実行の欠如、およびさらなるタイムアウト調整が必要であるため、生産自動化には適していません。

本文

Deltafin:Apple Silicon 上での Kimi K3 モデル実行ガイド

概要

Deltafinは、2.8 トリリオンプARAMエータを持つ Kimi K3 (Mix-of-Experts: MoE) モデルを、単一の Apple Silicon Mac で動作させるための小規模研究プロジェクトです。

  • 性能: M1 Max でも約 16 トokens/秒 と高速ではありませんが、正確で再現可能です。
  • 互換性: 64 GB のラップトップでも動作し、新しいチップやメモリ増加により自動的に高速化されます。

インストール手順

モデルを実行するには以下の 3 つのコマンドが必要です。ステップ 3 が重要な決断点となります。

前提条件

  • Python 3.12 以降
  • Xcode コマンドラインツール(
    clang
    のため)

ステップ 1:環境の作成

仮想環境を生成し、必要なライブラリをインストールします。

python3 -m venv venv
./venv/bin/pip install torch numpy safetensors tiktoken ml_dtypes blobfile \
    "transformers==4.56.2" einops tokenizers

ステップ 2:Fused MXFP4 カーネルのビルド

高速化のための固有ライブラリをコンパイルします。

clang -O3 -mcpu=native -shared -DNO_MAIN -o tools/libmxfp4gemv.dylib tools/fused_gemv.c

ステップ 3:モデルのダウンロード

2 つのモードから選択できます。推奨されるのは

--full
です。

モード比較表

機能
--full
(推奨)
--stream
必要なディスク容量~1.7 TB~215 GB
ダウンロード時間5–10 時間(中断可能)~30 分
推論時の速度~60–76 秒/Token~3 分以上/token
ネットワーク依存性不要 (起動後断続可)常に接続が必要
  • 技術的備考: モデルは約 25.8 GB のデータ(エキスパート×92 レイヤー)を持ちます。ローカルディスク読み取り(約 4 秒)とネットワーク経由読み取り(数分)では速度が異なります。
  • 自動判定:
    setup_k3.py
    にフラグなしで実行すると、ディスク容量があれば
    --full
    を選択し、不足すれば自動的に
    --stream
    モードにフォールバックします。

ストリーミングからのフルインストールへの変更: 初期はストリーミングモードから始め、後で高速化のために完全ダウンロードを完了できます(再インストール不要)。

./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   # 部分的ダウンロード

オプション:Int8 Spine(推奨) エキスパート以外の実装を int8 に量子化し、I/O を半減させます。

./venv/bin/python tools/convert_spine_int8.py

使い方

チャット生成

質問を入力して回答を生成します。

./venv/bin/python tools/kimi_run.py --chat --prompt "What are the three largest moons of Saturn?"

生の完遂 (Raw Completion)

制限回数まで出力されます。

Ctrl-C
で停止可能です。

./venv/bin/python tools/kimi_run.py --prompt "The capital of France is" --max-new 16

OpenAI API サーバー

標準的な OpenAI API を提供します(ポート変更も可)。

./venv/bin/python tools/serve_openai.py --port 8000

cURL リクエスト例

curl http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' \
  -d '{"model": "deltafin-kimi-k3", "messages": [{"role": "user", "content": "Hello!"}]}'

Python SDK 使用例

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": "Hello!"}])

print(r.choices[0].message.content)            # 回答
print(r.choices[0].message.reasoning_content)  # K3 の思考プロセス(存在する場合)

⚠️ 自動化における重要な注意点

  1. 時間: 回答生成には時間がかかります。タイムアウト設定は秒単位ではなく時間単位にしてください。
    max_tokens
    を省略するとモデルが終了するまで待ちます(推奨)。
  2. ストリーミングインストール: クライアント側では非常に低速です。プリフィル(事前計算)を含む長めのプロンプトは、キャッシュ未充填状態で数時間を要することがあります。フルインストール後には通常速度になります。
  3. パラメータ制限:
    temperature
    top_p
    は無視されます。同時リクエストは拒否されます(429 エラー)。
  4. エージェント: 長期のシステムプロンプトは高コストになるため推奨されません。

仕組みについて

Kimi K3 の総重量は約 1.56 TB で、M1 Max (64 GB RAM) のディスク容量を超過します。しかし、MoE モデルは各トークンごとに一部のエキスパートのみを使用するため、ローカル推論が可能になります。

メモリ構成

  • レジデント・スパイン (~114 GB): 共有エキスパートや埋め込みなど。一度
    int8
    に量子化され、ローカル NVMe から読み出されます。
  • ルーティングされたエキスパート (~1.45 TB): K3 ルーターは 92 レイヤーのうち各トークンで 16 つのエキスパートを選択します。

アーキテクチャフロー図

flowchart LR
    subgraph HF["Hugging Face CDN"]
        W[("96 safetensors shards<br/>1.56 TB · MXFP4")]
    end
    subgraph MAC["MacBook (M1 Max, 64 GB)"]
        subgraph DISK["NVMe"]
            SP[("resident spine<br/>114 GB bf16 → 60 GB int8")]
            EC[("expert cache<br/>raw shard spans")]
        end
        subgraph TOK["per token processing"]
            R{"router<br/>top-16 of 896<br/>× 92 layers"}
            L["93 decoder layers<br/>2 shared GPU templates"]
            K["fused MXFP4 GEMV<br/>NEON"]
        end
    end

    W -- "one range request<br/>per missing expert" --> EC
    SP -- "double-buffered<br/>layer loader" --> L
    EC -- "mmap" --> K
    R -- "selected experts" --> K
    K --> L
    L -- "logits" --> R

推論シーケンス図

sequenceDiagram
    participant D as n-gram draft
    participant M as model (one T=2 pass)
    participant S as state snapshot
    
    D->>M: [last_token, draft]
    M->>M: 93 layers, shared cost
    alt draft verified
        M-->>D: 2 tokens accepted
    else draft wrong
        S-->>M: state restored (bit-exact)
        M-->>D: 1 token, nothing lost
    end

パフォーマンス比較 (期待されること)

測定環境:M1 Max (CPU 10 コア / GPU 32 コア / RAM 64 GB)、フルインストール、貪欲デコード。

メトリック初版動作時現在改善率
プリフィル (5 トokens)2,429 秒25 秒~97 倍
デコード (エキスパートローカル)~20 分/token15 秒/token~80 倍
デコード (ストリーミング)~20 分/token~3 分/token改善中

トークンあたり内訳 (デコード時)

このハードウェアでは約 3.75 tokens/分 の処理速度です。

  • レジデント・スパイン読み取り (53 GB): ~5 秒
  • エキスパート読み取り (25.8 GB): ~4.3 秒
  • スパインの適用 (転送 + デ量子化): ~3 秒
  • アテンションとノーマライゼーション: ~2 秒
  • MoE 行列乗算: ~1 秒

新しい Mac が速くなる理由

  • メモリ帯域幅: M3/M4 Max は高帯域幅を持ち、Ultra で倍増します。スパイン読み込みと計算に直結。
  • GPU: より多くのコアが Metal カーネル(デ量子化・アテンション)を高速実行。
  • SSD: 後期モデルはより高速な NVMe を搭載。
  • RAM (最重要): 53 GB のスパインデータを RAM 上に保持できるかが鍵。128 GB マシンではページミスによるコストがほぼ消失し、性能が劇的に向上します。

設定環境変数

GPU と int8 スパインはデフォルトで自動的に選択されます。以下の変数でオーバーライド可能です。

変数デフォルト説明
K3_DEV
auto
GPU (mps) があれば使用、なければ CPU
K3_SPINE
auto
int8 (推奨) または bf16
K3_SPEC
1
n-gram 推測 (ロスレス)
K3_TEMPLATES
1
テンプレートレイヤーの再利用
K3_PRELOAD
/
K3_PREFETCH
1
バックグラウンド読み込みフラグ
K3_APPROX
0
fp16 計算(再現性なし)
K3_RAM_GB
/
K3_PIN_LAYERS
auto
RAM バジェット上書き
DELTAFIN_ROOT
repo root
キャッシュと重みの保存先

要件

  1. ハードウェア: Apple Silicon Mac (M1 Max, 64 GB RAM でテスト済み)。
  2. ツール: Xcode Command Line Tools (
    xcode-select --install
    )。
  3. Python: バージョン 3.12 以降。
  4. ディスク容量: フルインストールで ~1.7 TB、ストリーミングで ~215 GB。
  5. ネットワーク: Hugging Face にアクセス可能(初期フェッチ時)。

技術的特徴と最適化

  • 結合されたエキスパートフェッチ: 単一の範囲リクエストで全エキスパートを取得し、通信回数を削減。
  • Raw-Span ディスクキャッシュ: コンテナ形式の解析なしでシャードバイトを直接使用。
  • 並列エキスパート読み込み:
    pread
    F_NOCACHE
    を使い、ページフォールトを回避(コールドリード速度向上)。
  • ダブルバッファされたレイヤー読み込み: 計算中同時に次のスパインデータを読み込み。
  • Fused MXFP4 デ量子化 + GEMV: NEON カーネルによるビット正確な高速処理。
  • カスタム Metal デ量子化カーネル: 標準 MPS の 43 GB/s から 297 GB/s へ大幅改善。
  • n-Gram 推測: サフィックスマッチングでドラフトを作成し、2 トークン単位で検証(ロスレス)。

機能しなかったこと (失敗エントリ)

アイデア結果・発見
ランク低下したエキスパート近似K3 は密集してトレーニングされており、ランク 128 で十分だった。
エキスパートファイル圧縮 (APFS, zstd, lz4)MXFP4 データはエンタロピーが高く、意味のある圧縮が得られなかった。
HTTP/2 を使用したフェッチHTTP/1.1 keep-alive よりも遅かった。
MTP 自己推測K3 モデルは MTP ヘッドを提供していない。
デフォルト fp16ロジカル値のノイズで出力が変化する恐れがある。

これからの可能性

  • Metal エキスパートカーネル: プロトタイプ化済み(非 CUDA/PyTorch 依存)。
  • 高品質な評価ベンチマーク: 公式 API に対する平均 NLL を測定するハネスの作成。
  • ネイティブエンジン:
    ds4
    の精神に基づく独自エンジンの実装。

お礼とクレジット

Deltafin は以下のオープンソースプロジェクトに大いに依存しています:

  1. colibri (JustVugg, Apache-2.0): 大規模 MoE を RAM で動作させる技術、シャード変換ノウハウ。
  2. ds4 / DwarfStar: エキスパートストリーミング設計、品質メソッドロジ。
  3. Moonshot AI: Kimi K3 の重み公開、長文脈対応のキミ・デルタ・アテンション設計。
  4. flash-linear-attention: 移植された計算最適化セマンティクス。
  5. llama.cpp / ggml: カーネル内デ量子化および MXFP4 ハンドリングの技術基盤。

ライセンス情報:

  • Deltafin の独自コードは MIT ライセンス
  • Kimi K3 の重みとコードは Moonshot AI のライセンス条項に従ってください(Deltafin は Moonshot と無関係です)。

同じ日のほかのニュース

一覧に戻る →

2026/07/29 5:52

OpenAIがCodex Securityをオープンソース化した

## Japanese Translation: `@openai/codex-security` ツールは、コードベース内に直接存在するセキュリティ脆弱性を特定、検証、修正することを目的とした CLI と TypeScript SDK です。このツールにより、チームはリポジトリの走査、コード変更のレビュー、発見結果の自動追跡が可能となり、安全な開発ライフサイクルが効率化されます。ユーザーはワークフローにこれらのチェックを簡単に統合できます:ローカルでの使用には `npm install @openai/codex-security` でインストールし、`npx codex-security login` でログインし、`npx codex-security scan .` で走査を実行します。継続的インテグレーション(CI)パイプラインでは、ログインを必要とせず `OPENAI_API_KEY` 環境変数を設定することで自動化がサポートされます。该软件は現代的な環境(Node.js 22+ または Python 3.10+)で動作し、GitHub Actions などの既存の CI システムにシームレスに統合できます。TypeScript SDK を活用することで、開発者はビルドプロセス内でチェックをプログラム的に初期化し、レポートパスを直接ログ出力できます。この反応的な修正から能動的な予防への転換により、チームは手動介入なしで効率的に堅牢なセキュリティ標準を維持できるようになります。

2026/07/29 1:58

Substack の書き手にはウェブサイトが必要です。

## 日本語訳: 著者は、長期的な生存を確保するため、Substack を単なる配信チャネルとして厳格に扱うべきであり、主なデジタル居宅としては見なしてはならない。`substack.com` などのプラットフォームへの一依存はリスクが高く、同社は規約を変更した場合、著者がコンテンツや可见性(視認性)を失う可能性があるためであり、過去に Twitter、Medium、Reddit、Facebook が直面した状況と同様です。「デジタルテナント」または「デジタル小作農家」として突然の立ち退きに晒されることを避けるために、クリエイターは自らの独立したドメイン所有し、ホームベース(主要サイト)を自らコントロールする必要があります。著者ジョン・スカルズィはこの戦略を例示しており、その 28 年間の歴史を持つ独立ブログが安定的な錨(アンカー)として機能し、ソーシャルメディアはそのトラフィックをそちらへ誘導するための単なる増幅器として使用しています。このアプローチは POSSE(自サイトの公開他サイトへの Syndication:Publish On Your Own Site, Syndicate Elsewhere)手法と整合しており、RSS フィードを通じて著者の「事実上の真実源」から発信されたコンテンツが外部プラットフォームへと配信されることを保証します。これにより、将来の企業崩壊、アルゴリズムのシフト、無警告で少数派やローカライズされた声を沈黙させる可能性があるエコーチェンバーに対する防護策となります。独立したデジタル居宅を確保することで、著者は過渡的なエコシステムに対する耐性を保証し、ユーザーもクリエイターも利得志向のアルゴリズムに人質となるのを防ぎます。

2026/07/29 5:58

ハーフライフを Mac OS 9 に移植

## Japanese Translation: ### サマリー: ハーフライフシリーズが、オリジナルタイトル発売から 28 年ぶりに、PowerPC ベースのマッキン托しコンピュータ向けの初プレイ可能版をリリースしました。これは GitHub ユーザー doctashay が Xash3D FWGS エンジンのフォーク(GoldSrc テクノロジーのリ実装)を用いて作成したものであり、Valve による過去のキャンセルされた計画や、Intel チップへの移行後の 2013 年版に続く長らくの空白を埋めるものです。このファングレードリリースには、『ハーフライフ』、『ブルー・シフト』、『オポージング・フォース』および『Uplink』のデモが含まれ、マルチプレイヤー対応を含み、開始から終了までフルプレイ可能です。Mac OS 9.0 以降で G3 や G4 プロセッサーなどのレガシーハードウェア上で動作し、廃棄されたシステムにも新たな生命を与え、これまでこれらのプラットフォームでは入手不可能だった象徴的なタイトルへのアクセスを維持します。この成就是マッキン托しゲームコミュニティにとって重要ですが、性能はユーザーのグラフィックカードに大きく依存します。VRAM が限られたデバイス(8MB 未満の iMac や iBook など)では動作が困難な場合があります。まだ公式 Valve プロダクトではありませんが、このリリースは PowerPC マクintosh の計算機史におけるキャンセルされた時代を成功裡に蘇らせます。

M1 Mac で Kimi K3 を動かす方法 | そっか~ニュース