知識投入の基本的な考え方
知識投入の基本的な考え方
知能ドメインに対して「どのような知識を、どのような形で投入するか」は、AIの回答品質を大きく左右する最も重要な工程です。
多くの利用者は「大量の文書を食わせれば賢くなる」と誤解しがちですが、AIの回答精度の向上の鍵は「文書の質」と「構造」に強く依存します。
誤った文書構造や曖昧な本文、ノイズ混入は、そのまま回答品質の低下・誤答・ブレた返答(ハルシネーション)に直結します。InfiniCloud AIは、独自のアーキテクチャでノイズを強力に排除しようとしますが、このアルゴリズムは統計的手法を使うために確率的に有意なだけであり、一般論としてのLLMの教育手法は、InfiniCloud AIにも役立ちます。
まずTutorの心構えとして「知能ドメインの教養の管理を行う役割」を意識し、投入する知識の品質・構造・粒度を適切に設計することが不可欠です。
以下では、LLMに対する知識投入の基本思想、作業工程、品質管理ポイント、試行錯誤方法について、解説します。InfiniCloud AIのデータパイプラインは、かなり自動的に簡略化するものの、これらの一般論はかなり役に立ちます。
InfiniCloud AIが「知識を使って答える仕組み」を理解する
InfiniCloud AIが知能ドメインを選択するとき、次の3段階で回答を作ります。
- RAG(Retrieval)
- 質問内容と近いチャンクを検索し、根拠となる文書を取得
- LLMによる生成(Generation)
- RAG結果を元に文章を組み立てて回答を生成
- 「有意な件数のデータセットが集まった場合」知恵の生成=ファインチューンする
- 知識のパターンを束ね、知恵としてベースモデルに被せられる差分モデルを作成する
初手の段階でInfiniCloud AIはFine Tuneで学習しないので、ベースモデルであるLLMが「学習」したり「賢くなる」訳ではありません。あくまでRAGが見つけた文書(知識)が良いほど結果が良くなるという設計です。
有意な件数のデータセットが集まってくると、ファインチューンしたとき、十分な勾配(回答品質が変わる)ようになります。そのためには、質の良いデータセットを集める必要がでてきます。RAGでできずにファインチューンでできるのは「行動様式」の変化が主です。が、これをイメージするのは難しいので、比喩として人間に例えると、「マニュアルレベルの担当者が何年も続けるうちに技術者の卵になる」ようなイメージとも言えます。別の側面で言うと、(ファインチューンにより)記憶が定着して長期記憶に入り、それを当たり前として扱えるようになったとき、より高度に知恵を働かせることができるとも言えます。
いずれにせよ、データセットにゴミが入るほど、回答にゴミが乗りやすくなるわけです。
Tutorの役割は「知能ドメインの教科書編集者」なので、InfiniCloud AIの知能ドメインに関して、次のような責任を持ちます。
- どの文書が必要かを判断する
- どのフォーマットで、どんな粒度で投入するかを決める
- 曖昧・矛盾・古い情報を見つけて改善する
- RAG結果をチャットでテストし、期待通りに回答されるか検証する
つまりTutorの主な仕事は、
知能ドメイン担当者に渡すマニュアルを編集する仕事
ということになります。
どのように知識投入するべきか?
知識投入は試行錯誤の連続です。
InfiniCloud AIでは、以下のような作業ループが正しい進め方です。
- 知能ドメインに文書を投入する
- まずは候補となる文書(HTML/PDF/Markdown)をインポート
- チャットでテストする
- 文書投入後、すぐにチャットでテストします。
- テスト時にチェックすべきことは、回答が正しいかどうか?だけでなく、間違った回答(ハルシネーションのように見えるもの)の原因が「元文書にないのか?」ということです。
- 回答が想定に対して短すぎる/長すぎる
- システムロールで調整も可能
- 文章の解釈がおかしい
- チャンクがうまく切れず、不適切に長い時におきやすい。文章中のゴミ情報が多くなり、誤った情報を学習する。改行崩れ、誤ったセクション切り出しなど。
- 想定外の回答を返す
- ノイズ文書が紛れている
- 元文章が誤解しやすい曖昧な表現の文章になっている
- 例えばドキュメントなどで、「できること」だけが書いてあり、「できないこと」が書いてないケース。LLMは行間を見て、「出来る可能性」を論じてしまうなど。
できないときは、どこかに「できない」と明示しておくと治る。
- 例えばドキュメントなどで、「できること」だけが書いてあり、「できないこと」が書いてないケース。LLMは行間を見て、「出来る可能性」を論じてしまうなど。
- 正しいが、文章が不自然だったり、トーンが不自然
- 文体の統一はシステムロールで調整も可能。
- 人間が見て「文章になってない文章」を学ぶと、不自然な文章でも「良い」ことになってしまう
- 文書投入後、すぐにチャットでテストします。
- どのチャンクが使われたかを確認する
- インポートされた知識一覧・チャンク内容を開き、回答に使われた部分を確認。
- 回答中のReferenceをみて、元の文章を参照する。
- 関係ない文章が出てきた場合
- ノイズとなる文章を再考する。
- htmlの場合。header/naviタグやclassにnaviなど、Semantic Tagを入れると除外しやすい。
- 章タイトルが意味を持たない
- タイトルを編集する。
- 1チャンクが大きすぎる
- 再構造化して粒度調整する。
- 同じ内容が複数個入っている
- InfiniCloud AIはMHASアルゴリズムで重複除去しているが、自動判定が及ばないケースがある
- ワードサラダがある
- 削除する
- 元文書の編集、または構造を修正する
- 品質を高めるためには、文書の構造改善が必須
- 「注意」「補足」などの見出しをはっきりつける
- 箇条書きを使用して構造化する
- 用語を(なるべく)統一する
- 意味が曖昧な文章を改善する
- LLMは「構造化された文書」を最も正確に扱います。
- 品質を高めるためには、文書の構造改善が必須
- 知識を再投入し、再テストする
- 再インデックス後、チャットで再度テストします。このループを通じて、知能ドメインは徐々に安定し精度が向上します。
Tutorの「成功パターン」
成功を実感しやすいパターンは次の通りです。
- まずHTMLのURLを、少量(10〜20URL程度)でテストする
- 回答のクセを見て、文書の粒度・構造を調整する
- チャンク内容を頻繁に確認し、不要なものを削除する
- FAQ化できる情報はFAQ形式に変換する
- 更新サイクルを定義して最新版のみ扱う
- 必要以上に文書を入れない
つまり、
「たくさん入れるほど賢くなるのではなく、適切な文書を厳選して入れるほど賢くなる」
という思想が成功の鍵です。
最終的な目標
最終的な目標は、知能ドメイン=「高品質な社内サポート担当者」に育てること、です。
知識投入は「技術作業」ではなく「育成作業」と考え、「専門領域に詳しく、回答のブレが少なく、正確性の高い担当者」として機能するように、うまく教育してください。