はじめに
前回は、本件アプリを紹介したり、その概要について説明させていただきました。
今回は、本件アプリの基本動作原理(=アーキテクチャー)について説明いたします。
どうぞ、お付き合い、よろしくお願いします。
アプリ全体の流れ
①まず「(入力担当)自然言語トランスフォーマー(=LLM)」が、ユーザーメッセージの中から、ユーザーニーズを成す重要な語句を抽出して、それを後続の「RAGシステム」に引き継ぎます。
②次に「RAGシステム」が、自身の管理する「RAGベース(=データベース)」から、
ユーザーメッセージに含まれる重要語句と関連のある「RAGナレッジ」と「RAGルール」を効率的に検索・収集します。
※RAGナレッジ = ある特定の事実に基づく情報・データ。
※RAGルール = RAGナレッジに対して適用される推論規則・推測規則。たとえば「猫が 穴に向かって進み出た」を前提とすると「猫は 穴の中に落ちる」が結論となります。
つまり、RAGルールとは、前提と結論の「組」のことです。
③次に「RAGシステム」から「RAGナレッジ」と「RAGルール」を受け取った「(推論・推測担当)エキスパートシステム」が、「RAGナレッジ」と「RAGルール」を基に知識推論・知識推測を行います
④そして最後に「(推論・推測担当)エキスパートシステム」の実行結果を受け取った「(出力担当)自然言語トランスフォーマー(=LLM)」が、
それを人間に分かりやすい自然言語テキストの形式に変換してユーザーに対して出力・返答します。
アプリ全体の構成
つまり、SUNIE全体としては、基本的には、
「(入力担当)自然言語トランスフォーマー(=LLM)」「RAGシステム」「(推論・推測担当)エキスパートシステム」「(出力担当)自然言語トランスフォーマー(=LLM)」の4者によって構成されます。
アーキテクチャーの理由・根拠
従来は「LLM」に、あらゆる知識・データを詰め込んだ上で、推論・推測までをも担わせていたのですが、確率ベースを原理とする「LLM」には、そもそも推論・推測を行わせるのは無理がある訳です。
ですので、ファクト(=信頼に足るソース)の提供を「RAGシステム」に担わせます。
さらに、それを材料として「エキスパートシステム」に加工を行わせることで、事実ベースの推論・推測が可能となります。
加えて、ルールベースを原理とする「エキスパートシステム」をシステム全体の処理フローに取り入れることで、実行結果に対する「説明性」と「解釈性」を担保できるという訳です。
おわりに
いかがでしたでしょうか?。
まだ、この仕様・設計案は、基本に留めてあるので、詳細はもう少し複雑なのですが、
あまり、公開初期から内容を詰め込みすぎるのもどうかと思いましたし、
いきなり、スタートから全力疾走していると、私自身が疲れてしまうので、
この辺でセーブしておきました(笑)。
また、懲りずに記事を上げたいと思います。
それではまた~。