- 2026년 7월 17일 오전 10:52
- 조회수: 410
INFORMATION
- 2026년 7월 17일
- 오전 12시 ~
온라인 비디오 시청 (YouTube)
김수림
TOPIC
On-Line Video
OVERVIEW
요약: 최근 생성형 인공지능과 대규모 언어 모델(Large Language Models, LLMs)은 단순 텍스트 생성을 넘어, 스스로 판단하고 행동하는 자율형 에이전트로 진화하고 있다. 이러한 에이전트가 복잡한 현실 문제를 해결하려면 검색, 계산, 외부 API 호출 등 다양한 도구를 상황에 맞게 활용하는 능력이 필수적이다. 그러나 초기 LLM은 학습 데이터에만 의존해 최신 정보에 취약하였고, 이는 환각(hallucination) 문제로 이어졌다. 무엇보다 생각(reasoning)과 행동(acting)이 단절되어, 도구를 언제·어떻게·왜 써야 하는지 스스로 판단하지 못한다는 근본적 한계가 있었다. 이를 극복하기 위해 Tool LLM이라는 연구 흐름이 등장했다. Tool LLM은 생각과 행동을 하나의 흐름으로 엮어 도구 사용의 근거를 스스로 마련하고, 여러 도구 간 협업을 계획하며, 나아가 방대한 실세계 도구 풀에서도 필요한 도구를 유연하게 선택할 수 있게 한다. 본 세미나에서는 LLM이 정적 지식 베이스에서 벗어나 외부 도구와 상호작용하기 시작한 초기 연구들을 소개한다.
청취자 후기
이정민
이번 세미나는 초기 LLM이 학습된 내용에만 집중하여 새로운 정보에는 취약하기 때문에 hallucination이 발생하는 문제를 지적하며 발전해온 Tool LLM에 대해 소개해주었다. 예전에는 단순 검색 기반의 RAG 프레임워크를 중점으로 연구들이 많이 진행되었는데, 이제는 다양한 도구를 활용하는 Tool LLM 방향으로 점차 진화한 것 같다.
ReAct는 thought-action-observation 방향으로 LLM이 지속적인 상호작용을 하며 추론과 도구 사용을 결합하였다. HuggingGPT는 아예 어떤 LLM이 사용자가 요구하는 task에 적합한지도 retrieval 하며, 다양한 LLM의 능력들을 적절히 사용하였다. 특히, 사용자 요청을 하위 task로 분리하며 능력을 강화하는 task planning 방식이 제일 핵심 부분이었다. 마지막으로 ToolLLM은 아예 새로운 데이터셋을 구축하고, LLaMA를 튜닝하여 더 우수한 성능을 가진 LLM으로 만들었다. ChatGPT를 사용하여 API collection-instruction generation-solution path annotation 순서로 명령-대화 로그 형태의 대규모 데이터셋을 새롭게 구축하였다. 학습 과정에서는 API retriever로 도구들을 retrieval하고 구축한 데이터셋으로 LLaMA를 튜닝한다. 이 때, BERT가 API retriever로 활용되는데, 아직까지도 BERT 기반 모델이 retriever로 사용되고 있는 부분은 신기했다.
이전에 산학 과제를 RAG 관련하여 진행하면서 RAG만 하더라도 엄청 대단한 연구라고 생각했었는데, 이제 그것을 더 뛰어넘는 연구들이 많이 개발된 것 같다. 특히 이런 생성 모델 분야는 너무 빨리 발전되서 많이 공부를 해야겠다는 생각이 들었다. 수림이가 기존 LLM의 한계부터 그 한계를 어떻게 극복하려 했는지를 잘 설명해줘서 이해하는데 많은 도움이 되었고, 실험 파트에서 단순히 성능이 좋았다가 아니라 저자들이 주장하고자 했던 부분을 자세히 설명해주어 이 부분도 많은 도움이 되었다. 좋은 세미나를 준비하느라 고생한 수림이에게 고맙다는 말을 전하며, 본 세미나 후기를 마친다.
허종국
기존 거대 언어 모델(large language model, LLM)은 대량의 corpus로 사전 학습 되어 언어 번역 및 질의 응답 태스크에서 우수한 성능을 보였다. 하지만 LLM은 일반적으로 next token prediction 기반 self-supervised learning으로 학습되기 때문에, 사실 판단 능력이 존재하는 것이 아니라 단순히 다음 토큰이 생성될 확률에 기반하여 답변을 생성한다. 이러한 방식으로 그럴듯한 답변을 생성해내는 문제를 hallucination이라고한다. 이러한 hallucination 문제는 LLM이 기존 학습 데이터에 존재하지 않았거나 갱신된 최신 정보에 접근할 수 없어 잘못된 답변을 내놓거나, 정밀한 계산들을 실패하게 만든다. 이러한 문제를 해결하기 위해 최근에는 LLM이 바로 답변을 내놓는 대신, 외부 api 혹은 도구를 '호출'하여 중간 결과값을 반환받은 뒤, 이를 기반으로 답변을 생성하는 Tool LLM 연구가 활발하게 이루어져 있으며 우리가 일반적으로 쓰는 ChatGPT 및 Claude도 이러한 도구들에 의존하고 있다.
ReAct는 tool calling 혹은 function calling 등 도구를 호출하는 llm의 초기 연구로 볼 수 있다. ReAct가 등장하기 전까지의 LLM은 chain of thought (CoT)를 활용해서 추론 능력을 강화하거나, SayCan 모델의 backbone VLM처럼 단순히 현재 상태를 보고 행동 값만 뱉는 모델이었다. ReAct는 추론과 행동을 연결시킨 방법론으로써 기존 행동 기반 llm의 행동 공간에 '생각/추론'을 별개의 행동으로 추가하였다. llm이 context를 입력받은 후 생각 혹은 행동 둘 중 하나를 선택하게 되며, 강화학습의 markov decision process (MDP)처럼 행동은 환경의 상태를 변화시킨다. 다만 행동 중 '생각/추론'의 경우 상태가 아니라 내부의 context만 업데이트한다. ReAct는 생각과 행동을 동시에 연결시킨 파이프라인으로써 의미가 있을 뿐만 아니라, 이러한 파이프라인을 처음부터 다시 학습시키기보다 in-context learing 방식을 활용한다는 장점이 있다.
HuggingGPT는 복잡한 사용자 요청을 하위 단위 subtask로 분해하고 계획적으로 오케스트레이션하기 위해 huggingface api에 등록된 다양한 모델들을 retrieval 및 활용하는 방법론이다. Huggingface에 모델을 올렸을 때 model card에 있는 description이 생기게 되는데 이를 추후 subtask를 활용하기 위한 model selection에 활용하게 된다. HuggingGPT는 1. 사용자 요청을 sub task로 분해한뒤, 각 태스크를 json 형태로 parsing한다. 2. 이후 각 sub-task를 풀기 위한 모델을 배정한다. 3. task를 순서에 맞게 실행한다. 이때, 선행 태스크 출력이 후행 태스크에 들어가야하는 경우, 심볼을 삽입한 후, 이후 선행 태스크 결과로 동적 치환한다. 4. 1~3까지의 과정을 통해 추론 결과를 얻고 이를 기반으로 최종 response를 산출한다.
Tool-LLM은 폐쇄형 모델이 아닌 개방형 모델에 대한 tool 사용 능력을 극대화하기 위해, 세 가지 한계점을 극복하였다: 1. 폭넓은 실제 API 및 도구 활용 데이터 구축 (ToolBench), 2. 단방향 추론 실패에 대한 복구 능력 강화를 위한 depth first search (DFS)기반 트리 추론, 그라고 3. multi-round추론을 위한 API retriever 학습.
최근 MCP나 function calling, tool calling, lang chain 등의 기술에 대해 뒤늦게 알게되면서 도구를 활용하는 llm에 대해 공부해보고 싶었으나, 어떠한 논문을 우선적으로 읽어야할지 파악하지 못했었다. 김수림 연구원이 대표 연구를 잘 선정해서 좋은 세미나를 만들어주었으며, 이를 기반으로 파생 연구들을 폭넓게 이해할 수 있을 것 같다. 김수림 연구원에게 감사의 말을 전한다.
김지현
최근 LLM-based tool-using agent에 관해서 연구를 시작하고 있어서, 아주 재미있게 들었던 세미나였다.
본 세미나에서는 LLM이 tool을 효과적으로 활용할 수 있는 기법을 제안한 3가지 연구를 소개해주었으며, ReAct, HuggingGPT, Tool-LLM이 그것이다. 각 연구는 모두 LLM이 외부 도구를 사용해 사용자 요청을 해결한다는 공통점을 갖되, ReAct는 에이전트의 행동 방식, Hugging GPT는 전문 모델들을 조합하는 시스템, ToolLLM은 도구 사용 능력을 학습시키는 체계를 제안한다.
1. ReAct
ReAct는 최근 tool-using agent의 기반이 되는 프레임워크이다. LLM이 답을 도출하기 위해 추론하는 것(reasoning)과 외부 환경에서 행동하는 것(acting)을 별도로 다룬 기존연구의 접근법에서 벗어나, 추론 결과를 기반으로 행동을 안내하고, 행동으로 얻은 정보로 다시 추론을 수정하도록 만드는 방식을 제안했다. 즉, tool 호출 순서를 확정하는 대신, 반환된 정보에 따라 다음 행동을 결정하는 프레임워크를 만든 것이다. 다만, 이 반복 구조 자체가 도구 선택이나 추론의 정확성을 보장하지는 않기에, 요즘엔 이 정확성을 어떻게 높일 수 있을지를 개인적으로 고민하고 있다.
2. HuggingGPT
본 연구는 이미지, 음성, 영상 등 다양한 작업을 하나의 모델로 모두 처리하기 어렵다는 점을 감안하여, 사용자의 요청 처리에 적합한 전문 모델들을 함께 작동신키는 방법론을 제안한다. 이를 위해 (1) 요청을 하위 작업으로 분할하고 (task planning), (2) 각 작업에 맞는 모델을 선택하고 (model selection), (3) 선택한 모델을 실행하고 (task execution), (4) 실행 결과를 모아 사용자에게 답하는 (response generation) 프레임워크를 개발하였다.
3. ToolLLM
ToolLLM은 오픈소스 LLM의 도구 사용 능력을 향상시키기 위해 데이터 구축, 모델 학습, 성능 평가를 함께 제안한 연구이다. 대규모 실제 API를 수집하고, ChatGPT가 생성한 사용자 요청과 실제 API 호출 결과를 포함한 해결 경로로 ToolBench를 구축한 뒤, 이를 이용해 LLaMA를 지도 미세조정하여 ToolLLaMA를 개발했다. 또한 관련 API 후보를 검색하는 API retriever와 여러 해결 경로를 탐색하는 DFSDT를 도입했으며, 요청 처리의 성공 여부와 해결 경로의 품질을 자동으로 평가하는 ToolEval을 제안했다.
최근에 개인연구 주제로 tool calling 성능을 개선하고자 하는 시도를 하고 있는데, 선행연구를 읽다보면 거의 대부분의 에이전트 구조가 ReAct에 기반하고 있고, ToolBench 데이터셋을 활용하며, ToolLLaMa를 비교방법론으로 활용하고 있다. 관련해서 공부를 계속 해나가고 있는 와중 잘 요약된 자료가 있어서 다시 한 번 복기할 수 있는 좋은 기회가 된 것 같다. 수림이도 나도 좋은 연구 할 수 있기를 응원하며 세미나 후기를 마친다.
심세진
이번 세미나는 LLM이 외부 도구를 능동적으로 쓰는 Tool LLM을 다뤘다. LLM은 학습 시점의 데이터에만 의존하다 보니 최신 정보에 취약하고 정밀 계산에 약하며, 모른다고 답하는 대신 그럴듯하게 지어낸다. 날씨나 환율을 물으면 API를 불러 확인하면 되지만 언제 왜 어떤 도구를 써야 할지 판단하지 못하면 도구는 무용지물이고, 결국 생각과 행동이 끊겨 있는 게 진짜 문제라는 것이다. Tool LLM은 그래서 사고, 행동, 관찰을 반복하며 스스로 다음 행동을 정하는 구조를 말한다.
ReAct는 가장 단순한 답을 내놓는데, 행동 공간에 언어를 더해 "생각"도 하나의 행동으로 취급한다. 생각은 환경을 바꾸지 않고 context만 갱신하니, 검색 결과를 보고 다시 생각을 고쳐 다음 검색을 조정할 수 있다. 별도 학습 없이 Thought-Action-Observation 예시만 프롬프트로 주면 되는 in-context learning이라 설계가 가볍다. 실험에서 CoT는 내부 지식만으로 잘못 추론하고 Act-Only는 검색 결과를 해석하지 못해 실패한 행동을 반복하는 반면, ReAct는 둘을 번갈아 쓰며 정답에 도달했다.
HuggingGPT는 문제를 다르게 봤다. 현실의 요청은 여러 하위 태스크로 이루어져 있으니 LLM을 컨트롤러로 두고, 요청을 태스크로 쪼개고, HuggingFace 모델 설명을 보고 각 태스크에 모델을 배정하고, 의존성을 고려해 실행한 뒤 결과를 종합한다.
ToolLLM은 오픈소스 모델의 도구 사용 능력 자체를 학습으로 끌어올린다. RapidAPI를 크롤링해 16000개 넘는 실제 API를 모으고, ChatGPT로 명령을 생성한 뒤 그 명령을 실제로 풀게 해서 풀이 경로까지 자동으로 주석한 것이 ToolBench다. 이때 쓰는 추론 방식이 DFSDT인데, ReAct가 한 방향으로만 사고해 한 번 틀리면 에러가 계속 전파되는 문제를 트리 탐색으로 푼다. 풀이는 하나만 찾으면 되니 BFS 대신 DFS를 써서 API 호출 비용을 아낀다.
흥미로웠던 건 ChatGPT에 DFSDT를 붙인 쪽이 GPT-4에 ReAct를 붙인 쪽보다 나았다는 결과다. 약한 모델에 강한 전략을 얹는 편이 강한 모델에 약한 전략을 얹는 것보다 낫다는 뜻인데, 최근 흐름이 모델을 키우는 쪽보다 도구와 탐색 전략을 설계하는 쪽으로 옮겨가는 이유가 여기 있는 것 같다.
내 연구와 직접 겹치지는 않지만, ToolBench를 만드는 방식이 흥미로웠던 것 같다. 사람 개입 없이 ChatGPT로 명령과 풀이 경로를 통째로 만들어 학습 데이터로 쓰는 구조인데, 라벨이 부족한 상황에서 강한 모델의 출력을 신호로 삼는다는 점에서 내가 다루는 semi-supervised 세팅과 유사하다고 느꼈다. 다만 그 신호의 품질에 대한 평가마저 ChatGPT를 쓰고 있어서 평가에 대한 불안정이 있지 않나? 라는 생각이 들었다. 새로운 분야를 알기 쉽게 정리해준 수림이에게 고맙다는 이야기를 전하며 후기를 마친다.