Show HN:私の低速な PC で GLM 5.2 を動かしている

2026/07/09 17:05

Show HN:私の低速な PC で GLM 5.2 を動かしている

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

要約

Japanese Translation:

Colibrìは、ランタイム依存関係ゼロの純 C 言語で書かれた軽量な C エンジンであり、約 25 GB の RAM を搭載する汎用ハードウェア上で、740 億パラメータの GLM-5.2 モデルをローカルに実行することを可能にする。これは、ディスクストリーミング技術を採用することで実現しており、メモリ内に密度の高いコア(〜17B パラメータ)と頻繁に使用されるエキスパートのみを保持し、残りの約 21,504 のルーティング済みエキスパートをディスクからストリーミング処理する。このエンジンは、DeepSeek-V3 スタイルのルーティング、MLA アテンション、圧縮された KV キャッシュ、そして Native MTP 推論的デコード(int8 専用ヘッド)を含む GLM-5.2 の MoE アーキテクチャをネイティブでサポートしている。AVX2 インタージェンタートド積の最適化済みカーネルを採用し、使用パターンを学習して自動的にメモリピン固定を行う自動メモリ管理システムを活用することで、初期のコールドスタート後(最初の推論時にトークンあたり約 11 GB のディスク読み込み)のレイテンシを最小化している。プロジェクトには純 C ランタイムと、コンバージョン専用で Python のみが必要となるオフライン FP8→int4 変換スクリプトが含まれており、Linux/WSL2 および設定可能な環境パラメータに対応する。Apache 2.0(エンジン用)と MIT(ウェイト用)のハイブリッドライセンスの下にあり、研究者が消費者向け NVMe ドライブまたは高エンドハードウェア上においてローカルで最先端モデルを実行できるよう、完全なポートabilityを備えている。システムの性能に応じて、約 0.1 トークン/秒から 15 トークン/秒以上の速度を実現する。

(注:改善されたバージョンは、元のサマリーの流れを保ちつつ、量子化、推論的デコード、コールドスタートのメカニズム、ライセンスの詳細に関する不足していた技術的な specifics を統合しています。)

本文

極小エンジン、巨大モデル:市販マシンでの GLM-5.2 (744B MoE) 動作方法

約 25GB のメモリを持つ市販の PC 上で、パラメータ 744 億(744B)を持つ GLM-5.2 MoE モデル を動作させます。 これを実現するには、依存関係を一切持たない 純粋な C ランゲージを使用し、ディスクから「エキスパート」をストリーミングして読み込む方式を採用しています。

概要とコンセプト

  • 基本原理: 744B パラメータを持つモデルでも、トークンごとの活性化は約 40B パラメータのみ です。
  • メモリ戦略:
    • RAM 常駐部(〜9.9GB): アテンション、共有エキスパート、埋め込みなど密度の高い部分(計 17B)を
      int4
      量化して保持します。
    • ディスク常駐部(〜370GB): ルーターされたエキスパート(21,504 個)はディスク上へ格納し、必要に応じてストリーミング読み込みます。
  • 構成: 単一の C ファイル(約 1,300 行)とヘッダーのみで動作します。BLAS や Python、GPU は使用しません。

実装済み機能

以下の機能により、高品質な推論を確保しています。

  • 忠実な GLM-5.2 サポート: トランスフォーマーのオラクル(教師モデル)とのトークンごとの完全一致を検証(ティーチャ・フォーシングで検証)。
  • MLA アテンション & 圧縮 KV キャッシュ:
    • 浮動小数点精度を大幅に削減し、メモリ使用量を約 57 倍小型化。
    • GLM-5.2 の特性に合わせて最適化された実装。
  • DeepSeek-V3 スタイルのルーター:
    sigmoid
    ルーターと共有エキスパートの実装。
  • ネイティブ MTP(マルチトークン予測)推論:
    • GLM-5.2 独自の MTP ヘッダーをメインモデルでバッチ処理し検証。
    • int8 でなければならず、コンバーターが自動的に変換を行います。
    • 重要:
      int4
      では受容率が低下(0–4%)しますが、
      int8
      では 39–59% の受容率を得られ、バッチ処理あたり 2.2–2.8 トークンの生成を実現します(ロスレス)。
  • 真のサンプリング: テンペラメント+核(Nucleus)サンプリングを実装。int4 量化に合わせてデフォルト値が調整済み。
  • 高性能計算カーネル:
    AVX2
    を使用した
    int8
    マトリックス乗算で、1.4–2.5 倍の高速化を実現(測定値:119 GFLOP/s)。
  • MLA 重みの吸収: トークンごとの k/v 再構築を行わず、クエリが kv を直接吸収する手法を採用。検証済みで正確性が保たれます。
  • 非同期エキスパートリードアヘッド: 乗算中に次のブロックを読み込む(
    WILLNEED
    )仕組みを実装。
  • RAM 安全性: エキスパートキャッシュを
    MemAvailable
    に基づき自動サイズ調整し、OOM(メモリエリア不足)を防止します。
  • オフライン FP8→int4 コンバーター: ダウンロードした 756GB の FP8 チェックポイントを一度にディスク上に保存する必要なく、段階的に変換可能(再開可能)。

システム要件と性能測定基準

開発マシンは WSL2(12 コア、25GB RAM、VHDX 経由の NVMe) で動作しています。

  • 常駐 RAM: 密度の高い部分のみで約 9.9 GB
  • ロード時間: 約 30 秒
  • チャット時のピーク RSS: 自動上限設定により約 20 GB
  • Cold decode コスト: 初期ロード時はディスク読み取りが必要(約 11GB/トークン)。キャッシュが暖まると大幅に低下します。

SSDに関する注記

  • ストリーミングは読み取り専用のため、SSD に摩耗を与えることはほぼありません。
  • 懸念点: システム RAM が不足してスワップが発生する場合はドライブが摩耗します(適切な
    --ram budget
    を設定してください)。また、長時間稼働による熱管理も必要です。

モデルのダウンロードとセットアップ

事前変換済み GLM-5.2 int4 モデルは Hugging Face で入手可能です。

  1. リポジトリの取得:

    COLI_MODEL=/path/to/GLM-5.2-colibri-int4 ./coli chat
    

    このコマンドにより、FP8 → int4 の変換工程をスキップできます。

  2. モデル側での操作(ワンコマンド): GLM-5.2-FP8 シャードをダウンロードし、int4 コンテナに変換、MTP ヘッダーへ変換する一連の流れを提供します。途中の処理は中断・再開可能です。

    # 準備
    cd c
    ./setup.sh                      # gcc/OpenMP チェック、ビルド、自己テスト
    
    # モデル変換(約 400GB の空き領域が必要)
    ./coli convert --model /nvme/glm52_i4
    
    # チャット実行
    COLI_MODEL=/nvme/glm52_i4 ./coli chat
    

有用な設定項目(フラグ)

  • --temp T
    : トークンサンプリングの温度(デフォルト:0.7 + 核 0.90)。
  • --topp 0.7
    : 適応的エキスパート top-p(ディスク読み取りを 30–40% 削減)。
  • --ngen N
    : 回答あたりの最大トークン数。
  • AUTOPIN=0
    : 学習キャッシュの自動ピンを無効化。
  • THINK=1
    : GLM-5.2 の推論ブロックを有効化。
  • DRAFT=n
    : MTP 下書き深さ。
  • TF=1
    : ティーチャ・フォーシング検証(品質確認用)。

学習キャッシュの仕組み: エンジンは

.coli_usage
ファイルにどのエキスパートが使用されたかを記録し、起動時に最もホットなエキスパートを RAM にピン(固定)します。「使うほど速くなります」。

より高性能なマシン向けのテストとベンチマーク

エンジンには以下のようなノブ(調整要素)があり、お使いのマシンに合わせて性能を引き出せます。

  • Linux / WSL2: gcc with OpenMP
  • CPU: AVX2 対応 (≥16GB RAM 推奨)
  • ストレージ: ローカル NVMe (
    ext4
    モウント必須)

テスト手順

  1. ディスク性能測定 (

    iobench
    ):

    gcc -O2 -fopenmp iobench.c -o iobench
    # バッファ付き測定(8 スレッド)
    ./iobench /path/to/glm52_i4/out-00069.safetensors 19 64 8 0
    
    # O_DIRECT メモリ確保測定
    ./iobench /path/to/glm52_i4/out-00069.safetensors 19 64 8 1
    
  2. チャット実行と統計監視:

    COLI_MODEL=/path/to/glm52_i4 ./coli chat
    
  3. エキスパートピン設定: 最もホットなエキスパートを RAM に固定します。自由に使える RAM に合わせて

    PIN_GB
    を調整してください。

    STATS=stats.txt ./coli chat
    PIN=stats.txt PIN_GB=20 ./coli chat
    
  4. 品質ベンチマーク:

    ./coli bench
    

粗い見積もり(ハードウェア依存)

マシン構成予想性能 (トークン/秒)備考
開発マシン (WSL2, VHDX ~1 GB/s, 25GB RAM)~0.05–0.1Cold スタート時のベースライン
ネイティブ Linux / PCIe4 NVMe (~3–5 GB/s, 32GB RAM)~0.5–1キャッシュが暖まった後
PCIe5 NVMe / RAID0 (~8–12 GB/s, 64GB RAM)~2–4ホットエキスパート約 40GB をピン可能
高負荷 RAM (128–256GB) + AVX2/AVX-512 カーネル~5–15インタラクティブ使用、マトリックス乗算に制約あり

重要: これらは見積もりです。数値は実際の測定結果としてください。

コミュニティによるベンチマーク(実測値)

以下は

setup.sh
、gcc 13、greedy decoding、MTP 有効化条件下での測定値です。

マシンディスク性能 (iobench)設定測定結果 (トークン/秒)補足
Intel Core Ultra 7 270K+ (WSL2, 24 GB RAM, NVMe VHDX)バッファ 1.96 GB/s · O_DIRECT 2.74 GB/sデフォルト0.07RAM 制限によりディスクより遅い
--topp 0.7
0.11ディスク読み取りを削減、速度向上
Apple M5 Max (macOS, 128 GB Unified, Internal SSD)O_DIRECT 14.2 GB/sデフォルト、MTP オフ1.06ラップトップで 1 トークン/秒を実現

解説:

  • RAM が少ないマシン(例:24GB)では、RAM の上限がボトルネックとなり、ディスク性能をフル活用できません。
  • --topp 0.7
    を設定すると、エンドツーエンドの速度向上で約 1.6 倍 の改善が見られました。
  • M5 Max の結果は、ラップトップ SSD でも高速な推論が可能であることを示しています。

品質ベンチマーク調査募集中

int4 量化による精度損失の実測データが必要です(現在はハルネス接続済み)。より高速なマシンでの測定を歓迎します。

cd c
./coli bench                                   # hellaswag, arc_challenge, mmlu —— 各 40 問
./coli bench hellaswag --limit 200             # 1 つのタスクでより多くの問題数を実行
./coli bench mmlu arc_challenge --ram 100      # タスク選択と RAM ベット設定
  • 公開スコア: フルプレシジョン GLM-5.2 のスコアは約 85–95% です。int4 コンテナが数ポイント以内なら量化は検証済みです。

プロジェクトへの支援

開発およびテストはすべてラップトップ(12 コア・25GB RAM)上で実施されています。より良いテストハードウェアでの貢献を歓迎します。

  • リポジトリのスター
  • 🐛 ベンチマーク報告: 自社のハードウェアからの数値を含んだ Issue の作成
  • 💬 開発支援: GitHub Issues からのご連絡や寄付

リポジトリ構成

  • c/glm.c
    : エンジン本体(GLM-5.2 フォワード、ストリーミング MoE、MTP など)
  • c/st.h
    : safetensors リーダー(メモリ効率化実装)
  • c/tok.h
    : C 言語実装の BPE トークナイザー
  • c/coli
    : CLI ツール(chat / run / bench / convert / info)
  • c/iobench.c
    : ディスクマイクロベンチマークツール
  • c/convert_fp8_to_int4.py
    : FP8 から int4 へのコンバーター
  • c/make_glm_oracle.py
    : 検証用オラクル生成器

なぜ「colibrì(ヒョウモンドリ)」なのか

コリービリは、空中でホバリングしながら一日に千の花を訪れる鳥です。 このエンジンは、25GB の RAM と 12 コアの CPU という限られたリソースと「ディスクへの忍耐」を糧にして、7440 億パラメータの巨大モデルを生き永らえさせる仕組みです。

ライセンス

Apache 2.0 ライセンスです。GLM-5.2 の重みは Z.ai より MIT ライセンス下で提供されています。

同じ日のほかのニュース

一覧に戻る →

2026/07/09 20:03

欧州議会で Chat Control 1.0 が承認される

## Japanese Translation: 欧州議会は、Instagram、iCloud、Gmail などの主要プラットフォームにおける私的通信の無許可的大規模スキャンを 2028 年まで、あるいは恒久的な合意に至るまでの間を認める暫定規則を承認した。投票結果は賛成 276 票で可決されたが、絶対多数 361 票には届かなかった。一方、スキャン対象を司法手続きにおける被疑者だけに限定する修正案(322 対 255 の支持率)も、同様に絶対多数に達しなかったため採択されなかった。その結果、Meta や Apple など大規模な米国技術企業は当局から無許可でダイレクトメッセージのスキャンを義務付けられることとなり、WhatsApp のようにエンドツーエンド暗号化が実施されているアプリは除外されることとなった。データによると、この大規模監視は虐待通報の 36% しか説明しておらず(2022 年以降の米国事例において報告件数は 50% も減少しており、これは暗号化強化によるものとして示唆されている)、残りの大部分の通報は公開投稿やクラウドストレージから出ている。市民権利活動家や性暴力被害者を含む批判者は、この法律を「滑稽なもの」と糾弾し、それは真摯な児童保護よりもむしろビッグテックのデータ利益を追求するものだとしている。また、Meta が生成した通報のほとんどは、すでに企業が把握していた材料に過ぎないという発見にも言及している。恒久版のための協議は立法による立滞の解消後、9 月に再開予定となっており、この措置が安全性を損なう一方で実証的な保護的成果をもたらしていないと考える活動家からは激しい反対運動が生じている。

2026/07/09 21:48

Show HN: 18語

## Japanese Translation: ## 日本語訳: 提供された要約は、重要な点を明確かつ忠実に反映しているため、改訂の必要はありません。 ## Text to translate: The provided summary is clear and faithful to the key points, so no revision is necessary.

2026/07/10 2:17

ミッチェル・ハッシャイモへのインタビュー『Ghostty と Zig』について

## Japanese Translation: Mitchell Hashimoto(Terraform や Ghostty などの主要なツールを考案した人物)は、長年にわたる CLI 関連の活動から転換し、Zig を用いた Pre-AI GPU プログラミングおよび低レベルシステム開発に注力しています。この転換の中心には、過時なテキストのみという制約を超え、ネイティブウィンドウ機能を採用し、n-screen API による無制限なバックグラウンド画面を実現するとともに、履歴航法用の新ボタンメッセージなど高度な相互運用プロトコルを取り入れる次世代ターミナルである Ghostty が置かれています。Hashimoto はターミナルの独自の能力を強いることや、pty プロトコルを Wayland で置き換えること(サーバとしての強みゆえに)には反対していますが、現代の規格を活用した機能豊富なエミュレータを提唱しています。彼の姿勢は、20 年にわたって統一された団体よりも人気のある実装に基づいてきたターミナル標準の断片化に対する不満を浮き彫りにしています。Zig 1.0 は、0.15 バージョンにおける重要なインターフェース変更を経て現在数年先の予定ですものの、Hashimoto は BDFL の Andrew を支持し、AI ツールを使用して互換性ディフ自動処理を行うことで、「アウルの残りを描く」という自身の哲学を体現しています。最終的に、この移行は高レベルの抽象化に頼るのではなく、C や Zig を通じてメモリ管理や CPU スケジューリングといった基本的人間計算機概念を習得するという彼の個人的な原則を反映しています。