AI・機械学習
Show HN: GLM 5.2 を低スペックPCで動作させる
Show HN: Getting GLM 5.2 running on my slow computer (github.com)
要約
投稿者は、高性能なLLMであるGLM 5.2を、32GBのRAMを搭載した自身のPCで動作させることに成功しました。モデルをint4に変換し、ディスクからのストリーミングやキャッシュを活用する「Colibrì」というエンジンを開発することで、低速ながらも実用的な速度での実行を実現しました。このプロジェクトは、GPUやPython、BLASライブラリに依存せず、単一のCファイルで構成されています。
全文翻訳
数日前、GLM 5.2を試してみて、その性能に非常に感銘を受けました。このLLMから得られる機能とセキュリティは、ClaudeやGPTのようなモデルから得られるものと同等であり、本当に驚きました。
しかし、ふと思いました。「自分の普通のPCではどうだろうか?」そして何よりも、「自分のPCのようなものでOOM(Out Of Memory)に陥らずに動作するだろうか?」そこで、この可能性をテストするためにエージェントの助けを借りて作業を開始しました。
モデルをint4に変換し、MTPの使用法を理解し、可能であればロングコンテキストのためにDSAを実装することから始めました。int4での応答性や、品質が維持されるかどうかを確認しました。そして、32GBのRAMを搭載した私のPCで、GLM 5.2と通信できるレベルに到達しました。もちろん、コールドスタート時の速度は速くはありませんが、それでも0.1 tok/s程度です。しかし、私にとって重要なのは、この目標に到達するまでの道のりでした。とにかく、たとえ遅くても、それが機能することだけを望んでいました。
そこで、Colibrìを作成しました。これは、正直に言うと非常にシンプルなアイデアから生まれましたが、あらゆる方法でテストされました。744BのMixture-of-Expertsモデルは、トークンあたり約40Bのパラメータしかアクティブにせず、そのうち約11GBだけがトークンごとに変化します(ルーティングされたエキスパート)。
つまり、以下のようになります。
密な部分(アテンション、共有エキスパート、埋め込み—約17Bパラメータ)はint4(約9.9GB)でRAMに常駐します。21,504個のルーティングされたエキスパート(75個のMoEレイヤー×256個のエキスパート + MTPヘッド、int4で各約19MB)はディスク(約370GB)にあり、オンデマンドでストリーミングされます。各レイヤーにはLRUキャッシュ、オプションのピン留めされたホットストア、そしてOSのページキャッシュが無料のL2として機能します。
エンジンは単一のCファイル(c/glm.c、約1,300行)と小さなヘッダーファイルのみです。実行時にBLASもPythonもGPUも使用しません。GPUや強力なハードウェアがないため、それらのハードウェアでテストすることはできません。
Colibrìは一人で開発したプロジェクトで、12コアのラップトップと25GBのRAMで完全に作成・テストされました。上記の数値は、自宅で測定できる上限値です。
フィードバックは歓迎です!(もしプロジェクトに参加したい方がいれば、喜んでお迎えします)
リポジトリ: https://github.com/JustVugg/colibri