Open6

『いまこそ学ぶLLMベースのAIエージェント入門―基本的なしくみ/開発ツール/有名なOSSや論文の紹介』勉強会に参加してみた🌟

まさぴょんまさぴょん

『いまこそ学ぶLLMベースのAIエージェント入門―基本的なしくみ/開発ツール/有名なOSSや論文の紹介』

講座概要

  • 大規模言語モデル(LLM)の応用例として「AIエージェント」が大きな話題の1つとなっています。
  • AIエージェントは、与えられた目的に対して、何をすべきか自律的に判断して動作します。
    • たとえば、必要に応じてWeb上の情報を検索して回答してくれたり、試行錯誤しながらプログラムを実装してくれたりします。
  • 2024年2月現在では、OpenAIのAssistants APIやGPTs、Agents for Amazon BedrockやLangGraphなどがリリースされ、AIエージェントを開発するエコシステムも急速に発展しています。
  • そんな中、この勉強会では「いまこそ学ぶLLMベースのAIエージェント入門」と題して、LLMベースのAIエージェントの基本を解説します。
  • LLMベースのAIエージェントの基本的なしくみ(MRKLやReActなど)や各種開発ツール、有名なOSSや論文で実装されたAIエージェントの工夫を紹介します。

アジェンダ

  • AIエージェントとは
  • LLMベースのAIエージェントの基本
  • もう少し高度なAIエージェントの概要
  • 有名なAIエージェントとその工夫の紹介

※ふだんからLLMベースのAIエージェントの情報を追っている方にとっては基礎的な内容となる予定です。
※この勉強会で紹介するAIエージェントはOSSや論文に基づくものであり、発表者が開発した事例の話はありません。

主な対象者

  • LLMベースのAIエージェントに興味がある方

前提とする知識

  • プロンプトエンジニアリングの基礎知識(CoTプロンプティングを知っている程度)
  • OpenAIのChat Completions APIの基礎知識(Function callingをなんとなく知っている程度)

前提知識のための参考資料

今回の発表スライド🌟

https://speakerdeck.com/os1ma/imakosoxue-bullmbesunoaiezientoru-men-ji-ben-de-nasikumi-slash-kai-fa-turu-slash-you-ming-naossyalun-wen-noshao-jie

参考・引用

https://studyco.connpass.com/event/309857/

https://speakerdeck.com/os1ma/imakosoxue-bullmbesunoaiezientoru-men-ji-ben-de-nasikumi-slash-kai-fa-turu-slash-you-ming-naossyalun-wen-noshao-jie

https://youtube.com/live/8FPgoCjoenI

https://speakerdeck.com/os1ma/puronputoenziniaringukarashi-merulangchainru-men

https://twitter.com/oshima_123

https://www.amazon.co.jp/dp/4297138395

https://www.amazon.co.jp/gp/product/4297139014/

まさぴょんまさぴょん

AIエージェントとは?

LLMベースのAIエージェントとは?

  1. エージェント
  2. AIエージェント
  3. LLMベースのAIエージェント
  • 「日常的なタスクを自動的に行うプログラム」という意味が、今回のエージェントの意味に近い。

Agent的なツールの特徴

  1. 情報の認識 (知覚・認知)
  2. 物理的な作業 (Action)
  • 2つのフィードバック・ループ

エージェント・ループ

まとめ

まさぴょんまさぴょん

LLMベースのAIエージェントの実装方法

  1. WebGPTP
  2. MRKL (ミラクル)
  3. ReAct
  4. Plan-and-Solve
  5. LLMCompiler

WebGPTP

MRKL (ミラクル)

ReAct

  • Step By Step (試行錯誤)で考えましょうというプロンプト
  • エージェントは、Actだけでも実装できますが、Reasonを出力してから、Actを出力させた方が精度が上がるということ。

Plan-and-Solve

  • LLMに「計画を立てて、タスクをサブタスクに分割してから、計画に従って、サブタスクを実行してください」と指示する手法です。
  • Excuter(実行者)と、計画者を Componentとして分離して、1つずつ逐次実行する

LLMCompiler

AIエージェントを開発するためのサービス/ツール🌟

まさぴょんまさぴょん

少し高度なAIエージェントの概要

  1. チャットbotが必要に応じてツールを使う。
  2. 与えられたタスクを解決するために、自律的に計画を立てて、進める。
  3. 複数のエージェントが協調動作する(マルチ・エージェント)

自律的に計画を立てて進めるAIエージェント

  • AutoGPT
  • BabyGPT
  • AgentGPT

マルチエージェントの繋がり方・関係性

  • ネットワークのような型
  • スーパーバイザー型
  • スーパーバイザー & チーム型

AIエージェントの構造

AIエージェントは、各要素に対して工夫があります

まさぴょんまさぴょん

有名なAIエージェントと、その工夫の紹介

GPT Researcher

  • Excutorと Researcher などで、Component

Generative Agents

  • 各エージェントがキャラクターとして、日常生活を送る🌟
  • Memoryの工夫が有名な事例🌟
    • 会話や、知覚した周囲の状況を Memory Stream に次々、保存する
    • 最新性・重要性・関係性のあるものを検索して使用している
  • 時々、Memory を整理する Reflect の仕組みも実装
    • 人間で言う睡眠のようなもの (記憶の整理)

Voyager

  • マインクラフトのクライアント・ライブラリを使った
  • SrcCodeが公開されているので、めっちゃありがたい!
  • スキルを保存して、再利用する

LLMを呼び出す回数を減らす工夫が上手い🌟

  1. 生成したデータを再利用できるように保存して、再利用する。

Poke'LLMon🌟

GPT-Engineer

  • OSSなの、めっちゃありがたい!

ChatDev

  • デザインなー, エンジニアなど、複数のペルソナを有したエージェントが
  • 似たもので、MetaGPT

Open Interpreter: 汎用のコンピューター操作

  • ターミナルまたは、Pythonで使用できる
  • 簡単なデータの集計のコードをインタラクティブに書かせて実行できるのは、驚き!

OS-Copilot

  • OSの操作を提供するエージェント
  • タスクをサブタスクに分割して、並列で実行する
  • ツールを作成しながら、実行する
まさぴょんまさぴょん

Q & A コーナー

  • 事前アンケートの回答が先

LangGraqhについて

Assistants API と LangChain の違い

  • Assistants APIは、ベータ版なので、問題がまだ多い。
  • LangChainがおすすめ。

その他・当日の質問 Ver. 1

  • OODAは、ReActに近いかも

    • PDCAを適応したものは、わからないけど、Pokemonのやつは、近いかも?
  • Action要素があると、エージェントっぽい・エージェントによっている

その他・当日の質問 Ver. 2

その他・当日の質問 Ver. 3

その他・当日の質問 Ver. 4

  • ビジネスユースケースとして、実現している事例

    • 社内の文書検索など
    • 社会にOpenで有名なものは、まだ少ない
  • LLMが流行っているのは、ゼロショットの精度がいい🌟

    • 自然言語で指示できるのがすごい!!
    • それ専用に学ばせたこと以外もできちゃう。
    • 汎用的にTaskをこなせるのがすごい。

その他・当日の質問 Ver. 5

  • ローカルLLMは、試したことないからわからない。
  • GPT-4が高いと思わないような Taskを任せよう!