2022年夏まで2年半にわたって連載していた「AIなんか怖くない!」ですが、最後の数回は、ウクライナ戦争におけるAIをテーマにしていました。まさかウクライナ・ロシア戦争が3年以上続いていて、まだ終わらないでいるなどとは、当時、戦争とAIについて書いた時点では想像もしていませんでした。ともあれ、このたび昨今の状況を踏まえて「AI無しではもはややっていけない!」という連載タイトルで再開することとなりました。どうぞよろしくお願いいたします。

 休載中に、AIについては、人類史上に特筆されるべきかもしれない、とんでもないことが起こりました。2022年11月に、当時は「知る人ぞ知る」だったLLM(大規模言語モデル)のGPT3に人間フィードバック学習などを付加したChatGPT がデビューしたのがきっかけです。LLMが、さまざまなAIの中で、突出して爆速で進化した理由は、学習用の正解データをほぼ自動生成でき、学習データを増やせば増やすほど性能が向上する仕組みをもったからです。

RAGの実現方法、アレンジ法は様々  生成AIブームは、単なる技術進化だけではありません。OpenAI社がGPT3を、ChatGPTという対話botとして公開するにあたって、RLHF(人間フィードバックによる強化学習)という仕組みで対話を通して学習できるようにしたり、プロンプトエンジニアリングやファインチューニングにより各種専用AIとしてカスタマイズできるようにしたり、ネット検索などの拡張機能との融合が進むにつれ、業務の現場で実際に使えるよう、普及の度合いにも加速度が増す勢いです。

 2018年から2019年春にかけて執筆した「AIに勝つ!」という本の中で、いずれLLM(大規模言語モデル;当時の呼称は「機械読解」)のようなAIが人間に代わって大量の情報を読みこなし、対話的に要点を教えてくれるようになる未来像を描き、今日の事態を予言していました。しかし、その私の予想を超えたスピードでLLMおよび関連技術、応用は進展しています。そんな中で、自分は何をすべきか。「人工知能学会誌16巻 1号」(2001年 1月) 特集「『ナレッジマネジメントとその支援技術』にあたって」の中で、往年のナレッジマネジメントブームの立役者、T.ダベンポート博士や野中郁次郎教授と並んでAI支援ナレッジマネジメントの牽引者と扱われただけでなく、当時の私が作った言葉「類似検索」の実体が今日のベクトル・ストレージに対するベクトル検索というRAG(検索拡張生成)の中核技術そのものであったことから、RAGの高精度化に資源とエネルギーを集中させるのは自然な流れでした。

「うちの総務の外線番号、何番だったっけ?」とChatGPTに訊いても答えられるはずはありませんね? 答えられたなら、何らか情報漏洩し、かつ必要以上に自分の作業内容、個人情報等がクラウドのAIに渡ってしまっていることになるでしょう。法人、組織には社外秘、部外秘の情報が溢れています。また、なんらかの職人芸を支える専門知識を表す言葉、自分たちだけが使う用語やアルファベット2,3文字の略語、さらには、一般用語を違う意味で使う符丁みたいな言葉で溢れています。これらをAIが理解し高精度に回答できる仕組みを確立しない限り産業界で広く生成AIが業務フローに本格的に組み込まれることはない(個人のブレスト、壁打ち用にとどまる)、と2023年初頭に確信し、ノーコードで誰でも使えるRAG製品ChatBridを発売しました。

 RAG関連で1万本以上の論文が書かれています。かように、RAGの実現方法、アレンジ法は様々です。中核部分だけをとってもても、一口にベクトル検索といっても、知識の実体をどのようにモデル化して、どのようなベクトル数値化するか千差万別の違いがあります。海外製の分かち書きツール、いわゆるトークナイザでは、日本語の単語、概念の単位を正しくとらえることができず精度が頭打ちになることもあります。あるドキュメントの目次の階層的な構造が知識体系を忠実に表現していることが多いですが、それを適切な粒度(サイズ)に切り取った知識素片(チャンクといわれます)が、知識体系全体の中でどのように位置づけられるかを適切にLLMに教える必要があります。こうした努力をすでに四半世紀前から行ってきている、いわば日本語処理職人の自分がまだまだ世のため人のため貢献できる度合いが大きそうだ。これが、「AI支援ナレッジマネジメント」という「昔の名前で出ています」と表明した理由です。

最大のポイントは「精度(適合率 Precision)」

 では具体的に、どう貢献すべきか。その最大のポイントが「精度(適合率 Precision)」です。世間では、「素のChatGPTでは精度が出ないのでRAGで正しく答えられるようにしましょう!」なる言い方が流布しています。これは厳密には間違いです。ここでいう精度は、検索結果の何%が正解かを問う「適合率 Precision」ではなく、これまで検索にひっかかってこなかったものをどれだけカバーできるようになったかを問う「再現率 Recall(カバレージ)」を意味するからです。

 集合論の「ベン図」を使って描いた「適合率 Precision」「再現率 Recall(カバレージ)」を、往年の法政大学大学院イノベーションマネージメント研究科客員教授時代ならびに同志社大学ビジネススクールゲスト講師(2006-7)時代の講義資料から引用します:

https://prd-cdn-moneytimes.storage.googleapis.com/images/LRmOGlQbDwTpaWiXpGlaMOmbumHJlcKp/d03e6635-3955-471c-91a8-6e8df2e04ad2.jpg" width="858" height="641" loading="lazy" alt=""生成AIによるナレッジマネジメントでは精度(適合率)が肝心です~再現率(カバレージ)と峻別しましょう! "">
(画像=※「評価指標再論:適合率vs再現率」より引用、『Business Journal』より 引用)

 この図を使うと、両者の定義は実にシンプルに説明できます。例えば何かをテーマにした文書群を検索している状況で、社内なら社内の全文書の集合が図中の長方形、すなわち全体部分となります。その中で、神のみぞ知る(?)本当の正解、すなわちそのテーマの文書の集合が「本当の正解A」の円です。検索システム(やAI)が、これが正解でしょ? と出してきたのが「検索システムの出力S」の円です。この2つの円の交わり部分(intersection) が、「正しくヒットしたものH」となります。

「再現率 Recall(カバレージ)」とは、「本当の正解A」のうち何%を検索システムが拾えたかの数字ですので、H/A という割り算をするだけです。まさにカバー率ですね。「適合率 Precision」とは、「検索システムの出力S」のうち何%が正解だったかを示す数字ですので、 H/S という割り算をするだけです。通常ユーザに見えるのはこちらだけであり、「精度」といったら本来こちらのことに他なりません。

 ところが先の「素のChatGPTでは精度が出ないのでRAGで正しく答えられるようにしましょう!」なる言い方でRAGによって門外不出の社内知識をLLMが回答できるようになるというのは、本来の精度、「適合率 Precision」ではありません。新たに社内知識をカバーできるようになったから「再現率」が上がる、ということだけをさしているのです。

 では精度はどうなるか? LLMには、適切に加工された正解データを大量に入れれば入れるほど精度が上がりました。しかしRAGの場合、似たり寄ったりの構成や内容の文書、バージョンが違って新旧、正誤入り混じった文書、もともと社員にとって当たり前の現場知識は省略されて書かれていなかったり日本語も目次構成も不備だらけだったりの文書など、入れれば入れるほど、どんどん精度が下がります。そもそも日本語の分かち書きや単語認定が間違っていたり、章立て、セクション分けに不備あったり、アウトライン無視した手動インデント(左から6つずつ各行に空白入れるなど)やエクセル方眼紙由来のPDFなどRAGシステムには酷なデータがたくさんあります。これらについて地道に数百種類の対策を行っていかないと90%以上の精度など望めないのが実情です(海外製トークナイザ=分かち書きのAPI頼りだと30~40%の精度しか出ないことがあります)。

 上記のベン図の右下のあたりには、再現率を上げたくてシソーラス、いわゆる類義語辞典を使って不用意に言い換えをしてしまうと、(別の文脈では違う意味になってしまう単語も拾われることで)精度1/5と、激しく精度が下がった事実を示しています。類義語に言い換える仕方に巧みに制限を加え、LLMに指示を与えることで(このようなプロ級のプロンプトエンジニアリングは引き続き超有効です。ChatGPTサイトの一部のGPTsが引き続き超有効なのと同様に!)、精度を低下させずに再現率を上げる。このような工夫がRAGの精度向上にとって本質的に重要です。しかし、そのような地道な試みは論文になりにくいので、研究者の多くは斬新なアーキテクチャ、5種に言い換えたら5回LLMを呼ぶRAG Fusion、リランキングなどのアルゴリズムの工夫に精を出しますが、目先を変えてもクリアできない本質的問題は残ります。