> 백엔드 개발 > 파이썬 튜토리얼 > 자가 수정 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 모델은 한 번의 시도로 출력을 생성합니다. 그러나 자가 교정 에이전트는 더 나아갑니다. 오류가 발생한 시기를 식별하고, 원인을 분석하고, 수정 사항을 적용하는 작업을 모두 실시간으로 수행할 수 있습니다. "시행착오" 사고방식이 내장된 AI라고 생각하세요.

이 블로그에서 배울 내용은 다음과 같습니다.

  • AI 에이전트에게 자가 교정이란 무엇을 의미하나요?
  • 실수에 적응하는 에이전트를 구축하는 방법
  • 에이전트 디자인에 반사 패턴을 적용하는 방법

결국에는 정상적으로 실패할 뿐만 아니라 모든 시도에서 개선되는 AI 에이전트를 설계하는 방법을 알게 될 것입니다.


1️⃣ 자가수정요원이란 무엇인가요?

자가수정 에이전트는 자신의 실패를 인식하고 새로운 전략을 시도할 수 있는 AI 시스템입니다. 초기 접근 방식이 효과가 없으면 에이전트는 재평가하고 대체 경로를 시도합니다.

비유:

셰프에게 케이크 굽기를 요청했는데 처음에는 설탕을 너무 많이 사용했다고 상상해 보세요. 표준 AI는 계속해서 같은 실수를 저지릅니다. 하지만 자체 수정 AI는 오류를 알아채고 다음번에는 설탕을 줄이고 케이크 맛이 완벽해질 때까지 조정합니다.

자체 교정 대리인이 중요한 이유는 무엇입니까?

대부분의 AI 도구(예: ChatGPT)는 단일 응답만 제공할 수 있습니다. 잘못된 경우 수동으로 "다시 시도"를 요청해야 합니다. 하지만 자체 수정 에이전트는 자율적으로 재시도할 수 있습니다.

?️ 사용 사례 예시:

AI에게 피보나치 수를 계산하는 Python 함수를 작성하라는 요청을 받습니다.

시도 1: AI가 느린 재귀 함수를 작성합니다.

자체 수정: 재귀가 너무 느리다는 것을 알 수 있습니다.

시도 2: AI가 동적 프로그래밍을 사용하여 함수를 다시 작성하여 더 빠르게 만듭니다.


2️⃣ 자기 교정 핵심 기술

상담원이 자신의 실수를 인식할 만큼 스스로 인식하도록 하려면 어떻게 해야 하나요? 세 가지 주요 기술은 다음과 같습니다.

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의 비동기 프로그래밍 작동 방식
  • FastAPI와 LangChain을 통합하는 방법
  • 검색 증강발전이 해결할 수 있는 문제
  • AI 에이전트를 만드는 방법 ...그리고 훨씬 더.

위 내용은 자가 수정 AI 에이전트: 실수로부터 학습하는 AI를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿