Rumah >Peranti teknologi >AI >Meneroka teks-embedding-3-besar: Panduan Komprehensif untuk Pembasmian Terbuka Baru

Meneroka teks-embedding-3-besar: Panduan Komprehensif untuk Pembasmian Terbuka Baru

Jennifer Aniston
Jennifer Anistonasal
2025-03-07 09:41:10302semak imbas

model penyembuhan teks terbaru OpenAI, text-embedding-3-large dan text-embedding-3-small, merevolusi analisis teks. Artikel ini meneroka keupayaan, aplikasi, dan penggunaan praktikal mereka.

Embeddings menerjemahkan bahasa manusia ke dalam format yang boleh dibaca mesin, penting untuk tugas AI. Model baru Openai dengan ketara meningkatkan proses ini untuk pemaju dan saintis data. Kami akan meliputi fungsi teras, aplikasi, dan pelaksanaan yang berkesan.

Memahami Embeddings Teks

Embeddings teks adalah perwakilan berangka yang menangkap makna semantik teks. Mereka adalah penting untuk pelbagai tugas NLP, termasuk analisis sentimen dan klasifikasi teks. Panduan kami, "Pengenalan kepada Embeddings Teks dengan API Openai," memberikan gambaran keseluruhan yang komprehensif menggunakan API OpenAI untuk pembuatan pembuatan.

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

Illustration Embeddings Teks Pendatang baru untuk Embeddings harus berunding dengan "Pengenalan kepada Embeddings kami dengan Openai API" kursus.

Model Embedding Baru Terbuka

Dikeluarkan pada 25 Januari 2024, model-model ini mewakili teks dalam ruang dimensi tinggi untuk pemahaman yang lebih baik.

mengutamakan kelajuan dan penyimpanan, sementara

menawarkan ketepatan yang lebih baik. Parameter text-embedding-3-small membolehkan penyesuaian text-embedding-3-large hingga 1536 dimensi (dari asalnya 3072) tanpa kehilangan prestasi yang signifikan. dimensions text-embedding-3-large

Benchmarking

melepasi model terdahulu (termasuk

) pada tanda aras MirACL dan MTEB. Jadual di bawah meringkaskan perbandingan: text-embedding-3-large text-embedding-ada-002 width = "88"> ($/1k token)

Miracl purata

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
mteb purata rowspan = "3"> 8191 September 2021 0.0001 31.4 61.0 2.3 text-emp-emp-3-large 3072 0.00013 54.9 64.6

Dimensi yang lebih tinggi dalam text-embedding-3-large (3072 vs 1536) meningkatkan prestasi tetapi meningkatkan kos. Pemilihan model bergantung kepada keperluan tugas (keperluan berbilang bahasa, kerumitan teks, belanjawan). text-embedding-3-large cemerlang dalam senario pelbagai bahasa, sementara text-embedding-3-small sesuai dengan aplikasi yang sedar bajet.

Aplikasi

Kedua -dua model mencari aplikasi yang pelbagai:

text-embedding-3-large Aplikasi:

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

Aplikasi teks-emp-empedding-3-besar (imej yang dihasilkan menggunakan GPT-4)

    automasi sokongan pelanggan berbilang bahasa (18 bahasa)
  • Enjin Carian Semantik Lanjutan
  • Sistem Cadangan Kandungan Cross-Lingual

Aplikasi: text-embedding-3-small

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

Aplikasi teks-emp-empedding-3-kecil (imej yang dihasilkan menggunakan GPT-4)

Analisis sentimen kos efektif
  • pengkategorian kandungan berskala
  • alat pembelajaran bahasa yang cekap
Panduan langkah demi langkah: Kesamaan Dokumen

Panduan ini menggunakan dataset CORD-19 (tersedia di Kaggle) untuk menunjukkan persamaan dokumen menggunakan ketiga-tiga model. Pasang perpustakaan yang diperlukan:

Perpustakaan import:
pip -q install tiktoken openai

Load and Preprocess Data (sampel 1000-dokumen digunakan untuk keringkasan):
import os
import tiktoken
import numpy as np
import pandas as pd
from openai import OpenAI
from sklearn.metrics.pairwise import cosine_similarity

Tetapkan kunci API Terbuka dan buat pelanggan:
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)

menghasilkan embeddings:
os.environ["OPENAI_API_KEY"] = "YOUR KEY"
client = OpenAI()

Cari dokumen serupa menggunakan persamaan kosinus:
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"))

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")
Kesimpulan

Model penyembuhan baru OpenAI menawarkan penambahbaikan yang besar dalam NLP. Pilihan antara

dan

bergantung kepada keperluan aplikasi tertentu, mengimbangi ketepatan dan kos. Panduan ini menyediakan alat -alat untuk menggunakan model -model berkuasa ini dengan berkesan dalam pelbagai projek. Sumber lanjut di API OpenAI dan penalaan halus boleh didapati. text-embedding-3-large

Atas ialah kandungan terperinci Meneroka teks-embedding-3-besar: Panduan Komprehensif untuk Pembasmian Terbuka Baru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn