AI の「調教」の歴史は、適応をどこに格納するかの移動だった — θ か、x か

要約

AI を自分好みの出力に近づける操作——ここでは「調教」と呼ぶ——の手法が、時代とともに変わってきた。 昔はファインチューニング一択だった。一時期はベクトル DB や RAG の話が出ていた。最近はベクトル DB すら 使わず、memory のような仕組みが登場している。**この変遷の歴史を整理してほしい**、という対話。

返ってきた定式化が、この対話の核心だった。**モデル f_θ(x) に対して、できることは 「θ(重み)をいじるか、x(入力=文脈)をいじるか」の二択しかない**。だから歴史の変遷は、 **適応をどこに格納するかの重心が、θ 側から x 側へ移動してきた過程**として読める。

ファインチューニング期(θ を直接書き換える。永続的だがコストが高く、忘却のリスクもある)。 LoRA などの PEFT(「適応に必要な重み更新は低ランク部分空間に収まる」という経験則)。 そこからプロンプト/few-shot(θ を一切触らず、forward pass の中で一時的に適応させる)。 RAG/ベクトル DB(**知識を θ から剥がして外部ストアに置く**)。 そして memory 期——**なぜベクトル DB すら消えたのか**。

答えは規模だった。個人のパーソナライズで扱う「記憶」は、文書数百万件のコーパスではなく、 せいぜい数百件のファクト。**この規模では近似最近傍探索のうまみがない**。コンテキストが広いので、 関連する記憶を丸ごと文脈に入れてしまえる。memory の新しさは技術というより、 **抽出→格納→再注入のループを自動化した**点にあった。

そして最後に、きれいな比喩に着地する。**θ = ディスク(永続・グローバル・書き換え高コスト)、 コンテキストウィンドウ = RAM(揮発・ローカル・即時)、RAG/memory = その間のキャッシュ層**。 歴史の変遷は、**能力が上がるにつれて「ディスクに焼く」必要が減り、上位の速い層で調教が完結する ようになっていった流れ**として読める。

要点

1. 定式化:できることは二択しかない

モデル f_θ(x) に対して、

  • θ(重み)をいじる
  • x(入力=文脈)をいじる

→ 歴史の変遷は、適応をどこに格納するかの重心が、θ 側から x 側へ移動してきた過程

2. 時代ごとの手法

時期 手法 どこをいじるか 特徴
最初期 フルファインチューニング θ 永続的・グローバルに効く。しかしコストが高く、データ整備が要り、catastrophic forgetting(過去能力の忘却)のリスク
効率化 PEFT(LoRA / Adapter / Prefix-tuning) θ(一部) 適応に必要な重み更新 ΔW は低ランク部分空間に収まる」という経験則。W + BA だけ学習すればよい。それでも θ をいじる以上、ベースモデル更新のたびに作り直し
移行期 プロンプト / システムプロンプト / few-shot x θ を一切触らず、forward pass の中で一時的に適応。永続性はないが、軽くて速く、可逆
RAG 期 ベクトルDB / 近似最近傍探索 x 知識を θ から剥がして外部ストアに置く。知識の鮮度を保て、出典が監査可能になり、巨大コーパスを扱える
現在 memory x 下記

3. なぜ重心が x 側へ移ったのか(三つの駆動力)

  1. コンテキスト長の爆発的拡大(4k → 32k → 128k → 200k → 1M トークン)。 単に文脈に詰め込めば済むなら、θ を触る理由が薄れる
  2. ベースモデルの instruction-following と in-context learning が十分強くなった。 few-shot で例を見せるだけで適応するなら、再学習は不要
  3. 運用コストの非対称性。ファインチューニングはデータ整備・学習基盤・バージョン管理が必要。 対して文脈注入は即時かつ可逆

4. なぜベクトル DB すら消えたのか — 規模の問題だった

  • RAG は「大量文書に対する検索」が必要な状況の解であり、規模が前提の技術だった
  • ところが個人パーソナライズで扱う「記憶」は、せいぜい数百件のファクト。 文書数百万件のコーパスではない
  • この規模では ANN 検索のうまみがない。関連する記憶を全部、あるいは構造化サマリとして 丸ごと文脈に入れてしまえる(コンテキストが広いので「殴り込み」が成立する)

トレンドは二方向に分かれている。

  • 構造化プロファイル方式 — 会話から salient なファクトを LLM が抽出・要約して保持し、 関連するものを選択注入する(埋め込み検索ではなく、要約と選択
  • エージェント的検索(tool-based retrieval) — 事前にベクトル類似度で引いておくのではなく、 モデルに検索ツールを渡して「必要だと判断したときに自分で取りに行かせる」。 RAG の「pull型・事前計算」から「on-demand・モデル判断」への移行

memory の新しさは技術というより、抽出→格納→再注入のループを自動化した点。 ユーザが手で RAG を組む摩擦すら消した。

5. 置換ではなく、階層 — メモリ階層の比喩

これらは互いの置き換えではなく、別々の時間スケール・スコープを担うレイヤとして積層している。

  • 事前学習 + RLHF/DPO(ラボ側。「調教」の最下層)
  • システムプロンプト(セッション全体の人格・制約)
  • RAG / ツール検索(変化する外部知識)
  • memory(個人化された永続ファクト)
  • 必要なら LoRA(タスク特化の θ 書き換え)
計算機 AI の調教 性質
ディスク θ(重み) 永続・グローバル・書き換え高コスト
キャッシュ層 RAG / memory その中間
RAM コンテキストウィンドウ 揮発・ローカル・即時

能力が上がるにつれて「ディスクに焼く」必要が減り、上位の速い層で調教が完結するようになっていった

6. 留保

この「重心の上方移動」は不可逆ではない。推論時計算(test-time compute)や継続学習の研究次第では、 また θ 側に揺り戻す可能性もある

軌跡(対話そのまま)

問い — ファインチューニング、RAG、そして memory への変遷

aiを「調教」するということについて教えてください。ここでいう「調教」は、変な意味ではなく、ファンダメンタルモデルに対する取り扱いになんらかの変更を加えて、自分好みの出力をするように近づける操作を指します。

昔は、この手の話は、毎回ファインチューニングだったと思いますが、一時期ベクトルDBとかragとかの話も出ていたと思います。最近は、もはやベクトルDBも使わず、claudeでいうところのmemoryとかが登場していますが、この「調教」の歴史の変遷について教えてもらえないでしょうか。

「調教」をきれいに定式化すると、fθ(x)f_\theta(x) というモデルに対して θ(重み)をいじるか、x(入力=文脈)をいじるか の二択しかない、という話に尽きます。歴史の変遷は基本的に「適応をどこに格納するか」の重心が θ 側から x 側へ移動してきた過程として読めます。順に整理します。

1. ファインチューニング期 — θを直接書き換える

最初期の「調教」は文字通りモデルの重みを更新するフルファインチューニングでした。これは関数そのものを書き換える操作なので、適応は永続的かつグローバルに効く一方、コストが高く、学習データの整備が必要で、catastrophic forgetting(過去能力の忘却)のリスクもある。

ここに効率化の波が来たのが PEFT(LoRA / Adapter / Prefix-tuning) です。LoRAの本質は「下流タスクへの適応に必要な重み更新 ΔW は低ランク部分空間に収まる」という経験則で、W+BAW + BA(B,AB,A が低ランク)だけ学習すればよい、という発想です。これで「調教」のコストは劇的に下がりましたが、それでも θ をいじる行為であることは変わらず、ベースモデルが更新されるたびに作り直しという運用上の重さが残りました。

2. 重心が x 側へ — なぜ移ったか

「もはやファインチューニングしない」流れを駆動したのは主に三つです。

ひとつはコンテキスト長の爆発的拡大(4k → 32k → 128k → 200k → 1M トークン)。単に文脈に詰め込めば済むなら θ を触る理由が薄れる。二つ目はベースモデルの instruction-following 能力と in-context learning が十分強くなったこと。few-shot で例を見せるだけで適応するなら再学習は不要。三つ目は運用コストの非対称性で、ファインチューニングはデータ整備・学習基盤・バージョン管理が必要なのに対し、文脈注入は即時かつ可逆です。

この時期の「調教」が プロンプトエンジニアリング / システムプロンプト / few-shot。θ は一切触らず、forward pass の中で一時的に適応させる。永続性はないが、軽くて速い。

3. RAG / ベクトルDB期 — 知識を外部化する

次が、適応のうち特に「知識」の部分をパラメータから切り離して外部ストアに置く発想です。クエリ時に意味的に近いチャンクを近似最近傍探索(ANN)で引いてきて文脈に注入する。

ポイントは、知識をθから剥がしたことです。これにより知識の鮮度を保て(モデル再学習なしに更新できる)、出典が監査可能になり、巨大コーパスを扱える。ただしこれは「大量文書に対する検索」が必要な状況の解であって、規模が前提になっている技術でした。

4. memory期 — なぜベクトルDBすら消えたか

ご指摘の「もはやベクトルDBも使わない」は鋭い観察で、ここには明確な理由があります。

個人パーソナライズで扱う「記憶」は、文書数百万件のコーパスではなく、せいぜい数百件のファクトです。この規模ではANN検索のうまみがない。関連する記憶を全部、あるいは構造化サマリとして丸ごと文脈に入れてしまえる(コンテキストが広いので殴り込みが成立する)。

そのうえで、トレンドは二つの方向に分かれています。ひとつは 構造化プロファイル方式で、会話から salient なファクトをLLMが抽出・要約して保持し、関連するものを選択注入する(埋め込み検索ではなく要約と選択)。もうひとつは **エージェント的検索(tool-based retrieval)**で、事前にベクトル類似度で引いておくのではなく、モデルに検索ツールを渡して「必要だと判断したときに自分で取りに行かせる」。Claudeの過去会話検索はこちらに近く、RAGの「pull型・事前計算」から「on-demand・モデル判断」への移行と言えます。

memory の新しさは技術というより抽出→格納→再注入のループを自動化した点で、ユーザが手でRAGを組む摩擦すら消した、というのが本質です。

まとめ — 置換ではなく階層

重要なのは、これらが互いの置き換えではなく、別々の時間スケール・スコープを担うレイヤだということです。実運用のシステムは積層しています。

  • 事前学習 + RLHF/DPO(ラボ側。ユーザは通常触れないが「調教」の最下層)
  • システムプロンプト(セッション全体の人格・制約)
  • RAG / ツール検索(変化する外部知識)
  • memory(個人化された永続ファクト)
  • 必要なら LoRA(タスク特化のθ書き換え)

メモリ階層の比喩がきれいに効きます。θ = ディスク(永続・グローバル・書き換え高コスト)、コンテキストウィンドウ = RAM(揮発・ローカル・即時)、RAG/memory = その間のキャッシュ層。歴史の変遷は、能力が上がるにつれて「ディスクに焼く」必要が減り、上位の速い層で調教が完結するようになっていった、という流れとして見るのが一番見通しがいいと思います。

ひとつ補足すると、この「重心の上方移動」は不可逆ではなく、推論時計算(test-time compute)や継続学習の研究次第では、また θ 側に揺り戻す可能性もあります。気になる切り口があれば、どの層でも深掘りします。

← 一覧へ