paint-brush
LLM とベクトル検索が AI アプリケーションの構築にどのような変革をもたらしたのか@datastax
1,292 測定値
1,292 測定値

LLM とベクトル検索が AI アプリケーションの構築にどのような変革をもたらしたのか

DataStax4m2023/06/14
Read on Terminal Reader

長すぎる; 読むには

生成 Ai と大規模言語モデル (LLM) は多くの興奮を生み出しています。これらは、テキストを書く際に助けを求められたときに非常に役立つため、一般の人々の想像力をかきたててきました。しかし、開発者にとっては、AI アプリケーションの構築方法が簡素化されるため、さらに革命的です。その理由を見てみましょう。
featured image - LLM とベクトル検索が AI アプリケーションの構築にどのような変革をもたらしたのか
DataStax HackerNoon profile picture
0-item
1-item
2-item


生成 Ai と大規模言語モデル (LLM) は多くの興奮を生み出しています。これらは、テキストを書く際に助けを求められたときに非常に役立つため、一般の人々の想像力を刺激します。しかし、開発者にとっては、AI アプリケーションの構築方法が大幅に簡素化されたため、さらに革命的です。その理由を見てみましょう。

なぜAIはつい最近まで難しかったのか

従来、AI アプリケーションを構築する方法は、次の 4 段階のプロセスでした。


  1. データの最も関連性の高い部分をベクトルとしてエンコードします。 「最も関連性の高い部分」が何かを理解するのは難しい問題であり、多くの場合、経験に基づいた推測ではなく、これを理解するためだけに別のモデルを構築する必要があります。生データから関連する部分を抽出することもまた難しい問題です。 (これらは重要な問題なので、私たちはそれらを解決するためにKaskadaを構築しました。)
  2. 目標を達成するには、これらのベクトルを使用してモデルをトレーニングします。たとえば、Netflix の最も重要な目標の 1 つは、「ジョナサンがログインしたときに何を見たいか」を予測することです。画像認識のような一般的な問題がある場合は、最初から開始するのではなく、既存のモデルを「微調整」することができますが、多くの場合、これには数時間または数日かけて多くの GPU を使用する必要があります。
  3. モデルをデプロイし、API として公開します。
  4. 実稼働環境で実行するには、ステップ 1 と同じエンコーディングを介してリアルタイム データを実行し、構築してデプロイしたモデルを介してデータを送信し、予測 (「推論」) を行います。

ステップ 3 は通常は簡単です (ただし、 課題がないわけではない);ステップ 1、2、および 4 はすべて、難しいスキルを必要とするオーダーメイドのソリューションを必要とします。


当然のことですが、問題領域にうまく対処するために博士号取得者のチームが必要な場合、少数の企業を除いてすべての企業にとってコストとスキルが法外にかかることになります。

LLM を使用すると AI が簡単になる理由

LLM を使用した生成 AI に誰もが興奮している理由は、多くの場合、上記の手順を行わなくても問題を「十分に」解決できるからです。生成 AI を使用すると、次のことが行われます。


  1. データをテキストとして GPT に取り込む方法を理解する
  2. そのデータに関するクエリを英語で作成する


本当にそれだけです。それ以外はすべて詳細です。


最も重要な詳細: ステップ 1 で GPT にどのデータを与えるか?すべてを投げかけることはできません。 GPT-3.5 では 4,000 トークンしか処理できず、GPT-4 では最大 32,000 トークンしか処理できません。これははるかに遅く、高価です。


ベクトル検索を使用すると、GPT に送信するために作成済みの正確なクエリを取得し、それをデータベースに渡すことができ、顧客について知っていることはすべてそこに格納されます。ベクトル検索は、文字通り「このクエリに最も関連性の高いデータは何か」をユーザー側で何もすることなく答えます。それはほとんど魔法のようです。

(私は、ベクトル検索は別個のシステムではなく、メイン アプリケーション データベースの機能であるべきだと強く信じています。そのためです。 Apache Cassandra と DataStax Astra DB に追加しました。)


最も関連性の高いデータとクエリを取得したら、それらをまとめて OpenAI を呼び出し、応答を返して完了です。 (いくつかの課題をごまかしています。「 LLM に厳密に定義された形式で回答させるにはどうすればよいですか答えを利用してアプリケーションに組み込むことができます。」ただし、これらの種類の課題はソフトウェア エンジニアがすでに解決方法を知っています)。


したがって、ストリーミング コンテンツ プロバイダーは次のようなデータを使用します。ジョナサンがタイトル、俳優、カテゴリに関して費やしたすべてのセッション。彼はそれをどのくらい見ていたのか。さらに、思いつくすべてのメタデータを加えて、それをすべて非正規化して 1 つのテキスト BLOB にし、それをエンコーダーを通して実行してベクトルを取得します。


これが Netflix だったら、とても簡単でしょう。 Netflix はすでにデータを Cassandra に保存していますしたがって、新しいシステムを立ち上げたり、博士号を雇用したりする必要はありません。開発者はメタデータを 1 つのテーブルにまとめ、各行を Google のテーブルに送信するクエリを作成するだけで済みます。パルムまたはOpenAIのエイダそれらをベクトルに変換する API (と呼ばれます)埋め込み)。


それが完了したら、次のようなクエリを使用して Cassandra から関連する行をフェッチできます。は、同じ埋め込み API から取得するクエリ ベクターのバインド変数です。


 SELECT original_data_text FROM user_recommendation_data WHERE user_id = 'jonathan' ORDER BY embedding ANN OF ? LIMIT 20


次に、それらの結果を LLM プロンプトに追加すると、それだけです。これで、博士号を持たずに 1 週間で構築した推奨システムが完成しました。アストラDBそして選択したLLM。

従来のモデルはまだ役に立ちますか?

トラビス・フィッシャーは正しい彼は、LLM を使用したより単純なアプローチを使い果たした場合にのみ、モデルの微調整またはカスタムを検討するようにと言っています。ただし、LLM は、より小さい特徴ベクトルやより慎重に調整された特徴ベクトルを備えたカスタム構築モデルよりも遅く、高価です。さらに、Netflix のような、機械可読な入力を取得して機械可読な出力を取得するユースケースでは、通常、テキストと英語を往復するよりもカスタム モデルを使用した方がより正確な結果を得ることができます。


ただし、カスタム モデルを構築する必要がある場合でも、LLM はそのためのデータ、ラベル、特徴の生成に役立ちます。ただし、それについては別の記事で取り上げます。

どうすればこれを試すことができますか?

読むことをお勧めしますデータサイエンスの記事へこれがどのように機能するかについては、次のレベルで説明します。それからサインアップベクトル検索対応の Astra DB の場合、および6 月 15 日のウェビナーに登録してくださいLLM のベクトル検索について。準備をしましょう。これは楽しいことになるでしょう!



Jonathan Ellis、DataStax 著