AI基盤ラボ

RAGの埋め込みモデル移行|旧索引を止めずに再生成・比較・切替する

RAGの埋め込みモデル変更で旧新ベクトルを混在させず、原文の再生成、二重書込み、検索評価、参照先の切替、切戻しを行う手順を解説します。

古野光太朗古野光太朗·2026.09.29·一次情報 6件
旧索引から新embedding modelの索引を別に作り、比較後にaliasを切り替える図

検索拡張生成(RAG)の埋め込みモデルを設定値だけ差し替えると、検索品質は改善するどころか壊れる。文書を数値の並びへ変える埋め込み処理は、モデル、次元数、検索用途の指定によって空間が変わる。旧モデルで作った文書ベクトルを、新モデルで作った質問ベクトルから検索してはいけない。

安全な移行では、旧索引を配信したまま新索引を別に作る。原文を新モデルで再生成し、同じ質問集合で検索結果を比較してから、別名や論理名の向き先を切り替える。QdrantとWeaviateはいずれも、旧・新を並走させる移行手順を公式資料で示している[1][2]。

最初に原文と設定を回収できるか確認する

ベクトルだけが残り、元の文書や分割片が消えている状態では、別モデルへの移行はできない。Qdrantの移行手順も、再埋め込みには元データへアクセスできることを前提にする[1]。各ベクトルにsource_id、source_revision、chunk_id、embedding_model、dimension、task_type、created_atを持たせ、原文の正本へ戻れるようにする。

モデル名だけでは設定を再現できない。Google Vertex AIは、検索対象文書にRETRIEVAL_DOCUMENT、質問側にRETRIEVAL_QUERYなどの用途種別を用い、出力次元も指定できる[3]。Cohereも検索文書と検索質問でinput_typeを分け、出力次元を選べる[4]。モデルが同じでも用途指定や次元が違えば、同じ索引契約とは扱わない。

新索引へ原文から再投入する

新索引は旧索引と別のコレクション(索引の保存単位)、または名前付きベクトルとして作る。既存ベクトルをコピーして次元だけ合わせたり、足りない要素をゼロで埋めたりしない。Weaviateは既存の名前付きベクトル設定を変更する場合、新しいコレクションを作って移行する必要があると説明している[5]。Qdrantは二つのコレクションを並行稼働させる方式と、名前付きベクトルを追加する方式を示す[1]。

再生成中にも原文の追加・更新・削除は起きる。新規の登録・更新を旧・新の両方へ二重書込みし、過去分は順に再投入する。削除と部分更新は別に扱う。Qdrantの例も、単純な二重書込みは登録・更新向けであり、削除や部分更新には停止または追加実装が要ると注意している[1]。移行台帳には、対象件数、成功、失敗、未処理、削除待ちを分けて記録する。

件数一致より検索結果の差を見る

全ベクトルを作れたことは、検索品質の合格を意味しない。既存利用ログから、頻出質問、答えが見つかりにくい質問、固有名詞、否定、日付、複数言語を含む評価質問を作る。各質問について、正しい根拠が上位何件に入ったか、無関係文書が増えていないか、権限で絞り込んだ後も候補が残るかを旧・新で比べる。

Weaviateのベクトル化処理の移行ガイドは、代表データで旧モデルの基準値を取り、同一サンプルを新モデルで評価してから全面展開する三段階を勧める[2]。Qdrantの移行検証資料も、移行成功の裏でデータ欠落、メタデータのずれ、検索品質低下が起こり得るとする[6]。平均値だけでなく、顧客別、文書種別、言語別の悪化を見る。

新モデルがベンチマークで高得点でも、自社文書で勝つとは限らない。次元を小さくすれば保存量と計算量を抑えられる一方、品質への影響は評価が必要である[3]。検索候補が改善しても、後段の再順位付け器や回答生成が同じ根拠を選ぶとは限らない。最終判定には、検索と回答の両方を入れる。

切替は戻せる一操作にする

アプリから物理コレクション名を直接参照させず、knowledge-prodのような別名または設定上の論理名を使う。新索引の件数、削除反映、メタデータ、評価質問が合格したら、向き先だけをv2へ変える。Weaviateの別名機能は、アプリの参照名を変えずに新しいコレクションへ切り替え、必要なら旧コレクションへ戻せる[2]。

切替後もしばらく旧索引を残し、検索結果なし率、上位根拠の変化、回答不能率、遅延、費用を監視する。この期間は追加・更新・削除を旧側にも反映し続ける。新索引で悪化が出ても、別名を旧側へ戻すだけでは、切替後の更新や削除が失われる。旧側への反映を継続していない場合は、差分を追い付かせて件数と削除反映を確かめてから戻す。旧索引を削除するのは、切戻し期限を過ぎ、再現用の原文と設定が保存されていると確認してからでよい。

埋め込みモデルの移行管理では、モデル名だけを単位にするのは足りない。原文、分割方法、用途指定、次元、類似度、メタデータ、評価質問をまとめて一つの索引版として扱う。切替日より先に、旧索引へ戻す条件と差分反映の方法を決めておく。この条件を満たせば、切替時の停止時間を抑えながら検索品質を変更できる。

根拠資料

資料確認日:2026年9月29日。本文中の手順例は編集部の提案で、導入効果の実測値ではありません。

  1. Qdrant, Migrate to a New Embedding Model with Zero Downtime
  2. Weaviate, Switching vectorizers
  3. Google Cloud, Get text embeddings
  4. Cohere, Introduction to Embeddings
  5. Weaviate, Collection definition
  6. Qdrant, Migration Guidance
古野光太朗
古野光太朗 / 株式会社TechWorker 代表取締役 CEO兼CTO

上場企業を含む37社・2,500名の生成AI導入・研修支援で得た実務知をもとに、導入・運用・顧客理解を扱っています。この実績はTechWorkerの生成AI支援実績であり、個別製品の導入実績を示すものではありません。

株式会社TechWorkerの導入支援

RAGの索引移行を設計する

原文、索引版、dual write、検索評価、切替、rollbackを本番構成へ落とします。

実務への導入を相談する
← AI基盤ラボの記事一覧に戻る