46.6kデモを予約するログイン無料で始める
オープンAI

オープンAI / text-embedding-3-large

OpenAIの最も優れたテキスト埋め込みモデル。

text-embedding-3-largeの紹介

text-embedding-3-largeはOpenAIの大きなテキスト埋め込みモデルで、最大3072次元の埋め込みを作成します。text-embedding-ada-002やtext-embedding-3-largeといったOpenAIの他のテキスト埋め込みモデルと比較して、text-embedding-3-largeはより強力なパフォーマンスと低価格を実現しています。

基本的なことを簡単に説明しよう。

モデル寸法最大トークン数モデル MIRACL 平均値METB 平均値価格
text-embedding-3-large|3072|8191|54.9|64.6|0.13ドル|1Mトークン
text-embedding-ada-0021536819131.461.0$0.10 / 1M トークン[text-embedding-3-large3072819154.964.6$0.13 / 1M トークン
text-embedding-3-small1536819144.062.3$0.02 / 1M トークンtext-embedding-3-small1536819144.062.3$0.02 / 1M トークン

text-embedding-3-largeモデルでベクトル埋め込みを生成する方法

ベクトル埋め込みを生成するには、主に2つの方法があります:

  • PyMilvus**](https://github.com/milvus-io/pymilvus): Milvus用のPython SDKで、text-embedding-3-largeモデルをシームレスに統合しています。
  • OpenAI Embedding: OpenAIが提供するPython SDK。

ベクトル埋め込みが生成されると、Zilliz Cloud (Milvusによって提供される完全に管理されたベクトルデータベースサービス)に保存され、意味的類似性検索に使用することができます。以下は、4つの重要なステップである:

1.1.サインアップ Zilliz Cloudアカウントを無料で取得する。 2.サーバーレスクラスターのセットアップ](https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster)とパブリックエンドポイントとAPIキーを取得する。 3.ベクターコレクションを作成し、ベクター埋め込みを挿入する。 4.セマンティック検索を実行する。

PyMilvusで埋め込みベクトルを生成し、Zilliz Cloudに挿入して意味検索を行う。

from pymilvus.model.dense import OpenAIEmbeddingFunction
from pymilvus import MilvusClient

OPENAI_API_KEY = "your-openai-api-key"
ef = OpenAIEmbeddingFunction("text-embedding-3-large", api_key=OPENAI_API_KEY)

docs = [
   「人工知能は1956年に学問分野として設立された、
   「アラン・チューリングは、人工知能の実質的な研究を行った最初の人物である、
   「チューリングはロンドンのマイダ・ベイルで生まれ、イングランド南部で育った。
]
# ドキュメントの埋め込みを生成する
docs_embeddings = ef(docs)

queries = ["人工知能はいつ創設されたか"、
          「アラン・チューリングはどこで生まれたのか?]
# クエリの埋め込みを生成する
query_embeddings = ef(queries)

# Public EndpointとAPI Keyを使ってZilliz Cloudに接続する
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT、
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    コレクション名=COLLECTION、
    dimension=ef.dim、
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION、
    data=query_embeddings、
    consistency_level="Strong"、
    output_fields=["text"])

詳細はPyMilvus Embedding Model documentationを参照してください。

OpenAIのPython SDKを使ってベクトル埋め込みを生成し、Zilliz Cloudに挿入して意味検索を行う。

from openai import OpenAI
from pymilvus import MilvusClient

OPENAI_API_KEY = "your-openai-api-key"
クライアント = OpenAI(api_key=OPENAI_API_KEY)
# ドキュメントの埋め込みを生成する
doc_response = client.embeddings.create(
   input=[
   「人工知能は1956年に学問分野として創設された、
   "アラン・チューリングは、AIの実質的な研究を行った最初の人物である。"、
   "チューリングはロンドンのマイダベールで生まれ、イングランド南部で育った。"
   ],
   model="text-embedding-3-large"
   )
doc_embeddings = [data.embedding for data in doc_response.data].

# クエリ用の埋め込みを生成する
query_response = client.embeddings.create(
   input=["When was artificial intelligence founded"、
          "アラン・チューリングはどこで生まれましたか?"]、
   model="text-embedding-3-large"
   )
query_embeddings = [data.embedding for data in query_response.data].

# Public EndpointとAPI KeyでZilliz Cloudに接続する
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT、
    token=ZILLIZ_API_KEY)

COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION、
    dimension=3072、
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION、
    data=query_embeddings、
    consistency_level="Strong"、
    output_fields=["text"])

詳しくは、OpenAIの埋め込みガイド を参照してください。