見出し画像

材料開発で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の日本語訳は次のようになっています。

大規模言語モデル(LLM)の幻覚を減らすことは、再現性が重要な科学分野での使用にとって不可欠です。しかし、LLMは本質的に長期記憶を欠いており、ドメイン固有の文献やデータに対してファインチューニングすることは、非自明で、場当たり的で、避けられないバイアスが伴う作業となります。ここでは、LLaMP、Materials Project (MP)上の計算および実験データと動的に相互作用する複数のデータ認識型推論・行動(ReAct)エージェントからなるマルチモーダル取得拡張生成(RAG)フレームワークを紹介します。ファインチューニングなしで、LLaMPは材料科学の概念のさまざまなモダリティを理解し、統合し、関連するデータストアをリアルタイムで取得し、高次データ(結晶構造や弾性テンソルなど)を処理し、固体合成のための複数ステップ手順を要約する能力を示します。私たちは、LLaMPがGPT-3.5の本質的知識の予測を効果的にシフトさせたり、誤りを修正したりすることを示します。これは、GPT-3.5が頻繁に文書化されたバンドギャップに対する5.21%のMAPEと、混合データソースから派生していると思われる形成エネルギーに対する著しい1103.54%のMAPEに対抗します。さらに、LLaMPはダイヤモンド立方シリコン構造における幻覚された体積歪みを66.3%から0に大幅に減少させます。提案されたフレームワークは、材料情報学を探索する直感的でほぼ幻覚のないアプローチを提供し、他の言語モデルの知識蒸留とファインチューニングのための道を開きます。私たちは、このフレームワークを科学的仮説のための貴重なコンポーネントであり、複数のLLMエージェントがロボティクスと通信し、協力して、ハードコードされた人間の論理や介入なしに材料合成と化学反応を推進する未来の自律実験室のための基盤として想像しています。

arXiv:2401.17244

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は幻覚に陥りやすく、高い自信を持って誤解を招くか完全に偽の情報を提供します(Bang et al., 2023)。この問題は、ユーザーがチャットボットや他のAIシステムに正確なガイダンスを提供することに依存している知識集約型のタスクにとって特に懸念されます(Lewis et al., 2020)。最近の出来事は、LLMがしばしばその訓練データの範囲外のトピックに関する最新の事実知識を欠いていることを強調し、信頼できる外部ソースに対して厳格な検証が必要であることを示しています(Mallen et al., 2023)。

arXiv:2401.17244

ハルシネーションとは、LLMが信頼性の無いデタラメな情報を、自信満々にさも本当にそうであるかのように出力してしまう現象を指しています。この現象は、LLMが訓練データに含まれていないトピックに関する最新知識を欠いているために起きるようです。

次に、LLMのハルシネーション回避における問題について、論文では以下のように言及しています。

ファインチューニングによりLLMにドメイン固有の知識をある程度エンコードできますが、スケーラビリティと本質的なメモリ容量の制限により制約を受けます。学習が進むにつれてトレーニングされた知識を長期的に保持することが難しく、事前学習以降の最新のイベントやデータを認識することもできません。特注のプロンプトメッセージは効果的ですが、汎用性を損ない、LLMの全体的なパワーと柔軟性を制限します。したがって、より賢明なアプローチは、LLMに外部メモリストレージと知識データベースを装備し、アクセス可能なデータと事実情報に対するフューショット適応を介してホリスティックな応答を生成できるようにすることです(Lewis et al.、2020)。

arXiv:2401.17244

まとめると、LLMのハルシネーションを回避すべく行うファインチューニングには、以下のような問題を抱えていると論文で言及しています。

  • 学習を重ねていくにつれて、学習してきた内容にアクセスすることが困難になる(スケーラビリティやメモリ容量の制約を受ける)

  • 事前学習に含まれない最新知識やデータを認識できない

  • 上記2点の困難を解決するために適宜プロンプトメッセージで学習させることは効果的である一方、LLMの汎用性や使いやすさに悪影響を与える(逐一プロンプトメッセージでチューニングを行うのは相当な手間がかる)

このように、専門的で常に最新の情報の吸収を求められるような材料開発の目的でLLMを活用するためには、ハルシネーションを回避しつつ、前述のようなファインチューニングよりも効率的な手法でLLMに学習させる方法が必要なようです。この課題を解決すべく、ファインチューニングなしでLLMに専門的な処理をできるようにさせることができるものとして、RAGがというものが存在します。

RAGとは

RAG(Retrieval-augmented Generation)とは、以下のようなものとして知られています。

RAGはRetrieval-Augmented Generation の略で、簡単にいうと

質問に対して与えられたドキュメントやDBから関連しそうなものを検索(Retreive)して、その内容から回答を生成(Generate)する」仕組みのことを言います。

QunaSys note記事 "今からでもRAG入門 ~ Hello, RAG ~"より引用

RAGの詳細については、以前に弊社山口がnoteで記事に出していますので、是非こちらの記事もご覧ください

今回紹介している論文では、ハルシネーションを回避するより効率的な手法としてRAGを用いて、LLaMPを実装したと述べています。

この研究では、LangChain(Lewis et al., 2020; Chase, 2022)を使用してLLMをMaterials Project(MP)APIエンドポイント複数と接続するマルチモーダル取得拡張生成(RAG)フレームワークLLaMPを実装します。このフレームワークは、LLMの幻覚に対する保護措置として機能し、量子力学的第一原理計算からの計算データや専門家がキュレーションした材料合成レシピ(Kononova et al., 2019)など、様々なソースから得られた高忠実度材料情報学に基づいてそれらを根拠づけます。複数の推論・行動(ReAct)エージェント(Yao et al., 2023)の階層的計画を通じて、LLaMPがテンソルや結晶構造などの高次材料データを正確に取得するだけでなく、複雑な知識集約型の推論と操作に異なるモダリティを組み合わせることを示します。さらに、スカラー材料特性と3D結晶構造におけるLLMの固有知識とMPデータの逸脱を定量化します。

arXiv:2401.17244

このように、高品質な材料データに基づいたRAGを用いることで、ハルシネーションを防ぎ、かつファインチューニングの困難性を克服したと述べています。その結果、LLaMPは結晶構造等の高次な材料データを幅広く取得でき、高い精度の出力を行えるようになっているとのことです。
具体的には、LLaMPのRAGとしてMaterials Project(MP)という結晶材料データベースを参照しているとのことです。

次は、RAGを有するLLaMPの出力について、GPT-3.5の出力と比較している具体的な事例を見ていきましょう。

Experiment: RAG有りLLaMPの強みと、RAG無しGPT-3.5の弱み

物性値の生成における精度


arXiv:2401.17244

上図の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)は、以下の表でまとめられています。

arXiv:2401.17244

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: 測定不可)になっています。

このような結果となった原因について、論文では以下のように述べています。

材料情報学アプリケーションにおけるRAGの重要な役割を強調するために、バニラGPT-3.5(RAGなし)とLLaMP(RAGあり)をスカラー材料特性に関連するクエリでテストしました。図3は、選択された材料の体積弾性率、形成エネルギー、バンドギャップに関してLLaMPとGPT-3.5の反応を示しています。注目すべきは、GPT-3.5が一般的な半導体のバンドギャップについて驚くほど正確な反応を示す一方で、一般的な化合物の形成エネルギーや特定の遷移金属の体積弾性率を予測する際には幻覚を起こしやすいという点です(図3、表1)。これは、電子デバイス用のこれらの材料への強いかつ持続的な関心のため、何十年にもわたって研究され報告されてきた、実験的および理論的な半導体バンドギャップに関する広範な文献コーパスに起因する可能性があります。対照的に、材料の信頼性のある機械的テストはしばしば少なく、テキストマイニングを通じて簡単に検索することはできません。
追加のプロンプトなしでは、言語モデルはドメイン知識の微妙な点を見落とし、頻繁に現れ、アクセスしやすい誤解を招くデータに影響される可能性がある固有の知識に過信を示すことがあります。これは一般に「テールナレッジ問題」と呼ばれています(Kandpal et al., 2023; Liu et al., 2023)。これを示すために、私たちはLLaMPとGPT-3.5に、文献で一般的ではない10種類の多元素材料のバンドギャップについて問い合わせました。図3dと表B3.8に示されているように、GPT-3.5は問い合わせられた多元素材料のバンドギャップに関する固有の知識を欠いており、予測を行うことができませんでした。一方、LLaMPはデータを正確に取得するだけでなく、複数のポリモルフが存在する場合に安定した形態のバンドギャップを特定することもできました。さらに、GPT-3.5は形成エネルギーを大幅に過小評価しています。これは、そのトレーニングコーパスが結晶データよりも分子データに偏っているためかもしれません。これは、GPT-3.5の回答で分子化学コミュニティでより一般的な単位である「kJ/mol」が使用されていることから示唆されます。

arXiv:2401.17244

つまり、長年にわたる研究で半導体バンドギャップに関する文献が豊富な情報として蓄積されているため、これらをもとに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の出力結果の違いの比較を挙げます。

論文では、以下のように記述されています。

テキストでエンコードされた原子情報に対してファインチューニングされたLLMは、原子の位置と電荷の制約の下で安定した結晶を生成する能力を示しています(Gruver et al., 2023)。この文脈で、以前の作業でファインチューニングやカスタマイズされたプロンプトメッセージを使用せずに、LLaMPとGPT-3.5の結晶生成能力を検討し比較します。図4は、ダイヤモンド立方シリコン構造の四面体サイトにリチウム原子を1つ挿入するように指示されたLLaMPとバニラGPT-3.5によって生成された構造を示しています(表B3.11)。注目すべきは、LLaMPとGPT-3.5の両方が追加のLi原子を分数座標(0.5, 0.5, 0.5)に配置している点ですしかし、LLaMPによって取得されたSi構造はMPの慣習に従い、二つのSi基底を(0.125, 0.125, 0.125)と(0.875, 0.875, 0.875)に配置しています。これにより、挿入されたLi原子は四面体間隙ではなく六角間隙となります。
GPT-3.5は、「幸運にも選ばれた」Si基底(0, 0, 0)と(0.25, 0.25, 0.25)に基づいてLi原子を四面体サイトに配置しますが、その結果生じるセルの体積と形状は大きく歪み、Si-Si結合長とSi-Si-Si角度は基準値から著しく逸脱し、原子情報に対するLLMの固有のエンコーディングの限界と、結晶構造のゼロショット生成に関連する課題を浮き彫りにします。
対照的に、LLaMPによって取得されたMP構造は、堅固な事前情報として機能し、生成された構造の格子パラメータを正しい値に固定します。ファインチューニングキャンペーンが素朴な生成のエラーをある程度修正できると主張することは可能ですが、意味のある応用では通常、高品質で正確な値が必要であり、ターゲットの組成と構造が分布外にある場合には、バニラLLMの性能が急激に低下することが明らかになります。これは、図3dにおける多元素材料のバンドギャップに対する固有の知識の欠如によって例示されています。

arXiv:2401.17244
arXiv:2401.17244

つまり、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の結晶を合成するための手順を生成するように指示したようです。
具体的には以下のように記述されています。

MP合成エンドポイントによって強化されたLLaMPは、実際の実験論文に基づいた合成レシピを抽出し、関連するデジタルオブジェクト識別子(DOI)を含む詳細な手順を段階的に要約することができます(表B3.9およびB3.10の例クエリを参照)。一方、GPT-3.5は表B3.9でYMnO3の合成手順を正確で詳細に提供していますが、これは2つの一般的な酸化物(Y2O3およびMnO2)を前駆体として、可能な反応経路を推測しています。しかし、関連しないリチウム化合物(Li2CO3およびLiOH)をレシピに取り込み、メタセシス反応(Li et al., 2015; Todd et al., 2021)が高温焼結(これは固体状態の拡散に依存する)よりも適用エネルギーが少なく済むという事実を見落としています(Maximenko & Olevsky, 2004)バニラGPT-3.5はまた、加熱温度、持続時間、冷却速度など、特定の合成の詳細に関して不確実性を示しています。

LiFePO4の例を考慮してください(表B3.10に提示)。明示的な指示が提供されています。「詳細な手順と参照を提供してください」。GPT-3.5は求められた手順と参照の両方を提供し、参照は実際の論文に関連付けられていますが、その論文自体にはLiFePO4の合成手順に関する情報が含まれていません。表B3.10にリストされている手順は、事前学習コーパスから完全に幻覚されたものです。

arXiv:2401.17244

次に、実際の論文内で該当する表について、まずは順番に表B3.9(YMnO3の合成手順)を以下に示します。

arXiv:2401.17244

LLaMPは(表内Answerの左側)、実際に存在するYMnO3の実験論文を自らpick upしてDOIで出力しつつ(赤色下線部)、その実験論文に記載されている合成手順を抽出し要約して出力しています(赤色下矢印部)。

一方、GPT-3.5は(表内Answerの右側)、合成手順に不要なリチウム化合物(Li2CO3およびLiOH)を出力してしまっています(明紫色マーカー部)。さらに、加熱温度、持続時間、冷却速度など、特定の合成方法に関する詳細な情報について不確実な出力が見られます。

例えば、GPT-3.5の場合、

特定の温度と加熱速度は、正確な合成条件に依存しますが、一般的な範囲は800-1100°Cです。(青色下線部)

arXiv:2401.17244

と出力していますが、これは実験的に再現性の無い一般的な情報であり、YMnO3を合成する場合の特定かつ詳細な情報ではないですよね。

対するLLaMPは、合成手順の4番目に、

4. 最終的に、予め焼成された混合物を大気雰囲気の中で700°Cから930°Cの温度範囲で10時間から18時間加熱してYMnO3を形成します。

arXiv:2401.17244

と出力しており、実際の実験論文にから抽出した内容であることもありますが、実験的に再現性のある出力になっていると思います。

既知の合成手順を出力するにも、RAGの有るLLaMPではこなせても、RAGの無いGPT-3.5では厳しいようです。

次に、表B3.10(LiFePO4の合成手順)を見ていきましょう。

arXiv:2401.17244

本論文で記載されているように、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とReActに基づく階層的エージェントフレームワークであるLLaMPを提示します。これは、数発の一般化を通じて材料情報学を抽出し、操作するためのものです。高忠実度情報に基づいて思考と行動を定めることで、LLaMPはさまざまな材料特性のモダリティを統合し、割り当てられたタスクを達成するための論理的推論を行う能力を示しますこれは、ファインチューニングの必要なしに実現されます本質的に、提案されたLangChainフレームワークは、理論計算、実験データ、そして実世界の実験室を含む複数のデータソースへの適用性を拡大する可能性を持っています。これは、データ取得とロボット制御のための追加のアシスタントエージェントを組み込むことによって実現されます。LLaMPは、知識を認識するエージェントとして機能し、ユーザーが複雑な材料情報学をナビゲートし、操作できるようにします。新しいツールが続々と登場する中で、このフレームワークが科学的仮説を効果的に促進し、データ駆動型の実験を指導できるかどうかをさらに探求するための興味深い道があります。

arXiv:2401.17244

RAGを有するLLaMPは、物性値や結晶構造生成の事例を通じて、材料科学における高い推論能力を見せてくれました。加えて、この高い推論能力が一切のファインチューニングを要さずに実現していたことに、十分な実用性を感じることができました。

筆者らはLLaMPを最終的にデータ駆動型の実験を指示できるかどうかに関心があるようです。よりLLM自身や活用するユーザーの成熟度が上がっていけば、LLMが実験を主導する未来というものも有り得るかもしれませんね。

最後に

この記事では、LLaMPの研究論文を通じて、LLMにRAGを適用することの有効性と、材料開発における生成精度を探求しました。材料開発でLLMを有効に使うためには、専門知識やデータをモデルに学習させ、適切にチューニングする必要があるということが明確にお分かりいただけたと思います。また、そのようなチューニング作業を手軽に行えるRAGという枠組みが、いかに強力であるかについても感じ取っていただけたと思います。

今回のように、材料開発に関する記事をこれからもアップしていく予定です。今後も引き続き、よろしくお願いします。