🔰自律的に動くAIエージェント(LLMエージェント)入門

AI、機械学習

この記事に書いてあること

Agent Serveyの情報紹介、AIエージェント(LLMエージェント)の最新動向などの情報源。

はじめに

ChatGPTの登場に始まって、最近ではClaude3、Geminiなど話題に事欠かない生成AI界隈ですが、ブログなどオンライン上の文章が生成AIで書かれているものを、よく見かけるようになってきました。

噂ではオンライン上の文章の約10%が生成AIによって書かれているそうですね。文章を書く人にとっては、最強のツールとなっています。

2022年11月に登場したChatGPTは「チャット」のインターフェースによって成功しました。
誰もが簡単にチャットするだけで、AIのパワーを体験できるようになったのです。

AIの民主化は長らく語られてきましたが、ChatGPTの登場により一瞬で実現しました。

さて、民主化に貢献したその「チャット」ですが、すでに時代遅れになりつつあります。

チャットするのって、けっこう面倒ですよね?

プロンプトエンジニアリングも話題になってますが、プロンプトエンジニアリングに興味のある人はどれほどいるでしょうか?

便利なChatGPTですが、ちょっと使ってみたけど「いまいち使い道がわからない」、「どうプロンプトで指示していいかわからない」、「普通に質問して会話できるので最初は面白いけど一般的な回答だけなので役に立たない」
・・・といってほとんど使わなくなった人も多いのではないでしょうか?

日々日常で使いこなしている人と、面倒で全く使わなくなった人との格差がどんどん広がっているのではないかと考えています。

効率化のためにとても役に立つ生成AIですが、忙しい人ほどあれこれ試す時間がなくて使ってないこともあるかもしれません。

そんな課題を解決する技術が登場しました。

「AIエージェント」です。(「LLMエージェント」とも呼ばれています)

画像

A Survey on Large Language Model based Autonomous Agents
Autonomous agents have long been a prominent research focus in both academic and industry communities. Previous research...

ChatGPTの登場から間もなくAutoGPTというフレームワークが火付け役となりブームとなりました。AutoGPTは聞いたり使ってみた人も多いのではないでしょうか。
人がゴールを与えるだけで生成AI(LLM)が自律的にタスクを実行していきます。

ややこしいプロンプトを考えなくても「ゴール」を伝えるだけで、勝手に生成AIが動いて仕事をしてくれます。

「あとよろしく」と言えば何でもやってくれる部下みたいですね。
チャットで指示をする場合、事細かくやってほしいことを指示しないと期待した結果が返ってこないですが、「AIエージェント」の場合は「あとよろしく」で仕事をしてくれます。

「AIエージェント」という用語は以前からありましたが、まさに「AIエージェント」の実現を目の当たりにしたのがAutoGPTでした。

今では数多くの「AIエージェント」が出現しています。

  • AutoGPT
  • Generative Agent
  • HuggingGPT
  • ChatDev
  • など

OpenAIのGPTsもエージェントといってもよいかもしれません。

以下の「LLM-Agent-Survey」に様々なエージェントのフレームワーク、ツールが紹介されています。

その数30個以上です。

WebGPT
SayCan
MRKL
Inner Monologue
Social Simulacra
ReAct
LLM Planner
MALLM
aiflows
DEPS
Toolformer
Reflexion
CAMEL
API-Bank
Chameleon
ViperGPT
HuggingGPT
Generative Agents
LLM+P
ChemCrow
OpenAGI
AutoGPT
SCM
Socially Alignment
GITM
Voyager
Introspective Tips
RET-LLM
ChatDB
S3
ChatDev
ToolLLM
MemoryBank
MetaGPT
L2MAC
LEO
JARVIS-1
CLOVA
LearnAct

ここに記載されているエージェントの名前を知っておくだけでも、エージェントについて語れるようになるかもしれません。
メジャーなエージェントはひととおり押さえてあります。

Autonomous agents are designed to achieve specific objectives through self-guided instructions. With the emergence and growth of large language models (LLMs), there is a growing trend in utilizing LLMs as fundamental controllers for these autonomous agents. While previous studies in this field have achieved remarkable successes, they remain independent proposals with little effort devoted to a systematic analysis. To bridge this gap, we conduct a comprehensive survey study, focusing on the construction, application, and evaluation of LLM-based autonomous agents. In particular, we first explore the essential components of an AI agent, including a profile module, a memory module, a planning module, and an action module. We further investigate the application of LLM-based autonomous agents in the domains of natural sciences, social sciences, and engineering. Subsequently, we delve into a discussion of the evaluation strategies employed in this field, encompassing both subjective and objective methods. Our survey aims to serve as a resource for researchers and practitioners, providing insights, related references, and continuous updates on this exciting and rapidly evolving field.

自律エージェントは、自己誘導型の指示を通じて特定の目的を達成するように設計されています。大規模言語モデル (LLM) の出現と成長に伴い、これらの自律エージェントの基本コントローラーとして LLM を利用する傾向が高まっています。この分野におけるこれまでの研究は目覚ましい成功を収めているものの、体系的な分析にはほとんど労力が割かれず、独立した提案にとどまっています。このギャップを埋めるために、私たちは LLM ベースの自律エージェントの構築、アプリケーション、評価に焦点を当てた包括的な調査研究を実施しています。具体的には、最初に、プロファイル モジュール、メモリ モジュール、計画モジュール、アクション モジュールなど、AI エージェントの重要なコンポーネントを調べます。私たちは、自然科学、社会科学、工学の領域における LLM ベースの自律エージェントの応用をさらに調査します。続いて、主観的方法と客観的方法の両方を含む、この分野で採用されている評価戦略について詳しく説明します。私たちの調査は、この刺激的で急速に進化する分野に関する洞察、関連参考文献、継続的な最新情報を提供することで、研究者や実務家のためのリソースとして機能することを目的としています。

AIエージェント

エージェントの機能

以下の4つの機能に分類されています。

  • Profile
  • Memory
  • Planning
  • Action
画像

「エージェント」の定義はまだ決まったものはなく、この4つの機能が全部そろってなくても「エージェント」としては成立します。

たとえば、LangChainでメジャーなReActも以下の表を見ると「Profile」、「Memory」機能はなく、「Planning」、「Action」だけがあります。

「ReAct」というのは、「Reasoning + Acting」を組み合わせてできた単語ですが、LangChainで最初にAgentの例で使われているので、エージェントといえば「ReAct」というイメージがあるかもしれません。

「ReAct」はエージェントの実装の1つにすぎません。

画像

LangChainを使うと、ReActベースのAgentを簡単に体験することができます。
他にもMRKLといった様々なAgentタイプが使えますので、いろいろ試してみるのも面白いと思います。

ReActでは、期待したとおりに動いてくれないケースでもAgentタイプを変えただけで期待した動きをする場合もありますので、ReActでダメだったら他のタイプも試してみましょう。
(とはいえ、なかなかすべてのケースに最適なタイプが見つからないと思いますのでこの辺りが難しいところです)

ReAct | 🦜️🔗 LangChainThis walkthrough showcases using an agent to implement the Repython.langchain.com

ReActの論文は以下です。

ReAct: Synergizing Reasoning and Acting in Language ModelsWhile large language models (LLMs) have demonstrated impressiarxiv.org

画像

さきほどの4つの機能についての分類表ですが、たくさんのエージェントの機能を比較してありますので、詳しくは元情報の以下のURLをご覧ください。

ちなみに4つの機能全部そろってるのは何だろう?と思って眺めていましたが「ChatDev」というエージェントは4つの機能が全部そろっていました。

画像

~ ~ ~

画像

ChatDevとは?

さてChatDevですが、一時期話題になったマルチエージェントです。

なんと、設計、コーディング、テスト、ドキュメント作成などのタスクを複数のエージェントが自律的に動いて実行します。

ソフトウェア開発のプロセスを全てAIが自律的に動いて実現してしまうのです。

概要に記載されているとおり、まさし「バーチャルソフトウェア企業」ですね。

精度はまだまだですが、エンジニア不要論もあながち遠い未来の話ではないと思わせるほどのインパクトがありました。

画像
  • ChatDev は、最高経営責任者 、 最高製品責任者 、最高技術責任者 、プログラマー 、レビュアー 、テスター 、アートデザイナー などさまざまな役割を持つさまざまなインテリジェントエージェントを擁するバーチャルソフトウェア企業である。これらのエージェントはマルチエージェントの組織構造を形成し、 “プログラミングを通じてデジタル世界に革命を起こす”というミッションで 結束しています。ChatDev 内のエージェントは、設計、コーディング、テスト、ドキュメント作成などのタスクを含む専門的な機能セミナーに参加することで、 共同作業 を行います。
  • ChatDev の主な目的は、使いやす高度にカスタマイズ可能拡張可能なフレームワークを提供することであり、 これは大規模言語モデル(LLM)に基づいており、集合知を研究するための理想的なシナリオとして機能します。

「仮想ソフトウェア企業」というコンセプトですが、ソフトウェア開発に必要な人間を仮想空間の「エージェント」として実現しています。

ChatGPTのように、プロンプトで指示すればコードも作ってくれるので、もしかしたらソフトウェア開発の分野が一番「AIエージェント」として向いてるのかもしれませんね。

プログラムやシステムは仮想空間(サイバー空間)で動いているものなので、とても相性が良さそうです。

設計やドキュメント作成も、生成AIが文章を作れるのであれば、「エージェント」として動くのも不思議ではありません。

知らないうちに、いろいろ進化してるようですので、たまにウォッチしておくと参考になると思います。

実用的かどうかはさておいて、マルチエージェントとしてちゃんと動くのがあるのはこのChatDevで初めて知りました。

画像

MetaGPTとは?

MetaGPTもChatDevと同様にマルチエージェントを実現するフレームワークです。

「標準化操作手順 (SOP)」というのがポイントのようです。

MetaGPT: Meta Programming for A Multi-Agent Collaborative FrameworkRemarkable progress has been made on automated problem solvinarxiv.org

画像

大規模言語モデル (LLM) に基づくエージェントの社会を通じて、自動化された問題解決に関して目覚ましい進歩が見られました。既存の LLM ベースのマルチエージェント システムは、単純な対話タスクをすでに解決できます。ただし、より複雑なタスクの解決策は、単純に連鎖する LLM によって引き起こされるカスケード幻覚による論理の不一致により複雑になります。ここでは、LLM ベースのマルチエージェント コラボレーションに効率的なヒューマン ワークフローを組み込んだ革新的なメタプログラミング フレームワークである MetaGPT を紹介します。 MetaGPT は、標準化操作手順 (SOP) をプロンプト シーケンスにエンコードして、より合理化されたワークフローを実現するため、人間のような専門知識を持つエージェントが中間結果を検証してエラーを削減できるようにします。 MetaGPT は組立ライン パラダイムを利用して、さまざまなエージェントに多様な役割を割り当て、複雑なタスクを多くのエージェントが連携するサブタスクに効率的に分割します。協調的なソフトウェア エンジニアリングのベンチマークでは、MetaGPT は以前のチャットベースのマルチエージェント システムよりも一貫したソリューションを生成します。私たちのプロジェクトは、この https URLで見つけることができます。

JARVIS-1

リストの中に1つ面白そうなエージェントがありました。
「JARVIS-1」というフレームワークです。

これは、マインクラフト(マイクラ)というゲームの世界で自律的に動くマルチモーダルAIエージェントです。

マイクラはオープンワールドの世界で自由に活動できるゲームですが、様々なタスクを操作できます。
これを、AIエージェントのチカラによって自律的に動かそうというプロジェクトです。

画像
画像

~ ~ ~

画像
画像

~ ~ ~

画像

オープンワールドでマルチモーダルな観察による人間のような計画と制御を達成することは、より機能的なジェネラリスト エージェントにとって重要なマイルストーンです。既存のアプローチは、オープンワールドで長期にわたる特定のタスクを処理できます。ただし、オープンワールドのタスクの数が潜在的に無限になる可能性があり、ゲーム時間の経過とともにタスクの完了を段階的に向上させる機能がない場合、依然として苦労しています。JARVIS-1 は、人気がありながらも挑戦的なオープンワールドの Minecraft ユニバース内で、マルチモーダルな入力 (視覚的観察と人間の指示) を認識し、洗練された計画を生成し、具体的な制御を実行できるオープンワールド エージェントです。具体的には、事前にトレーニングされたマルチモーダル言語モデルに基づいてJARVIS-1を開発し、視覚的な観察とテキストによる指示を計画にマッピングします。計画は最終的に目標条件付きコントローラーに送信されます。私たちはJARVIS-1にマルチモーダル メモリを装備し、事前に訓練された知識と実際のゲーム サバイバル体験の両方を使用した計画を容易にします。JARVIS-1は、Minecraft に存在する最も一般的なエージェントであり、人間と同様の制御および観察スペースを使用して 200 を超えるさまざまなタスクを完了することができます。これらのタスクは、「木を切る」などの短期的なタスクから、「ダイヤモンドのつるはしを入手する」などの長期的なタスクまで多岐にわたります。JARVIS-1 は、短期間のタスクで非常に優れたパフォーマンスを発揮し、ほぼ完璧なパフォーマンスを実現します。ObtainDiamondPickaxeの古典的な長期タスクでは、JARVIS-1 は現在の最先端エージェントの信頼性を 5 倍上回っており、長期にわたるより困難なタスクを正常に完了できます。

以下のサイトに動画がありますが、人間が動かしてるかのようにちゃんと行動しているのが面白いですね。

JARVIS-1: Open-Ended Multi-task Agents with Memory-Augmented Multimodal Language ModelsProject page for CraftJarvis JARVIS-1.craftjarvis-jarvis1.github.io

画像

仕組みは典型的なエージェントと同様に、タスク化して計画し、実行、観察を繰り返すことで自律的に動くようです。

マイクラの世界で自由に動けるのであれば、そのうち現実世界でも生成AI搭載ロボットが自律的に動く日が来るのも近そうですね。

と思って調べてみたら既にNVIDIAがロボットの学習にLLMを活用しているという事例を見つけました。

以下のページの動画を見ると、ロボットがペン回しをしています。
この学習にLLMが活用されているということのようです。

Eureka! ロボット学習に新たな風を吹き込む NVIDIA Research の画期的な進歩 | NVIDIAAI エージェントが、複雑なタスクを達成するためにロボットをトレーニングする報酬アルゴリズムを自動的に生成するために LLblogs.nvidia.co.jp

NVIDIA Research が開発した、ロボットに複雑なスキルを教えることができる新しい AI エージェントが、ロボット ハンドをトレーニングし、人間と同じようにペンを高速で回転させることに成功しました。
以下のビデオで紹介されている見事な手の動きは、ロボットをトレーニングするための報酬アルゴリズムを自律的に作成する Eureka により、ロボットが巧みにこなすことを学んだ 30 近いタスクのひとつです。
Eureka は、ロボットに引き出しやキャビネットを開けることや、ボールを投げたりキャッチしたりすること、ハサミの操作なども教えました。
本日公開された Eureka の研究には、論文とプロジェクトの AI アルゴリズムが含まれており、開発者は強化学習研究のための物理シミュレーション リファレンス アプリケーションである NVIDIA Isaac Gym を使用して実験を行うことができます。Isaac Gym は、OpenUSD フレームワークに基づいて 3D ツールやアプリケーションを構築するための開発プラットフォームである NVIDIA Omniverse 上に構築されています。Eureka 自体は、GPT-4 大規模言語モデルによって駆動しています。
NVIDIA の AI Research シニア ディレクターであり、Eureka の論文の著者である Anima Anandkumar は次のように述べています。「強化学習は過去 10 年間で目覚ましい成果を上げてきましたが、トライアンドエラー プロセスにある報酬の設計など、まだ多くの課題が残っています。Eureka は、難しい課題を解決するために、生成学習と強化学習の手法を統合した新しいアルゴリズムを開発するための第一歩です」

生成AI(LLM)は、もはや文章を書いてくれるだけのものにとどまらず、現実世界でもいろいろ活躍してくれそうです。

車やドローンなどの自動運転も一気に精度が高くなって、現実のものになる日も近そうですね。

LLMエージェントの研究動向

LLMエージェントを調べていると、とても素晴らしいドキュメント見つけました。2024/4/26とあるのでつい最近のドキュメントのようです。

LLMエージェントの動向がよくわかります。

とにかく、分量が多いですね。

ICLR2024 LLMエージェントの研究動向 - Speaker Deck

その他、LLMエージェントの情報

The Rise and Potential of Large Language Model Based Agents: A SurveyFor a long time, humanity has pursued artificial intelligencearxiv.org

画像

Generative Agents: Interactive Simulacra of Human BehaviorBelievable proxies of human behavior can empower interactivearxiv.org

画像

エージェントプロトコル

まだまだLLMエージェントの歴史は浅く、それぞれのフレームワークによって実装方法はまちまちです。

そこで統一されたプロトコル実現に向けた以下のようなサイトもありました。

でも、まだまだ変わっていくと思いますので、プロトコルみたいな形で統一されるのはもう少し先の話かなと思っています。

Agent ProtocolAgent Protocol – The open source communication protocol for Aagentprotocol.ai

まとめ

「エージェント」といっても幅広くてまだまだ記事としては書き足りないですが、AIエージェント(LLMエージェント)の未来が少しでも伝われば幸いです。

チャットで人間のようにちゃんとした回答が返ってくるだけでも驚きでしたが、その生成AIの技術を使ってまだまだAIの分野は進化していきそうです。

自律型AIが実現すれば、自律型ロボットも実現に近づいていくと思いますので、僕たちの生活がどんどん楽になっていくとよいですね。

コメント

タイトルとURLをコピーしました