はじめに
384 です。
このデータセットは、ユーザー生成のテキストデータをもとに構築された大規模な実運用のベクトル検索アプリケーションについて、設計、サイジング、性能の各側面を確認するのに役立ちます。
データセットの詳細
Parquet ファイルとして S3バケット で提供されています。
このデータセットに必要なストレージ容量とメモリ要件を見積もるため、まず ドキュメント を参照してサイジングを実施することを推奨します。
手順
ベクトル類似度索引を構築する
次のSQLを実行して、hackernewsテーブルのvectorカラムにベクトル類似度索引を定義し、構築します。M と ef_construction に、それぞれ 64 と 512 を使用しています。
これらのパラメータについては、索引のビルド時間と検索結果の品質を評価しながら、
選択した値に応じて最適な値を慎重に見極める必要があります。2,874 万件のデータセット全体では、利用可能な CPU コア数とストレージ帯域幅によっては、索引の構築と保存に数分から 1 時間程度かかることもあります。検索クエリの埋め込みを生成する
Sentence Transformers は、文や段落のセマンティックな意味を捉えるための、ローカルで手軽に使える埋め込みモデルを提供します。このHackerNewsデータセットには、all-MiniLM-L6-v2モデルによって生成されたベクトル埋め込みが含まれています。以下に、sentence_transformers Pythonパッケージを使用して埋め込みベクトルをプログラム的に生成する方法を示すPythonスクリプトの例を示します。検索用の埋め込みベクトルは、SELECT クエリ内の cosineDistance() 関数に引数として渡されます。要約デモアプリケーション
上記の例では、ClickHouse を使用したセマンティック検索とドキュメントの取得を実演しました。非常にシンプルながら高いポテンシャルを持つGenerative AIのサンプルアプリケーションを次に紹介します。アプリケーションは以下の手順を実行します:- ユーザーからtopicの入力を受け付けます
SentenceTransformersとモデルall-MiniLM-L6-v2を使用して、topic の埋め込みベクトルを生成しますhackernewsテーブルでベクトル類似度検索を使用して、関連性の高い投稿やコメントを取得しますLangChainと OpenAIgpt-3.5-turboChat API を使用して、ステップ #3 で取得した内容を要約します。 ステップ #3 で取得した投稿/コメントは、Chat API に コンテキスト として渡され、Generative AI における重要なつながりとなります。
OPENAI_API_KEY にOpenAI APIキーを設定する必要があります。OpenAI APIキーは、https://platform.openai.com に登録後に取得できます。このアプリケーションは、顧客感情分析、テクニカルサポートの自動化、ユーザー会話のマイニング、法的文書、医療記録、会議の議事録、財務諸表など、複数のエンタープライズ領域に適用できるGenerative AIのユースケースを示しています。