qdrant-model-migration
Qdrantにおける埋め込みモデルの無停止マイグレーションをガイドします。「埋め込みモデルを切り替えたい」「ベクターを移行したい」「新しいモデルに更新したい」「データを再埋め込みしたい」「2つのモデルを同時に使えるか」といった質問や、モデルの次元数変更・プロバイダー切り替え・A/Bテストを行う際に活用できます。
description の原文を見る
Guides embedding model migration in Qdrant without downtime. Use when someone asks 'how to switch embedding models', 'how to migrate vectors', 'how to update to a new model', 'zero-downtime model change', 'how to re-embed my data', or 'can I use two models at once'. Also use when upgrading model dimensions, switching providers, or A/B testing models.
SKILL.md 本文
埋め込みモデルを変更する際の手順
異なるモデルから得たベクトルは互換性がありません。同じベクトル空間に古い埋め込みと新しい埋め込みを混在させることはできません。また、既存のコレクションに新しい名前付きベクトルフィールドを追加することもできません。すべての名前付きベクトルはコレクション作成時に定義する必要があります。以下の両方の移行戦略には、新しいコレクションの作成が必要です。
- 戦略を選択する前にコレクションエイリアスを理解する Collection aliases
再埋め込みを回避できるか?
使用時期: 本格的な移行にコミットする前に短縮方法を探している場合。
必ず再埋め込みが必要な場合: モデルプロバイダーを変更する場合 (OpenAI から Cohere)、アーキテクチャを変更する場合 (CLIP から BGE)、異なるモデル間で寸法数に互換性がない場合、または密集ベクトルのみのコレクションにスパースベクトルを追加する場合。
再埋め込みを回避できる場合: Matryoshka モデルを使用する場合 (dimensions パラメータで低次元の埋め込みを出力、サンプルデータから線形変換を学習、若干の再現率の低下あり、1億件以上のデータセットに適している)。または量子化を変更する場合 (バイナリからスカラー): Qdrant が自動的に再量子化します。 Quantization
ゼロダウンタイムが必要な場合 (エイリアススワップ)
使用時期: 本番環境の可用性を維持する必要がある場合。大規模なモデル置き換えに推奨。
- 新しいモデルの寸法と距離メトリクスを使用して新しいコレクションを作成する
- すべてのデータをバックグラウンドで新しいコレクションに再埋め込みする
- アプリケーションを直接コレクション名ではなくコレクションエイリアスにポイントする
- アトミックにエイリアスを新しいコレクションにスワップする Switch collection
- 検索品質を検証してから古いコレクションを削除する
注意: エイリアススワップはクエリのみをリダイレクトします。ペイロードは別途再度アップロードする必要があります。
両方のモデルをライブで実行する必要がある場合 (サイドバイサイド)
使用時期: モデルの A/B テスト、マルチモーダル (密集 + スパース)、またはコミットする前に新しいモデルを評価する場合。
既存のコレクションに名前付きベクトルを追加することはできません。両方のベクトルフィールドをあらかじめ定義した新しいコレクションを作成します:
- 古いベクトルと新しいベクトルの両方の名前付きベクトルを定義して新しいコレクションを作成する Collection with multiple vectors
- 古いコレクションからデータを移行し、古い名前付きフィールドに既存のベクトルを保存する
UpdateVectorsを使用して新しいモデルの埋め込みを段階的にバックフィルする Update vectorsusing: "old_model"vsusing: "new_model"でクエリを実行して品質を比較する- 満足したらエイリアスを新しいコレクションにスワップする
大きなマルチベクトル (特に ColBERT) を密集ベクトルと共配置すると、密集のみを使用するクエリでさえすべてのクエリが低下します。数百万のポイントでは、ユーザーは ColBERT を削除した後、遅延が 13 秒から 2 秒に低下することを報告しています。サイドバイサイド移行中は大きなベクトルをディスクに置いてください。
将来のモデル移行を予想する場合は、コレクション作成時に両方のベクトルフィールドをあらかじめ定義してください。
密集検索からハイブリッド検索への移行
使用時期: 既存の密集のみのコレクションにスパース/BM25 ベクトルを追加する場合。最も一般的な移行パターン。
既存の密集のみのコレクションにスパースベクトルを追加することはできません。再作成が必要です:
- 密集とスパースの両方のベクトル設定を定義した新しいコレクションを作成する
- 密集とスパースの両方のモデルですべてのデータを再埋め込みする
- ペイロードを移行し、エイリアスをスワップする
チャンクレベルのスパースベクトルはドキュメントレベルと異なる TF-IDF 特性を持ちます。移行後の検索品質をテストしてください。特に停止語削除のない非英語テキストの場合。
再埋め込みが遅すぎる場合
使用時期: データセットが大きく、再埋め込みがボトルネックになっている場合。
- 安全なべき等移行のために
update_mode: insert(v1.17+) を使用する Update mode with_vectors=Falseで古いコレクションをスクロールし、バッチで再埋め込みして新しいコレクションにアップサート する- 並列バッチでアップロードする (リクエストあたり 64~256 ポイント、2~4 の並列ストリーム) Bulk upload
- バルクロード中に HNSW を無効化する (
indexing_threshold_kbを非常に高く設定し、その後復元) - Qdrant Cloud インファレンスの場合、モデルの切り替えはパイプラインの変更ではなく設定の変更です Inference docs
400GB 以上のデータセットの場合、数日を見込んでください。小さいデータセット (<25MB) の場合は、移行ツールを使用するより、ソースから再インデックスする方が高速です。
避けるべきこと
- 既存のコレクションに名前付きベクトルを追加できると想定する (作成時に定義する必要があります)
- 新しいコレクションを検証する前に古いコレクションを削除する
- アプリケーションコード内でクエリ埋め込みモデルを更新するのを忘れる
- エイリアススワップを使用する際にペイロード移行をスキップする (エイリアスはクエリをリダイレクトするだけで、データはコピーしません)
- 長時間の移行中に ColBERT ベクトルを密集ベクトルと共配置し続ける (I/O コストがすべてのクエリを低下させます)
- ハイブリッド検索に移行する際にチャンクレベルで BM25 品質をテストしない
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- qdrant
- リポジトリ
- qdrant/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/qdrant/skills / ライセンス: Apache-2.0
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。