埋め込みとベクトルデータベース:包括的なガイド
AIの世界では、埋め込みとベクトルデータベースはどんな種類のAI製品を構築するための必須ツールです。この記事では、OpenAIとそのAPIを使用して、それらが何であり、どのように使用するかについて説明します。理論、使用方法、そして最後に統合の3つのパートでカバーします。この記事を読んだ後、チャットGPTのための長期記憶を作成したり、PDFの巨大なデータベースに基づいて意味的な検索を実行したりすることができるようになります。
埋め込みとは何ですか?
簡単に言えば、埋め込みとは、関係のパターンを含むベクトルとして知られる数値の配列に変換された単語などのデータです。ベクトルを構成するこれらの数値の組み合わせは、類似性を測定するための多次元マップとして機能します。例えば、「犬」と「子犬」という単語は似たような状況でよく使われるため、単語の埋め込みでは近くにあるベクトルで表されます。これは単一の次元の簡単な2Dの例です。実際には、ベクトルは単語間の豊かな多次元の複雑な関係をカバーする数百の次元を持っています。画像もベクトルに変換することができ、Googleが類似画像検索を行う方法です。画像セクションは数値の配列に分解され、似たようなベクトルを持つものの類似性のパターンを見つけることができます。
ベクトルデータベースとは何ですか?
埋め込みが作成されると、それをデータベースに保存することができます。埋め込みがたくさん詰まったデータベースはベクトルデータベースと見なされ、検索、クラスタリング、推奨、分類などのさまざまな方法で使用することができます。この記事では、最も一般的に使用される検索について説明します。これを行うための実用的な方法はたくさんありますが、OpenAIは特に埋め込みを作成するための優れたAIモデルを提供しています。ただし、それらを保存する方法は提供していないため、記事の後半ではクラウドデータベースを使用します。
OpenAIでの埋め込みの作成
埋め込みを作成するには、GoogleのページでOpenAIにアクセスする必要があります。OpenAIのウェブサイトに移動し、新しいアカウントを作成するか、既存のアカウントにログインします。サインアップする場合は無料です。Googleの資格情報を使用してログインし、いくつかのオプションが表示されます。チャットGBT、Dali、その他のAPIの中から、APIページに移動します。ここでは、埋め込みに関するドキュメントを見るために、この辺りに見つけることができます。
埋め込みを作成するには、いくつかの入力を持つPOSTリクエストを行い、応答を受け取る必要があります。これを行うためにはコードを書くか、ターミナル内で行うこともできますが、最も簡単な方法はGUIソフトウェアの中で行うことです。これがPostmanと呼ばれるものです。これはAPIプラットフォームであり、今日の記事のスポンサーでもあります。Postmanは完全に無料のソフトウェアであり、さまざまな種類のAPIリクエストを行うことができます。
埋め込みをベクトルデータベースに保存する
OpenAIはデータベースを提供していないため、独自に作成する必要があります。埋め込みがたくさん詰まったデータベースは一般的にベクトルデータベースと呼ばれます。私たちはSingleStoreというプロバイダを使用します。彼らはリアルタイムで統一された分散SQLデータベースを提供しており、クラウド上にあるため非常に使いやすいです。さらに、ベクトルデータベースを直接組み込むことも可能です。
ベクトルデータベースの検索
ベクトルデータベースを検索することは実際には非常に簡単です。最初のステップは、何を検索したいかを特定することです。例えば、OpenAIに関連するものを検索したいかもしれません。次に、検索語のための埋め込みを作成する必要があります。最後に、既存の埋め込みに対してデータベース内で検索を実行します。これにより、類似性が最も近い順に並んだリストが返されます。
JavaScriptを使用した関数の作成
この記事のこの部分では、実際にJavaScriptを使用して、埋め込みと対話するための関数を作成します。まず、OpenAI APIに対してfetchリクエストを行います。新しいフォルダを作成し、OpenAIベクトルと埋め込みという名前を付けます。次に、非同期関数を作成し、それをcreate embeddingと呼び出します。これにはテキストという1つのアイテムだけが渡されます。これは埋め込むテキストであり、APIに渡すために使用します。
利点と欠点
利点:
- 埋め込みとベクトルデータベースはどんな種類のAI製品を構築するための必須ツールです。
- AIに直接接続された巨大なPDFデータベースに基づいた意味的な検索が可能です。
- ベクトルデータベースは検索、クラスタリング、推奨、分類など、さまざまな方法で使用することができます。
欠点:
- OpenAIはデータベースを提供していないため、独自に作成する必要があります。
- 埋め込みとベクトルデータベースの作成は複雑で時間がかかる場合があります。
結論
埋め込みとベクトルデータベースはどんな種類のAI製品を構築するための必須ツールです。AIに直接接続された巨大なPDFデータベースに基づいた意味的な検索が可能です。ベクトルデータベースは検索、クラスタリング、推奨、分類など、さまざまな方法で使用することができます。埋め込みとベクトルデータベースの作成は複雑で時間がかかる場合がありますが、それらが提供する利点はその努力に十分に値するものです。
よくある質問
Q: 埋め込みとは何ですか?
A: 埋め込みとは、関係のパターンを含むベクトルとして知られる数値の配列に変換された単語などのデータです。
Q: ベクトルデータベースとは何ですか?
A: 埋め込みがたくさん詰まったデータベースはベクトルデータベースと見なされ、検索、クラスタリング、推奨、分類などのさまざまな方法で使用することができます。
Q: OpenAIはデータベースを提供していますか?
A: いいえ、OpenAIはデータベースを提供していないため、独自に作成する必要があります。
Q: SingleStoreとは何ですか?
A: SingleStoreはリアルタイムで統一された分散SQLデータベースを提供しており、クラウド上にあるため非常に使いやすいです。さらに、ベクトルデータベースを直接組み込むことも可能です。