GPT4Allのローカルドキュメント機能(RAGによる情報検索)を試す
GPT4Allは、ローカル環境で動作するAIチャットツールです。GPT4Allの「LocalDocs」という機能を利用すると、指定したドキュメントを参照した問い合わせが可能になります。本記事では、この機能を設定・試用した結果について解説します。
GPT4Allとは
GPT4Allは、Nomic AIが開発したローカルで大規模言語モデル(LLM)を動かすためのオープンソースのプロジェクトです。公開されているさまざまな言語モデルをダウンロードして、自身のパソコン環境でChatGPTのようなインタフェースで対話することが可能です。
GPT4Allでは、ローカルのドキュメントを参照する検索(RAG)も行えるようなので、この記事では、使い方とその効果の確認を行なってみました。
ドキュメントの指定
LocalDocsを設定
LocalDocsの+Add Collection
をクリックすると、読み込むドキュメントを指定することができます。読み込めるのは、テキストファイル、PDF、マークダウンなどのようです。ローカルドキュメントとして利用したいファイルを、フォルダに格納しておき、そのフォルダを指定することでドキュメントコレクションを設定できます。
Name
の項目はコレクション名を、Folder
にはドキュメントを格納してフォルダを指定し、Create Collection
ボタンをクリックするとローカルドキュメントを設定できます。
実験で設定したドキュメント(NISAのwikipediaページ)
今回は、WikipediaのNISAの項目をテキストファイルとして用意しフォルダに格納し、それを読み込ませるように指定してみした。ドキュメント名はNISAです。
追加すると、LocalDocsのページに以下のように追加されます。
利用方法
チャット画面右上のLocalDocsをクリックすると、左にローカルドキュメント一覧が表示されます。ここから利用するローカルドキュメントを設定できます。今回はNISAというドキュメントを設定したので、右にはNISAが追加されています。NISAの右にあるチェックをクリックすると、NISAのドキュメントが利用されます。
動作確認
実際に、ドキュメントを利用した場合としていない場合でどの程度違うか確認してみました。今回は、LLMもモデルとしてLlama-3-8B
を利用しました。
ドキュメントを利用しない場合
まずは、ローカルドキュメントを利用しない場合です。NISA(少額投資非課税制度)について聞いたのですが、全然違う回答が返ってきました。
「独立行政法人日本安全性・健康研究所」って存在するのかどうかWebで検索してみると、労働安全衛生総合研究所(JNIOSH)というものは存在するみたいですがNISAという略称のものはなさそうでしした。
内容も、それっぽいですが間違っています。今回利用したモデルではNISA
自身を知らないようです。
たまたまですが、ローカルドキュメントの効果を確認するのに都合の良い結果がでました。
旧NISA(National Institute of Safety and Health, 1952-2001)と新NISA(独立行政法人日本安全性・健康研究所、2001-2015)は、日本の国立研究機関であり、職業安全衛生や生活環境に関する調査研究を行っていた組織です。
旧NISAは、1952年に設立され、1970年代以降には、労働安全衛生法に基づく指導・監理業務を開始しました。1990年代からは、健康増進のための研究開発にも力を入れてきました。
一方、新NISAは、2001年から2015年の間にかけて旧NISAを継承し、新たな組織として設立されました。新NISAは、職業安全衛生や生活環境に関する調査研究に加え、健康増進のための研究開発も行いました。
両者共通点として、労働安全衛生や生活環境に関する調査研究を行うことで、日本国民の健康と福祉を向上させることを目指しています。ただし、新NISAは、旧NISAより更に広範囲な分野での活動を展開したため、新しい組織としての特徴を持っています。
実際は、日本語の後ろに英文(英訳)がついていましたがそこはカットしています
ドキュメントを利用した場合
次は、ローカルドキュメントを有効化した場合の回答です。
こちらは、かなり正確な情報が表示されました。また、参照したソースのリンクも表示されるようになっています。
このように、ローカルドキュメントを利用することで、より正しい回答を返すようにすることができました。
旧NISA(一般NISA、つみたてNISA)と新NISA(2024年投資分より)の主な違いは以下の通りです。
- 非課税保有期間:旧NISAでは非課税保有期間が一定期限内であったのに対し、新NISAでは無期限化されました。
- 口座開設期間:旧NISAでは口座開設期間があったのに対し、新NISAでは恒久化されました。
- つみたて投資枠と成長投資枠の併用:新NISAでは2つの枠を併用することが可能になりました。
- 年間投資枠の拡大:新NISAでは年間投資枠が拡大されており、最大360万円(成長投資枠240万円、つみたて投資枠120万円)まで非課税で投資が可能です。
以上のように、新NISAは旧NISAに対して様々な改善点があります。 (Source: NISAのwikiページ) また、日本経済新聞によると黒木瞳が名付け親であるとされています。 (Source: 日本経済新聞)
まとめ
GPT4Allを使うことで、GUI上からドキュメントを設定し、それを利用した問い合わせができること、ドキュメントを使うことでより良い回答が得られることを確認しました。
PythonでRAGを実装する方法もありますが、こちらは手軽なので試してみるには良いかもしれません。