ホームページ > バックエンド開発 > Python チュートリアル > 自己修正型 AI エージェント: 間違いから学習する AI を構築する方法

自己修正型 AI エージェント: 間違いから学習する AI を構築する方法

DDD
リリース: 2024-12-29 00:09:11
オリジナル
732 人が閲覧しました

Self-Correcting AI Agents: How to Build AI That Learns From Its Mistakes

はじめに

AI エージェントが人間の介入なしに、自身の間違いを認識し、そこから学習し、再試行できるとしたらどうなるでしょうか? 自己修正 AI エージェントの世界へようこそ。

ほとんどの AI モデルは 1 回の試行で出力を生成します。しかし、自己修正エージェントはさらに進んでいます。エラーがいつ発生したかを特定し、原因を分析し、修正を適用することをすべてリアルタイムで行うことができます。これは、「試行錯誤」の考え方が組み込まれた AI と考えてください。

このブログでは次のことを学びます:

  • AI エージェントにとって 自己修正 が意味するもの。
  • 間違いに適応するエージェントを構築する方法。
  • エージェント設計に 反射パターン を適用する方法。

最後には、正常に失敗するだけでなく、試行ごとに改善する AI エージェントを設計する方法がわかります。


1️⃣ 自己修正エージェントとは何ですか?

自己修正エージェントは、自身の失敗を認識し、新しい戦略を試みることができる AI システムです。最初のアプローチが機能しない場合、エージェントは再評価して代替パスを試みます。

類似:

シェフにケーキを焼いてもらうと想像してみてください。しかし、最初は砂糖を使いすぎます。標準的な AI は同じ間違いを繰り返します。しかし、自己修正する AI がエラーに気づき、次回は砂糖を減らし、ケーキが完璧な味になるまで調整します。

自己修正エージェントが重要なのはなぜですか?

ほとんどの AI ツール (ChatGPT など) は 1 つの応答しか提供できません。間違っている場合は、手動で「再試行」するように要求する必要があります。ただし、自己修正エージェントは自律的に再試行できます。

?️ 使用例:

AI は、フィボナッチ数を計算する Python 関数を書くように求められます。

試行 1: AI は遅い再帰関数を作成します。

自己修正: 再帰が遅すぎることに気づきました。

試行 2: AI が動的プログラミングを使用して関数を書き換え、高速化します。


2️⃣ 自己修正のための重要なテクニック

エージェントに自分の間違いを認識できるほどの自覚を持たせるにはどうすればよいでしょうか?ここでは 3 つの主要なテクニックを紹介します:

1.エラー検出

  • 結果が「間違っている」かどうかを特定します (API 呼び出しの失敗、不正な出力、またはパフォーマンスの低下など)。
  • エラー コード、例外、またはテスト ケースを使用して障害を検出します。

2.反射

  • エージェントは自分の決定を振り返り、「何が問題だったのか?」と自問し、次のステップを計画します。
  • 反映は、エラーのログ記録、失敗した API 呼び出しの追跡、または応答品質の再評価によって実現できます。

3.再試行ロジック

  • 反省後、エージェントは改善された戦略で再試行します。
  • これは、API プロバイダーの切り替え、より効率的なロジックの使用、またはバックアップ アプローチの適用を意味する場合があります。

?プロのヒント:

エラー ログを AI モデルにフィードバックして、将来のパフォーマンスを向上させることができます。


3️⃣ 実践における自己修正

Python と FastAPI を使用して自己修正 AI エージェントを構築しましょう。


?‍?ステップ 1: 問題

Python 関数を生成できる AI エージェントが必要です。関数の実行に失敗した場合、または間違った出力が生成された場合、エージェントは自動的に自身を修正します

問題: 10 番目のフィボナッチ数を計算するフィボナッチ関数を作成します。

課題: エージェントが再帰バージョン (遅い) を生成する場合、エージェントはこれを認識し、動的プログラミングを使用して書き換える必要があります。


?‍?ステップ 2: エージェントをセットアップする

必要な依存関係をインストールします:

pip install openai fastapi uvicorn

ログイン後にコピー
ログイン後にコピー

?‍?ステップ 3: エージェントを作成する

エージェントの仕組みは次のとおりです:

  1. OpenAI の API を使用して Python 関数を生成します。
  2. 関数を実行して、機能するかどうかを確認します。
  3. 関数が失敗した場合 (遅い、間違っている、またはエラー)、反映され、アプローチが修正されます

コードの実装

import openai
import time
import asyncio

# ? Replace with your OpenAI API key
openai.api_key = "your_openai_api_key_here"

# ? Step 1: Ask the AI to generate a Fibonacci function
async def generate_fibonacci_function():
    prompt = "Write a Python function to calculate the 10th Fibonacci number."
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}]
    )
    function_code = response['choices'][0]['message']['content']
    return function_code

# ? Step 2: Test the function to see if it works
def test_fibonacci_function(function_code):
    try:
        exec(function_code)  # Run the function in a safe execution environment
        result = eval("fibonacci(10)")  # Call the function with n=10
        if result == 55:  # Correct Fibonacci value for n=10
            return "success", result
        else:
            return "wrong_output", result
    except Exception as e:
        return "error", str(e)

# ? Step 3: Self-Correct by asking for a new version of the function
async def self_correct_function():
    max_attempts = 3
    for attempt in range(max_attempts):
        print(f"? Attempt {attempt + 1}")

        # Generate a new Fibonacci function
        function_code = await generate_fibonacci_function()
        print(f"Generated function:\n{function_code}\n")

        # Test the function to see if it works
        status, result = test_fibonacci_function(function_code)
        if status == "success":
            print(f"✅ Success! Fibonacci(10) = {result}")
            return
        elif status == "wrong_output":
            print(f"❌ Incorrect result: {result}. Asking AI to try a better method.")
        else:
            print(f"? Error: {result}. Asking AI to try again.")

    print("❌ Max attempts reached. Could not generate a correct function.")

# ? Run the correction process
asyncio.run(self_correct_function())

ログイン後にコピー

4️⃣ 仕組み

  1. 関数の生成: AI はフィボナッチの Python 関数を作成します。
  2. 関数の実行: エージェントは関数を実行し、結果を確認します。
  3. 自己修正: 結果が間違っている場合、OpenAI はよりスマートなアプローチで 再試行するように求められます。

出力例

pip install openai fastapi uvicorn

ログイン後にコピー
ログイン後にコピー

5️⃣ 自己修正エージェントの主なパターン

  1. エラー検出: 間違った出力、パフォーマンスの低下、または例外を探します。
  2. 反省: 問題を記録します。なぜ失敗したのですか?
  3. ロジックの再試行: 新しいバージョンの関数を呼び出しますが、今回はよりスマートです。

?プロのヒント:

フィードバック ループを使用して、エージェントが間違いから学習できるようにします。一般的な問題を認識できるように、ログをエージェントにフィードバックします。


6️⃣ 自己修正剤をいつ使用する必要がありますか?

自己修正エージェントは、失敗が頻繁に発生し、手動による介入にはコストがかかる場合に役立ちます。

  • API 呼び出し: API が失敗した場合は再試行します。
  • コード生成: エラーがスローされた場合はコードを再生成します。
  • データ分析: ML モデルの誤った予測を修正します。

7️⃣ 自己修正エージェントの利点

Problem Solution
Agent gets it wrong Retry with a better approach
API request fails Retry with exponential backoff
Code generation error Use a smarter prompt
問題 解決策 エージェントは誤解します より良いアプローチで再試行してください API リクエストが失敗する 指数バックオフを使用して再試行します コード生成エラー よりスマートなプロンプトを使用する テーブル>

8️⃣ 次のレベルに進みましょう

  1. キャッシュを使用する: エージェントが最初から開始されないように、成功した出力を保存します。
  2. フィードバック ループの追加: 関数が頻繁に失敗する場合は、トレーニング プロセスにログをフィードします。
  3. エージェントの信頼度を追跡する: エージェントが自信がない場合は、テスト ケースを実行してもらいます。

9️⃣ まとめ

これで、Python 関数を作成、テスト、修正できる自己修正エージェントの青写真が完成しました。私たちが取り上げた内容は次のとおりです:

  • 自己修正の 3 つの柱: エラー検出、反映、再試行ロジック
  • Python 関数を生成およびテストするエージェントを構築する方法。
  • よりスマートで信頼性の高いエージェントを構築するためのベスト プラクティス。

?チャレンジ:

コードを生成するだけでなく実行時のパフォーマンスを評価する自己修正エージェントを構築します。関数が遅すぎる場合は、関数を書き直して最適化します。

レスポンシブ LLM の構築について詳しく知りたいですか?新しい行で私のコースをチェックしてください: サーバー送信イベントを使用した応答性 LLM アプリケーション

私がカバーするのは次のとおりです:

  • AI アプリケーションのシステムを設計する方法
  • 大規模言語モデルの答えをストリーミングする方法
  • サーバー送信イベントと WebSocket の違い
  • GenAI UI におけるリアルタイムの重要性
  • Python での非同期プログラミングの仕組み
  • LangChain を FastAPI と統合する方法
  • 検索拡張生成が解決できる問題
  • AI エージェントの作成方法 ...その他にもたくさんあります。

以上が自己修正型 AI エージェント: 間違いから学習する AI を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート