top of page
検索

第3章:AIエージェントの技術基盤を理解する

  • 執筆者の写真: 峻 福地
    峻 福地
  • 5月20日
  • 読了時間: 7分

第3章:AIエージェントの技術基盤を理解する

大規模言語モデル(LLM)の選び方

AIエージェントは基盤となる大規模言語モデル(LLM)の性能に大きく依存します。適切なモデルを選択することは、エージェント開発の重要な第一歩です。



主要プロバイダーと特徴

現在、LLMの主要なプロバイダーには以下があります:


OpenAI

  • 2015年に設立され、ChatGPTやGPT-4などの革新的なモデルを開発

  • 特徴:強力な汎用性、自然な対話能力、幅広いAPIサポート


Anthropic

  • 2021年にOpenAIの元研究者チームによって設立

  • 特徴:安全性とアライメントに重点、優れたコード生成能力、誠実な回答傾向



Google(Gemini)

  • DeepMind部門によって開発された最先端LLM

  • 特徴:マルチモーダル能力、長いコンテキストウィンドウ、Google検索との統合


Meta(Llama)

  • Facebook親会社が開発するオープンソースモデル

  • 特徴:商用利用可能なオープンソース、自社インフラにデプロイ可能


その他のプロバイダー

  • Mistral AI(フランス):効率的なオープンソースモデル

  • DeepSeek(中国):研究指向の中国発モデル

  • MosaicML:特定ドメイン向けの特化型モデル



モデルサイズと性能のトレードオフ

LLMを選ぶ際には、以下のトレードオフを考慮する必要があります:


モデルサイズ:正確性 vs コスト/レイテンシー

大規模言語モデルは基本的に数値の配列と行列の演算を行います。一般的に:


  • 大きいモデル:より高価で遅いが、精度が高く複雑なタスクに対応可能

  • 小さいモデル:より安価で速いが、精度が低く単純なタスクに適している


プロトタイプ開発段階では、より高性能(高価)なモデルから始め、機能確認後にコスト最適化を行うアプローチが推奨されています。


コンテキストウィンドウサイズ

モデルが一度に処理できるトークン(単語や記号)の数は重要な選択要素です:

  • 大きなコンテキストウィンドウ:より多くの情報を一度に処理可能(例:Google Gemini Flash 1.5 Proは約200万トークン、4,000ページ相当)

  • 長いコンテキストは、コードベース全体をコンテキストに含めるような用途に有効


推論モデル(Reasoning Models)

「推論モデル」と呼ばれる特殊なモデルタイプもあります:

  • 内部で多くの論理的思考を行ってから回答を返す

  • 回答まで数秒から数分かかることもあり、一度にまとめて回答を提供

  • 「レポート生成機」として考えるのが適切で、多くのコンテキストが必要

  • 例:Claude 3.7 Sonnet、GPT-4o、Gemini Proなど


実装のヒント

  • プロトタイピングには、まずOpenAI、Anthropic、Googleなどのホスティング型プロバイダーから始めることが推奨されています

  • オープンソースモデルを検討する場合も、初期開発では商用APIを使用し、インフラ問題ではなくコード開発に集中できるようにしましょう

  • モデルルーティングライブラリを使用すると、異なるプロバイダーのモデルを切り替えて比較テストが容易になります


AIエージェントの思考プロセス

AIエージェントが単なるモデル呼び出しと異なる点は、構造化された思考プロセスを持っていることです。この思考プロセスにより、エージェントは複雑なタスクを段階的に解決できるようになります。


ReAct:推論と行動の融合

ReAct(Reasoning + Acting)は、言語モデルが推論と行動を交互に行うことを可能にするフレームワークです。


ReActのステップ:

  1. 質問:ユーザーからの入力質問

  2. 思考(Thought):モデルが次に何をすべきか考える

  3. 行動(Action):モデルがツールの選択を行う

  4. 行動入力(Action Input):選択したツールに与える入力の決定

  5. 観察(Observation):行動の結果を観察

  6. 必要に応じて2-5を繰り返す

  7. 最終回答:ユーザーへの最終回答を形成


ReActの利点は、モデルが考える過程を明示的に示しながら、外部ツールを使用して情報を取得・検証できることです。これにより、幻覚(ハルシネーション)を減らし、より正確な回答が可能になります。


実装例

質問: 「テキサス大学のフットボールチームは先週誰と試合しましたか?相手チームのスタジアムの住所は?」

思考: テキサス大学のフットボールの最近のスケジュールを探す必要があります。
行動: Search
行動入力: "Texas Longhorns football schedule"
観察: NCAAディビジョンIフットボール、ジョージア、日付...

思考: テキサス大学ロングホーンズは先週ジョージア・ブルドッグスと対戦したことがわかりました。次に、相手チームのスタジアムの住所を調べます。
行動: Places
行動入力: "Georgia Bulldogs stadium"
観察: サンフォード・スタジアム 住所:100 Sanford...

最終回答: テキサス大学ロングホーンズは先週ジョージア・ブルドッグスと対戦しました。ジョージア・ブルドッグスのスタジアムの住所は100 Sanford Dr, Athens, GA 30602, USAです。

Chain-of-Thought:段階的思考

Chain-of-Thought(CoT)は、複雑な問題を解決するために段階的な思考プロセスを明示的に示すフレームワークです。

CoTの特徴:

  • 複雑なタスクを小さな思考ステップに分解

  • 各ステップを明示的に記述し、論理の流れを追跡可能にする

  • 最終的な結論に至るまでの過程を示す

CoTのバリエーション:

  • Self-Consistency CoT: 複数の思考経路を生成し、最も一貫性のある答えを選ぶ

  • Active-Prompt CoT: モデルが能動的に思考経路を生成・選択

  • Multimodal CoT: テキストだけでなく、画像など複数のモードでの思考を統合


実装例

質問: 「53 × 27の計算結果は?」

思考:
1. 7 × 53 = 371
2. 20 × 53 = 1060
3. よって、27 × 53 = 371 + 1060 = 1431

最終回答: 53 × 27 = 1431

Tree-of-Thoughts(ToT):思考の木構造化

Tree-of-Thoughtsは、Chain-of-Thoughtをさらに発展させ、複数の思考経路を木構造として探索するアプローチです。


ToTの特徴:

  • 複数の可能性を並行して検討(幅優先探索)

  • 各選択肢からさらに枝分かれする思考経路を評価

  • 最も有望な経路を見つけるまで探索を続ける

  • 戦略的な先読みや状態空間の探索に特に有効


実装例

問題: 「最適な製品戦略を考えましょう」

思考木:
- 戦略A:新製品の開発
  - A1:既存技術の改良
     - コスト効率高い
     - 革新性は低い
  - A2:破壊的イノベーション
     - 高リスク高リターン
     - 開発期間長い
- 戦略B:既存製品のマーケット拡大
  - B1:新しい地理的市場
     - 規制の壁
     - 文化適応の課題
  - B2:新しい顧客セグメント
     - 少ない初期投資
     - 既存インフラの活用可能

評価と選択: A2とB2が最も有望。さらに詳細比較...


AIエージェントの記憶と状態管理

エージェントが長期間にわたって意味のある対話を維持するためには、メモリ(記憶)と状態管理が不可欠です。


作業メモリ(Working Memory)

作業メモリは、ユーザーに関する関連性の高い永続的な長期的特性を保存します。


特徴:

  • ユーザープロファイルや設定の保持

  • 過去の対話から学習した重要情報の記録

  • セッションを超えた記憶の維持


実装方法:

  • データベースに構造化情報を保存

  • 定期的な更新と優先度付け

  • ユーザーフィードバックに基づく調整


階層的メモリ(Hierarchical Memory)

階層的メモリは、最近のメッセージと関連する長期的記憶を組み合わせて利用する方法です。


機能の仕組み:

  1. ユーザーの質問を受け取る

  2. 関連する長期記憶を検索(例:過去の週末の活動)

  3. 最近の会話メッセージを確認

  4. これらの情報をコンテキストウィンドウで結合

  5. 統合された情報に基づいて応答を形成


実装例(Mastraフレームワークの場合):

memory: {
  lastMessages: 5,  // 直近5つのメッセージを保持
  semanticRecall: true,  // 意味検索による記憶の取り出し
  topK: 3,  // 取得する過去メッセージの最大数
  messageRange: 2  // マッチした周辺のメッセージも含める範囲
}

記憶検索と最適化

会話の全履歴を使用するのではなく、現在の質問に最も関連性の高い過去のやり取りを選択的に含めることが重要です。


メリット:

  • コンテキストウィンドウのオーバーフロー防止

  • より関連性の高い情報に焦点

  • レイテンシーの改善とコスト削減


検索手法:

  • セマンティック検索:意味的な類似性に基づいて関連メモリを検索

  • キーワード検索:特定の重要語に基づく検索

  • 時間的近接性:直近の対話の優先


注意点:コンテキストウィンドウが増大するにつれ、開発者はしばしば最初にすべてをコンテキストウィンドウに入れ、後からメモリシステムを最適化することがあります。


反射と自己改善(Reflection)

高度なエージェントは自己改善のための「反射」能力を持ちます:

  • 短期記憶から長期記憶に保存すべき情報の選別

  • 成功と失敗の経験からの学習

  • ユーザーとの対話スタイルの調整

  • 推論プロセスの評価と改善


実装アプローチ:

  • セッション終了時の振り返り処理

  • 重要情報の抽出と永続化

  • メタ認知的評価による自己改善


AIエージェントの技術基盤を理解することで、より効果的なエージェントの設計と実装が可能になります。次章では、エージェントがどのように外部世界と連携し、知識を拡張するかについて詳しく見ていきます。

 
 
 

コメント


bottom of page