データの取得から検索、分析、可視化まで実現するプラットフォームを提供
分散型RESTful検索/分析エンジン、Elasticsearch。Elasticsearchを提供しているElastic社は2012年、オランダ・アムステルダムで創業。検索エンジン開発のきっかけは創業者であるShay Banon(シェイ・バノン)氏が、料理好きな妻のため、レシピを検索するためにApache Luceneを活用して作ったのが始まりだという。当初はオープンソースとして公開していたが、「現在は上場し、有償版も提供している」と古久保氏は説明する。
Elastic社では、検索エンジンのElasticsearchに加え、Integration(従来のLogstashやBeats。あらゆるソースからデータを収集し、希望する送信先に送信する)、Kibana(データ可視化ツール)の3つからなるELK Stackを提供することで、あらゆるソースからあらゆるフォーマットでデータを取得し、検索、分析、可視化を実現するプラットフォームを提供している。「今日はELK Stack系の話では無く、検索にフォーカスして話したい」と語り、古久保氏は生成AIの話へと移った。
ChatGPTが2022年11月にリリースされて以来、「生成AIを業務に生かしたい」と検討する企業も増えた。だが、生成AIを活用するのに十分なスキルが自社にあると考える経営者はほとんどいない。「従業員の私たちの立場からすると、すでにChatGPTを使って遊んでいたり、自社の業務に使うことを検討したりしている人も多いはず」と古久保氏は続ける。
その一方で、生成AIを安全に使う方法が分からない人が多い。「ChatGPTがリリースされた頃、いろんな会社が自社の機密情報をChatGPTに送ってしまい、それが学習に使われてセキュリティの漏えいにつながった話が話題になったことを覚えている人は多いと思います。安全にかつより有効に活用するためにElasticsearchとの組み合わせ方について紹介したい」(古久保氏)
Elasticsearchと生成AIを組み合わせるメリット
「釈迦に説法だが」と前置きし、古久保氏は改めて機械学習、生成AI、大規模言語モデル(LLM)の違いを解説。機械学習や人工知能(AI)の定義はデータから予測を行うアルゴリズムである。ユースケースとしては画像認識や自然言語処理、音声認識などがある。
生成AIは新しいデータを作る人工知能。ユースケースとしてはチャットボット、文章やイメージ、音楽の生成が挙げられる。「今、最も注目されている技術」と古久保氏は続ける。そしてその生成AIの基になるのがLLMである。LLMは文章を生成する深層学習アルゴリズム。ユースケースとして翻訳、質問への回答が挙げられる。着目してほしいのは、いずれのユースケースにも検索は一切入っていないことである。
確かにChatGPTが登場した頃、検索で遊んだ人は多い。そして嘘をつかれる経験もした。「LLMはあくまでもモデルによる推論。ロジックであって、データベースでは無い」と古久保氏は言い切る。
例えばChatGPTに昨日起きたことを探す人はいない。実際、ChatGPTに昨日起きたことを尋ねても「知りません」と回答される。これはLLMがトレーニングに制限されるからだ。最新情報に弱いだけではない。LLMに社内の情報を尋ねても回答は返ってこない。「万一、回答が戻ってきたら、社内の情報が漏れていることになる」と古久保氏は苦笑いを浮かべる。このように現在のLLMは最新情報や特定の情報を調べるのには使いづらいところがある。
LLMと検索の違いはこれだけではない。LLMは検索とは異なり、費用が高額になることだ。「検索のコストは文章生成コストの100分の1か1000分の1。例えばECサイトでOpenAIにリクエストを投げて検索したら、破産すると思います」(古久保氏)
では、生成AIをどうやって活用していけばよいのか。例えばChatGPTに「確定拠出年金制度への加入方法を教えてください」と尋ねたとする。ChatGPTは厚生労働省などが提供しているオープンな文書を返してくれる。確かに回答としては正しい。だが、会社の中でこういう質問をした場合、求めているのは預かっている証券会社の名前や登録方法である。
「それはイントラネットに掲載されている情報なので、ChatGPTは教えてくれません。このようにChatGPTは一般的なことは知っているが、あなたの会社のことは知らないのです」(古久保氏)
そこで活用したいのがElasticsearchとの組み合わせた仕組み「ESRE(Elasticsearch Relevance Engine)」である。Elasticsearchを導入し、イントラネットに載っている情報をインデックス化する。こうすることで、「確定拠出年金制度」と入力すると、「ABC社の確定拠出年金はXYの証券会社を通して提供されており……」がヒットするようになり、さらに「アカウントの作成方法は社内ページの登録ボタンを……」「確定救出年金は毎月1日に開始されます……」という詳細情報もヒットするようになる。
「Elasticsearchは全文検索なので、確定拠出年金制度といういずれかのワードが入っていないと、ヒットはゼロになる。確定、拠出、年金という単語がすべて使われている文章が上位にきます」(古久保氏)
そしてこの後、プロンプトエンジニアリングを行う。質問文「確定供出年金制度の加入方法は」と、そのネタとしてトップ3〜5に入った文章をコンテキストとしてOpenAIに投げ、要約してもらう。つまりこの仕組みにおいてAIはコンテキストとして入れた文章を、質問に合わせて要約して回答を作るツールとして活用しているのだ。
「このように検索という一手間を加えることで、生成AIはあなたを理解できるようになります」と古久保氏。あなたは最新に置き換えることもできる。生成AIの弱点を検索で補うことで、より有効に活用できるようになるわけだ。
最新バージョンElastic8.9が提供する新機能
「30年検索一筋で食べている人もいる」(古久保氏)ぐらい、検索は奥深い技術である。そこでElasticsearchは、その奥深い技術になるべく簡単にアプローチできるような仕組みを提供している。先述した通り、全文検索は検索ワードにマッチするドキュメントを探し出す。Elasticsearchではサードパーティの密なベクトル(dense vectors)により類似性を高速に返してくれるモデルを投入すると、自動で使えるようになる。
それ以外にもElasticsearchではElastic社で独自にトレーニングしたELSER(Elastic Learned Sparse EncodeR)というテキストを疎なベクトル(Sparse vector)に変換するための言語モデルの活用も可能。ELSERのテキスト拡張機能により、関連語や類語、同義語もまとめて検索できる。例えばジャングルで検索しても、熱帯雨林というワードが入っている文章も返してくれるようになる。
このような仕組みにより、これまでの通常の検索ではワードが入っていなければゼロヒットになる問題を解決できるわけだ。だがベクトル検索の課題は、類似性の高いものを探してくれるが、明後日の答えが返ってくることもあること。
そこで最新バージョンのElastic8.9では、RRF(Reciprocal Rank Fusion)という複数のランキング方法を合成する仕組みを導入し、欲しい情報を正しく上位に示すことができるよう、検索性能の向上を図っている。
生成AIの活用は文書検索だけでは無い。「セキュリティやオブサーバビリティへの適用を提案したい」と古久保氏。それを可能にするのが、Elastic8.9で提供された「AI Assistant」である。ログでエラーや異常を見つけたとしても、何が書かれているかすぐに把握することは難しい。だが、AI Assistantを利用するとアラートの内容を要約してくれるなど、次のアクションを提案してくれるのだ。
「これまではアラートやエラーメッセージから正しく次のアクションを見極められる人材が必要だったが、AI Assistantにより高度なセキュリティのスキルを持っていなくても、生成AIの力を借りて対応可能になる」と古久保氏は力強く語る。
Elasticsearchと生成AIを組み合わせて使うことで、本当に欲しい情報をわかりやすい形で手に入れることができる。しかもElasticsearchに機密情報を入れることで、外部に漏れるコトもなり。「Elasticsearchは生成AIを活用する基盤になるはず。14日間なら無料で試すこともできる。また、すぐに遊べるプログラムをGitHubで公開している。OpenAIのアカウトさえあれば、すぐにデモができるようになっているので、ぜひ触れて実感してほしいですね」(古久保氏)