Cohere
Cohereの埋め込みモデルは、テキストの意味情報を捕捉する浮動小数点数のリストであるテキスト埋め込みを生成するために使用されます。これらの埋め込みは、テキストの分類や意味検索のようなタスクに使用することができます。
MilvusはCohereEmbeddingFunction
クラスを使ってCohereの埋め込みモデルと統合します。このクラスは埋め込み計算を処理し、インデックス作成と検索のためにMilvusと互換性のあるフォーマットで返します。
この機能を使用するには、必要な依存関係をインストールします:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
そして、CohereEmbeddingFunction
をインスタンス化してください:
from pymilvus.model.dense import CohereEmbeddingFunction
cohere_ef = CohereEmbeddingFunction(
model_name="embed-english-light-v3.0",
api_key="YOUR_COHERE_API_KEY",
input_type="search_document",
embedding_types=["float"]
)
パラメータ
model_name
(文字列)エンコードに使用する Cohere 埋め込みモデルの名前。利用可能な Cohere 埋め込みモデル名のいずれかを指定できます。たとえば、
embed-english-v3.0
、embed-multilingual-v3.0
などです。こ のパ ラ メ タ を指定 し ない と 、embed-english-light-v3.0
が使われます。利用可能なモデルの一覧はEmbed を参照してください。api_key
(文字列)Cohere API にアクセスするための API キー。
input_type
(文字列)モデルに渡される入力のタイプ。埋め込みモデル v3 以降では必須。
"search_document"
:検索用のベクトルデータベースに格納された埋め込みに使用される。"search_query"
:関連文書を検索するためにベクトルDBに対して実行される検索クエリの埋め込みに使用される。"classification"
:テキスト分類器に通す埋め込みに使用。"clustering"
:クラスタリングアルゴリズムを通した埋め込みに使用される。
embedding_types
(リスト[str])返したい埋め込みデータ型。必須ではありません。デフォルトはNoneで、Embed Floatsレスポンスタイプを返します。現在のところ、このパラメータには単一の値しか指定できません。指定可能な値:
"float"
:デフォルトの浮動小数点埋め込みを返したい場合に使用します。すべてのモデルで有効。"binary"
:符号付きバイナリ埋め込みを取得したい場合に使用する。v3モデルでのみ有効。"ubinary"
:符号なしバイナリ埋め込みを取得したい場合に使用。v3モデルでのみ有効。
ドキュメントの埋め込みを作成するには、encode_documents()
メソッドを使います:
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
docs_embeddings = cohere_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", cohere_ef.dim, docs_embeddings[0].shape)
期待される出力は以下のようなものです:
Embeddings: [array([ 3.43322754e-02, 1.16252899e-03, -5.25207520e-02, 1.32846832e-03,
-6.80541992e-02, 6.10961914e-02, -7.06176758e-02, 1.48925781e-01,
1.54174805e-01, 1.98516846e-02, 2.43835449e-02, 3.55224609e-02,
1.82952881e-02, 7.57446289e-02, -2.40783691e-02, 4.40063477e-02,
...
0.06359863, -0.01971436, -0.02253723, 0.00354195, 0.00222015,
0.00184727, 0.03408813, -0.00777817, 0.04919434, 0.01519775,
-0.02862549, 0.04760742, -0.07891846, 0.0124054 ], dtype=float32)]
Dim: 384 (384,)
クエリの埋め込みを作成するには、encode_queries()
:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = cohere_ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", cohere_ef.dim, query_embeddings[0].shape)
期待される出力は以下のようなものです:
Embeddings: [array([-1.33361816e-02, 9.79423523e-04, -7.28759766e-02, -1.93786621e-02,
-9.71679688e-02, 4.34875488e-02, -9.81445312e-02, 1.16882324e-01,
5.89904785e-02, -4.19921875e-02, 4.95910645e-02, 5.83496094e-02,
3.47595215e-02, -5.87463379e-03, -7.30514526e-03, 2.92816162e-02,
...
0.00749969, -0.01192474, 0.02719116, 0.03347778, 0.07696533,
0.01409149, 0.00964355, -0.01681519, -0.0073204 , 0.00043154,
-0.04577637, 0.03591919, -0.02807617, -0.04812622], dtype=float32)]
Dim 384 (384,)