ベクトル埋め込みとベクトルデータベースとは?
Rememberizerが単なるデータベースやキーワード検索エンジン以上のものである理由。
Last updated
Rememberizerが単なるデータベースやキーワード検索エンジン以上のものである理由。
Last updated
Rememberizerは、ユーザーの知識ソース内での意味的類似性の検索を可能にするために、ベクトルデータベースにおけるベクトル埋め込みを使用しています。これは、検索エンジンやデータベースを通じてコンテンツ内のキーワードを単に探すよりも、根本的により高度で微妙な情報検索の形式です。
最も高度な形(Rememberizerで使用されているもの)では、ベクトル埋め込みは、OpenAIのgptモデルやChatGPTサービスの基盤となるAI LLM(大規模言語モデル)と同様のアーキテクチャを持つ言語モデルによって作成されます。また、Google(Gemini)、Anthropic(Claude)、Facebook(LLama 2)などのモデル/サービスも含まれます。このため、AIモデルのプロンプトの文脈に含める関連知識を発見するためにベクトル埋め込みを使用することは自然です。これらの技術は相補的であり、ある程度同等です。このため、LLMをサービスとして提供するほとんどのプロバイダーは、サービスとしてベクトル埋め込みも生成します(例えば、Together AIのブログやOpenAIの別のブログ)。
ベクトル埋め込みはどのようなものですか?2次元の座標(x,y)を考えてみましょう。もしそれが原点からこの点までの線を表すなら、私たちはそれを方向を持つ線、つまり「2次元のベクトル」と考えることができます。私たちの文脈では、ベクトル埋め込みは768次元の空間におけるベクトルを表す768個の数字のリストになります。最終的に、この数字のリストは、フレーズ「青空からの稲妻」の意味を定義するTransformerモデル内のゼロから一の間の重みを表すことができます。これは、例えばGPT-4で使用される意味の根本的に同じ表現です。その結果、良いベクトル埋め込みは、現代のAI言語モデルで見られる同じ素晴らしい理解を可能にすることが期待されます。
ベクトル埋め込みはテキストだけでなく、画像や音などの他のデータタイプを表すためにも使用できることに注意する価値があります。そして、適切に訓練されたモデルを使用すれば、メディアを横断して比較することができるため、テキストのブロックに対するベクトル埋め込みを画像と比較することができ、またその逆も可能です。今日、Rememberizerはユーザーの文書と知識のテキストコンポーネント内での検索を可能にしています。しかし、テキストから画像、画像からテキストの検索はロードマップにあります。 Googleは、テキスト検索(テキストからテキスト)や画像検索(テキストから画像)を強化するためにベクトル埋め込みを使用しています(参照)。Facebookは、彼らのソーシャルネットワーク検索に埋め込みを使用することを検討しています(参照)。Snapchatは、適切な広告を適切なユーザーに適切なタイミングで提供するために、文脈を理解するためにベクトル埋め込みを使用しています(参照)。
ベクトル埋め込みとベクトルデータベースがどのように機能するかを深く理解するには、Hugging Faceの概要から始めてください。Pinecone(ベクトル埋め込みデータベースとしてのサービス)も良い概要を提供しています。
ベクトルにおける検索と知識を理解するためのもう一つの素晴らしい情報源は、Meta/FacebookのFAISSライブラリに関する論文とコードです。「FAISS: A Library for Efficient Similarity Search and Clustering of Dense Vectors」(Johnson, Douze, and Jégou, 2017):FAISSは、密なベクトルの効率的な類似性検索とクラスタリングのために設計されたライブラリの包括的な概要を提供します。これは、大規模なベクトルデータベースにおけるインデックス作成と検索プロセスの最適化方法について論じており、製品量子化に基づくものも含まれます。これについてもっと学ぶには、ドキュメントとGithubのコードが最適です。
2017年6月の論文「Attention Is All You Need」(参照)を考慮することも重要です。これは、GPTモデルとOpenAI、Google、Meta(Facebook)、Nvidia、Microsoft、IBM、Anthropic、Mistral、Salesforce、xAI(Elon Musk)、Stability AI、Cohere、その他多くのオープンソースから派生するすべてのLLMの背後にあるTransformerアーキテクチャを紹介しています。 また、「Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality」(参照1998、参照2010)も考慮してください。これらの論文は、高次元空間における近似最近傍(ANN)検索の理論について論じており、類似アイテムを効率的に取得するためのベクトルデータベースの核心概念です。
これらのTransformerベースのモデルの一つの興味深い点は、使用するデータが多ければ多いほど、より大きく(より多くのパラメータ)なり、理解力と能力が向上することです。OpenAIは、彼らのGPT-2モデルを訓練したときに最初にこのことに気付きました。この可能性を認識し、彼らはすぐにオープンソース志向の非営利団体であることをやめ、GPT-3、GPT-4およびその有名なフロントエンドであるChatGPTの製造に焦点を当てたクローズドソースの営利企業になりました。興味深いことに、Googleはこの技術の特許を所有しています -- 彼らの研究者がTransformersとAttention Is All You Needの背後にいました(参照)。 ChatGPTは私の表現について少し異なる見解を示し、「OpenAIのオープンソース志向の非営利団体からクローズドソースの営利団体への移行に関する物語は、複雑な進化を単純化しています。OpenAIの移行には、商業化の側面とともに、安全性と責任あるAI開発への焦点が含まれていました。また、OpenAIはGPT-3以降の独自技術の開発を優先している一方で、出版物やコラボレーションを通じて研究コミュニティとの関わりを続けていることも注目に値します。」と書いています。
BERT言語モデルはTransformersに基づいており、先進的なベクトル埋め込みエンジンでよく使用されます。これは2018年の論文「BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding」(参照)で紹介されました。BERT(Bidirectional Encoder Representations from Transformers)は、幅広いNLPタスクに対して微調整可能な事前訓練モデルへの重要なシフトを示しました。その双方向トレーニングとトランスフォーマーアーキテクチャの革新的な使用は、数多くのベンチマークでのモデル性能の新しい基準を設定しました。 ベクトル埋め込みを作成するための以前の革新的な方法は、GloVe(2014年、スタンフォード)、Word2Vec(2013年、Google)によって紹介されました。「GloVe: Global Vectors for Word Representation」(参照):GloVe(Global Vectors)論文は、単語表現の教師なし学習のための新しいグローバル対数双線形回帰モデルを提案し、埋め込みの2つの主要アプローチであるグローバル行列因子分解とローカルコンテキストウィンドウ法の利点を組み合わせています。「Efficient Estimation of Word Representations in Vector Space」(参照):この論文は、単語埋め込みを生成するための画期的なアプローチであるWord2Vecを紹介しました。Word2Vecモデルには、Continuous Bag of Words(CBOW)およびSkip-Gramモデルが含まれており、単語埋め込みの進化において重要な役割を果たしています。