こんにちは、パレイド技術部の橘です。
前回 (ep6) のベンチ実測で、リファレンスを 軽くしたい という気持ちが固まりました。154KB は 32k context のローカルモデルでは入りきらず、KV cache が CPU/GPU 50/50 split になって prompt_eval が 5 分タイムアウトに引っかかる組み合わせもありました。
ただし軽量化に踏み込む前に、もう 1 つ片付けるべき問題がありました。現状のリファレンスはマニュアルからの引用が多く、配布しづらい。記事本文に塊で貼るのもリポジトリ同梱もしにくく、軽量化を頑張っても出口がない状態でした。
そこで打ち手として選んだのが、実機を動かしてリファレンスを作る作業の自動化です。引用に頼らず、出典を「実機がこう返した」に統一できれば、配布できる素地が立ちます。サイズ調整はその上に乗せる、という順序にしました。今回はその自動化パイプラインの紹介と、ベータ版の配布告知です。
自動化のパイプライン — probe → observed → reference
仕組みは 3 段です。
- probes/{category}/{id}.json — 連載者が書く小さな BASIC コードと「何を観察するか」の指定 (snapshot frames、OAM 範囲、APU チャンネル、inject すべきパッド/キー)
- browser /probe コマンド で実行 — autoTyper が BASIC を打ち込み、inject_pad / inject_keys でコントローラとキーボードを再現、各 frame で状態をキャプチャして observed/{category}/{id}.json に書き出す
- writeback.py が observed を読んで、reference.md の該当エントリに
<!-- probe-observed: id -->ブロックを冪等に挿入
probe を 1 つ追加するたびに、観察結果が reference.md に流れ込みます。出典が実機の挙動に統一されるので、説明文と例コードを自分で書きさえすれば 引用ゼロで成立します。
4 つの Tier で 97 件を一周
probe を Tier A/B/C/D の 4 段に分けて、合計 97 件を一周しました。
| Tier | 件数 | 主なカテゴリ |
|---|---|---|
| A | 64 | operator / function / error / statement / constraint / idiom |
| B | 16 | 画面系 6 (LOCATE / CLS / CGEN / COLOR / PALET / VIEW) + sprite 10 |
| C | 12 | sound 3 / pad 3 / keys 4 |
| D | 5 | CSRLIN・POS / SCR$ / POKE・PEEK / LIST / ?CC ERROR |
| 計 | 97 |
reference.md には <!-- probe-observed: ... --> の開始・終了マーカーが計 194 個並んでいて、利用者は probe id を頼りに同じ観察を nesemu 上で再現できます。
ベータ配布 — reference-beta-v2.md
ファイルを下記 URL に置きました。
- https://pareido.jp/files/famibasic-reference-llm/reference-beta-v2.md
- サイズ: 約 156KB (5,583 行 / 97 観察ブロック)
- ライセンス: CC0
引用問題は解消しましたが、サイズはまだ 156KB のままです。ファイル名に beta-v2 と付けたのは、今後数バージョン並走させる前提だから。直近で動く改善が 2 つあります。1 つは slim 化 — 観察ブロックを圧縮した派生版を ep13 で出す予定。もう 1 つは Tier 連載 (次回 ep8 から) で probe 自体の追加・修正が観察に反映される件です。バージョン番号を見て使い分けてください。
利用の最小形は system prompt に貼り付けるだけ。引用版と同等以上の挙動になるかは ep12 のベンチ再走で数字を出します。
次回からの 7 回ぶん — Tier 別深掘りとベンチ再走
ep7 を区切りに、連載は 2 段構えで残り 7 回を走ります。
| 回 | テーマ |
|---|---|
| ep8 | Tier A — AI の想定と実機が食い違う演算子・関数・エラー |
| ep9 | Tier B — 画面 6 命令と OAM 10 spr で読み解くスプライト構造 |
| ep10 | Tier C — sound / pad / keys を inject ハーネスで観察する |
| ep11 | Tier D — 直接テスト困難な 5 命令を三角測量で観察する |
| ep12 | 公開版でベンチ再走 — 引用版との PASS 率比較 |
| ep13 | 不調パターンを reference に逆流 — slim ref 派生まで |
| ep14 | probe とベンチを動画素材にする — 連載クロージング |
ep8-11 で probe の中身を Tier ごとに見せ、ep12-13 で「公開版が引用版と同等以上に届くか」を実測で締め、ep14 で素材を動画に渡して連載を終える流れです。観察と LLM が交わる地点を、もう少し具体的に書きます。