問い — ファインチューニング、RAG、そして memory への変遷
aiを「調教」するということについて教えてください。ここでいう「調教」は、変な意味ではなく、ファンダメンタルモデルに対する取り扱いになんらかの変更を加えて、自分好みの出力をするように近づける操作を指します。
昔は、この手の話は、毎回ファインチューニングだったと思いますが、一時期ベクトルDBとかragとかの話も出ていたと思います。最近は、もはやベクトルDBも使わず、claudeでいうところのmemoryとかが登場していますが、この「調教」の歴史の変遷について教えてもらえないでしょうか。
「調教」をきれいに定式化すると、 というモデルに対して θ(重み)をいじるか、x(入力=文脈)をいじるか の二択しかない、という話に尽きます。歴史の変遷は基本的に「適応をどこに格納するか」の重心が θ 側から x 側へ移動してきた過程として読めます。順に整理します。
1. ファインチューニング期 — θを直接書き換える
最初期の「調教」は文字通りモデルの重みを更新するフルファインチューニングでした。これは関数そのものを書き換える操作なので、適応は永続的かつグローバルに効く一方、コストが高く、学習データの整備が必要で、catastrophic forgetting(過去能力の忘却)のリスクもある。
ここに効率化の波が来たのが PEFT(LoRA / Adapter / Prefix-tuning) です。LoRAの本質は「下流タスクへの適応に必要な重み更新 ΔW は低ランク部分空間に収まる」という経験則で、( が低ランク)だけ学習すればよい、という発想です。これで「調教」のコストは劇的に下がりましたが、それでも θ をいじる行為であることは変わらず、ベースモデルが更新されるたびに作り直しという運用上の重さが残りました。
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)や継続学習の研究次第では、また θ 側に揺り戻す可能性もあります。気になる切り口があれば、どの層でも深掘りします。