OpenAIの新embeddings,text-embedding-3-smallをRAGタスクで評価する
先日、OpenAI から新しい embeddings モデルである、text-embedding-3-smallとtext-embedding-3-largeが公開された。text-embedding-3-smallは、古いembeddingsモデルのada-v2よりも価格は1/5に、かつ性能は向上しているとのこと。
OpenAIの記事によると、MTEBの評価は少々スコアが上がり、特筆すべきはMIRACLの方は大幅にスコアの向上が見られる。MIRACL(Multilingual Information Retrieval Across a Continuum of Languages)は名前の通り、多言語での情報検索タスクで、このスコアが大幅に上がったということは、日本語での情報検索タスクの精度向上にも期待が持てる。
Wikipedia Q&A の RAG タスクで評価
というわけで早速評価してみる。ベクトル検索のみで、AI王クイズ第一回コンペに臨む - Q&Aタスクでの複数の日本語embeddingsの評価と同じ方法で、約550万件のPassageからベクトル検索して回答が含まれるかを調べるタスク。いわゆるRAG検索で適切な回答を含む文章を発見できるか、を調べる。なお、text-embedding-3-smallの結果はOpenAI API を叩くときに512次元になるようなオプションを渡して次元削減された結果を使っているので、次元削減される前の1536次元のデータを使うと少々のスコアは向上すると思う。
そして結果は以下。
text-embedding-3-smallの結果は低く、引き続き multilingual-e5 シリーズがQ&A的な情報検索タスクでは圧倒的に高い、という結果になった。ただ、OpenAI embeddings の強みはロングトークンがembeddings化できることにも思える(今回使ったpassageは日本語400文字以下)し、次元削減しなかったらもうちょっとスコアは上がっている気もする。
利用したデータやコード
- https://github.com/hotchpotch/wikipedia-passages-jawiki-embeddings-utils
- https://huggingface.co/datasets/hotchpotch/wikipedia-passages-jawiki-embeddings
おまけ・かかった費用
1,490,618,785
tokens で、30USDほど。これが以前なら5倍費用がかかったので試す気にならなかったのだけど、これぐらいならまぁ個人でも…、という費用感である。