OpenAI

OpenAI / text-embedding-3-small

OpenAIs kostengünstigstes Texteinbettungsmodell mit verbesserter Genauigkeit und Effizienz im Vergleich zu text-embedding-ada-002 und text-embedding-3-large.

Einführung in text-embedding-3-small

text-embedding-3-small" ist das kleine Texteinbettungsmodell von OpenAI, das Einbettungen mit 1536 Dimensionen erzeugt. Im Vergleich zu OpenAIs anderen Text-Einbettungsmodellen, wie text-embedding-ada-002 und text-embedding-3-large, ist text-embedding-3-small das kostengünstigste Modell mit verbesserter Genauigkeit und Effizienz. Es eignet sich hervorragend für allgemeine Vektorsuchanwendungen.

Werfen wir einen kurzen Blick auf einige Grundlagen.

ModellAbmessungenMax TokensModell MIRACL avgMETB avgPreis
text-embedding-3-large3072819154.964.6$0.13 / 1M Token
text-embedding-ada-0021536819131.461.0$0.10 / 1M Token
text-embedding-3-small1536819144.062.3$0.02 / 1M Zeichen

So erzeugen Sie Vektoreinbettungen mit text-embedding-3-small

Es gibt zwei primäre Möglichkeiten, Vektoreinbettungen zu erstellen:

  • [PyMilvus] (https://github.com/milvus-io/pymilvus): das Python SDK für [Milvus] (https://zilliz.com/what-is-milvus), das das Modell "text-embedding-3-small" nahtlos integriert.
  • OpenAI Embedding: das von OpenAI angebotene Python-SDK.

Sobald die Vektoreinbettungen generiert sind, können sie in der Zilliz Cloud (einem vollständig verwalteten Vektordatenbankdienst, der von Milvus betrieben wird) gespeichert und für die semantische Ähnlichkeitssuche verwendet werden. Dies sind die vier wichtigsten Schritte:

  1. Anmelden für ein kostenloses Zilliz Cloud-Konto.
  2. Richten Sie einen serverlosen Cluster ein und erhalten Sie den Public Endpoint and API Key.
  3. Erstellen Sie eine Vektorsammlung und fügen Sie Ihre Vektoreinbettungen ein.
  4. Lassen Sie eine semantische Suche auf den gespeicherten Einbettungen laufen.

Vektoreinbettungen über PyMilvus generieren und in die Zilliz Cloud für die semantische Suche einfügen.

von pymilvus importieren Modell, MilvusClient

OPENAI_API_KEY = "ihr-openai-api-schlüssel"
ef = model.dense.OpenAIEmbeddingFunction(
   model_name="text-einbettung-3-klein",
   api_key=OPENAI_API_KEY,
   )

# Einbettungen für Dokumente generieren
docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die substantielle Forschung im Bereich der KI betrieb.",
   "Turing wurde in Maida Vale, London, geboren und wuchs in Südengland auf."
]

docs_embeddings = ef.encode_documents(docs)

# Einbettungen für Abfragen generieren
queries = ["Wann wurde die künstliche Intelligenz erfunden",
          "Wo wurde Alan Turing geboren?"]

query_embeddings = ef.encode_queries(queries)

# Verbindung zur Zilliz-Cloud mit öffentlichem Endpunkt und API-Schlüssel
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "Dokumente"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=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"])

Weitere Informationen finden Sie in unserer PyMilvus Embedding Model Dokumentation.

Generieren Sie Einbettungen über das Python-SDK von OpenAI und fügen Sie sie in die Zilliz-Cloud für die semantische Suche ein.

von openai importieren OpenAI
von pymilvus importieren MilvusClient

OPENAI_API_KEY = "ihr-openai-api-schlüssel"
client = OpenAI(api_key=OPENAI_API_KEY)
# Einbettungen für Dokumente generieren
doc_response = client.embeddings.create(
   input=[
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die substantielle Forschung im Bereich der KI betrieb.",
   "Geboren in Maida Vale, London, wuchs Turing in Südengland auf."
   ],
   model="text-embedding-3-small"
   )
doc_embeddings = [data.embedding for data in doc_response.data]

# Einbettungen für Abfragen generieren
query_response = client.embeddings.create(
   input=["Wann wurde die künstliche Intelligenz begründet",
          "Wo wurde Alan Turing geboren?"],
   model="text-einbettung-3-klein"
   )
query_embeddings = [data.embedding for data in query_response.data]

# Verbindung zur Zilliz Cloud mit öffentlichem Endpunkt und API-Schlüssel
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "Dokumente"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION,
    dimension=1536,
    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"])

Weitere Informationen finden Sie im OpenAI's Embedding Guide.