OpenAs neueste Texteinbettungsmodelle text-embedding-3-large
und text-embedding-3-small
revolutionieren die Textanalyse. Dieser Artikel untersucht ihre Fähigkeiten, Anwendungen und die praktische Verwendung.
Einbettungen übersetzen die menschliche Sprache in maschinenlesbare Formate, entscheidend für AI-Aufgaben. Die neuen Modelle von OpenAI verbessern diesen Prozess für Entwickler und Datenwissenschaftler erheblich. Wir werden ihre Kernfunktionen, Anwendungen und effektive Implementierung abdecken.
Textbettdings
verstehenTexteinbettungen sind numerische Darstellungen, die die semantische Bedeutung von Text erfassen. Sie sind für verschiedene NLP -Aufgaben, einschließlich Stimmungsanalyse und Textklassifizierung, von wesentlicher Bedeutung. Unser Leitfaden "Einführung in Texteinbettungen mit der OpenAI -API" bietet einen umfassenden Überblick über die Verwendung der OpenAI -API zum Einbetten der Erstellung.
Text -Einbettungsabbildung
Neuankömmlinge für Einbettungen sollten unsere "Einführung in die Einbettung mit dem OpenAI -API -Kurs konsultieren.
OpenAIs neue Einbettungsmodelle
veröffentlicht am 25. Januar 2024 sind diese Modelle Text im hochdimensionalen Raum für ein verbessertes Verständnis. text-embedding-3-small
priorisiert Geschwindigkeit und Speicher, während text-embedding-3-large
überlegene Genauigkeit bietet. Der Parameter dimensions
ermöglicht das Einstellen von text-embedding-3-large
auf 1536 Abmessungen (aus seinem nativen 3072) ohne signifikanten Leistungsverlust.
Benchmarking
text-embedding-3-large
übertrifft frühere Modelle (einschließlich text-embedding-ada-002
) auf Miracl- und MTEB -Benchmarks. Die folgende Tabelle fasst den Vergleich zusammen:
|
Dimension | Max token | Knowledge cutoff | Pricing ($/1K -Token) | Miracl -Durchschnitt | MTEB -Durchschnitt | |||||||||||||||||||||||
ada v2 | September 2021 | 0.0001 | 31.4 | 61.0 | |||||||||||||||||||||||||
text-embedding-3-small | 0.00002 | 44.0 | 6 2.3 | ||||||||||||||||||||||||||
textembeding-3-large | 3072 | 0,00013 | 54.9 | 64.6 |
höhere Dimensionen in text-embedding-3-large
(3072 gegenüber 1536) verbessern die Leistung, erhöhen jedoch die Kosten. Die Modellauswahl hängt von den Aufgabenanforderungen (mehrsprachige Anforderungen, Textkomplexität, Budget) ab. text-embedding-3-large
zeichnet sich in komplexen, mehrsprachigen Szenarien aus, während text-embedding-3-small
budgetbewusste Anwendungen entspricht.
Anwendungen
Beide Modelle finden verschiedene Anwendungen:
text-embedding-3-large
Anwendungen:
Anwendungen von Text-Embedding-3-Large (Bilder, die mit GPT-4 erzeugt wurden)
text-embedding-3-small
Anwendungen:
Anwendungen von Text-Embedding-3-small (Bild mit GPT-4)
Schritt-für-Schritt-Anleitung: Dokument Ähnlichkeit
Diese Anleitung verwendet den Cord-19-Datensatz (verfügbar auf Kaggle), um die Ähnlichkeit der Dokumente unter Verwendung aller drei Modelle zu demonstrieren. Installieren Sie die erforderlichen Bibliotheken:
pip -q install tiktoken openai
Bibliotheken importieren:
import os import tiktoken import numpy as np import pandas as pd from openai import OpenAI from sklearn.metrics.pairwise import cosine_similarity
Last- und Vorverarbeitungsdaten (eine 1000-dokumentale Probe wird für die Kürze verwendet):
scientific_docs = pd.read_parquet("./data/cord19_df_sample.parquet") def concatenate_columns_with_null_handling(df, body_text_column, abstract_column, title_column, new_col_name): df[new_col_name] = df[body_text_column].fillna('') + df[abstract_column].fillna('') + df[title_column].fillna('') return df new_scientific_docs = concatenate_columns_with_null_handling(scientific_docs, "body_text", "abstract", "title", "concatenated_text") def num_tokens_from_text(text: str, encoding_name="cl100k_base"): encoding = tiktoken.get_encoding(encoding_name) num_tokens = len(encoding.encode(text)) return num_tokens new_scientific_docs['num_tokens'] = new_scientific_docs["concatenated_text"].apply(lambda x: num_tokens_from_text(x)) smaller_tokens_docs = new_scientific_docs[new_scientific_docs['num_tokens'] <= 8191] smaller_tokens_docs_reset = smaller_tokens_docs.reset_index(drop=True)
Setzen Sie den OpenAI -API -Schlüssel und erstellen Sie Client:
os.environ["OPENAI_API_KEY"] = "YOUR KEY" client = OpenAI()
erzeugen Einbettungen:
def get_embedding(text_to_embbed, model_ID): text = text_to_embbed.replace("\n", " ") return client.embeddings.create(input=[text_to_embbed], model=model_ID).data[0].embedding smaller_tokens_docs_reset['text-embedding-3-small'] = smaller_tokens_docs_reset["concatenated_text"].apply(lambda x: get_embedding(x, "text-embedding-3-small")) smaller_tokens_docs_reset['text-embedding-3-large'] = smaller_tokens_docs_reset["concatenated_text"].apply(lambda x: get_embedding(x, "text-embedding-3-large")) smaller_tokens_docs_reset['text-embedding-ada-002'] = smaller_tokens_docs_reset["concatenated_text"].apply(lambda x: get_embedding(x, "text-embedding-ada-002"))
Finden Sie ähnliche Dokumente mit Kosinusähnlichkeit:
def find_top_N_similar_documents(df, chosen_index, embedding_column_name, top_N=3): chosen_document_embedding = np.array(df.iloc[chosen_index][embedding_column_name]).reshape(1, -1) embedding_matrix = np.vstack(df[embedding_column_name]) similarity_scores = cosine_similarity(chosen_document_embedding, embedding_matrix)[0] df_temp = df.copy() df_temp['similarity_to_chosen'] = similarity_scores similar_documents = df_temp.drop(index=chosen_index).sort_values(by='similarity_to_chosen', ascending=False) top_N_similar = similar_documents.head(top_N) return top_N_similar[["concatenated_text", 'similarity_to_chosen']] chosen_index = 0 top_3_similar_3_small = find_top_N_similar_documents(smaller_tokens_docs_reset, chosen_index, "text-embedding-3-small") top_3_similar_3_large = find_top_N_similar_documents(smaller_tokens_docs_reset, chosen_index, "text-embedding-3-large") top_3_similar_ada_002 = find_top_N_similar_documents(smaller_tokens_docs_reset, chosen_index, "text-embedding-ada-002") print("Top 3 Similar Documents with:") print("--> text-embedding-3-small") print(top_3_similar_3_small) print("\n") print("--> text-embedding-3-large") print(top_3_similar_3_large) print("\n") print("--> text-embedding-ada-002") print(top_3_similar_ada_002) print("\n")
Schlussfolgerung
Die neuen Einbettungsmodelle von OpenAI bieten wesentliche Verbesserungen bei NLP. Die Auswahl zwischen text-embedding-3-large
und text-embedding-3-small
hängt von den Anforderungen der spezifischen Anwendung, den Ausgleichsgenauigkeit und den Kosten ab. Dieser Leitfaden bietet die Tools, um diese leistungsstarken Modelle in verschiedenen Projekten effektiv zu nutzen. Weitere Ressourcen für die OpenAI-API und die Feinabstimmung sind verfügbar.
Das obige ist der detaillierte Inhalt vonErkundung von Text-Embedding-3-Large: Ein umfassender Leitfaden für die neuen OpenAI-Einbettungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!