OpenAI Embedding API の最新版について【LLM】

今年の1月25日に発表された OpenAI の Embedding API のアップデートに関するまとめです。(主に自分用)

公式ページの内容

新しいモデルのリリース、GPT-3.5 Turboの価格引下げ、そして開発者がAPIキーを管理し、API使用状況を理解する新しい方法の導入についてお知らせします。

新しいモデルには以下が含まれます:

  • 二つの新しい Embedding モデル
  • アップデートされたGPT-4 Turboプレビューモデル
  • アップデートされたGPT-3.5 Turboモデル
  • アップデートされた Text Moderation モデル
    デフォルトでは、OpenAI APIに送信されたデータは、OpenAIのモデルを訓練または改善するためには使用されません。

低価格の新しい埋め込みモデル
より小さくて高効率な「text-embedding-3-small」モデルと、より大きくて強力な「text-embedding-3-large」モデルの二つの新しい Embedding モデルを導入します。

Embedding とは、自然言語やコードなどのコンテンツ内の概念を表す数値のシーケンスです。Embedding は、機械学習モデルや他のアルゴリズムがコンテンツ間の関係を理解し、クラスタリングや検索などのタスクを実行するのを容易にします。これらは、ChatGPTやアシスタントAPIでの知識検索、多くの検索拡張生成(RAG)開発者ツールなどのアプリケーションを強化します。

イメージ図:

新しい小型テキスト埋め込みモデル「text-embedding-3-small」
「text-embedding-3-small」は、我々の新しく高効率な Embedding モデルであり、2022年12月にリリースされた前モデル「text-embedding-ada-002」に比べて大幅なアップグレードを提供します。

  • 強化されたパフォーマンス:
    複数言語検索(MIRACL)に広く使用されるベンチマークでの「text-embedding-ada-002」と「text-embedding-3-small」の比較では、平均スコアが31.4%から44.0%に増加しました。また、英語タスクに広く使用されるベンチマーク(MTEB)では、平均スコアが61.0%から62.3%に増加しました。
  • 価格の削減:
    「text-embedding-3-small」は、前世代の「text-embedding-ada-002」モデルに比べて大幅に効率が良いです。そのため、「text-embedding-3-small」の価格は「text-embedding-ada-002」と比較して5倍削減され、1kトークンあたりの価格が$0.0001から$0.00002になりました。

「text-embedding-ada-002」のサポート終了は予定していませんので、新しいモデルの使用を推奨しつつ、お客様は前世代モデルの使用を続けることもできます。

新しい大型テキスト埋め込みモデル「text-embedding-3-large」

「text-embedding-3-large」は、最大3072次元の埋め込みを作成する、我々の新しい次世代の大型埋め込みモデルです。

  • 強化されたパフォーマンス。「text-embedding-3-large」は我々の最も高性能な新モデルです。「text-embedding-ada-002」と「text-embedding-3-large」を比較すると、MIRACLでは平均スコアが31.4%から54.9%に、MTEBでは61.0%から64.6%に増加しました。

「text-embedding-3-large」の価格は、1kトークンあたり$0.00013に設定されます。

Embedding の短縮に対するネイティブサポート
例えば、検索のためにベクトルストアに保存するなど、大きな Embedding を使用することは、通常、小さな Embedding を使用する場合と比べて、より多くのコストと計算、メモリ、ストレージを消費します。

私たちの新しい Embedding モデルの両方は、「マトリョーシカ表現学習」という技術で訓練されており、開発者が Embedding の使用においてパフォーマンスとコストのトレードオフを行うことができます。具体的には、開発者は Embedding を短縮する(つまり、シーケンスの末尾からいくつかの数字を削除する)ことができ、Embedding がその概念表現プロパティを失うことなく、次元APIパラメータを通じてこれを実現できます。例えば、MTEBベンチマークでは、「text-embedding-3-large」の埋め込みを256のサイズに短縮しても、1536のサイズの未短縮「text-embedding-ada-002」埋め込みよりも優れたパフォーマンスを発揮します。

これにより、非常に柔軟な使用が可能になります。例えば、1024次元までの Embedding しかサポートしていないベクトルデータストアを使用する場合、開発者は現在、最良の Embedding モデルである「text-embedding-3-large」を使用し、次元APIパラメーターに1024の値を指定することで、埋め込みを3072次元から短縮し、より小さなベクトルサイズと引き換えにいくらかの精度を犠牲にすることができます。

その他の新モデルと価格の引下げ
GPT-3.5 Turboモデルのアップデートと価格の引下げ:
来週、新しいGPT-3.5 Turboモデル「gpt-3.5-turbo-0125」を導入し、過去1年間で3回目となるGPT-3.5 Turboの価格引下げを行い、お客様のスケールアップを支援します。新モデルの入力価格は1Kトークンあたり$0.0005に50%引下げられ、出力価格は1Kトークンあたり$0.0015に25%引下げられます。このモデルには、要求された形式での応答の精度向上や、非英語言語関数呼び出しでテキストエンコーディングの問題を引き起こすバグの修正など、様々な改善が含まれます。

「gpt-3.5-turbo」モデルエイリアスを固定して使用しているお客様は、このモデルが発売されてから2週間後に自動的に「gpt-3.5-turbo-0613」から「gpt-3.5-turbo-0125」にアップグレードされます。

GPT-4 Turboプレビューのアップデート:
GPT-4 APIの顧客からのリクエストの70%以上が、そのリリース以来GPT-4 Turboに移行しています。これは、開発者が更新された知識カットオフ、より大きな128kコンテキストウィンドウ、そして低価格を活用しているためです。

今日、私たちはアップデートされたGPT-4 Turboプレビューモデル「gpt-4-0125-preview」をリリースしています。このモデルは、以前のプレビューモデルよりもコード生成などのタスクをより徹底的に完了し、モデルがタスクを完了しない「怠惰さ」のケースを減らすことを目的としています。新モデルには、非英語UTF-8生成に影響を与えるバグの修正も含まれます。

新しいGPT-4 Turboプレビューバージョンに自動的にアップグレードされたい方のために、最新のGPT-4 Turboプレビューモデルを常に指す新しいgpt-4-turbo-previewモデル名エイリアスも導入しています。

今後数ヶ月のうちに、一般公開でGPT-4 Turbo with visionを発売する予定です。

Moderation モデルのアップデート
無料の Moderation APIは、開発者が潜在的に有害なテキストを特定することを可能にします。私たちの継続的な安全性の取り組みの一環として、「text-moderation-007」、これまでで最も堅牢な Moderation モデルをリリースしています。「text-moderation-latest」と「text-moderation-stable」のエイリアスは、それに更新されました。安全なAIシステムの構築については、私たちの安全性ベストプラクティスガイドを通じてさらに学ぶことができます。

Embedding モデルについて

以上がプレスリリースの内容でしたが、つまるところ、Embedding(埋め込み)モデルとは、大規模言語モデル(LLM)へ前提条件や前提知識を与える(=埋め込む)際などに活用するモデルとなります。

ChatGPTのような LLM への前提条件の与え方で一番シンプルなのはプロンプトで直接指示する事ですが、LLM に入力できる文章量には上限が存在するため、与えたい前提条件・前提知識が膨大になるほど本来の指示文の入力余地を圧迫し、また LLM が出力する内容が前提条件・前提知識を十分に読み取ってくれない、という事が起こります。

そんなときに便利なのが Embedding モデル。

与えたい条件や知識の文章を Embedding モデルへ渡すと、機械にとって読み取りやすいベクトル形式の数値データへ変換してくれるため、容易に LLM へ前提条件や前提知識を渡すことが可能になります。

まさに縁の下の力持ちといったモデルですね。

試しに最新の Embedding モデルを併用して ChatGPT API を利用した Bot を作ってみたので、次回の記事でまとめます。

Embedding モデルの役割まとめ

  1. 意味の理解: エンベッディングモデルは、単語やフレーズの意味を数値のベクトルとしてキャプチャします。これにより、単語間の意味的な関係を機械学習モデルが認識できるようになります。例えば、「犬」と「猫」は似たようなベクトルを持ち、「飛行機」とは大きく異なるベクトルを持つことで、その意味的な類似性や差異を表現します。
  2. 次元削減: 自然言語は非常に複雑で、何千もの単語やフレーズを含むことがありますが、エンベッディングはこれらを扱いやすいサイズのベクトルに変換します。これにより、機械学習アルゴリズムがデータを効率的に処理し、学習することができます。
  3. 関係性の把握: エンベッディングにより、単語や文の間の関係性を数値で表現できます。これは、文章の分類、感情分析、機械翻訳など、多くのNLP(自然言語処理)タスクにおいて非常に重要です。
  4. 汎用性: 一度学習されたエンベッディングモデルは、異なるタスクやアプリケーションに再利用することができます。これにより、新たな問題に対する解決策を早く、効率的に開発することが可能になります。

(参考)機械学習分野における"ベクトルデータ"は以下リンク参照

スポンサーリンク