Agent

minyou·2024년 9월 18일
0

공부

목록 보기
3/9
post-thumbnail

Agent 사용목적?

  • LLM 가지고는 대화형식의 질의응답방식
  • 조금 더 자동화 목적
  • 규칙을 정해놓지 x/ ai가 적절한 상황판단을 한 다음에 적절한 도구 활용해 내가원하는 결과물을 도출

Agent 기초 : LLM중심 에이전트 구축

  • Google Brain: REAC T:Synergizing Reasoning and acting in language models

(1) Hotspot QA
질문 : Apple Remote 외에 원래 Apple Remote와 상호작용하도록 설계된 프로그램을 제어할 수 있는 다른 장치는 무엇인가요?


(1a) 기본적인 즉답
답변 : iPod (틀린답변)


(1b) CoT 프롬프팅 기법을 적용 [고도화된 추론 적용]

생각 : 단계별로 생각해 봅시다.
Apple Remote는 원래 Apple TV와 상호작용하도록 설계되었습니다.
Apple TV는 iPhone, iPad, iPod Touch로 제어할수 있습니다.
따라서 답변은 iPhone, iPad, iPod Touch입니다.
답변 : iPhone, iPad, iPod Touch (틀린답변)

  • 고급 프롬프팅을 써도 LLM이 잘 모르는것이기 때문에 틀린답변

(1c) Act-Only: LLM이 갖고있지 않은 지식에 대해 다른 도구 활용해 답변

행동 1 : 검색 [Apple Remote]
관찰 1 : Apple Remote는 원격 제어 장치 입니다...

행동 2 : 검색[Front Row]
관찰 2 : [Front Row]를 찾을수 없습니다..

행동 3 : 검색[Front Row(소프트웨어)]
관찰 3 : Front Row는ㄴ 중단된 미디어 센터 소프트웨어입니다...

행동 4 : 완료[예] (애플 리모트와 상호작용하도록 설계된프로그램 제어할수 있는 다른 장치에 대한 답변 못함)

  • 웹 검색을 하기만하는거지 실제 웹 검색결과를 가지고 사용자의 질문에 답변하기 위한 추론 X

(1d) ReAct( Reason + Act): CoT, Act-Only장점 섞어서/ 추론과 모르는부분은 새로운도구 활용해/ 생각, 행동, 관찰

생각 1: Apple Remote를 검색하여 원래 상호작용하도록 설계된 프로그램을 찾아야 합니다.
행동 1 : 검색[Apple Remote]
관찰 1 : Apple Remote는 2005년 10월에 Apple이 소개한 원격제어장치입니다. 원래 Front Row 미디어 센터 프로그램을 제어하도록 설계되었습니다.

생각 2 : Apple Remote는 원래 Front Row 미디어 센터 프로그램을 제어하도록 설계되었습니다. [Front Row] 미디어 센터 프로그램을 제어하도록 설계되었습니다. [Front Row]를 검색하여 다른 어떵ㄴ 장치가 이를 제어할수있는지 찾아야 합니다.
행동 2 : 검색[Front Row]
관찰 2 : [Front Row]를 찾을수 없습니다. 유사한 것:['Front Row Seat to Earth', 'Front Row Motorsports', 'Front Row(소프트웨어)',...]

생각 3 : Front Row가 발견되지 않았습니다. [Front Row (소프트웨어)]를 검색해야 합니다.
행동 3 : 검색[Front Row (소프트웨어)]
관찰 3 : Front Row는 중단된 미디어 센터 소프트웨어입니다..

생각 4 : Front Row(소프트웨어)는 Apple Remote 또는 키보드 기능 키로 제어됩니다. 따라서 답변은 키보드 기능키입니다.
행동 4 : 완료[키보드 기능 키]

Agent 구조

  • 두뇌역할 추론능력을 부여하는 LLM

  • 목표를 달성할수 있는 외부 도구 (Langchain 도구 모음 toolkit)

    - 도구에 대한 메뉴얼만 정의
      ex> 사용자가 "검색해줘" -> 웹 검색 / "문서에서 검색해줘" ->문서 검색
      
     (Thought->Action-Obeservation)과정 반복
      
      Invoking: 어떤 검색 도구 썻는지
      Query: 질문에서 핵심 키워드 추출해서
      
      
  1. Thougt : 어떤 도구를 사용해야 할까?

  2. Action : 웹검색

    Invoking: 어떤 검색 도구 썻는지
    Query: 질문에서 핵심 키워드 추출해서

  3. Obersvation : 검색 결과 토대로 observation 수행
    사용자가 궁금해하는 query 정보가 검색된 정보 안에 있는지 관측

           정보가 있으면 -> 
            정보가 없으면 -> 다시 1.Thought 프로세스로

프로세스를 반복해서 원하는 결과가 나오면 RAG를 거치고 결과 도출

LangChain에서 Agent는 주어진 쿼리에 대해 스스로 생각하여 적절한 행동을 하는 대리인
Agent는 자신의 목표를 달성할 때까지 자신에게 주어진 Tool들을 기반으로 Action을 수행한다

단일 에이전트의 한계

  • 단일 에이전트 시스템
    • LLM 기반 Reasoning(계획) - 사용자의 질문에 대해 웹 검색이 필요하겠구나!
    • Act(실행) - 웹검색 기반으로 실행(ex.보고서 작성)

      but 그냥 실무에 쓰기에는 전문성 부족
      하나의 역할안에서만

멀티 에이전트 시스템

여러개의 에이전트가 하나의 작업을 완수하기 위해 협력과 소통

  • 멀티 에이전트 시스템(두개의 에이전트가 서로 협력)
    • Researcher(정보수집): 웹 검색을 기반으로 정보 검색 및 요약
    • Report Writer: 정보기반으로 리포트 작성
      • 각 에이전트가 별도의 전문영역을 맡음
      • 여러번의 대화를 통해 결과물 생성
    • 장점 : 1. 퀄리티있는 결과물 도출 가능(여러번의 대화를 통해)
      2. 퀄리티 올려가는 작업을 자동화가능

멀티 에이전트의 유형

  1. 협업형 멀티 에이전트 : CrewAI, AutoGen, LangGraph
  2. 감독형 멀티 에이전트 : 모든 에이전트들이 평등한 관계를 가지고 소통하는것이 아닌 하나의 감독자 에이전트에게 보고를 하고, 피드백을 받는 과정에서 결과물 고도화
  3. 위계형 멀티 에이전트: 감독형 멀티 에이전트와 동일한 시스템, 그리고 더 고도화

정식 지원하는 모델

https://python.langchain.com/v0.2/docs/integrations/chat/
Tool calling 지원

Llama 기반 모델은 원칙적으로 지원 x

위글은 아래의 동영상을 요약

모두의 AI님의 <AI 에이전트위 원리와 단일, 멀티 에이전트>
https://www.youtube.com/watch?v=1n_Kui6B43Y

테디노트님의 <llama3 로 agent 🤖 만드는 방법 + 8B 오픈 모델로 Agent 구성하는 방법> 참고
https://www.youtube.com/watch?v=04MM0PXv2Fk&t=622s

0개의 댓글