Pineconeでrerankが使用できるようになったので試してみた(パブリックプレビュー)
こんにちは。そのだです。
Pineconeでrerankが使用できるようになった(パブリックプレビュー)ので、試してみました。
前提
以下の工程が済んでいる前提で行います。
- Pineconeのアカウントを作成する
- PineconeのAPI_KEYを取得する
rerankとは
rerankとはRAGにおける検索精度を高めるために使用される手法の一つで、クエリの文脈やニュアンスを考慮しながら、各ドキュメントとクエリの関連性を評価します。これにより、ベクトルを使った事前計算された単純な類似度だけでなく、クエリの意図や文脈に応じたスコアを付けることが可能になり、精度が向上すると言われています。
rerankについて具体的に知りたい方は、以下のドキュメントを参照ください。
現在、Pineconeで使用できるrerankのモデルはbge-reranker-v2-m3です。
ドキュメントを確認したところ、多言語対応しているモデルでした。
Pineconeでrerankを試してみる
インストール
下記のコマンドでライブラリをインストールします。
pip install -U pinecone-client
pip install -U --pre pinecone-plugin-inference==1.1.0rc0
検証
「Tell me about Apple's products(アップルの製品について教えて)」と言う質問に対し、下記のドキュメントからrerankingします。
- Apple is a popular fruit known for its sweetness and crisp texture.(アップルは、その甘さとシャキシャキした食感で知られる人気の果物である)
- Apple is known for its innovative products like the iPhone.(アップルはiPhoneのような革新的な製品で知られている)
- Many people enjoy eating apples as a healthy snack.(多くの人がリンゴをヘルシーなスナックとして楽しんでいる)
- Apple Inc. has revolutionized the tech industry with its sleek designs and user-friendly interfaces.(アップル社は、その洗練されたデザインとユーザーフレンドリーなインターフェイスでハイテク業界に革命を起こした)
- An apple a day keeps the doctor away, as the saying goes.(1日1個のリンゴは医者を助ける)
パッと見た感じ、2の文章が質問と関係のある文章であることがわかります。
検証するために、以下のコードを実行します。
from pinecone import Pinecone
pc = Pinecone(API_KEY)
query = "Tell me about Apple's products"
results = pc.inference.rerank(
model="bge-reranker-v2-m3",
query=query,
documents=[
"Apple is a popular fruit known for its sweetness and crisp texture.",
"Apple is known for its innovative products like the iPhone.",
"Many people enjoy eating apples as a healthy snack.",
"Apple Inc. has revolutionized the tech industry with its sleek designs and user-friendly interfaces.",
"An apple a day keeps the doctor away, as the saying goes.",
],
top_n=3,
return_documents=True,
)
print(query)
for r in results.data:
print(r.score, r.document.text)
すると、下記の結果が得られます。
Tell me about Apple's products
0.83991605 Apple is known for its innovative products like the iPhone.
0.23102611 Apple Inc. has revolutionized the tech industry with its sleek designs and user-friendly interfaces.
0.17438118 Apple is a popular fruit known for its sweetness and crisp texture.
2の文章のスコアが0.83991605で一番良いことがわかります。
次は質問の内容を日本語にして、同様に検証してみます。
以下が結果です。
アップル製品について教えてください
0.72222126 アップルはiPhoneのような革新的な製品で知られている
0.32898772 アップルは、その甘さとシャキシャキした食感で知られる人気の果物である
0.2791388 アップル社は、その洗練されたデザインとユーザーフレンドリーなインターフェイスでハイテク業界に革命を起こした。
日本語の場合でも、2の文章が一番スコアが良いことがわかります。
これにより、きちんとリランキングされていることがわかりました。
まとめ
まだプレビュー版ですが、Pineconeでrerankが使用できることがわかりました。Amazon Bedrockではまだrerankモデルを使用できないはず(2024年8月29日時点)なので、VectorDBとしてPineconeを使っている身からするととても嬉しいアップデートです。料金に関してですが、2024年8月31日まではすべてのユーザーに無料でパブリックプレビューとして提供され、9月以降はbge-reranker-v2-m3へのリクエストごとに0.002ドルかかるそうです。これを機に試してみてはいかがでしょうか。
Discussion