LLM Agents Study

Jonas Kim·2024년 9월 4일
0

IT Study

목록 보기
3/7

이 글은 LLM 에이전트에 대한 개인 학습 내용을 꾸준히 정리하여 올립니다.


1. 논문


2. 블로그

LLM Powered Autonomous Agents (2023)

  • LLM 기반 자율 에이전트 시스템의 주요 구성 요소
    1. 계획 (Planning)
      • 하위 목표 분해 및 복잡한 작업 관리
      • 자기 비판 및 자기 반성을 통한 개선
    2. 메모리 (Memory)
      • 단기 메모리: 인-컨텍스트 학습
      • 장기 메모리: 외부 벡터 저장소 및 빠른 검색
    3. 도구 사용 (Tool Use)
      • 외부 API 호출을 통한 모델 기능 확장
  • 계획 (Planning) 구현 기법
    • Chain of Thought (CoT): 복잡한 작업을 단계별로 분해
    • Tree of Thoughts: 다중 추론 가능성 탐색
    • LLM+P: 외부 고전적 플래너 활용
  • 자기 반성 (Self-Reflection) 구현
    • ReAct: 추론과 행동을 결합한 프롬프트 템플릿
    • Reflexion: 동적 메모리와 자기 반성 능력 부여
    • Chain of Hindsight (CoH): 과거 출력에 대한 피드백 시퀀스 학습
  • 메모리 (Memory) 구현
    • 외부 벡터 저장소 사용
    • 최대 내적 검색 (MIPS) 알고리즘
      • LSH, ANNOY, HNSW, FAISS, ScaNN 등
  • 도구 사용 (Tool Use) 구현
    • MRKL: 전문가 모듈 컬렉션과 LLM 라우터 결합
    • TALM & Toolformer: 외부 도구 API 사용 학습
    • HuggingGPT: ChatGPT를 태스크 플래너로 활용, HuggingFace 모델 선택
    • API-Bank: 도구 증강 LLM 성능 평가 벤치마크
  • 사례 연구
    1. 과학적 발견 에이전트 (ChemCrow)
    2. 생성형 에이전트 시뮬레이션 (The Sims 스타일)
  • 개념 증명 예제
    • AutoGPT: 자율 에이전트 설정 가능성 시연
    • GPT-Engineer: 자연어로 지정된 작업에 대한 코드 저장소 생성
  • 주요 과제
    1. 유한한 컨텍스트 길이
    2. 장기 계획 및 작업 분해의 어려움
    3. 자연어 인터페이스의 신뢰성 문제

Don't Sleep on Single-Agent Systems (2024)

  • AI 에이전트의 구성 요소
    1. LLM
    2. 프롬프트 (시스템 프롬프트 또는 환경 정보)
    3. 행동 공간 (에이전트가 사용할 수 있는 도구들)
  • 다중 에이전트 시스템 예시 (CodeR)
    • 관리자: 계획 작성
    • 재현자: 오류 재현 코드 작성
    • 오류 위치 탐지기: 오류 발생 파일 찾기
    • 편집기: 파일 수정
    • 검증자: 결과 확인
  • 다중 에이전트 시스템의 문제점
    1. 구조 설계의 어려움
    2. 맥락 정보 유지의 어려움
    3. 유지보수의 복잡성
  • 단일 에이전트 시스템 구현 방안
    1. 단일 LLM: 최신 범용 LLM 사용 (예: Claude, GPT-4, llama-3.1, Qwen-2.5)
    2. 단일 행동 공간
      • 범용 도구 제공 (예: 코드 작성, 코드 실행, 웹 브라우징)
      • 필요시 여러 도구 세트 결합
    3. 단일 프롬프트 기법
      • 모든 프롬프트 연결: 긴 문맥 처리 가능한 모델 활용 (예: Claude 200k 토큰, Llama 128k 토큰)
      • 검색 증강 프롬프팅: 효율성과 정확성을 위해 관련 정보만 검색하여 제공
  • OpenHands의 접근 방식
    • 단일 일반화 AI 에이전트 기반 소프트웨어 개발자 구현
    • 범용 도구 세트 제공
    • 모든 프롬프트 연결 방식 사용
  • 향후 연구 방향
    • 효과적인 단일 프롬프트 기법 개발
    • 검색 증강 프롬프팅 연구

(NEED TO READ) What's Next for AI Agentic Workflows ft. Andrew Ng of AI Fund (2024)

  • 에이전틱 워크플로우의 개념
    • 비 에이전틱 워크플로우(단일 프롬프트-응답)와 대조됨
    • 여러 단계의 반복적이고 상호작용적인 프로세스를 포함
    • 사고, 행동, 수정의 과정을 거침
  • 에이전틱 워크플로우의 성능
    • GPT-3.5를 Agentic 워크플로우로 사용 시 GPT-4의 제로샷 성능을 상회함
    • Human Eval 벤치마크에서 GPT-3.5 (Agentic): 77%, GPT-4 (제로샷): 67%
  • 주요 에이전트 설계 패턴
    1. 반성(Reflection)
      • 자체 생성 코드를 검토하고 수정
      • 단위 테스트 실패 시 자가 진단 및 수정
      • 관련 연구: "Self-Refine", "Reflexion"
    2. 도구 사용(Tool Use)
      • 웹 검색, 코드 생성 및 실행 등 외부 도구 활용
      • 컴퓨터 비전 작업에서 특히 유용
      • 관련 연구: "Gorilla", "MM-REACT"
    3. 계획(Planning)
      • 복잡한 작업을 여러 단계로 분해하고 실행
      • 실패 시 대안 경로 탐색 가능
      • 관련 연구: "Chain-of-Thought Prompting", "HuggingGPT"
    4. 다중 에이전트 협업(Multi-agent Collaboration)
      • 여러 역할(예: CEO, 디자이너, 프로그래머)을 맡은 에이전트들의 협업
      • 채팅 형식의 대화를 통한 복잡한 작업 수행
      • 관련 연구: "ChatDev", "AutoGen"
  • 기술적 고려사항
    • 즉각적인 응답보다는 장시간 처리를 허용해야 함
    • 빠른 토큰 생성 속도의 중요성 (반복적 프로세스에서 유리)
    • 낮은 품질의 빠른 모델이 높은 품질의 느린 모델보다 나을 수 있음
  • 에이전틱 워크플로우의 효과
    • 작업 시간 단축
    • 다양한 정보 소스의 효율적 통합
    • 높은 품질의 콘텐츠 생성
  • 향후 전망
    • 에이전틱 워크플로우를 통해 AI 기능이 크게 확장될 것으로 예상
    • AGI로 가는 여정의 중요한 단계로 인식됨
  • 참고: Exploring Agentic Workflows: A Deep Dive into AI-Enhanced Productivity

(NEED TO READ) AutoGen: Enabling Next-Generation Large Language Model Applications (2023, Microsoft)

  • AutoGen의 개요
    • LLM 워크플로우를 자동화, 최적화, 조율하기 위한 프레임워크
    • 복잡한 LLM 기반 애플리케이션 개발을 단순화
  • 주요 특징
    • 사용자 정의 가능하고 대화형 에이전트 제공
    • 다중 에이전트 간 자동화된 대화 지원
    • LLM, 인간, 도구를 통합한 에이전트 구성 가능
  • 구현 방법
    1. 특화된 능력과 역할을 가진 에이전트 세트 정의
    2. 에이전트 간 상호작용 동작 정의
  • AutoGen 에이전트의 특징
    • LLM 사용 및 역할 쉽게 구성 가능
    • 인간 지능 및 감독 통합 가능
    • LLM 기반 코드/함수 실행 지원
  • 지원하는 기능
    • 자동화된 복잡한 작업 해결 (그룹 채팅 통해)
    • 추론 매개변수 튜닝을 통한 성능 최적화
    • 코드 생성, 실행, 디버깅 자동화
    • 제공된 도구를 함수로 사용
  • 응용 사례
    • ChatGPT + 코드 인터프리터 + 플러그인의 향상된 버전 구현
    • 지속적 학습 및 새로운 기술 학습 자동화
    • 다중 전문가 에이전트 협력을 통한 복잡한 작업 해결
  • 기술적 이점
    • 모호성, 피드백, 진행 상황, 협업을 자연스럽게 처리
    • 코딩 관련 작업에 효과적 (도구 사용 및 문제 해결)
    • 사용자의 원활한 개입 또는 제외 허용
    • 다양한 통신 패턴 지원
  • 구현 예시
    • 대화형 체스 게임
    • GroupChatManager를 이용한 다중 에이전트 그룹 채팅
  • 사용 방법
    • 파이썬 패키지로 제공 (pip install pyautogen)
    • 간단한 코드로 강력한 기능 구현 가능

(NEED TO READ) How Amazon Bedrock Agents Works (AWS)

  • API 구성
    • 빌드 타임 API: 에이전트 생성, 구성 및 관리
    • 런타임 API: 사용자 입력으로 에이전트 호출 및 작업 수행을 위한 오케스트레이션 시작
  • 에이전트 구성 요소
    • 기반 모델(Foundation Model, FM): 사용자 입력 해석 및 응답 생성에 사용
    • 지시사항: 에이전트의 목적 및 기능 정의
    • 액션 그룹:
      ∘ OpenAPI 스키마 또는 함수 세부 정보 스키마로 파라미터 정의
      ∘ (선택적) Lambda 함수: API 호출 처리
    • 지식 베이스: 추가 컨텍스트 제공을 위해 연결
    • 프롬프트 템플릿: 기본 4개 제공 (전처리, 오케스트레이션, 지식 베이스 응답 생성, 후처리)
  • 빌드 타임 프로세스
    • 모든 구성 요소를 조합하여 기본 프롬프트 구성
    • 고급 프롬프트를 통해 각 단계별 로직 및 퓨-샷 예제 추가 가능
    • 에이전트 준비 단계에서 모든 구성 요소 및 보안 설정 패키징
  • 런타임 프로세스 (InvokeAgent API)
    1. 전처리: 사용자 입력 컨텍스트화 및 분류
    2. 오케스트레이션
      • FM을 사용한 입력 해석 및 다음 단계 논리 생성
      • 액션 그룹 호출 또는 지식 베이스 쿼리 예측
      • 필요시 Lambda 함수 호출 또는 파라미터 반환
      • 지식 베이스 쿼리 또는 사용자 재프롬프트
      • 관찰 결과 생성 및 기본 프롬프트 보강
      • 프로세스 반복 또는 사용자 응답 반환
    3. 후처리: 최종 응답 포맷팅 (기본적으로 비활성화)
  • 추적 기능
    • 런타임에서 활성화 가능
    • 에이전트의 논리, 액션, 쿼리, 관찰 등 각 단계 추적
    • FM에 전송된 전체 프롬프트 및 출력 포함
    • API 응답 및 지식 베이스 쿼리 결과 포함
  • 대화 기록
    • InvokeAgent 요청을 통해 세션 지속
    • 오케스트레이션 기본 프롬프트 템플릿에 컨텍스트 지속적 추가
    • 에이전트의 정확도 및 성능 향상에 기여

MetaGPT X Technical Report (2023)

TaskWeaver: A Code-First Agent Framework for Efficient Data Analytics and Domain Adaptation (2024, Microsoft)

  • TaskWeaver의 주요 목적
    • 자연어 사용자 요청을 실행 가능한 코드로 변환
    • 복잡한 데이터 구조 처리 지원
    • 동적 플러그인 선택 기능
    • 도메인 특화 계획 프로세스 지원
  • 핵심 아키텍처 구성요소
    1. 플래너
      • 시스템의 진입점 역할
      • 사용자 요청을 하위 작업으로 분할
      • 실행 프로세스 관리 및 자체 반성 수행
      • 실행 결과를 사람이 읽을 수 있는 응답으로 변환
    2. 코드 제너레이터
      • 플래너로부터 받은 하위 작업에 대한 코드 생성
      • 기존 플러그인과 도메인 특화 작업 예제 고려
    3. 코드 익스큐터
      • 생성된 코드 실행
      • 전체 세션 동안 실행 상태 유지
  • 주요 설계 고려사항
    1. 코드 우선 분석 경험
      • 사용자 요청을 파이썬 프로그램으로 변환
      • pandas DataFrame, numpy ndarray 등 네이티브 데이터 구조 활용
      • 데이터베이스 쿼리, 머신러닝 알고리즘 실행, 결과 요약 및 시각화 지원
    2. 도메인 적응
      • 플러그인을 통한 사용자 정의
        • 사용자가 정의한 플러그인(파이썬 구현 및 스키마 포함)으로 도메인 지식 통합
      • 예제를 통한 사용자 정의
        • YAML 형식의 인터페이스로 LLM에 특정 요청 응답 방법 교육
        • 계획 수립용 예제와 코드 생성용 예제 두 가지 카테고리 제공
    3. 상태 유지 코드 실행
      • 전체 세션 동안 코드 실행 상태 유지
      • 주피터 노트북과 유사한 방식으로 작동하나, 사용자는 자연어 사용
    4. 지능형 계획 분해 및 자체 반성
      • 사용자 요청에 더 신뢰성 있고 체계적인 응답 제공
    5. 제한된 코드 생성
      • 생성된 코드의 기능을 제한하여 보안 위험 감소
  • 작동 워크플로우
    1. 플래너가 사용자 쿼리, 코드 인터프리터 설명, 계획 예제를 바탕으로 계획 생성
    2. 코드 제너레이터가 관련 플러그인 정의를 포함한 프롬프트를 받아 코드 스니펫 생성
    3. 생성된 코드는 코드 익스큐터로 전송되어 실행
    4. 실행 결과는 플래너로 반환되어 다음 계획 단계 결정
    5. 이 과정을 반복하며 사용자 요청 완료
  • 기술적 특징
    • LLM의 코딩 능력을 활용하여 복잡한 로직 구현
    • 사용자 정의 예제와 플러그인을 통해 도메인 특화 지식 통합
    • 복잡한 데이터 구조에 대한 효율적인 처리
    • 다중 라운드 통신을 통한 작업 수행 능력

XAgent: Autonomous AI Agent Revolutionizing Complex Task-Solving (2024)


참고

profile
Sr. Data Scientist at AWS

1개의 댓글