ホームページ >テクノロジー周辺機器 >AI >Text-Medding-3-Largeの探索:新しいOpenai埋め込みの包括的なガイド
Openaiの最新のテキスト埋め込みモデル、
およびtext-embedding-3-large
は、テキスト分析に革命をもたらしています。この記事では、能力、アプリケーション、および実用的な使用法について説明します
text-embedding-3-small
埋め込みは、人間の言語を機械読み取り可能な形式に変換します。これは、AIタスクに重要です。 Openaiの新しいモデルは、開発者とデータサイエンティストにとってこのプロセスを大幅に改善します。 それらのコア機能、アプリケーション、および効果的な実装をカバーします。
テキストの埋め込みは、テキストの意味的な意味をキャプチャする数値表現です。 これらは、感情分析やテキスト分類など、さまざまなNLPタスクに不可欠です。 私たちのガイド「Openai APIを使用したテキスト埋め込みの紹介」は、作成の作成にOpenai APIを使用する包括的な概要を提供します。
テキスト埋め込み図イラスト埋め込みの新人は、「Openai APIを使用した埋め込みの紹介」コースを参照する必要があります。
Openaiの新しい埋め込みモデル
2024年1月25日にリリースされたこれらのモデルは、理解を向上させるための高次元空間のテキストを表しています。
速度とストレージに優先順位を付け、は優れた精度を提供します。 パラメーターでは、から1536の寸法(ネイティブ3072から)を重大なパフォーマンス損失なしに調整することができます。
ベンチマークtext-embedding-3-small
text-embedding-3-large
dimensions
text-embedding-3-large
MIRACLおよびMTEBベンチマークの以前のモデル(
モデル | 寸法
| 8191 | 9月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 |
text-embedding-3-large
(3072対1536)の高次元)はパフォーマンスを向上させますが、コストを増加させます。モデルの選択は、タスク要件(多言語のニーズ、テキストの複雑さ、予算)に依存します。 text-embedding-3-large
複雑で多言語のシナリオで優れていますが、text-embedding-3-small
は予算に配慮したアプリケーションに適しています。
アプリケーション
両方のモデルが多様なアプリケーションを見つけます:
アプリケーション:text-embedding-3-large
Text-rembedding-3-large(GPT-4を使用して生成された画像)のアプリケーション
アプリケーション:text-embedding-3-small
Text-rembedding-3-Smallのアプリケーション(GPT-4を使用して生成された画像)
ステップバイステップガイド:類似性を文書
このガイドでは、Cord-19データセット(Kaggleで利用可能)を使用して、3つのモデルすべてを使用してドキュメントの類似性を示します。 必要なライブラリをインストールする:
pip -q install tiktoken openaiインポートライブラリ:
import os import tiktoken import numpy as np import pandas as pd from openai import OpenAI from sklearn.metrics.pairwise import cosine_similarityロードとプリプロセスデータ(1000ドキュメントサンプルが簡潔に使用されています):
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)OpenAI APIキーを設定し、クライアントを作成します:
os.environ["OPENAI_API_KEY"] = "YOUR KEY" client = OpenAI()埋め込みを生成:
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"))Cosineの類似性を使用して同様のドキュメントを見つけます:
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")
結論
Openaiの新しい埋め込みモデルは、NLPの大幅な改善を提供します。とtext-embedding-3-large
の選択は、特定のアプリケーションのニーズ、精度とコストのバランスをとることに依存します。 このガイドは、さまざまなプロジェクトでこれらの強力なモデルを効果的に利用するためのツールを提供します。 Openai APIと微調整のさらなるリソースが利用可能です。
以上がText-Medding-3-Largeの探索:新しいOpenai埋め込みの包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。