埋め込み関数と性能を比較する:Cohere Embed v3とオープンソース
By James Briggs · 2024-03-23
最新の埋め込みモデルの比較を通じて、Cohere Embed v3とオープンソースの性能を検討します。
最新の埋め込みモデルの比較
- 今日は、リトリーバルパイプラインを構築する際に使用できるいくつかの最高の埋め込みモデルを見ていきます。現時点ではほとんどの人がOpenAI 002を使用していますが、実際には他にもたくさんのモデルがあり、競争力のあるものやOdd 002よりも優れているものもあります。リーダーボードを見ると、はるかに優れたモデルもたくさんありますが、すべてがリーダーボードの順位だけではないことが分かります。実際のデータでテストすると、いくつかのモデルと比較して依然として良い結果を出すが、多くの他のモデルと同じくらいです。最初に、埋め込みモデルの最も人気のあるリーダーボードの1つであるMTEPベンチマークを見てみましょう。MTEPはMassive Text Embedding Benchmarkの略で、これはHung Face Spacesでホストされています。現在、新しいモデルが第1位になったとのことですが、このビデオではそのモデルを取り上げませんが、近々取り上げます。代わりに、Go Hereからの別のモデルを取り上げますが、非常にわずかな違いしかないようです。そして、私たちは、オープンソースの小さな埋め込みモデルの1つを見ていきます。オープンソースのモデルは多数ありますが、私が見つけた中で最も効果的なのは、E5 Base V1です。モデルのサイズがそれほど問題ではない場合、このモデルをE5 Large V2モデルにアップグレードすることもできます。そして、これらを比較して、一般的に最も人気のある埋め込みモデルである002とも比較します。ここではいくつか異なる点を見ていきますが、それぞれのモデルを使用するために必要な基本的な情報を案内します。まず、インストールから始めましょう。各モデルのインストールはかなり簡単です。OpenAI 002、Transformers、データセット、埋め込み関数に関しては、それぞれの違いが最も大きい部分です。API埋め込みモデル、特にOpenAIは非常に簡単で、特にOpenAIは何も気にする必要はありません。 Cairは、埋め込みの際に使用する正しいimport typeであるsearch documentに気を付ける必要があります。クエリの埋め込み時にはsearch query、そしてモデル名もこちらにあります。
最新の埋め込みモデルの比較
オープンソースモデルの使用方法について
- オープンソースモデルの使用方法を考えると、少し複雑になります。通常は、オープンソースなので、すべてをAPIの背後に隠しているわけではありませんが、それでもそれほど複雑ではありません。ただし、高速な処理速度を望む場合は、クーラーを有効にするGPUが必要になります。MacではNPSで実行することもできますが、ここでCUDAの代わりにMPSを使用する必要があります。モデルを初期化し、トークナイザーとモデルを生成したら、埋め込み処理を行います。つまり、入力された各ドキュメントやパッセージに「テキストパッセージ」というテキストを前置する必要があります。これにより、モデルに文の埋め込みであることを伝えることができます。そして、すべてをトークナイズしてモデルを経由して処理し、モデルの隠れた状態を抽出し、各入力ドキュメントやパッセージの単一の埋め込みに変換します。それが埋め込みの方法です。次に、すべてをインデックスに追加します。ここでベクトルを格納するには、ローカルなNumPy配列を使用しています。これはデータセットが非常に小さいためであり、実稼働環境ではベクトルデータベースを使用するべきです。次に、APIでサイズ1〜8を使用しましたが、実際には256に拡張して処理速度を向上させることができます。オープンAIでは全てのドキュメントをインデックス化するのに9分かかりましたが、Cairでは5分半でした。次に、オープンソースモデルを見てみましょう。非常に小さなモデルなので、非常に迅速に埋め込みを行うことができます。この段階では、Google Collab上のV100 GPUを使用しましたが、インデックス全体をメモリ上に埋め込む場合は、実際のRAMメモリではなく、Numpy配列のメモリを使用してしまう可能性があるので注意が必要です。最後に、インデックスが準備できたら、クエリを実行する準備が整います。クエリ関数に移る前に、埋め込みを作成する作業は以前と同じです。
オープンソースモデルの使用方法について
エンベッディングモデルの違いと性能の比較
- ここでは、AIのノートブックから埋め込み関数を使用することができました。ただし、クエリーではなくドキュメントまたはパッセージに入力タイプを調整する必要があったため、埋め込み関数を使用することができませんでした。また、E5モデルの場合、これを変更する必要があります。ここではクエリーがあるので、パッセージではありません。それ以外はそれほど大きな違いはありません。これらの後、クエリーベクトルとインデックスとの間でドット積類似度を計算します。同様のことを、クーハーモデルに対しても行います。これらはどちらも正規化されているため、単にドット積を計算しています。E5では、出力が正規化されていなかったため、ベクトルを正規化してからドット積を使用するか、単にコサイン類似度を使用するかのどちらかを選択できます。また、注意すべき重要な点として、これを格納するときに考慮すべきことがあります。すべての埋め込みモデルは、異なる埋め込み次元を持っている。使用される次元は、例えば1536のように、より高次元のベクトルを使用することになります。このように、より高次元のベクトルを保存するコストが高くなる可能性があるため、長期的に考慮すると重要です。これまでの結果を見ると、これらのモデルの間には、性能の観点でかなり似ていることがわかります。
エンベッディングモデルの違いと性能の比較
リードティーミングの重要性
- 異なる結果がここにあり、残念ながら最初のものは実際には最初のLARMモデルについて話しているだけなので、それほど適切ではありません。ここまで来て、002が得たものと同じ結果を1つ取得します。オープンソースチャットモデルの対話形式を最適化するために、Clos Sourceモデルに代替するかもしれません。その後、ここに戻って、以前に得た応答と同じ応答を取得します。前よりもオープンソースよりも優れており、閉じたソースと同等です。次に、E5へ進みます。ここで一番上の最初のものはあまり関係ありませんので、無視してもよいですが、次にここで得られる2つは、前の2つのモデルと同じものです。別のより具体的な質問について、LUSの赤チーム活動についてです。セキュリティテストやストレステストのようなものです。つまり、LARM 2では、LARM 2に特化していない第1のものがありますが、そのデータセットの中では実際にその情報を見つけることができなかったことを確認します。したがって、私たちは、LL 2と赤チーム活動を同じチャンク内に持っていないと思いますが、赤チームアプローチや結果についての情報を見ることができます。その後、3つ目のトピックは、おそらくもう少し関連性が高く、有用であると思われるということです。すべてのここに記載されていることは、基本的に赤チーム活動を説明しており、最後に「赤チーム活動」と呼ばれる質的アプローチについて説明しています。結果、特に特筆すべき点はありません。COでは、情報キャンペーンへの支援、過激主義的なテキストの生成などについて説明しています。これは、彼らが赤チーム活動のために何をしたかについて話しているものであり、AIシステムが改善されるにつれて、可能な害の範囲が拡大しているようです。害を取り除くための潜在的に有用なツールの1つは、赤チーム活動を行って、言語モデルの有害な出力を人手または自動化された方法で敵対的に調査することです。すでにこれは、他の002からのどの回答よりも赤チーム活動について詳しく説明していると私には思えます。そして、もう1つは、赤チーム活動チャドGTを介したジェイルブレイキングに関するものです。これも以前に見たものなので再び説明するつもりはありませんが、それは悪い応答またはドキュメントを取得することではありませんでした。そしてここには、悪用される可能性のある制限やリスクを含むとあります。これも赤チーム活動の一部であり、人々がこれらのことを悪用できるかどうかをテストしています。赤チーム活動のアプローチはこれらに対処するのに不十分です。
リードティーミングの重要性
AIコンテキストプラクティスにおけるレッドチーム演習の重要性
- AIコンテキストプラクティスでは、レッドチーム演習などが組織が自身の限界や脆弱性、そして開発したAIシステムの限界を発見し、現実的に取り組むために役立ちます。レッドチーム演習は、計画、組織、技術システムの欠陥や脆弱性を見つけるための構造化された取り組みであり、しばしば攻撃者のマインドセットと手法を採用しようとする専用のレッドチームによって実施されます。組織がセキュリティを向上させるための機会を提供し、AIシステムをより改善することができます。
AIコンテキストプラクティスにおけるレッドチーム演習の重要性
Conclusion:
Cohere Embed v3とオープンソースの埋め込みモデルを比較することで、それぞれの性能や違いについて詳しく知ることができました。