Maison > Périphériques technologiques > IA > Explorer le texte-Embeddding-3-Grown: Un guide complet des nouvelles incorporations Openai

Explorer le texte-Embeddding-3-Grown: Un guide complet des nouvelles incorporations Openai

Jennifer Aniston
Libérer: 2025-03-07 09:41:10
original
291 Les gens l'ont consulté

Les derniers modèles d'intégration de texte d'OpenAI, text-embedding-3-large et text-embedding-3-small, révolutionnent l'analyse de texte. Cet article explore leurs capacités, leurs applications et leur utilisation pratique.

Les incorporations traduisent le langage humain en formats lisibles par machine, cruciaux pour les tâches d'IA. Les nouveaux modèles d'OpenAI améliorent considérablement ce processus pour les développeurs et les scientifiques des données. Nous couvrirons leurs fonctions de base, leurs applications et leur implémentation efficace.

Comprendre les incorporations de texte

Les incorporations de texte sont des représentations numériques capturant la signification sémantique du texte. Ils sont essentiels pour diverses tâches PNL, y compris l'analyse des sentiments et la classification du texte. Notre guide, «Introduction aux intérêts de texte avec l'API OpenAI», fournit un aperçu complet de l'utilisation de l'API OpenAI pour la création d'intégration.

Exploring Text-Embedding-3-Large: A Comprehensive Guide to the new OpenAI Embeddings

Embeddings de texte illustration

Les nouveaux arrivants à intégrer devraient consulter notre cours "Introduction aux intégres avec l'API OpenAI".

Les nouveaux modèles d'intégration d'Openai

Sorti le 25 janvier 2024, ces modèles représentent le texte dans un espace de grande dimension pour une meilleure compréhension. text-embedding-3-small priorise la vitesse et le stockage, tandis que text-embedding-3-large offre une précision supérieure. Le paramètre dimensions permet d'ajuster text-embedding-3-large à 1536 dimensions (à partir de son 3072 natif) sans perte de performance significative.

Benchmarking

text-embedding-3-large dépasse les modèles précédents (y compris text-embedding-ada-002) sur les repères Miracl et MTEB. Le tableau ci-dessous résume la comparaison:

col> width = "103"> width = "88"> col> colgroup>

Dimensions plus élevées dans text-embedding-3-large (3072 vs 1536) améliorent les performances mais augmentent le coût. La sélection du modèle dépend des exigences des tâches (besoins multilingues, complexité du texte, budget). text-embedding-3-large excelle dans les scénarios multilingues complexes, tandis que text-embedding-3-small convient aux applications soucieuses du budget.

Applications

Les deux modèles trouvent diverses applications:

text-embedding-3-large Applications:

Exploring Text-Embedding-3-Large: A Comprehensive Guide to the new OpenAI Embeddings

Applications de Text-Embedding-3-GARD (Images générées à l'aide de GPT-4)

  • Automatisation du support client multilingue (18 langues)
  • Moteurs de recherche sémantique avancés
  • Systèmes de recommandation de contenu inter-flingue

text-embedding-3-small Applications:

Exploring Text-Embedding-3-Large: A Comprehensive Guide to the new OpenAI Embeddings

Applications de Text-Embedding-3-Small (image générée à l'aide de GPT-4)

  • Analyse des sentiments rentable
  • Catégorisation de contenu évolutif
  • Outils d'apprentissage des langues efficaces

Guide étape par étape: similitude du document

Ce guide utilise l'ensemble de données Cord-19 (disponible sur Kaggle) pour démontrer la similitude des documents à l'aide des trois modèles. Installez les bibliothèques nécessaires:

pip -q install tiktoken openai
Copier après la connexion

Importer des bibliothèques:

import os
import tiktoken
import numpy as np
import pandas as pd
from openai import OpenAI
from sklearn.metrics.pairwise import cosine_similarity
Copier après la connexion

Données de chargement et de prétraitement (un échantillon de 1000 documents est utilisé pour la concision):

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)
Copier après la connexion

Définissez la touche API Openai et créez un client:

os.environ["OPENAI_API_KEY"] = "YOUR KEY"
client = OpenAI()
Copier après la connexion

Générer des intégres:

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"))
Copier après la connexion

Trouver des documents similaires en utilisant la similitude du cosinus:

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")
Copier après la connexion

Conclusion

Les nouveaux modèles d'intégration d'Openai offrent des améliorations substantielles dans la PNL. Le choix entre text-embedding-3-large et text-embedding-3-small dépend des besoins spécifiques de l'application, de la précision et du coût de l'équilibre. Ce guide fournit les outils pour utiliser efficacement ces modèles puissants dans divers projets. D'autres ressources sur l'API OpenAI et un réglage fin sont disponibles.

Model Dimension Max token Knowledge cutoff Pricing ($/1k tokens) MIRACL average MTEB average
ada v2 1536 8191 September 2021 0.0001 31.4 61.0
text-embedding-3-small 0.00002 44.0 62.3
text-embedding-3-large 3072 0.00013 54.9 64.6
Modèle
dimension Token max Couper les connaissances ($ / 1K Tokens) MIRACL Moyenne MTEB Moyenne
Ada V2 1536 8191 Septembre 2021 0.0001 31.4 61.0
text-embedding-3-small 0.00002 44.0 6 2.3
text-embedding-3-Large 3072 0.00013 54.9 64.6

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal