【生物物理屋による論文紹介】マルチモーダル言語モデルによるマインクラフト学習 JARVIS-1

## はじめに
この記事は「[ただただアウトプットを癖付けるための Advent Calendar 2024](https://qiita.com/advent-calendar/2024/newbie2024)」に投稿した記事です。

[最初の記事](https://qiita.com/yotabouya/items/e63c53c5e18b3cf6a454#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)にも書いた通り、私は生物物理の実験を専門にしている研究者です。
最近はデータ解析のため機械学習のコード開発も行っており、幸いにもその成果が[NeurIPSに採択されました](https://neurips.cc/virtual/2024/poster/93465)。

[アドベントカレンダー10日目の記事](https://qiita.com/yotabouya/private/8d66a50ce830481863c1)では、層を用いたハイパーグラフニューラルネットワークの拡張の論文紹介をおこないました。
15日目の今回は、また趣向を変えて、マルチモーダルな言語モデルによるオープンワールドでの行動指針学習の論文を紹介します。
行動指針の学習というと強化学習が強いですが、近年では言語モデルをそこに取り入れる研究が進んでいます。
今回の論文は、そのような研究の一環で、マルチモーダルな言語モデルを用いて、マインクラフトのようなゲーム環境での行動指針学習を行っています。

## 関連記事

#### 前の記事 「[生物物理屋がNishikaの初心者向け課題に挑戦してみた話](https://qiita.com/yotabouya/private/b6b3de7b8f9c2c0d229c)」

#### 次の記事「[生物物理屋によるNeurIPS2024の感想](https://qiita.com/yotabouya/private/bcf2cb8c910964a14919)」

## TL;DR

マルチモーダルな言語モデルと強化学習を組み合わせたエージェントにより、マインクラフトのオープンワールドにおいてアイテム取得のための複数ステップの行動指針を学習する研究です。自身の経験を蓄積したメモリを検索することで、自律的に学習するエージェントを実現しています。

## 論文

[JARVIS-1: Open-World Multi-task Agents with Memory-Augmented Multimodal Language Models](https://arxiv.org/abs/2311.05997)

こちらはarXivに投稿されたプレプリントです。
また、プロジェクトページは[こちら](https://craftjarvis.github.io/JARVIS-1/)です。

## 誰が書いたのか

北京大学、UCLA、北京郵電大学、BIGAIに所属する研究者らによって執筆されました。
BIGAIを調べるとブロックチェーン関係の機関もヒットするのですが、内容からしておそらくBeijing Institute for General Artificial Intelligenceの方ではないかと思います。

## 用語など

### マルチモーダル言語モデル

最近話題のLLM（Large Language Model）は、言語モデルの大規模化を進めたものです。
TransformerやAttention機構などの導入により、大規模なコーパスを用いて学習されたモデルは、様々な自然言語処理タスクで高い性能を示しています。
こうしたモデルの学習は、主に2段階に分かれています。
まず、大規模な文章データについて、次の単語を予測するタスクの精度をひたすらに高めます。
次に、その学習済みモデルを、他のタスクに転移学習させることで、そのタスクの性能を向上させます。
最初の学習に用いるデータが膨大であることによって背景知識（のようなもの）が学習されるため、転移学習に用いるタスク特異的なデータが少なくても高い性能を示すことができるというのが、LLMの特徴です。

最近では、言語モデルに画像などの他のモダリティの情報を組み込んだマルチモーダルな言語モデルが注目されています。
これらは、文章に加えて画像などの情報を入出力とすることができるため、より多様なタスクに対応できると期待されています。

### RAG

RAG（Retrieval-Augmented Generation）は、LLMの一種です。
RAGは、言語モデルに加えて、情報を検索するための機構を組み込んだものです。
これにより、言語モデルが知識を検索し、それを文章生成に用いることができます。

### 強化学習

強化学習は、エージェントが環境と相互作用しながら、報酬を最大化するような行動を学習する手法です。
エージェントは、環境の状態を観測し、その状態に応じて行動を選択します。
その結果として、報酬が与えられます。
強化学習の目的は、報酬を最大化するような行動を学習することです。
強化学習は、機械学習の中でも特に、エージェントが環境と相互作用するという点で、現実世界の問題に適用しやすいとされています。
実際、ロボット掃除機の制御や、ゲームAIなどに応用されています。

### マインクラフト

マインクラフトは、Mojang Studiosが開発したサンドボックスゲームです。
プレイヤーは、ブロックを破壊したり設置したりしながら、自由に世界を探索することができます。
今回の論文で重要となる特徴として、マインクラフトでのアイテムの取得は段階的に行われるということがあります。
例えば、石を取得するためには、まず木を探し、それを破壊して木材を手に入れ、ツルハシを作って石を砕くというように、複数のステップを踏む必要があります。
ダイヤモンドの取得ともなれば、木のツルハシで石を取り、石のツルハシで鉄を取り、鉄のツルハシでダイヤモンドを取るというように、さらに多くのステップを踏む必要があります。
このようなタスクの複雑性と、オープンワールドでの自由度から、現実世界への応用を目した研究の対象として広く利用されています。

## 実装したもの

言語による指示と、ゲーム環境の情報を入力とし、行動を出力するモデルを実装しました。
強化学習のみであれば、環境の情報のみを入力とすることになりますが、言語モデルを組み込むことで、より高度な行動指針を学習することができます。
特に今回の論文では、エージェントが経験をメモリに蓄積し、そのメモリを検索するようなRAGを用いることによって、自律的に学習するエージェントを実現しています。

## 学習手法

LLMのベースには、一般的なGPTなどのモデルを使用しています。
これらはマインクラフトのwikipediaも学習されているというのが前提です。
LLMを画像ベースのマルチモーダルな形に拡張し、ゲームの画面からその説明文を生成できるようにしています。
その説明文と、現在のタスクをもとに、次の行動を生成するのが、強化学習部分の役割です。
また、LLMによって、現在の状態とタスクをもとに、サブタスクも生成しています。
こうした行動指針の決め方、そしてサブタスクの生成方法が、学習対象になっています。
この学習は、事前にマインクラフトのチュートリアルタスクを通ることで行われました。
ここで特徴的なのは、このチュートリアルタスクの生成すらも、LLMによって行われているという点です。
また、エージェントは、チュートリアルタスクを通ることで、その経験をメモリに蓄積しています。
現状とタスクから、このメモリ内を検索するためのクエリをLLMにより生成し、その検索結果が強化学習の第3の入力となっています。
さらに、生成された行動指針から結果を予測して、その行動指針を実行するかどうかを決定するプロセスを経ることで、安定した動作を実現しています。

## 結果

これらのシステムによって、エージェントは、従来難しかったダイヤモンドの取得などのタスクを、ある程度の確率でこなすことができるようになりました。といっても、論文で示された範囲では、１０％程度の成功確率でした。
この成功確率はエージェントがゲームをプレイした回数に応じて上昇を続けることが確認されています。
その成長のためのチュートリアルタスクは、概ねマインクラフトにおけるアイテム獲得の流れに従って生成されたということです。

## まとめ

マルチモーダルな言語モデルを用いた強化学習エージェントの学習について紹介しました。
このような研究は、ゲームAIのみならず、ロボット制御などの実世界の問題にも応用されており、今後の発展が期待されます。
特に今回のモデルは自律的な成長と、生成された行動指針の検証ができるという点で、実用的なAIの実現に向けた一歩となるでしょう。
また、今回はマインクラフトwikiがベースのLLMに学習されており、RAGの検索対象は自身のメモリでした。
実際の応用において、ベースのLLMの事前学習に検索対象が含まれているというケースは、あまり多くないかもしれません。
そのような場合には、今回と異なり、wikiも検索対象にすることが求められるでしょう。
そのような場合にも動作するような、より汎用的なモデルの構築が今後の課題となります。