논문 리뷰 : Toolformer: Language Models Can Teach Themselves to Use Tools

서준형·2026년 1월 8일

논문 리뷰

목록 보기
9/11

논문 링크 : https://arxiv.org/abs/2302.04761

❖ 논문 선정 이유

  • 이전 리뷰에서 ReAct 논문을 읽으며 LLM이 단순히 답을 생성하는 모델을 넘어서 추론과 행동을 결합한 Agent 형태로 확장될 수 있다는 점을 배웠음

  • 다만 ReAct에서는 도구를 언제 사용할지에 대한 판단이 모델이 학습한 결과라기보다는 프롬프트 설계에 많이 의존한다는 한계가 있었으며 이런 점에서 LLM이 도구를 써야 할 타이밍 자체를 학습할 수는 없을까라는 궁금증이 생겼고 그 질문에 대한 답으로 Toolformer 논문을 읽게 되었음


❖ INTRODUCTION

  • Toolformer는 대규모 언어 모델이 외부 도구를 언제 사용해야 하는지를 프롬프트나 규칙이 아닌 학습을 통해 스스로 배우도록 만드는 접근이며 기존 LLM은 계산이나 검색과 같은 작업에서 한계를 보였으며 이를 보완하기 위해 API 형태의 외부 도구를 함께 사용하는 방법들이 제안되어 왔음

  • 하지만 대부분의 방법에서는 도구를 사용하는 타이밍이 사람이 설계한 프롬프트에 의존했으며 이 논문은 이러한 문제를 해결하기 위해 도구 사용을 하나의 선택 행동으로 보고 그 선택이 실제로 모델의 예측을 개선하는지 여부를 기준으로 학습 데이터에 포함시킬 수 있는 구조를 제안함

  • 모델이 문장을 생성하는 과정 중 도구를 사용해본 결과가 도움이 된다면 그 사용을 학습하고 그렇지 않다면 버리는 방식임

  • 위 그림은 Toolformer의 전체 흐름을 질문 응답 도구 예시이며 먼저 기존 언어 모델 데이터셋에서 문장의 특정 위치를 선택한 뒤에 그 위치에 삽입할 수 있는 여러 API 호출 후보를 샘플링하고 각 API를 실제로 실행해 응답을 얻고 도구 사용 전후의 예측 성능을 비교하여손실을 줄이는 경우에만 해당 API 호출을 유지함

  • 이 과정을 거쳐 최종적으로 생성된 데이터셋은 원래 텍스트에 도구 호출과 그 결과가 자연스럽게 섞인 형태가 되며 모델은 이를 통해 도구를 언제 사용하는 것이 도움이 되는지를 학습할 수 있게 되며 이러한 방식은 도구 사용을 사람이 정해주는 것이 아니라 모델이 스스로 판단하도록 만든다는 점에서 기존 ReAct 기반 접근과 중요한 차이를 가짐

ToolformerLLM이 외부 도구(API)를 언제 사용해야 하는지를 프롬프트가 아닌 학습을 통해 스스로 판단하도록 만드는 접근임



❖ APPROACH

  • Toolformer의 핵심 접근 방식은 기존 언어 모델 데이터셋에 도구(API) 사용 예시를 자동으로 생성하고 그중 실제로 도움이 되는 경우만 학습에 활용하는 것이며 전체 과정은 크게 세 단계로 나눌 수 있음

1. API 호출 후보 샘플링

  • 이 그림은 Toolformer에서 API 호출 후보를 생성하는 과정을 보여주고 있으며 모델은 기존 언어 모델 학습 데이터에서 문장의 특정 위치를 선택한 뒤 그 지점에서 문장을 완성하는 데 도움이 될 질문을 스스로 만들어 QA(question answering) API 호출 형태로 텍스트에 삽입함

  • 이때 선택되는 위치는 다음 토큰을 예측하는 과정에서 외부 정보나 계산이 도움이 될 수 있는 지점이며 각 위치마다 여러 개의 API 호출 후보가 생성됨

    • 예를 들어 질문 응답 도구의 경우 도시의 별명이나 국가와 같은 추가 정보를 묻는 질문이 API 호출 후보로 만들어짐
  • 이 단계에서는 API를 실제로 실행하지 않고 도구 사용이 가능해 보이는 위치와 질문을 생성하는 것이 목적임

2. API 호출 실행

  • 생성된 각 API 호출 후보를 실제로 실행하여 결과를 얻으며 이 단계에서 API는 단순한 텍스트가 아니라 검색이나 계산과 같은 외부 도구 역할을 함

  • API 실행 결과는 이후 모델의 예측에 사용될 수 있는 추가 정보로 활용됨

3. API 호출 필터링

  • Toolformer의 가장 중요한 단계는 API 호출이 실제로 도움이 되었는지를 판단하는 과정이며 API 호출을 사용했을 때와 사용하지 않았을 때의 다음 토큰 예측 손실을 비교하여 손실을 줄이는 경우에만 해당 API 호출을 유지함

  • 반대로 성능 개선에 도움이 되지 않는 호출은 제거되고 이 과정을 통해 도구 사용이 모델의 예측을 개선하는 경우만 학습 데이터에 포함되게 됨

4. 도구 사용이 포함된 데이터셋 생성

  • 필터링을 통과한 API 호출과 그 결과는 원래 문장과 함께 하나의 새로운 학습 데이터로 구성되고 이렇게 생성된 데이터셋을 사용해 모델을 학습하면 모델은 도구를 언제 사용하는 것이 유용한지를 자연스럽게 학습할 수 있게 됨

Toolformer는 문장 생성 과정에서 도구 사용 후보를 생성하고 실제로 도움이 되는 경우만 학습에 활용해 모델이 도구 사용 타이밍을 스스로 배우도록 함



❖ TOOLS

  • Toolformer는 LLM이 자체적으로 해결하기 어려운 작업을 보완하기 위해 여러 종류의 외부 도구를 API 형태로 사용하였으며 논문에서 도구는 특정 기능을 수행하는 외부 함수로 정의되며 모델은 필요하다고 판단될 때 해당 도구를 호출하도록 학습됨

논문에서 사용한 대표적인 도구

Question Answering (QA)

  • 텍스트를 완성하는 데 필요한 사실 정보를 얻기 위한 도구로 도시의 별명이나 국가와 같은 정보를 질문 형태로 요청함

Calculator

  • 간단한 산술 계산이나 수치 연산이 필요한 경우 사용됨

Search

  • 모델이 알기 어려운 외부 지식을 검색을 통해 가져오는 데 사용됨

Calendar / Date 관련 도구

  • 날짜 계산이나 시간 정보가 필요한 경우 활용됨

중요한 점은 이 도구들이 특별한 구조를 가지는 것이 아니라 API 호출 형태로 외부 기능을 가져오는 일반적인 방식이라는 것이며 Toolformer의 핵심은 도구의 종류가 아니라 모델이 도구를 언제 사용해야 하는지를 학습한다는 점에 있음



❖ EXPERIMENT

실험 목적

  • 실험의 목적은 하나이며 논문에서 실험을 통해 확인하고 싶은 것은 모델이 추가 감독 없이 외부 도구를 언제, 어떻게 사용할지 스스로 결정할 수 있는가와 그게 성능 향상으로 이어지는가를 보고 도구를 쓸 수 있냐가 아니라 도구를 판단해서 쓰는 능력을 학습했는지가 핵심임

Baseline Models

  • 실험에서는 Toolformer의 효과를 비교하기 위해 총 네 가지 모델 설정을 기준으로 성능을 평가했음

    • 먼저 GPT-J는 별도의 파인튜닝 없이 사용한 기본 언어 모델로 도구 사용이나 추가 학습 없이 순수한 사전 학습 모델의 성능을 나타냄

    • GPT-J + CC는 CCNet에서 추출한 데이터셋 C로 파인튜닝한 모델이지만 이 경우에는 API 호출이 전혀 포함되지 않은 데이터로 학습되며 단순한 추가 학습 효과만을 확인하기 위한 비교 대상임

    • Toolformer는 API 호출이 포함된 데이터셋 C*로 파인튜닝한 모델이고 학습 과정에서 도구 사용 예시를 함께 학습하며 추론 시에도 필요에 따라 API를 실제로 호출할 수 있음

    • 마지막으로 Toolformer (disabled) 는 Toolformer와 동일한 방식으로 학습되었지만 추론 단계에서는 API 호출을 비활성화한 모델

도구를 쓰는 태스크에서 확실한 성능 향상

  • Toolformer는 여러 downstream task에서 평가됨

    • 사실 기반 QA (LAMA, WebQuestions, TriviaQA 등)
    • 수학 계산 (ASDiv, SVAMP, MAWPS)
    • 시간 정보가 필요한 태스크 (TempLAMA, DATESET)
    • 다국어 QA (MLQA)
  • 여기서 중요한 관찰은 계산이 필요한 문제에서는 Calculator, 사실 정보가 필요한 문제에서는 QA / Wikipedia Search, 다국어 문제에서는 Machine Translation처럼 태스크에 맞는 도구를 자동으로 선택한다는 점임

단순히 도구를 많이 쓰는 게 아니라 문제 유형에 따라 다른 도구를 사용하는 패턴을 보임

Toolformer (disabled)

  • 또 하나 중요한 실험은 Toolformer (disabled) 설정인데 이는 학습 단계에서는 API 호출이 포함된 데이터로 모델을 학습시키되 추론 단계에서는 실제 도구 사용을 막은 모델

  • 이 경우에도 Toolformer는 GPT-J나 GPT-J + CC와 비교해 비슷하거나 더 나은 성능을 보였으며 이는 Toolformer가 단순히 도구를 잘 사용하는 모델에 그치는 것이 아니라 도구 사용을 통해 모델 자체의 추론 능력 또한 강화되었음을 의미함

외부 도구는 추론 시에만 쓰이는 보조 수단이 아니라, 모델의 내부 표현을 개선하는 학습 신호로 작용함

언어 모델링

  • 도구 사용을 학습에 포함하면 기본 언어 모델링 성능이 저하될 수 있다는 우려가 있으며 이를 확인하기 위해 논문에서는 WikiText와 CCNet와 같은 언어 모델링 데이터셋에서 perplexity를 별도로 측정함

  • 실험 결과, API 호출이 포함된 데이터로 학습하더라도 언어 모델링 성능은 크게 저하되지 않았으며 도구 사용이 기존 언어 모델의 기본 능력을 해치지 않음을 확인할 수 있었음

도구 사용은 기존 언어 모델의 기본 성능을 해치지 않고 추가될 수 있음을 확인함

도구 사용 여부

  • 또 하나의 실험 결과는 모델 크기에 따른 차이인데 실험에 따르면 파라미터 수가 작은 모델에서는 도구 사용으로 인한 성능 향상이 거의 나타나지 않았으며 반면 일정 규모 이상, 약 7억 파라미터 이상의 모델부터는 도구를 효과적으로 활용하는 능력이 나타남

Toolformer의 접근은 충분한 규모의 모델에서 의미를 가지는 방법임을 알 수 있음



❖ ANALYSIS

  • 그래프는 모델 크기에 따른 성능 변화를 보여주며 작은 모델에서는 Toolformer와 Toolformer (disabled) 모두 성능이 낮아 도구 사용의 효과가 거의 나타나지 않는 것을 볼 수 있음

  • 반면 모델 크기가 커질수록 Toolformer의 성능이 빠르게 증가하며 실제 API 호출이 가능한 경우가 가장 높은 성능을 보이고 이는 도구 활용 능력이 충분한 모델 규모에서 학습되며 추론 단계에서의 실제 도구 사용이 성능 향상에 중요함을 의미함

모델이 충분히 커질수록 Toolformer는 도구를 효과적으로 학습하고 활용하며 실제 API 호출은 대규모 모델에서도 여전히 중요한 성능 향상 요인으로 작용



❖ Limitations

도구 연쇄 사용

  • 도구를 연쇄적으로 사용하는 능력이 없으며 Toolformer는 하나의 도구 출력값을 다른 도구의 입력으로 사용하는 multi-step tool chaining을 학습하지 못하는데 그 이유는는 각 API 호출이 독립적으로 생성되기 때문임

도구 상호작용

  • 도구를 상호작용적으로 사용하지 못하며 검색 도구와 같이 여러 결과를 탐색하거나 질의를 수정하며 반복적으로 사용하는 방식은 지원하지 않음

입력 문구 민감

  • 입력 문구에 민감하여 API 호출 여부가 입력 문장의 표현 방식에 따라 달라지며 이는 LLM이 프롬프트에 민감하다는 기존 특성과 맞닿아 있음

학습효율

  • 학습 효율이 낮아서 대규모 데이터 중 실제로 유용한 도구 호출 예시는 매우 적어 데이터 대비 학습 효율이 낮은 편임

도구 사용 비용

  • 도구 사용 비용을 고려하지 않는데 이는 API 호출로 발생하는 계산 비용이나 리소스 비용을
    의사결정 과정에 반영하지 않는 것임


❖ 논문 후기

  • 이번 논문은 ReAct에 이어 LLM의 발전 흐름을 이해할 수 있었던 논문이였는데 최근 Agent를 활용하는 연구실과 연구 주제가 늘어나고 있는 만큼 그 개념을 제대로 이해할 필요가 있다고 느껴 하나씩 관련 논문을 읽어보고 있음

  • Toolformer는 ReAct에서 제시된 Agent 개념을 한 단계 더 확장하여 프롬프트 수준이 아니라 학습을 통해 도구(API) 사용을 결정한다는 점에서 인상 깊었고 특히 API를 항상 사용하는 것이 아니라 필요한 경우에만 호출하도록 학습된다는 점이 LLM이 보다 능동적인 Agent로 나아가는 방향을 보여준다고 느꼈음

  • 아직 연쇄적인 도구 사용이나 상호작용까지는 다루지 못하지만 도구 사용을 하나의 학습된 행동으로 만든 첫 시도라는 점에서 의미가 크다고 생각하고 이 논문을 통해 이후 등장하는 Self-RAG나 Tool-augmented Agent 연구들이 어떤 문제의식에서 출발했는지 이해할 수 있는 기준점을 잡을 수 있었음

논문 만족도 : ⭐️⭐️⭐️ (ReAct의 한계를 개선한 부분과 Agent 개념에 조금 더 가까워진 느낌을 받아서 좋았음)
논문 이해도 : ⭐️⭐️⭐️⭐️ (복잡한 수식 위주보단 개념과 실험 위주로 진행되어 이해하기 쉬웠음)
Agent 관심도 : ⭐️⭐️⭐️ (agent의 관심을 조금씩 더 가져보려고 노력중)

2개의 댓글

comment-user-thumbnail
2026년 1월 19일

이해가 쏙쏙 됩니다! 좋은 글 감사합니다~

답글 달기
comment-user-thumbnail
2026년 2월 23일

설명력이 마치 논문의 저자 같아요 호호

답글 달기