材料開発でLLMを活用する場合において、どれほどRAGが重要なのか? - LLaMPに基づく事例紹介
はじめに
こんにちは。株式会社QunaSys CRSチームの大西です。
今回は、弊社CRSチームが気になった論文の内容を紹介しながら、化学系出身である大西目線で、材料開発におけるLLM活用についてまとめていきたいと考えています。
読者のみなさまは、材料開発や化学分野の研究で、ChatGPTをはじめとするLLM(大規模言語モデル)を活用されたこと・活用しようと考えていたことはありますか?LLMは、もっともらしいように間違った内容を出力したり、専門分野における質問をするとイマイチな出力しかできなかったり…そのような印象をお持ちではないでしょうか?
しかし、LLMの急速な進化と将来の展望を考えると、これらのツールの活用に大きな期待を寄せる方も多いでしょうし、実際にLLMを使いながら実装を検討している方も多いでしょう。
今回の記事では、材料開発でLLMをうまく使うために直面する課題(間違った情報を真実みたいに提示するハルシネーションや、特定の分野の知識をLLMに学習させるファインチューニングなど)に焦点を当てます。そして、その具体的な内容や解決手段であるRAGについて、論文で議論されている内容に基づきながらまとめていきます。
今回も是非最後までご覧ください。
今回取り上げる論文 - "LLaMP: Large Language Model Made Powerful for High-fidelity Materials Knowledge Retrieval and Distillation"
今回は、arXiv上で公開されている"LLaMP: Large Language Model Made Powerful for High-fidelity Materials Knowledge Retrieval and Distillation (arXiv:2401.17244)"の内容を紹介していきます。
Abstract: ハルシネーションに対するRAGの有効性
Abstractの日本語訳は次のようになっています。
LLaMPは、RAGを用いることでドメイン固有の文献やデータによるファインチューニングを避けながら、バニラGPT-3.5(※1)に対して優れた生成を行い、固体に関するデータを高い精度で予測できたそうです。
LLMの欠点であったハルシネーションを、RAGを用いることでかなり強力に抑えることができたようです。
より詳細な内容について、引き続き見ていきましょう。
(※1: バニラGPT-3.5とは、一切のチューニングを施していない、オリジナル状態のGPT-3.5のことを意味します。以降は、すべてGPT-3.5はこのバニラGPT-3.5のことを指しています。)
Introduction: ハルシネーションとRAGについて
ハルシネーションとは
LLMが陥りがりなハルシネーション(Hallucination: 幻覚)について、以下のように説明されています。
ハルシネーションとは、LLMが信頼性の無いデタラメな情報を、自信満々にさも本当にそうであるかのように出力してしまう現象を指しています。この現象は、LLMが訓練データに含まれていないトピックに関する最新知識を欠いているために起きるようです。
次に、LLMのハルシネーション回避における問題について、論文では以下のように言及しています。
まとめると、LLMのハルシネーションを回避すべく行うファインチューニングには、以下のような問題を抱えていると論文で言及しています。
学習を重ねていくにつれて、学習してきた内容にアクセスすることが困難になる(スケーラビリティやメモリ容量の制約を受ける)
事前学習に含まれない最新知識やデータを認識できない
上記2点の困難を解決するために適宜プロンプトメッセージで学習させることは効果的である一方、LLMの汎用性や使いやすさに悪影響を与える(逐一プロンプトメッセージでチューニングを行うのは相当な手間がかる)
このように、専門的で常に最新の情報の吸収を求められるような材料開発の目的でLLMを活用するためには、ハルシネーションを回避しつつ、前述のようなファインチューニングよりも効率的な手法でLLMに学習させる方法が必要なようです。この課題を解決すべく、ファインチューニングなしでLLMに専門的な処理をできるようにさせることができるものとして、RAGがというものが存在します。
RAGとは
RAG(Retrieval-augmented Generation)とは、以下のようなものとして知られています。
RAGの詳細については、以前に弊社山口がnoteで記事に出していますので、是非こちらの記事もご覧ください
今回紹介している論文では、ハルシネーションを回避するより効率的な手法としてRAGを用いて、LLaMPを実装したと述べています。
このように、高品質な材料データに基づいたRAGを用いることで、ハルシネーションを防ぎ、かつファインチューニングの困難性を克服したと述べています。その結果、LLaMPは結晶構造等の高次な材料データを幅広く取得でき、高い精度の出力を行えるようになっているとのことです。
具体的には、LLaMPのRAGとしてMaterials Project(MP)という結晶材料データベースを参照しているとのことです。
次は、RAGを有するLLaMPの出力について、GPT-3.5の出力と比較している具体的な事例を見ていきましょう。
Experiment: RAG有りLLaMPの強みと、RAG無しGPT-3.5の弱み
物性値の生成における精度
上図のa, b, c, dそれぞれにおいて、LLaMP(青)とGPT-3.5(緑)の出力結果を比較しています。a, b, c, dは、それぞれ下記のような物性値での結果を示しています。
a. 体積弾性率 K
b. 生成エネルギー ΔHf
c. バンドギャップ Eg (半導体に用いられる普遍的なバルク結晶)
d. バンドギャップ Eg (多元素(三元または四元)の材料)
ちなみに、上図dの"✕"マークは、GPT-3.5が値を生成できなかったことを意味しています。
これらのLLaMPとGPT-3.5の出力値の平均絶対パーセント誤差(MAPE)は、以下の表でまとめられています。
LLaMPとGPT-3.5の結果を比較すると、cの普遍的なバルク結晶のバンドギャップ Eg が最も誤差が小さいことが分かります(MAPE 5.21%)。
一方で、aの体積弾性率 Kの誤差は小さくなく(MAPE 21.65%)、bの生成エネルギーΔHfは誤差が非常に大きく(MAPE 1103.54%)、cの多元素材料のバンドギャップに至ってはGPT-3.5が予測することができずNA(Not Available: 測定不可)になっています。
このような結果となった原因について、論文では以下のように述べています。
つまり、長年にわたる研究で半導体バンドギャップに関する文献が豊富な情報として蓄積されているため、これらをもとにGPT-3.5でもこれらの一般的な半導体のバンドギャップを小さな誤差で予測できることが示されています。
しかし、情報が少ない、あるいはほとんど存在しない特定の物性値(体積弾性率や多元素材料のバンドギャップなど)に関しては、GPT-3.5は予測を行うことができないことが示唆されています。さらに、生成エネルギーの予測でも、GPT-3.5が「eV/atom」ではなく「kJ/mol」を基準とするデータに偏っているため、値を単位不一致により過小評価していることも指摘されています。
その一方で、GPT-3.5が文献で一般的でないために生成できなかった多元素材料のバンドギャップを、LLaMPはRAGを利用してこれらの課題を克服し、Materials Projectのデータベースを基に正確なデータを生成することに成功しているとのことです。
このように、文献が充実している領域では、GPT-3.5のみでも満足のいく出力が得られることが示されました。一方で、そのような文献が不足している場合、RAGを組み込まないGPT-3.5だけでは望むレベルの応答が期待できないことが示唆されています。
同時に、RAGを有するLLaMPは、GPT-3.5ができなかった出力も難なくこなせることも示唆されています。
RAGを用いることの有効性について、読者のみなさまもご体感いただけましたか?次はLLMによる結晶構造データの生成に関する例を挙げていきます。
結晶構造データの生成と編集における精度
次の事例として、 ダイヤモンド型構造のSi結晶の四面体サイトにLiを入れた結晶構造を生成するように指示したときの、LLaMPとGPT-3.5の出力結果の違いの比較を挙げます。
論文では、以下のように記述されています。
つまり、GPT-3.5とLLaMPの出力結果を比較すると、両者とも指示通り四面体サイトにLi原子を挿入した結晶構造を生成できたところまでは一緒だったようです。しかし、以下の点で生成した結晶構造に違いがあったようです。
GPT-3.5: 四面体サイトにLiを挿入した結果、結晶格子は大きく歪み、Si-Si結合長とSi-Si-Si角度は基準値から著しく逸脱した、不安定なSi-Li結晶構造を生成。
LLaMP: 四面体サイトにLiを挿入した結果、RAGを構成するMaterials Project(MP)のデータベースにおける慣習に従い、自動でSi原子を正確に加えることで、元の格子定数を維持したままSi-Li結晶構造を生成。
このように、GPT-3.5とは違い、LLaMPは指示に従いながら結合長や結合角に歪のない結晶構造の生成に成功したと論文に述べられています。
GPT-3.5は歪な形の結晶構造を生成しましたが、前項の多元素材料のバンドギャップを生成できなかったことと同様に、学習データに含まれない新しいタイプの問題に直面した時、GPT-3.5といったバニラLLMの性能が大幅に下がる傾向があるようです。
しかし、高品質なデータベースに基づくRAGを有するLLaMPの生成性能の高さには驚かされます。論文にもあるように、適宜ファインチューニングすればバニラGPT-3.5であってもいくらかの修正は効くと考えられます。とはいえ、やはりRAGのパワーと汎用性の高さはファインチューニングに勝るとも劣らないといった感触です。
最後に、LLMによる結晶合成手順の抽出と要約の例を見ていきましょう。
実験論文からの結晶合成手順の抽出と要約における精度
論文では、GPT-3.5とLLaMPに対して、YMnO3とLiFePO4の結晶を合成するための手順を生成するように指示したようです。
具体的には以下のように記述されています。
次に、実際の論文内で該当する表について、まずは順番に表B3.9(YMnO3の合成手順)を以下に示します。
LLaMPは(表内Answerの左側)、実際に存在するYMnO3の実験論文を自らpick upしてDOIで出力しつつ(赤色下線部)、その実験論文に記載されている合成手順を抽出し要約して出力しています(赤色下矢印部)。
一方、GPT-3.5は(表内Answerの右側)、合成手順に不要なリチウム化合物(Li2CO3およびLiOH)を出力してしまっています(明紫色マーカー部)。さらに、加熱温度、持続時間、冷却速度など、特定の合成方法に関する詳細な情報について不確実な出力が見られます。
例えば、GPT-3.5の場合、
と出力していますが、これは実験的に再現性の無い一般的な情報であり、YMnO3を合成する場合の特定かつ詳細な情報ではないですよね。
対するLLaMPは、合成手順の4番目に、
と出力しており、実際の実験論文にから抽出した内容であることもありますが、実験的に再現性のある出力になっていると思います。
既知の合成手順を出力するにも、RAGの有るLLaMPではこなせても、RAGの無いGPT-3.5では厳しいようです。
次に、表B3.10(LiFePO4の合成手順)を見ていきましょう。
本論文で記載されているように、GPT-3.5がLiFePO4の合成手順として参照した論文(赤色枠内)には、LiFePO4の合成手順の記載がありません。筆者もAbstractを確認しましたが、Li(Ni1/2Mn3/2)O4がメインの論文でした(有料のため、全文は確認できず)。
一見すると、GPT-3.5はプロンプト通りに詳細な合成手順を出力しているように感じますが、実際には参照した論文に書かれていないことを、さも本当であるかのように出力しているだけであって、まさにGPT-3.5が幻覚(ハルシネーション)に陥っている様子を示しています。
RAG無しのGPT-3.5では、いろいろな材料開発における用途で活用していくことは相当に厳しいですね。
一方で、RAGが有るLLaMPはかなり強力なツールになると感じられますね。
Conclusion
論文紹介の最後として、Conclusionを見ながら内容振り返っていきましょう。
RAGを有するLLaMPは、物性値や結晶構造生成の事例を通じて、材料科学における高い推論能力を見せてくれました。加えて、この高い推論能力が一切のファインチューニングを要さずに実現していたことに、十分な実用性を感じることができました。
筆者らはLLaMPを最終的にデータ駆動型の実験を指示できるかどうかに関心があるようです。よりLLM自身や活用するユーザーの成熟度が上がっていけば、LLMが実験を主導する未来というものも有り得るかもしれませんね。
最後に
この記事では、LLaMPの研究論文を通じて、LLMにRAGを適用することの有効性と、材料開発における生成精度を探求しました。材料開発でLLMを有効に使うためには、専門知識やデータをモデルに学習させ、適切にチューニングする必要があるということが明確にお分かりいただけたと思います。また、そのようなチューニング作業を手軽に行えるRAGという枠組みが、いかに強力であるかについても感じ取っていただけたと思います。
今回のように、材料開発に関する記事をこれからもアップしていく予定です。今後も引き続き、よろしくお願いします。