[LangChain] 에이전트(Agent)와 도구(tools)를 활용한 지능형 검색 시스템 구축 가이드
테디노트
오늘 공유 드릴 주제는 "에이전트(Agent)" 입니다.
지난 번 공유드린 RAG 는 지정된 문서 풀(pool) 범위 안에서 원하는 정보를 검색하여 우리가 원하는 답변을 도출해 낼 때 유용한 방법론입니다.
에이전트는 RAG의 확장된 컨셉이라고 말씀드리고 싶습니다.
여기서 핵심은 바로 도구(tools) 인데요.
AI Agent 가 우리가 던진 질문을 해결하기 위하여 단계별 추론을 수행하게 되는데 이 과정에서 "우리가 정의한 도구목록"을 적절히 활용한다는 점이 흥미롭습니다.
쉽게 예를 들어 보겠습니다.
일반 GPT 가구 장인이 있습니다.
GPT 가구 장인은 전세계의 모든 가구 만드는 법을 학습했기 때문에, 우리가 원하는 가구 형태를 말하면 "만드는 방법" 정도는 친절하게 알려줍니다.
하지만, 직접 만들어 주지는 못합니다.
이번에는 Agent 를 활용하여 가구를 만드는 "가구장인 Agent" 를 만들어 보았습니다. 그리고 우리는 "망치" 와 "못"을 도구(tools) 로써 활용할 수 있도록 설정해 주었습니다.
그럼 "가구장인 Agent" 는 주어진 망치와 못을 사용하여 완성된 가구를 만들게 됩니다.
비유가 적절한지는 잘 모르겠으나, 여기서 핵심은 ChatGPT 와 같은 LLM은 범용 모델이라는 점입니다.
Agent 가 각광받는 이유는 이러한 범용 모델에 활용할 수 있는 도구(tools) 를 명확하게 정의해 줌으로써, 우리가 원하는 결과물에 더 근접한 결과를 내놓습니다.
때로는 ChatGPT 가 가지는 한계를 극복할 수도 있습니다
아래는 에이전트가 "검색 도구" 를 손에 쥐었을 때 어떻게 되는지 보여드리는 예시 입니다.
GPT-4 는 2023년 4월까지의 정보를 학습했기 때문에, 2024년 1월 열린 아시안컵 축구 일정에 대해서는 답변하기가 어려울 것 입니다.
여기에 "검색 도구" 를 쥐어주고, 검색한 결과를 토대로 알려달라고 한다면 다음과 같은 답변을 줍니다. 질문: "2024년 아시안컵 대한민국의 축구 경기 결과를 알려줘."
답변: 2024년 아시안컵에서 대한민국 축구 대표팀은 준결승에서 요르단과 맞붙었습니다. 이 경기는 한국시간으로 2024년 2월 7일 자정에 카타르 알라얀의 아흐마드 빈 알리 스타디움에서 열렸습니다. 결과적으로 대한민국은 요르단에게 0:2로 패배하여 결승 진출에 실패했습니다.
하지만, ChatGPT 에도 검색 기능이 플러그인 형식으로 이미 탑재되어 있기 때문에, 실시간 검색도 가능해 졌습니다. 따라서, 앞서 말씀드린 "검색 기능" 만으로는 Agent 를 직접 만들어야 하는 당위성에 의문을 가질 수 있습니다.
그렇지만 Agent 를 활용하는 목적은 "실시간 검색" 에만 국한되지 않습니다.
검색은 수 많은 도구(tools) 들 중 일부일 뿐입니다.
수학 계산 전문도구, 파이썬코드 실행도구, 논문 검색 등등 다양한 도구들이 내제화 되어 있고 손쉽게 가져다 사용할 수 있습니다. 뿐만 아니라, tools 데코레이터로 우리가 작성한 파이썬 코드를 "도구화" 하는 것도 가능합니다.
결국, 혁신적인 Agent 는 상상력과 창의력의 영역이지 대단히 어려운 코딩 기술을 요하는 영역은 아닌게 되었습니다. (물론, 수준 높은 에이전트를 만들기 위해서는 상당히 많은 실험이 뒤따르는 것 같습니다)
긴 글 읽어 주셔서 감사합니다.
아래 링크에서 튜토리얼 코드를 확인해 보실 수 있습니다.
즐거운 명절 되시기를 바랍니다🙏
https://teddylee777.github.io/langchain/langchain-agent/
#gpt #agent #langchain
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 2월 9일 오후 7:06
추
... 더 보기이
... 더 보기