回答品質を制御する
InfiniCloud AIの回答を制御する
InfiniCloud AIの回答制御は、ざっくり、次のように考えるとよいでしょう。
強化したい?
抑制したい?} B --> |抑制したい|C[システムロールのチューニング] B --> |強化したい|D{回答の
知識を増やしたい
思考パターンを変えたい} D --> |知識を増やす|E[RAG:投入知識を増やす] D --> |思考パターンを変える|F[LoRA:思考パターン・回答スタイルを与える]
抑制したい
回答の仕方や、回答のルールを抑制したい場合は、システムロールがもっとも強く効きます。
回答するガイドラインや、回答してはいけないことなどはここに列挙しておくのが良いでしょう。
例
## 制約 - 参考リンクを案内する場合は、インポート済みの知識(URL)以外は提示しないでください。与えられてないURLは出力しないようにして下さい。 - 参考URLは文末に「詳細は[こちら](URL)をご確認ください」という形式で、必ずMarkdownのハイパーリンク形式で記載してください。 - InfiniCloudのサービスに関係する内容のみ回答できます。 - 絵文字は使わないでください。 - 質問が不明確な場合は推測せず、回答のために必要な情報をユーザーに聞いて下さい。 - ユーザーが利用する言語に合わせて、言語を選んで回答してください。(例:日本語→日本語。English →English)
などなど。
知識を増やす(RAG)
役割として必要な製品知識や、ノウハウなどは、知識の投入から指定することによって与えることができます。
効果が高いのはドキュメント構造が明確なHTML(hタグ、sectionタグ、mainタグ、articleタグなどがきちんと作られたもの)形式です。これはドキュメント構造というメタ情報が保存されているためです。同じ理由で、Markdown形式のファイル投入も有意に働きます。
Word/Powerpoint等のデータの場合、スタイルで章(Head)、節(section)などが明確に指定されていた場合、可能な限り役立てようとします。このとき、単なる大きな文字など「見た目」だけ違うものは、メタ情報として扱うことができないため、学習データとしては不利です。
PDFの場合、InDesignなどで、ドキュメント構造をきちんとスタイルで作っていた場合は効果が現れますが、これらの情報がデータとして何も残らない変換(単なる大きな文字になっただけ)の場合は、学習データとしては不利に働きます。
思考パターン・回答スタイルを変える(LoRA)
ここでいう「思考パターン・回答スタイル」とは、
- どの情報を優先して思い出すか
- どんな口調・粒度で説明するか
- どのようなステップで考え、回答を組み立てるか
といった、回答の「ふるまい」そのものを指します。
RAGが「必要になったら本棚から資料を取り出して読む」仕組みだとすると、LoRAは「何度も研修して、その内容や考え方を頭の中に叩き込む」イメージです。
- RAG
- 毎回、外部のドキュメントから必要な情報を検索してきます。
- 本棚に資料が増えやすく、小さい変更にも強い一方で、1回の回答で参照できる量はコンテキスト長に制限されます。
- LoRA
- 質問と回答のペア(Q&A)などを学習させることで、モデルの内部に「知識+考え方」を埋め込みます。
- その結果、
- 同じような質問には、毎回よく似た方針・フォーマットで回答する。
- 手順や注意事項を「反射的に」出してくれる
- 社内用語や言い回し、トーンが揃いやすいといった効果が現れます。
RAGとの違いをざっくりまとめると、次のようになります。
- LoRAは、知識そのものだけでなく「様式(知恵・ふるまい)」も学びます。
- モデルの重みとして埋め込まれるため、1 回の回答で扱える知識量は、RAGのコンテキストよりも広くなりえます。
- その代わり、ある程度まとまった量の学習データが必要になります。
- また、LoRAで埋め込んだ知識は、人間の長期記憶に近く、「だいたいこうだったはず」という形で保持されるため、引き出す知識は曖昧になりがちです。(この部分、コンピュータがやることなので完全を期待するかもしれませんが、人間のように曖昧になります)。
また、InfiniCloud AIには学習用データセットを作るために AutoQAという機能があり、RAG用(知識の投入)に用意した元のドキュメントから、LLMが自動的に学ぶべき内容をQ&A形式でまとめ、自己学習をすることができます。この機能は、HTMLやMarkdown以外の、ドキュメント構造が曖昧な資料であっても、LoRA用のデータセットとして学習していきます。
まとめると、
- 「まずは素早く知識を使いたい」 → RAGでドキュメントを投入する
- 「頻出パターンや社内流儀を、反射的に・一貫して出したい」 → LoRAで思考パターン・回答スタイルを学習させる
という使い分けをイメージしていただくとよいでしょう。
変更したい
ベースのLLMを既に覚えていることを「変更をしたい」というのは、実は難しい処理です。
たとえば、AI料理人があったとして、LLM はすでに「基礎的なレシピ」を大量に覚え、どういったものが「美味しい」か、染みついている(LLMのパラメタに覚えている)としましょう。
RAGは新たなレシピを本から検索して、応用することができます。
LoRAでできることは、新たな料理のレシピを覚え生み出すことです。いくつもの料理のパターンレシピを覚えると、共通した事柄を見つけ出し、「こういったものが新しい美味しい味だ!」と覚え始めます。
LoRA は料理人に「新しい味付けの癖を覚えさせる研修」にすぎず、料理人の基礎的な味覚そのもの(塩の味・砂糖の味)を変えることはできません。ただ、味覚そのものは変えられませんが、味付けの癖を変えることはできます。
一方、システムプロンプトで、作っていい料理/ダメな料理のルールを決めることはできます。
したがって、
- システムプロンプトでルールを決める
- RAG で根拠資料を与える
- LoRA で望ましい傾向・癖を強める
という“複合技術”を組み合わせて、ようやくベースモデルの回答傾向を変えられるイメージを持っておくと良いでしょう。