MLflow 学習補足 RetrievalQAの返答を理解する
以下の記事の補足記事です。
RetrievalQAの返答を理解する
このモデルではデータベースからの検索と言語モデル生成を組み合わせて質問を行います。
どの様に動作するか
- RetrievalQAモデル: このモデルは、最初にデータベースに関連情報を取りに行きます。その後この情報に基づいて回答を生成します。
-
データベース: 今回の例では
Act Establishing Yellowstone National Park
等の歴史的な文献からFAISS
データベースを構築しました。FAISS
は適切なテキストのセクションを見つけるのに使われています。 -
質問処理:
loaded_model.predict([{"query": "What does the document say about trespassers?"}])
を実行して質問をするとまデータベースにtrespassers
という単語が含まれるセクションを探します。
回答が異なる場合があるのはなぜか
-
文脈に合った回答を生成する: 文脈を考慮せずに学習データから回答sルウ
GPT-3.5
などへの直接の質問とは違い、RetrievalQAモデルはデータベース内の特定のドキュメントから派生した回答を返します。 - 正確で適切: 質問されたドキュメントに基づくのでより正確で適切な回答がされます。
- 一般化しない: 一般化や推測は殆ど行われません。RetrievalQAモデルは推測するのではなく、ドキュメントから得られた情報を提供します。
重要なポイント
-
この手法は、MLflow と LangChain が複雑な RAGユースケースをどのように支援するかを示しています。特定の過去のテキストや文書と直接やり取りすることで、汎用的な言語モデルの予測よりも正確な回答が得られる場面において効果を発揮します。
-
このチュートリアルでは、特定のテキストや文書に基づいた応答が求められる場面で、RAG を活用することがいかに有効かを強調しており、検索と生成の強力な組み合わせを紹介しています。
Bridle-Path に関する質問について解説する
RetrievalQAモデルの興味深い機能、特に特定情報の検索と追加の文脈生成の両方を伴うクエリへの対応力を紹介します。
質問と応答を噛み砕く
- 質問: ユーザが "What is a bridle-path and can I use one at Yellowstone?" と質問します
-
応答: モデルは
bridle-path(馬道)
が何かという説明に合わせて、法律に則りYellowstone
でそれをつけるか応答します。
応答の動きを理解する
-
LLMの文脈でドキュメントを統合する
- Yellowstoneの設立法では
bridle-path
に関する応えは直接的に回答されていません。 - モデルが言語理解の能力で
bridle-path
とは何かを考えます - モデルは、道路やブライドルパスの建設に関する法令の内容を、FAISS データベースから取得した文脈と統合します
- Yellowstoneの設立法では
-
強化された文脈の理解
- RetrievalQAモデルは言語モデル間使って、データベースからの直接的な情報と追加の文脈を補間できます
- これによりドキュメントから得られた情報と一般的な情報を混ぜた、質問への包括的な回答ができます
-
なぜこれが着目すべきなのか
- 標準のLLMとは違い、RetrievalQAモデルはトレーニングデータだけを頼りの回答をしません
- 特定の文書情報と広い文脈理解をうまく統合し、背景や細かな意味合いも踏まえた、より深みのある回答を提供します。
重要なポイント
- この例は、MLflow と LangChain が RetrievalQA モデルを通じて洗練された応答メカニズムを実現していることを示しています。モデルは関連する文書情報を取得するだけでなく、自身の言語理解能力を用いて不足している部分を補完します。
- このような応答メカニズムは、特定の文書参照と追加の文脈情報の両方が求められるクエリに対処する際に特に有用であり、実用的な場面における RAG の高度な能力を示しています。
とびきり真剣な(?)質問
気まぐれでばかばかしい質問を取り上げ、それに対してモデルがどのように正確さと少しのユーモアを交えて応答するかを掘り下げていきます。
質問と応答
- 質問: 「バッファローをテーマにしたデイスパを開くために、連邦政府からイエローストーンを購入できますか?」
- 応答: モデルは真面目な口調でこう答えます。「いいえ、バッファローをテーマにしたデイスパを開くために、イエローストーンを連邦政府から購入することはできません。」
モデルの思考プロセスを覗いてみる
-
直接的で冗談が効かない回答
- 質問の冗談めいた雰囲気にも関わらず、モデルは率直にはっきりと回答します。
- これはユーモアを交えた質問に対しても事実をベースにした回答をする能力を示しています。
-
法律の境界を理解する
- 国立公園の法律と規則による神聖さを尊重しているようです。
Yellowstone
等の国の宝を守ることを真剣に捉えているようです。 - モデルは法的知識や一般知識で訓練されているため、冗談めいた質問であっても正確な応答を返すことができます。
- 国立公園の法律と規則による神聖さを尊重しているようです。
-
従来のLLMの応答との対比
- 従来のLLMは、より一般的な回答を返すかもしれません。それに対し、文脈に特化したデータを備えたこのモデルは、国立公園をスパにするという突飛なアイデアを即座に否定します。
学習にユーモアの要素を取り入れる
- このクエリは突飛ではあるものの、どんなに荒唐無稽な質問に対しても文脈に沿った適切な回答を返すモデルの能力を示す、ユーモラスな例となっています。
- 学びは情報的でありながら、同時に楽しさもあるということを思い出させてくれます。この場合、モデルは真顔のコメディアンのように、突飛なビジネス提案に対して、きっぱりとしかしユーモラスに「ダメです」と応答しています。
もう一つの妙な質問への応答
イエローストーンの土地をバッファローをテーマにしたデイスパ用にリースできるかという、もう一つのユーモラスな質問を取り上げます。さて、モデルがどれだけ冷静沈着にこの風変わりな問いに応えるのか、見てみましょう。
質問と応答
- 質問: 「イエローストーン国立公園の来訪者向けに、バッファローをテーマにした小さなデイスパを開くため、連邦政府から小さな区画の土地をリースできますか?」
- 応答: 「いいえ、公園の来訪者向けにバッファローをテーマにした小さなデイスパを開くために、連邦政府から小さな区画の土地をリースすることはできません…」
モデルの応答を辿ってみる
-
事実に基づき、一切ぶれない
- 突飛な質問が続く中でも、モデルは終始冷静そのもの。イエローストーンでの土地リースの制限や本来の目的について、丁寧に説明します。
- さらに応答では、その根拠として法律の第2条を引用し、法的な正確さも加えています。
- 弁護士の忍耐力が試される?
- もしこの質問が本物の弁護士に投げかけられたら…きっと今ごろ頭を抱えているかもしれません!しかしモデルはまったく動じることなく、事実に基づいた回答を淡々と返し続けます。
- これは、どんなに繰り返しや風変わりな質問であっても、冷静さを失わずに対応できるモデルの能力を示しています。
結論として、モデルはバッファローをテーマにしたデイスパの夢にきっぱりと終止符を打ちますが、その姿勢はあくまで丁寧かつ情報に基づいており、どれほど想像力豊かなクエリであってもぶれることなく対応できる力を示しています。
バッファローデイスパの夢に向けたさらなる試み
今回もモデルに想像力あふれる質問を投げかけますが、今度はバッファローをテーマにしたデイスパに加えてホテルの要素も追加しました。この変更の目的は、読み込んだ2つの法律文の曖昧な表現に対して、RAGアプリケーションが微妙な違いを見抜けるかを評価するためです。両方の情報を正しく解釈できるか、応答を見てみましょう!
重要なポイント
- モデルはその情報重視の性質を保ちつつ、法令の規定に基づいてリースに関する点を明確に説明します。
- さらに興味深いことに、このクエリを商取引に関する別の法律にも結び付け、関連する法令を横断的に参照する能力を示します。
- この応答は、ユニークで仮定的なシナリオに対しても、詳細かつ適切な情報を提供できるモデルの力を示しています。
じゃあ何ならできるの?
質問と応答
- 質問: 「公園に行って静かに自然の美しさを楽しむだけなら大丈夫ですか?」
- 応答: 「はい、文脈によれば、この公園は人々の利益と楽しみのために「公共の公園または娯楽の場」として設けられました。ただし、公園は内務長官の専属管理下にあり、公園の保全と管理に関する規則を制定・公布する権限を持っています。したがって、将来にわたってこの公園を守り楽しむためにも、長官が定めるあらゆるルールや規則に従うことが重要です。」
重要なポイント
- この応答は、イエローストーンの自然美は、園内の規則を守れば楽しめることを安心感をもって伝えています。
- これは、現実的でシンプルな質問に対して、モデルが明確で実用的な助言を返す力を示しており、元の法律の文脈を正しく把握し、何が許可されているか(保護区の楽しみ方)を推論できていることを示しています。
RetrievalQAモデルの法的文脈統合能力の評価
RetrievalQAモデルが複数の法的文書から文脈を統合・解釈する高度な能力を示しています。モデルには、異なる情報源を統合して答える必要のあるクエリが与えられています。このテストは特に以下の点においてモデルの優れた性能を示しています:
質問と応答
- 質問: 「イエローストーン国立公園の外でバッファローをテーマにしたデイスパを開業し、競合を排除することはできますか?」
- 応答: 「いいえ、文脈によれば、イエローストーン周辺や米国内のいかなる地域においても、貿易や商業を独占しようとする試みは違法と見なされます。加えて、公園は内務長官の専属管理下にあり、建築目的のリースが認められる場合もありますが、自然資源の破壊や魚類・野生動物の営利目的での搾取を防ぐことが求められています。したがって、イエローストーン国立公園の外でバッファローをテーマにしたデイスパを開業し、競合を排除することは、法律違反となり、内務長官からの制裁を受ける可能性があります。」
- 文脈の統合: モデルは複数の法的文書から関連情報を的確に引き出し、複数の情報源を横断的に扱う能力を示します。
- 法的解釈: 問いに関連する法的意味を読み取り、複雑な法律用語や概念を理解していることがわかります。
- 文書間推論: 多数の文書から最も適切な情報を識別・抽出できることは、複数文書を扱う高度な能力の証です。
この評価は、多様なデータソースに対する深く繊細な理解を要する複雑なクエリにモデルが対応できる可能性を示す好例となっています。
一時ディレク等を削除する
これまでのふざけた質問が溜まってしまった一時ディレクトリは以下のコマンドで綺麗にできます
# Clean up our temporary directory that we created with our FAISS instance
shutil.rmtree(temporary_directory)
結論:MLflowを使ったRAGのをマスターする
このチュートリアルでは、MLflow によって実現・簡素化された RAG(検索拡張生成)アプリケーションの可能性を深く掘り下げました。以下はそのまとめです:
-
RAGアプリ開発の容易さ:
MLflow により、大規模言語モデルと外部データソースの統合がスムーズになり、RAGアプリの開発が効率化されました。ドキュメントの取得・処理・FAISSへの埋め込みまで、一連の流れを MLflow 上で実現できました。 -
高度なクエリ処理:
LangChain の RAG モデルは、複数の文書から文脈を引き出し、情報に富んだ正確な応答を行いました。これにより、マルチソース統合が求められるクエリに対する RAG モデルの実力が確認できました。 -
MLflowの運用面での強み:
実験の記録、成果物の管理、モデルのデプロイが一貫して行える MLflow は、複雑なモデル運用を支える欠かせない存在です。 -
実用性の高い応答例:
ユーモアを交えたクエリを通じて、RAG モデルの実用性が示されました。法的な解釈や仮定のシナリオにおいても、文脈に沿った適切な回答が得られました。 -
RAG × MLflow の未来:
RAG 技術の進化と MLflow の管理機能を組み合わせることで、高度なNLPアプリケーションの開発と運用がより身近で効率的になります。
このチュートリアルを通じて、RAG アプリの構築と運用に関する知識を得ただけでなく、MLflow によってその可能性がどこまで広がるかも実感できました。今後の高度なNLP開発において、MLflowは強力な味方となるでしょう。
Discussion