投稿

12月, 2024の投稿を表示しています

オンプレミス環境でベクトル検索をしてみる(OpenSearch)

イメージ
Document オンプレミス環境でベクトル検索をしてみる(OpenSearch) 昨今、生成AIやLLMが話題ですが、より回答精度を上げる方法として RAG という言葉をよく聞きます。 RAG(Retrieval-Augmented Generation) とは、ざっくりいうと、FAQなどのデータをデータベースに格納しておき、ユーザーからのインプットに対して最適な回答をデータベースから抽出し、その回答をもとにLLMに文章を生成させることで、より正確に回答を生成できるようにする方法になります。 RAG用のデータベースでは、 ベクトル検索 という手法が主に使われており、入力されたキーワードを全文検索するのではなく、類似度で検索をする形式が多いようです。 今回は、このベクトル検索について触れていきたいと思います。ただ、AzureやAWSなどのクラウドサービスを使えば容易に実現できる思いますが、少し勉強しながら構築したいのでオンプレミス環境に導入していこうと思います。 なお、私はデータベースにそこまで詳しくなく、見様見真似で進めているので、間違った解釈があるかもしれませんがご容赦ください。 ただベクトル検索に興味のある方の参考になれば幸いです。 データベースの準備 今回ベクトル検索可能なデータベースとして、 OpenSearch を使ってみたいと思います。 クラウド環境では、 Elasticsearch や OpenSearch の名前をよく見ます。調べてもこのあたりのデータベースが良さそうという理由で採用します。 ちなみに、この Elasticsearch はOSSであったものの、色々商用問題などがあったようですね。。。 さっそく、 OpenSearch を導入していきたいと思います。 環境は、Ubuntu22.04です。 Javaをインストールする ...