22 ポイント 投稿者 GN⁺ 2025-12-30 | 2件のコメント | WhatsAppで共有
  • Z80-μLM は、1976年製の Z80プロセッサ(4MHz、64KB RAM) 上で動作する超小型の 対話型人工知能モデル
  • 量子化認識学習(QAT) を適用し、2ビット重みと16ビット整数演算だけで 文字単位のテキスト生成 を実行
  • 40KBの .COM 実行ファイル の中に、推論エンジン、重み、チャットUIをすべて含有
  • trigramハッシュエンコーディング により入力を128個のバケットに変換し、タイプミスや語順に強い応答を生成
  • 複雑な文脈理解はできないものの、制限の厳しい8ビット環境でも動作する実験的AIモデル として注目されている

プロジェクト概要

  • Z80-μLMは、レトロコンピューティング環境で動作可能な超小型言語モデル
    • 64KB RAMを搭載したZ80 CPU上で動作し、文字単位の対話型応答 を生成
    • モデル、推論コード、UIを含めた全体サイズは約 40KB
  • プロジェクトの中心的な問いは「どこまで小さくしても個性を保てるか」であり、セルフホスティングでの配布 も可能
  • チューリングテストの水準には達しない ものの、簡単な会話でユーザーを楽しませる形になっている

2つの例を同梱

  • tinychat

    • 日常的なQ&Aデータ で学習したシンプルなチャットボット
      • あいさつ、自己紹介、一般会話に対して短く個性的な返答を提供
      • 例: “hello” → “HI”, “are you a robot” → “YES”, “do you dream” → “MAYBE”
  • guess

    • 20 Questionsゲーム 形式のモデル
      • 秘密のテーマを知っており、YES/NO/MAYBEで応答
      • ユーザーが正解を当てると “WIN” を出力
  • 学習データは Ollama または Claude API を使って生成でき、クラス分布のバランス調整ツール も含まれる

主な機能

  • Trigramハッシュエンコーディング: 入力テキストを128個のバケットにハッシュ化し、タイプミスを許容しつつ語順に依存しない
  • 2ビット重み量子化: 各重みは {-2, -1, 0, +1} で、1バイトに4個格納
  • 16ビット整数推論: Z80の16ビット算術演算を使用
  • 約40KBの .COM ファイル: CP/MのTransient Program Area(TPA)に適合
  • 自己回帰生成: 文字単位で出力を生成
  • 浮動小数点演算なし、固定小数点スケーリングを使用
  • 対話モード対応: CHAT コマンドで実行

相互作用の仕組み

  • モデルは入力を「理解」しているわけではないが、入力の形状(shape) に基づいて反応する
    • 入力文は 128個のtrigramバケット に変換され、意味的な近さを維持する
    • 例: “hello there” と “there hello” は同じバケット構造として処理される
  • 長い文や順序依存の文は区別が難しい
  • 短い応答の意味

    • 1〜2語の応答でも 意外なニュアンス表現 が可能
      • OK: 中立的な受諾
      • WHY?: 問いへの反論
      • R U?: 存在への疑問
      • MAYBE: 不確実性
      • AM I?: 反射的な問い返し
    • こうした短い応答は、ユーザーに 文脈を推測させる ことを促す

強みと限界

  • 強み
    • 短い入力に対する一貫した分類型応答
    • タイプミス・言い換え・語順変化 に強い
    • 語彙選択による個性表現
    • 制約の厳しい8ビットハードウェア でも実行可能
  • 限界
    • 新しい文の生成は不可
    • 複数ターンの文脈追跡は不可
    • 文法理解は不可
    • 汎用知能の水準には達しない

アーキテクチャ

  • 入力層: 128個のクエリバケット + 128個のコンテキストバケット
  • 隠れ層: 構成例 256 → 192 → 128
  • 出力層: 文字セットの各文字につき1ニューロン
  • 活性化関数: ReLU
  • 量子化の制約

    • Z80は8ビットCPUだが、16ビットレジスタペア(HL, DE, BC) を使って累算と活性化を実行
    • 重みは 4個ずつ1バイトに格納(2ビット単位)
    • 16ビット累算器により、256個の入力を合計してもオーバーフローを防止
    • 2ビット重みにより表現力は制限され、QATなしでは学習結果が不安定になる可能性 がある
  • Z80内部ループ

    • 推論の中核は 乗算累算ループ(MAC)
      • 重みをアンパックし、-2〜-1〜0〜+1の値に応じて累算器(ACC)に加算または減算する方式
      • 各層の計算後、オーバーフロー防止のため2ビット右シフト を実行
    • 推論全体では 文字1つあたり約10万回の演算を反復

ライセンス

  • MIT または Apache-2.0 を選択可能

2件のコメント

 
GN⁺ 2025-12-30
Hacker Newsの意見
  • 完璧なタイミングだ。自分はUnreal Engineのゲーム内に VT100ターミナル(コーディングエージェントを動かすため)と Z80エミュレータ、そしてCP/Mマシンをプログラムできるシリアルブリッジを入れていた
    スクリーンショット
    こんなにぴったり合うものを誰かが投稿してくれるとは思わなかった。本当に奇妙だけど驚くべき偶然だ
    • まるで二人で テレパシー でも通じ合ったみたいだ
      自分はブラウザベースのCP/MエミュレータとIDEを作った: lockboot.github.io/desktop
      もともとそれを投稿しようとしていたのに、「すごいデモ」を探していたら沼にはまってしまった
    • James Burkeの Connections: Alternative History of Technology という本は、こういう 偶然のつながり をうまく扱っている
    • 興味深いけど、imgurが見られないのが残念
  • 本当に気に入った。さっそく GitHubスター を付けた
    自分は60年代のパンチカード機向けにFortran IVでMLPを書いたことがある(Xortranプロジェクト
    注意メカニズムはなく、文脈も最後の文の trigram に制限されていたのに、対話性はかなり良かった
    こういうものが60年代のハードウェアでも可能だったなら、当時の SFと科学 はまったく違うものになっていたはずだ
    • こういうプロジェクトは本当に面白い。失われた道 を見ている感じだ
      陰謀論っぽく言えば、AI企業がRAMを大量に買い込んでいる理由の一つは、今が ホームコンピュータ革命期 に似ていると人々に気づかせないためなんじゃないかと思う
      自分は1TB RAMマシンを使っているが、カスタムエージェントで商用モデルより高性能だ。個人的で安全で、収益化 もされていない
  • 自分もよく考える。「最小機能LLM」 とは何だろう? 単純な会話ができるレベルのモデルのことだ
    そして次の問いは、外部データを参照しながら学習できる小さなモデルを作れるかどうかだ
    もしリアルタイムで学習する超小型モデルを作れたら、完全に ローカル化された個人アシスタント を手に入れることになる
    • これはKarpathyの言う 「cognitive core」 の概念とほとんど同じだ
      百科事典的な知識はほとんどないが、基本的な推論とツール使用能力を持つ非常に小さなモデルだ
      参考ツイート
    • もし90年代にこの技術があったなら、基礎的なLLM はすでに存在していたかもしれない
      そうなっていたら、今の世界はまったく違っていたと思う
    • RWKVを見ると興味深い: rwkv.com
      「RNNがLLMに向いていたらどうなっていたか」という 実験的ケーススタディ
      CPUで狂ったように速い
    • Minecraftの中で誰かが作ったLLMがあって、500万個の8ビット重みで簡単な会話をこなしている
      ただし大きな コンテキストウィンドウ をうまく活用するのは難しそうだ
  • AI企業が Z80チップ を全部買い占めて値段をつり上げそうだ、という冗談
    • もう手遅れだ。去年在庫が全部なくなった
  • あるモデルに 秘密の合言葉(passphrase) を学習させて、ユーザーが質問を通じてそれを推測しなければならないとしたら
    モデルの重みにアクセスできればその秘密を逆算できるのか、それとも質問を通じてしかアクセスできないのか気になる
    • その質問でこの論文を思い出した: Planting Undetectable Backdoors in Machine Learning Models
      表向きは正常に動作しながら、内部に 検出不可能なバックドア を仕込む方法を扱っている
    • モデルが小さいほど、そうした秘密は 重み解析で簡単に抽出 できる
      一般的には 「解釈可能性(interpretability)」 の問題に属する
  • 適切なコードと学習インフラがあれば、ELIZA もずっと強力になっていただろう
    • もともとELIZAは1960年代のIBM 7094メインフレームで動いていた
      32K×36ビットワード構造で、バイト演算はサポートしていなかった
      40KBのZ80実行ファイルをそのまま持っていくのはかなり厳しかったはずだ
      ただし大半が2ビット重みなら可能だったかもしれない
      その後のハードウェア、特に1976年の Z80 ではずっと余裕があっただろう
  • 自分も Z80コンピュータ を自作で設計・製作した。現在は32KB ROMと32KB RAMを搭載している
    次のバージョンでは拡張する予定なので、ぜひ試してみたい
    • 最近は RAMの価格 が高すぎる
  • 入力全体を一度に埋め込みとして処理するなら、これはTransformerでもRNNでもなく MLP構造 のように思える
  • 昔の 自由入力RPG にこういうファジーマッチャーがあればよかったのにと思う
    当時は正確なキーワードマッチしかできなくて不自然だった
    たぶんそういう方式の最後のゲームは2001年の Wizardry 8 だったはずだ
  • すばらしい仕事だ。ところで AGI までの予想スケジュールはどんな感じ?
    • たぶん 4月上旬 ごろだと思う
    • すぐ 角を曲がった先 にある気がする
 
crawler 2025-12-30

最新技術を昔のハードウェアで動かすというのは、本当にとても不思議に感じます。

将来AGIが登場したとき、今地球上にある計算能力をすべて集めれば動かせるのでしょうか?