「RAG」を使って法律関連のドメイン知識をプロンプトに取り込む
同社が初めて本番サービスに生成AIを組み込んだのが、先述の「チャット法律相談」だった。ユーザーがテキストチャットで法律相談に関する文章を打ち込むと、その内容を基に「法律相談データベース」という過去の質問・回答内容を100万件以上蓄積しているデータベースから類似する質問・回答を抽出。これをプロンプトに組み込んだ上で、「Azure OpenAI Service」で稼働しているChatGPTに投入する。そしてChatGPTから返ってきた回答内容を加工して、最終的にユーザーに対して提示する。
この他にも同社はいくつかのサービスにすでに生成AIの機能を組み込んでいるが、どれも基本的な仕組みは同じで、同社がもともと持っている独自ナレッジやドメイン知識のデータベースから関連する情報を検索・抽出して、これをプロンプトに組み込んだ上でChatGPTに対して投げ掛ける。
こうした方式は「RAG(Retrieval-Augmented Generation)」と呼ばれ、プロンプトエンジニアリングだけではなかなか対処できない「専門知識に関する適切な回答を引き出すためのプロンプト」を生成するための方式として、現時点では最良の選択肢だと言われている。
弁護士ドットコムでもこのRAG方式を採用し、ユーザーの問い合わせに法律の専門知識の要素を適切に付加したプロンプトを生成することで、先述の「ユーザーに法律知識がないと、そもそも『正しい質問』ができない」という課題を乗り越えることを企図している。
ちなみに一見すると極めてシンプルな仕組みのように見えるRAGだが、実際に実装するとなるとさまざまな最適化技術を組み合わせる必要があり、「現時点ではまだ発展途上の段階にあるのが実情だ」と市橋氏は語る。またLLMを用いたアプリケーションを開発するにあたっては、多くの場合「LangChain」「LlamaIndex」などのフレームワークを使うことが多いが、弁護士ドットコムではあえてフレームワークは使わずに自前で処理を書いて実装しているという。
その理由について市橋氏は「モデルをチューニングしたいときに、ミスマッチなフレームワークの抽象化層があると、かえって最適化の妨げになることがあります。最適化手法も次々と新しいものが登場しており、それらに既存のフレームワークがどれだけ追随していけるかも不透明です。総じて、既存のフレームワークはまだ改善の余地があるというのが私たちの見立てです」と説明する。
生成AIを使ったプロダクト自体にも、まだまだ不確実性が多いと同氏は指摘する。
「どこをどうすれば望ましい回答ができるようになるのか、現時点では明確な答はなく、『いろいろやってみるしかない』というのが実情です。また出力結果が自然言語であるという生成AIの特性上、チューニングの結果の評価もかなりの部分が評価者の主観に委ねられます」
こうした不確実性を乗り越え、AIモデルの品質を引き上げていくには、現時点では「頑張って人間が評価基準を作った上で、大量の人間を動員して評価していくしかない」と同氏は言う。事実、同社では過去の質問・回答データベースの内容を法改正などに合わせて適切にアップデートするために、弁護士による回答内容のチェック作業を愚直に繰り返してきたという。