世界を動かす技術を、日本語で。

私の2.5年使っているノートパソコンは、今や「スペースインベーダー」をJavaScriptで書けるようになりました(GLM-4.5 Air)

概要

  • GLM-4.5 Air は中国Z.ai製の新しいオープンウェイトモデル
  • 44GB 3bit量子化版 を64GB MacBook Pro M2で動作検証
  • HTML/JavaScriptゲーム生成 などのコーディング性能が高評価
  • mlx-lmライブラリ のmainブランチを利用して実行
  • ローカルAIモデルの進化 と今後の可能性に注目

GLM-4.5 Air 3bit量子化版のローカル動作体験

  • GLM-4.5 はZ.ai(中国)が開発した MITライセンスのオープンウェイトAIモデル
  • GLM-4.5 Air は小型版でも パラメータ数1060億、Hugging Faceで 205.78GB
  • Ivan Fioravanti氏が 44GBの3bit量子化版 をMLX向けに公開
  • 64GBメモリ搭載MacBook Pro M2 での動作を想定したサイズ設計

実行方法と手順

  • mlx-lmライブラリのmainブランチ (glm4_moe対応コミット)を利用
    • uv run --with 'https://github.com/ml-explore/mlx-lm/archive/489e63376b963ac02b3b7223f778dbecc164716b.zip' pythonで環境構築
  • Pythonインタプリタで以下を実行
    • from mlx_lm import load, generate
    • model, tokenizer = load("mlx-community/GLM-4.5-Air-3bit")
  • モデルウェイト 44GB がローカルにダウンロード
  • プロンプト例:「Write an HTML and JavaScript page implementing space invaders」
    • messages = [{"role": "user", "content": prompt}]
    • prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
    • response = generate(model, tokenizer, prompt=prompt, verbose=True, max_tokens=8192)

実際の出力とパフォーマンス

  • Space InvadersゲームのHTML/JavaScriptコード を一発生成
    • プレイヤーの移動・攻撃、敵の動き、スコア・ライフ・ゲームオーバーなど主要機能を網羅
  • プロンプト14トークン生成4193トークン
  • トークン生成速度:25.564 tokens/sec
  • ピークメモリ使用量:47.687GB
  • 他アプリ終了が必要だったが、 実用的な速度 を実現

SVG生成ベンチマーク

  • 「ペリカンが自転車に乗るSVG画像を生成」 というプロンプトも試行
  • 約48GBのRAM使用、残り16GBで他アプリ動作
  • 速度・精度ともに良好な結果

近年のローカルコーディングモデルの進化

  • 2025年リリースの多くのモデル がコーディングタスクを重視
  • GLM 4.5 Air、Mistral 3.2 Small、Gemma 3、Qwen 3 など高品質モデルの登場
  • 2年前のLLaMA体験時と比べ、同じノートPCで遥かに高性能なモデルが動作可能
  • 今後もローカルAIモデルの進化と可能性に期待

Hackerたちの意見

おそらく、そのトレーニングデータには、さまざまなプログラミング言語で書かれた無数のスペースインベーダーが含まれていたんだろうね。

それに、データセットにすでにあるゲームのコピーの合成データが生成されてるんじゃないかな?LLMが生成したReactフロントエンドを見てると、みんな同じに見えるんだよね。

このコメントは約3年遅れてるね。gpt3以降のすべてのモデルは、トレーニングデータに利用可能なコードをすべて含んでる。もうこれが驚きでもなんでもないよ。chatgptの「おお、見て、これPythonコードみたいだけど全部間違ってる」から、「これが君が頼んだことをやって、0ショットで動くフルスタックのボイラープレートアプリだよ」になるまで、たった2年で進化したんだから。それがポイントなんだよね。しかも、訓練セットだけじゃなくて、モデルは今やポストトレーニングやRL、他にもいろんなことをやってここまで来てる。拡張コンテキストのすごい能力(最初のモデルは最大2/4kだった)やエージェント的なものも含めてね。こういうコメントは本当にポイントを外してると思う。

おそらく、このコメントには無数の似たようなコメントが含まれていて、実際の分析とは無関係な合成データばかりだと思う。

ブレイクアウトとの視覚的な類似性がちょっと面白いと思う。

本当のテストは、調整できるかどうかだよ。船を撃ち落とさせたり、スペースインベーダーが左右から来るようにしたり、2人同時プレイモードを追加して2隻の船を使わせたりね。

2年前に初めてLLaMAを試したとき、当時使っていたノートパソコンがいつかGLM 4.5 Airのような強力なモデルを動かせるようになるなんて夢にも思わなかったよ。Mistral 3.2 SmallやGemma 3、Qwen 3、そしてこの6ヶ月で出てきた他の高品質なモデルも含めてね。オープンモデルは、質とリリースのスピードの両方で期待を超えてきた。ちょっと背景を説明すると、2022年12月にchatgptが登場したとき、「最高の」オープンモデルはGPT-J(約6-7B)とGPT-neoX(約22B?)だった。実際、gpt-jを使ってユーザーがいるアプリを約1ヶ月間運営してたんだけど、ほんとに大変だった。質はひどかったし、指示に従うこともできなかった(プロンプトを物語のように始めたり、いくつかの例を考え出してモデルがそれに従うことを期待するしかなかった)。それから何かが起こった。LLaMAモデルが「漏れた」んだ(これは意図的な漏洩だと思ってる - 訴えないで、リリースするつもりはなかったんだ、みたいな)。それ以降の話はみんな知ってるよね。L1では、量子化モデルやファインチューニングなどのたくさんの最適化があったし、L2ではファインチューニングが本格化した(ほとんどのファインチューニングはMetaがリリースしたものより良かった)。それから、アルパカがLoRAを見せつけて、強力なモデルがいくつも登場した(Mistrals、Mixtrals、L3、Gemmas、Qwens、Deepseeks、GLMs、Granitesなど)。推定によると、オープンモデルは最先端の研究所がリリースしたものに約6ヶ月遅れているらしい。(ただし、これは研究所が最高のモデルをリリースしているわけではなく、次のデータキュレーションや合成データセット、蒸留などに使うために内部に保管している可能性が高い)。6ヶ月遅れているなんて、マジでヤバい!こんなところにいるなんて夢にも思わなかった。実際、gpt3.5レベルに達するのに約2年かかると思ってたから。これらのモデルを「ローカル」で遊んだり、ファインチューニングしたりできるなんて、本当にすごいことだよ。

GLM 4.5はQwen3のコーダーより優れてるの?

うーん、気になるな。LoRAのトレーニングや作成、使い方ってどうやるの?それとも、ファインチューニングのやり方は?数ヶ月前からこれを聞いてるけど、まともな答えがないんだ。自分で調べてもSEOや地理的スパムばかりで、実際の指示が見つからない。SD LoRAの作り方と使い方は知ってるし、もう2年もやってる。じゃあ、LLM LoRAの秘密って何なの?

ローカルでLLMを動かすために必要な最低限のハードウェアや推奨スペックを確認できるウェブサイトってある?ゲームの「システム要件」みたいな感じで。

https://apxml.com/tools/vram-calculator これは個人的にすごく良いと思う。

HuggingFaceのアカウントがあれば、自分の持っているハードウェアを指定できて、どのモデルが動かせるかがそのページに表示されるよ。

ローカルLLMを動かすために必要な最小/推奨ハードウェアを確認できるウェブサイトはある?LM Studio(他にもあると思うけど)は、自分のハードウェアで動くモデルを選ぶのを簡単にしてくれるよ。

これも役立つリソースかもね: https://www.reddit.com/r/LocalLLaMA/

他の人が提案したツールに加えて、良い目安としては、ほとんどのローカルモデルはq4クォンタで最もよく機能するってこと。つまり、モデルのメモリはパラメータの数のちょっと半分を超える感じ。例えば、14bモデルなら8GBくらい。もう少し余裕を持たせて、14GBモデルには10GBのVRAMが必要かも。それで、ハードウェアに合ったモデルを考えるための正しい範囲に入るはずだよ。(*パフォーマンス/サイズ比が最適、一般的にモデルがq4に簡単に収まるなら、より高いパラメータ数に行った方が大きなクォンタを追うよりいいし、その逆も然り)

スペースインベーダーをゼロから作ることは、実際のエンジニアリングを代表するものじゃないけど、もし1年後にローカルマシンでしっかりしたコード生成モデルを動かせるなら、Anthropicのビジネスモデルがどうなるのか興味深いね(時間ごとの使用料とか週ごとの使用料がない場合)。月200ドルで2年間使うなら、64GBの decent Mxを買えるし(残存価値を考えたら128GBもあり得るかも)。

なんで「実際のエンジニアリングを代表していない」って言えるの?既存のコードをコピペする以外に、エンジニアリングを適用せずにスペースインベーダーのゲームを作る方法があるとは思えないんだけど。

消費電力やサポートハードウェアはどうなるの?それに、カードがダウンすると、保証サービスを受けるまでダウンしたままになるよね。

じゃあ、手でスペースインベーダーを書いてみて。

「もしローカルマシンでしっかりしたコード生成モデルを動かせるなら、Anthropicのビジネスモデルがどうなるのか興味深い」ほとんどの人は、これのために高性能なハードウェアを買うことはないだろうし、SAASソリューションを使い続けるだろうから、安価なSAASソリューションが出てきたらAnthropicは厳しいかもね。

フロンティアモデルは、いつもその高品質と速い生成速度で誘惑してくるよね、個人的に思うけど。

LLMがノートパソコンでローカルに動くっていうのを見せるのは価値があると思う。特に、小さいモデルが実用化される前はそれがどれだけ難しかったかを考えると、重要なマイルストーンだよね。でも、こういうのだったら、既存の実装をGitHubとかで探してダウンロードする方がいいと思う。スペースインベーダーみたいな専門的で狭い分野だと、トレーニングセットはすごく小さいだろうし、モデルのベクトル空間も一般化する余地が限られてると思う。元のソースとほぼ同じコードが得られるし、コードを「タイプ」するのを待たなきゃいけないから、付加価値はかなり低いと思う。むしろ、GitHubで言語Xの既知のスペースインベーダー実装を教えてもらう方がいいかな。ちなみに、これを文法を整えるためにGPTに入れると、ChatGPTがすごく緊張するんだよね。LLMは記憶しないし、過剰適合はほとんどないってことを強調したがってるみたい(私もそう思うけど)。

面白いね、ChatGPTではこういう警告を出せないんだよね。これがすごく興味深いのは、こういう警告を挿入できるっていうのが膨大な政治的力を持ってるからだと思う(明示的にでも、微妙な言い換えででも)。

ボグルクローンは結構うまくいったよ。単一のHTMLファイルを作ろうとしてるのがいいね(それを頼んだわけじゃないけど、嬉しいサプライズだった)。辞書の検証は含まれてなかったから、いくつかのプロンプトが必要だった。モバイルのタッチ選択はあまり良くないけど、もっとひどいのも見たことあるしね。 https://chat.z.ai/space/z0gcn6qtu8s1-art https://chat.z.ai/s/74fe4ddc-f528-4d21-9405-0a8b15a96520

いいね — 斜めがもっと簡単だったらいいのに。 ;-) (建設的な意見になってるといいな。)

先日、テトリスのクローンを作る方向に進んだんだけど、これは絶対に一つのプロンプトじゃないね。ここまで来るのに15時間はかかったし、そのほとんどは考えてた時間だった… でも、ちょっとした小さなこと(preタグの中のスペースインベーダーのロゴ)を除いて、コードには触れてないんだ。ただ見てるだけ。まずはこのプロジェクトに自分をゼロから入れ込んで、その後に機能や修正を追加することを自分に義務付けたんだ。確かに私にとっては大変な作業だけど、2営業日以内でできることじゃないよね。おまけに、まだ完成してないけど、プロジェクトについて歌うAI生成の音楽も入れたよ。 https://www.susmel.com/stacky/ その過程で「AIと一緒に開発する」ことについてたくさんのことを学んだよ。

実装を理解してたの?それとも結果が出たことだけ?LLMが一般的な面接質問に対する答えを出せることを期待してるんだけど。今日、同僚がデータ変更を発表して、JSONの表示アプリを作るのにLLMを使ったんだ。なんで既存のアプリにJSONを流し込まなかったのか不思議だよ。周りの人たちは、ほとんどLLMを使ってプレゼンを強化するために使ってるだけで、実際に役立つものを実装するためには使ってない。数ヶ月間、同僚がそんな風に使ってるのを見てきたよ。別の例を挙げると、別の同僚がコースウェアのコンテンツを一括更新するためのドキュメントマクロを作りたがってた。古い単語を新しい単語に置き換えるためにね。マクロを作るために、まずWordドキュメントの中でLLMを正しく促すためのルーブリックを書いたんだ。それを使ってマクロのプログラムテンプレートを生成した。マクロの要件を定義するために、同僚はスライドショーのスライドを使って機能の箇条書きを作った。具体的には、別のテキストドキュメントからの単語リストを使ってコースウェアのスライドやドキュメント内の単語を見つけて置き換えること。システムの複雑さから考えると、同僚が時間を節約できたとは思えない。でもプレゼンは面白かったし、そこは褒められてたよ。ただ、実装者以外には全く役に立たない解決策だね。

コードをざっと見て、何をしてるのかは理解したけど、動くのを見たらあまり時間をかけなかったよ。LLMを使って本番システムのコードを書くときは、毎行レビューしてる。自分のルールは、他の人にどう動くか説明できるまでコミットしないってこと。LLMを使って「リアル」なコードを書くアプローチについては、ここにもっと書いたよ: https://simonwillison.net/2025/Mar/11/using-llms-for-code/

私の脳はレガシーCOBOLを動かしてるから、最初にこれを読んだときは「2.5歳の子供がノートパソコンでスペースインベーダーを書く」って思ったんだ。数百ミリ秒の間、「このクソガキたち、タブレット使うの上手くなってるな」って考えてたよ。

心配しないで、私の脳は最先端のTypeScriptとReactを動かしてるから(ちなみに高校生です)、最初に私もこう読んだんだ…でも眼鏡がないから、ハッカーニュースを250%で見てるし、ちょっと頭が混乱してるかも(笑)。

$xxxxの2.5歳のノートパソコン、今買う平均的なノートパソコンよりもずっとパワフルだと思うし、来年もそうだろうね。これを基準にするのは公平じゃないと思う。

記事全体は結構良かったけど、タイトルにはちょっとイラッとした。最初「2.5歳」と読んだときは、かなり低スペックだと思ったら、実際は64GBのユニファイドメモリを搭載したM2 MacBook Proだったから、Nvidia 5090が扱えるよりも大きなモデルが動かせるんだよね。「私のノートパソコンは2.5歳だから、まあまあ現代的/パワフルだ」って読む意図だったのかもしれないけど、それが意図されたとは思えないな。

彼の言いたいことは、普通のノートパソコンでモデルを動かせるってことじゃなくて、そのノートパソコンでも最先端のモデルが動かせるってことなんだよね。計算能力やRAMを増やすだけじゃないモデルの進化を示してる。あと、彼のノートパソコンもそんなに高級なわけじゃないし。

「消費者向けハードウェアで動かせるほど小さいって言ってる。」 私も64GBのM2 MacBook Proで7Bと13Bのモデルを動かしてみたよ!

私の2.5歳のノートパソコン(64GBのMacBook Pro M2)で動いているモデルが、こんなコードを生成できるのは注目に値すると思う—特に、最初の試行で修正なしに動いたコードだしね。私たちは、既存のハードウェアがこの分野でどれだけのことができるかを過小評価していると思う。苦い教訓や効率的な計算のフロンティアのような話が、たくさんの優れた頭脳を革命的アプローチの探求から遠ざけているのが心配だよ。現在のモデルが、トレーニング後に重みの精度をどれだけ落としてもペリカンが自転車に乗っているような結果が出ることを考えると、明らかに非効率的だってことは分かるよね。

大量のデータでトレーニングすることの苦い教訓ってなかったっけ?彼が使ってるモデルも、まだ膨大なコーパス(22Tトークン)でトレーニングされてるし。