Gemento: 小さなローカルLLMの長いタスクを外部状態・ツール・役割・ループで補強してみる実験ハーネス
(github.com/hang-in)こんにちは。
小さなローカルLLMが長いタスクにどれだけ耐えられるかを試すリポジトリを1つ公開しました。
Gemento
https://github.com/hang-in/gemento
このプロジェクトは新しいモデルアーキテクチャでもなく、論文でもなく、4Bモデルが frontier モデルを置き換えるという主張でもありません。
むしろ、「モデルの内部にあるべきだと考えられていたものの一部をワークフローの外に出したら、小さなモデルでもある程度性能が回復するのか?」を再現可能な形で測定してみる実験ハーネスに近いものです。
出発点は、私が seCall と tunaFlow を作りながら繰り返しぶつかった問題でした。
- 長いタスクがセッションをまたいで生き残れない
- コンテキストのコストがあまりにも早く高くなる
- モデルが自分のミスを自力でうまく見つけられない
- 小さなローカルモデルは単発推論で限界がはっきりしている
そこで、単純な問いから始めました。
プロンプトコンテキストを増やし続ける代わりに、記憶・状態・検証・計算・ループ制御を外に出したらどうなるのか?
Gemento ではこれを4つの軸に分けました。
-
Tattoo
作業記憶 / 中間状態を構造化された JSON 状態として外部化 -
Tools
計算を関数呼び出しベースのツールとして外部化 -
Role
自己検証を Proposer / Critic / Judge の役割分離として外部化 -
Orchestrator
終了条件と反復制御を Python ループとして外部化
名前は映画『Memento』のタトゥー、ポラロイド、メモというメタファーから取りました。
これまで主に使ってきたモデルは Gemma 4 E4B で、実効的には 4B 級のローカルモデルです。
まだサンプル数が少なく、一部の結果は統計的に有意ではありません。そのため README でも supported / conditionally supported / inconclusive / rejected を分けて記載しています。
目立っていた結果はおおよそ次の通りです。
-
単発推論より多重ループのほうが明確に良好でした。
Exp02: 50% → 94.4%
Exp10: 1-loop 41.3% → 8-loop ABC 78.1% -
同じモデルに「自分が間違っていないか見直してみて」とさせる方式は、ほぼ失敗しました。
Exp03: planted error 15個中0個を検出 -
逆に役割を分離すると、エラー検出は大きく改善しました。
Exp035: 15個中12個を検出、80% -
数学計算では、ツールへの外部化の効果が明確でした。
Exp08 / Exp08b では tool call と error hint を強制すると、特定の math task が 0% → 100% まで回復しました。 -
長いコンテキストのタスクでは、単純なダンプより chunked ABC+Tattoo が強く出ました。
Exp09 Large 20K 条件で Solo 0%、RAG 67%、ABC+Tattoo 100%
ただし、ABC+Tattoo が RAG より一般的に優れているという結論はまだ出していません。H9b は inconclusive です。 -
強いモデルを Judge に入れる方式は、むしろ失敗しました。
Exp11 では Judge だけを Gemini 2.5 Flash に変えましたが、mixed condition はベースラインの all-Gemma より低く出ました。
観察されたメカニズムは、「強い Judge が弱いモデルの自己発見プロセスを助けるのではなく、中間状態スキーマや結論の収束を妨げうる」というものでした。 -
一方で、前段に Extractor 役割を追加するのは小さいながらもプラス方向でした。
Exp12: Δ +0.050
特に catastrophic case の一部で回復が見られました。 -
後段の Reducer 役割は逆に悪化しました。
Exp13: Δ -0.053
最終回答を「きれいに整理する」過程で根拠構造が圧縮され、スコアが下がる abstraction loss が観察されました。
そのため、現時点での解釈は次の通りです。
小さなモデルを無条件にもっと強いモデルに審判させるより、同じモデルであっても役割をどこに配置するかのほうが重要である可能性がある。
特に pre-stage の役割追加は比較的安全で、post-stage の要約や整理は危険でした。
このプロジェクトでまだ主張していないことも明確に書いてあります。
- 4Bモデルが大きなモデルを置き換えるという主張ではない
- ABC+Tattoo が RAG より常に優れているという主張ではない
- 新しいアーキテクチャや学習方法ではない
- 論文レベルの統計検定が終わったという主張ではない
- Related work の一部はまだ bibliographic verification が終わっていない
現時点では「公開実験ノート」に近いものです。
1人で行った実験は錯覚が生じやすいものです。特にこの種の構造実験は、taskset、scorer、prompt、loop 条件によって結果が簡単にぶれうると考えています。
そのため、polished paper になる前に公開しました。
求めているフィードバックはおおよそ次のようなものです。
- 別のローカルモデルでも再現されるか
- taskset / scorer に偏りがないか
- RAG baseline が十分に公平か
- ABC+Tattoo が実際に別の failure mode を示すか
- Search Tool / Graph Tool / Evidence Tool を付けたとき、Tool axis でより明確な効果が出るか
次の候補実験は Exp14 Search Tool です。
興味のある方は README や docs/reference を見ていただければと思います。
反例、再現失敗、批判、いずれも歓迎します。
まだコメントはありません。