CTS-KB

task_type(embedding のタスクタイプ)

たすくたいぷ

タスクタイプRETRIEVAL_DOCUMENTRETRIEVAL_QUERY非対称検索asymmetric retrievalretrieval task typeSEMANTIC_SIMILARITY

task_type は、embedding を生成するときに 「その埋め込みを何の用途に使うか」 をモデルへ伝えるパラメータ。同じテキストでも用途に合わせて最適化されたベクトルが得られる。embedding を使った retrieval(情報検索)では、この使い分けが検索精度を大きく左右する。

非対称検索:document と query を分ける

retrieval には性質の異なる 2 種類のテキストがある。

役割task_type公式の説明
検索される文書(document)RETRIEVAL_DOCUMENT”Embeddings optimized for document search”
検索クエリ(query)RETRIEVAL_QUERY”Embeddings optimized for general search queries”

document(長め・構造的)と query(短め・断片的)は文章の性質が違う。この差を埋めるよう 別々に最適化したベクトルを突き合わせる のが 非対称検索(asymmetric retrieval) で、retrieval の正攻法。

主なタスクタイプ(gemini-embedding-001)

task_type用途
RETRIEVAL_DOCUMENT検索される文書
RETRIEVAL_QUERY検索クエリ
SEMANTIC_SIMILARITY文同士の類似度比較(retrieval には使わない
CLASSIFICATION / CLUSTERING分類 / クラスタリング
QUESTION_ANSWERING / FACT_VERIFICATIONQA / 事実検証
CODE_RETRIEVAL_QUERYコード検索クエリ

⚠️ SEMANTIC_SIMILARITY は名前に反して 検索・retrieval に使ってはいけない(公式明言:“Do not use this for search or retrieval”)。

よくある落とし穴

  • 未指定は RETRIEVAL_QUERY にデフォルト される。task_type をどこにも指定しないと保存側・検索側が両方 QUERY になり、document が最適化されない。例外は出ないのに精度だけ落ちる
  • 片方だけ直しても無意味RETRIEVAL_DOCUMENTRETRIEVAL_QUERY は必ずペアで揃える。
  • コードを直しても既存ベクトルは直らない。保存済み document は正しい task_type で 再生成(再ベクター化) が必要。
  • 新世代モデルでは扱いが変わるtask_type パラメータは gemini-embedding-001 専用で、より新しい世代は プロンプト内に task を指示 として書く方式。

関連記事・用語

外部リソース