[アイデア]Explainableな構造ー物性の予測LLMモデルを作る研究の「目標とTODO」メモ

はじめに

(こちらの記事の続きです)

LLMを使って、化学構造から物性をいい感じに説明付きで予測するモデルを作る研究を実際に始める雰囲気になってきました。

本記事では、これからのTODOなどを纏めていきます。

背景

従来AIからLLMへの変遷に向けた期待

  • 化学・材料分野において、実験結果を予測・提案するモデルが求められている

    • 新規素材

    • 創薬

  • 多くの研究がケモインフォマティクス・マテリアルズインフォマティクス分野でなされてきている

  • 一方、従来のモデルの多くは、本質的に科学を考慮しておらず、限られたデータセットの中だけで法則性を抽出して予測するため、課題が多い

    • 科学的にはありえない、めちゃくちゃな予測を平気で行う

    • 学習データから少しでも外れると、予測精度が著しく落ちる

    • 予測の理由がわからない

  • 新たな解決策として、LLMに「科学的な思考」をさせることで、より人間的でロバストな予測を実現できる可能性がある

    • 特定のケースでのコンセプト実証は成功済み(STAM: Methods 2023)

    • 専門家よりも多量の知識に基づく推論を行える可能性がある

    • (論理的な推論能力は、人間に劣るが、将来的には改善される見込み)


課題: 化学・材料科学とLLMをどう結ぶか

  • 化学・材料系のAIとLLMを組み合わせてみました的な研究は、少しずつ出始めています(referenceは割愛)

  • 一方、これまで蓄積してきたデータベースやアルゴリズム、手法などをうまく接続するための方法論というのは、まだ殆ど確立されていない印象です

  • その対応策の一つとして、構造ー物性相関のデータをLLMで言語的に補完してあげる、というアイデアが浮上しました。

基本的なコンセプトの有効性は、以下の記事で少しだけ、確かめました。

次のTODOは、研究のゴールとアプローチを整理することです。

研究目標

難易度を変えた、3つの暫定目標を立ててみます。

1. 化学・材料科学とLLMを繋ぐ公開データセットを整備する

  • データセット構築のノウハウやフォーマットを確立する

  • 今後、色々な人が解析できるようにデータセットを公開する

2. 化学・材料科学の言語データを学習したLLMの予測性能が向上することを確認する

  • 提案手法が原理的に有効であることを確認する

3. 既存の予測手法よりも優れた物性予測LLMを作る

  • 提案手法が既存手法よりも優れていることを実証する

    • 小規模データセットでの予測性能

    • 大規模データセットでの予測性能

    • 解釈性

1,2くらいまで実証できれば、初期フェーズの研究としては及第点だと思います。3.で圧倒的な予測性能が出て、達筆な原稿がかければ、Nature/Scienceレベルの成果になります(が、インパクト・ファクターの高いジャーナル掲載に囚われすぎると、色々と研究が窮屈になります)。

具体的なTODO(暫定)

具体的に、どのような作業が必要になるかを書いていきます。
このあたりはまだ頭の整理中ですので、あくまでメモです。

基本的なアイデアは、以下の通りです。

  1. 問題と回答のペアを与える

  2. 理由を考えさせる

  3. 問題+理由から、良い感じの回答が得られれば、それをデータセットに採用する

タスク1: プロンプトチューニング

まずは、与えられたQ&Aから、「理由」をいい感じに考えさせるためのフレームワークを作る必要があります。一種のプロンプトチューニングです。


主なTODO

  • データセットの準備

  • 評価フレームワークの構築

  • システム改善

    • プロンプトチューニング

    • データのサンプリング手法など


データセット収集とクリーニング

公開データベースを使う予定なので、そこまで大変な作業ではなさそうです。

  • 有機分子の融点データベースを使用予定(数千件程度のユニークな分子構造があったと思います)

  • 研究進捗によっては、データベースの中身や規模を変える必要があります

    • より大規模なデータベース

    • 用途特化した小規模なデータベース

  • 既存データベースの場合は、最短、数時間程度のクリーニング作業で終わりそうです


評価システムの構築

主にデータ科学とプログラミングの仕事です。
上記の試行錯誤・「プロンプトチューニング」の効果を評価するためのシステム構築が必要になりそうです。

  • 「プロンプト」+「ランダムに選んだN分子」(N=10程度?)を入力、「予測スコア」を出力とするとするシステム

  • いい感じのシステムさえ作れれば、「プロンプトチューニング」を大人数で実施できる可能性がありそうです。


プロンプトチューニング

化学ドメイン知識も必要になりそうな作業です。GPTと対話する仕事です。
上記のシステムにおいて、以下のような作業を行っていきます。

  • 「質問(分子構造)」+「回答(物性)」の既存データセットから、適切に回答を導き出すための「理由」を生成させるためのプロンプトの考案(予備検討)

    • 要件

      • 化学的に妥当である

      • 正確な予測につながる

      • コンパクトで汎用性がある


タスク2: ファインチューニングと評価

タスク1で最適化したプロンプトをもとに、数百ー数千件程度の「質問・理由・回答」データセットを生成します。
得られたデータセットを用いて、GPTやLlama2などのLLMをファインチューニングすることで、最終性能を評価します。

主なTODO

  • データセット構築

  • ファインチューニング

    • モデル解析

  • 性能評価

    • 既存手法との比較

GPTのファインチューニングは高額、llama2もそれなりの覚悟が必要です。

手持ちのA100(xN)を回しつつ、あわよくば、
クラウドを使って70bモデルをフルパラメータ学習とかしてみたいところです。

タスク3: とりまとめと論文執筆

成果をまとめてarXivにプレプリントを出したり、論文投稿/プロシーディングに投稿する作業です。それなりに時間がかかります。


最後に

今はオープンに諸々のことを書いてますが、今後研究が進むにつれ、データやコード共有など、少しずつclosedな領域が増える可能性はありそうです。研究に興味のある方は、個別にご連絡ください。

12/16 システムのたたき台をコード実装しました(github)。
少なくとも、訓練データとしては使える手応えがあります。

GPT3.5 original
GPT3.5 自動生成したデータセットでプロンプトチューニング

この記事が気に入ったらサポートをしてみませんか?