モデル / データセット
AutoArk/TinyEngram avatar
AutoArk/TinyEngram

TinyEngram: Engramメモリ注入をQwenとStable Diffusionで再現する研究リポジトリ

Research of DeepSeek Engram Architecture based on Qwen-3 and Stable Diffusion series.

スター 1,375フォーク 90Pythonライセンスはプロジェクトにより異なります
GitHub

ひと目でわかる

これは何?
DeepSeekのEngramアーキテクチャをQwen-3とStable Diffusion上で再現し、LoRAとの比較や視覚概念の注入を試す研究用コードベース。学習済み重みを凍結したままN-gramメモリを差し込む設計で、破滅的忘却への耐性を主張する。ただしライセンス表記とarXiv番号に確認すべき点がある。
誰に向いている?
TinyEngramは、Engram型のメモリ注入を自分のGPUで再現し、LoRAとの違いを検証したい研究者・実験者向けのリポジトリだ。逆に、本番サービスに組み込む部品や、長期サポートが保証されたライブラリを探している開発者には向かない。
商用利用できる?
許可なしにはできません。GitHub はこのリポジトリにライセンスファイルを見つけていません。ライセンスがなければ、原則としてすべての権利が留保され、コードを読むことはできても再利用はできません。使う前に README を確認するか、作者に問い合わせてください。
今もメンテナンスされている?
されています。最後のコミットは 118 日前です。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Engramとは何を記憶する機構なのか

TinyEngramが対象にしているのは、DeepSeekのEngramアーキテクチャだ。READMEの説明によれば、これはコンパクトなN-gramメモリモジュールとゲート付き検索機構をトランスフォーマーの主要層に統合し、フレーズ単位の理解を高めるLLM拡張だとされている。つまり文脈全体を attention で再計算するのではなく、プロンプト中の特定のN-gramを手がかりに、あらかじめ学習させた埋め込みを該当層へ差し込む。

この設計の帰結として、注入される知識は「プロンプトにその語句が現れたときだけ」発火する。READMEはこれをハッシュの衝突に近い挙動として説明しており、メモリ同士が干渉しないと主張している。パラメータを大量に更新するファインチューニングとは、知識の置き場所が根本的に違う。重みを書き換えるのではなく、重みの外側に参照テーブルを置く発想だ。

対象読者は、LLMのメモリ機構を研究している人、あるいは特定のキャラクターやスタイルをモデルに覚えさせたいが本体の重みは触りたくない人になる。READMEはこのリポジトリを「ツールキットであり同時に生きた研究ノート」と位置づけており、完成品のライブラリではなく実験の記録集として読むほうが実態に近い。

Qwen上での学習とLoRAとの比較実験

TinyEngramはQwenをベースLLMとして採用している。READMEのバッジと本文から、QwenLM/Qwenのモデルを土台にEngramスタイルのモデルを再現・拡張できるコードベースであることが読み取れる。

プロジェクトの中心的な主張は2つある。1つ目はEngramをパラメータ効率の良いファインチューニング手法として使うという点、2つ目は破滅的忘却への耐性でLoRAを上回るという点だ。READMEのアナウンス欄には、2026年1月30日付でEngramとLoRAの破滅的忘却比較が追加され、同じ日にパラメータのアブレーション実験と収束の観察結果も追加されたと記録されている。2月2日にはEngram対LoRA実験の再現スクリプトが公開された。

ここで注意したいのは、これらの比較結果の数値が今回渡された素材には含まれていないことだ。READMEは結論だけを述べ、詳細はdoc/以下の実験レポートに委ねている。したがって「LoRAより優れている」という主張は、このリポジトリの著者による主張として受け取り、採用判断の前にdoc/experiments/配下のレポートと付属のログを自分で読む必要がある。再現スクリプトが公開されている点は、この種の研究リポジトリとしては検証の入口が用意されていることを意味する。

Stable Diffusionへの転用とU-Netを凍結する理由

TinyEngramの視覚版は、Engramのメモリ機構をStable Diffusionのテキストエンコーダ側に適用する。プロンプト中の特定N-gramを認識すると、学習済みの埋め込みを注入して生成を誘導する。READMEが明言しているのは、巨大なU-NetやDiTバックボーンをファインチューニングしないという点だ。

手法としては、対象フレーズ専用の最小限のEngram語彙を構築する。テキストエンコーダに注入点を設けるだけで、画像生成側の重みは凍結したままにする。READMEはこれを「軽量で組み合わせ可能な方法でモデルに新しい被写体を教える」と表現している。

組み合わせ可能性については、Engramが完全一致のN-gramマッチングに依存しているため、メモリ同士が厳密に干渉しないと説明されている。READMEの記述では、多数のキャラクターやスタイルのEngramを積み重ねても、それぞれの名前が正確に現れたときだけ発火するという。これはコンセプトの混線が起きやすいLoRAの合成とは対照的な性質だ。ただし、この主張も vision 側の技術レポートに検証が委ねられており、今回の素材だけでは実測値を確認できない。

環境構築: condaとrequirements.txtで固定する

セットアップ手順はREADMEに明示されている。Python 3.10のconda環境を作り、pipを更新してから依存関係をインストールする流れだ。

conda create -n tinyengram python=3.10 -y conda activate tinyengram pip install --upgrade pip pip install -r requirements.txt

READMEはrequirements.txtを「クリーンで固定された直接依存のファイル」と説明しており、学習と視覚再現の両方に使うとしている。CUDAに関する注記と評価用のオプション依存については、doc/reproduction/environment.mdを参照するよう案内されている。GPU環境で動かす場合、このファイルを先に読むべきだ。

設定キーやCLI引数の一覧は今回の素材には含まれていない。学習スクリプトの具体的な起動方法やハイパーパラメータの指定方法は、リポジトリ内のスクリプトとdoc/配下の再現手順を直接確認する必要がある。READMEから読み取れるのは環境構築の部分までで、それ以上の起動コマンドを推測で補うことはできない。

ライセンス表記の不一致という現実的なリスク

READMEのバッジはMITライセンスを示しており、LICENSEファイルへのリンクも張られている。しかし今回渡されたリポジトリ情報ではライセンスが「unknown」とされており、releasesも取得されていない。バッジとリポジトリメタデータが一致していない状態だ。

これは研究リポジトリでは珍しくない。バッジを先に貼り、LICENSEファイルを後から追加する、あるいは追加し忘れるという流れはよくある。だが利用者にとっては無視できない差になる。MITなのか、独自ライセンスなのか、あるいはライセンスが存在しないのかで、コードを自社製品に取り込めるかどうかの判断が変わるからだ。

ここで法的な助言はできない。できるのは、リポジトリ直下のLICENSEファイルを実際に開いて中身を確認することを勧めることだけだ。バッジは表示であって法的な表明ではない。研究用途でローカルに動かす分には影響が小さいが、再配布や商用利用を考えるなら、この不一致は最初に潰しておくべき論点になる。

arXiv番号と公開時期に残る不確かさ

READMEはarXiv:2605.20309を参照し、視覚版の技術レポートへのリンクを貼っている。アナウンス欄の日付も2026年1月から5月にかけて並んでおり、リポジトリ情報の最終pushも2026年5月21日となっている。

ここで読者に確認してほしいのは、このarXiv番号が自分の目で解決できるかどうかだ。番号の形式や日付の並びから判断できることは限られており、今回の素材には論文の内容も査読状況も含まれていない。技術レポートのPDFはdoc/paper/tinyengram_vision_paper.pdfに置かれているとREADMEは述べているので、arXivが引けない場合はそちらを直接開くことになる。

公開から日が浅い研究リポジトリに共通する話だが、READMEの主張とdoc/配下のレポートの間にどれだけ差分があるかは、実際に両方を読まないと分からない。アナウンスは結論を短くまとめた要約であり、実験条件や失敗例はレポート側にしか書かれていない可能性が高い。

LoRAとの設計上の違いをどう捉えるか

比較対象として最も分かりやすいのはLoRAだ。TinyEngram自身がLoRAとの比較を看板に掲げている。

LoRAは既存の重み行列に低ランクの差分を加算する。学習した内容は重みの一部としてモデルに溶け込み、推論時にプロンプトで明示的に呼び出さなくても効き続ける。一方Engramは、N-gramの一致を条件に外部のメモリから埋め込みを引き出す。知識は重みの外側にあり、トリガーとなる語句が現れなければ発火しない。

この違いは、忘却耐性と干渉のしにくさという主張の根拠になっている。重みを書き換えなければ、元の能力を上書きする余地が小さい。複数のEngramを積んでも、完全一致で振り分けられるため混ざりにくい。

ただしトレードオフもある。Engramはプロンプト中の語句に依存するため、言い換えや表記ゆれには弱いと考えられる。完全一致のN-gramマッチングを採用しているというREADMEの記述からすれば、その性質は設計から自然に導かれる。LoRAのように「なんとなく雰囲気で効く」使い方ではなく、呼び出し語を正確に管理する運用が前提になる。

どんなときにTinyEngramを選ぶべきか

TinyEngramが向いているのは、Engramアーキテクチャの中身を自分の手で動かして確かめたい場合だ。Qwen上での学習、LoRAとの忘却耐性の比較、Stable Diffusionへの視覚概念注入という3つの実験が、再現スクリプトとログ付きで公開されている。研究ノートとして読む分には、主張と実験が同じリポジトリに揃っている。

向いていないのは、安定したAPIや長期サポートを前提にしたプロダクト組み込みだ。releasesは取得されておらず、ライセンス表記もメタデータ上は未確定で、READMEの主張の多くはdoc/配下のレポートに委ねられている。バージョンを固定して依存したい用途には、この状態は合わない。

採用前に確認すべきは3点。リポジトリ直下のLICENSEファイルの中身、arXiv:2605.20309またはdoc/paper/tinyengram_vision_paper.pdfの実在と内容、そしてrequirements.txtとdoc/reproduction/environment.mdが自分のCUDA環境と噛み合うかどうかだ。この3つが確認できて初めて、Engram対LoRAの比較を自分のデータで再現する段階に進める。

編集部の結論

TinyEngramは、Engram型のメモリ注入を自分のGPUで再現し、LoRAとの違いを検証したい研究者・実験者向けのリポジトリだ。逆に、本番サービスに組み込む部品や、長期サポートが保証されたライブラリを探している開発者には向かない。採用を検討するなら、まずリポジトリ直下のLICENSEファイルの中身と、READMEが参照するarXiv:2605.20309が実際に解決できるかを確認してほしい。requirements.txtの中身とdoc/reproduction/environment.mdのCUDA注記も、自分の環境で動くかの判断材料になる。

公式情報源

  1. AutoArk/TinyEngram on GitHub
  2. Issues
  3. README
コミュニティノート

コミュニティノート