Toolformer (KO)
Toolformer — 대형 언어 모델(LLM)이 외부 도구를 API 호출을 통해 자율적으로 사용할 수 있도록 하는 접근 방식입니다[1]. 이 방법은 2023년 Meta AI Research 연구진이 스페인 폼페우 파브라 대학교(Universitat Pompeu Fabra)와 공동으로 제안하였습니다. 논문 「Toolformer: Language Models Can Teach Themselves to Use Tools」(Timo Schick et al., 2023)에서 저자들은 다음과 같은 역설을 지적합니다. 현대의 LLM은 텍스트 예시만으로 복잡한 새로운 과제를 해결하는 인상적인 능력을 보이지만, 정작 기본적인 연산이나 사실 검색과 같은 기초 연산은 신뢰할 수 있는 수준으로 수행하지 못하는 경우가 많다는 것입니다[1]. 이러한 한계를 극복하기 위해 연구팀은 검색 엔진, 계산기, 번역 서비스 등 외부 도구를 스스로 선택하고 호출하는 방법을 자기 학습하여 다양한 과제의 수행 품질을 높이는 Toolformer 모델을 개발하였습니다[1]. 이 모델은 2023년 2월 arXiv에 프리프린트 형태로 공개되었으며, 이후 NeurIPS 2023 학회에 채택되어 공식적으로 인정을 받았습니다[2].
기본 아이디어 및 모델 기능
Toolformer는 어떤 도구를 호출할지, 언제 호출할지, 어떤 매개변수를 전달할지, 그리고 얻은 결과를 생성 중인 텍스트에 어떻게 통합할지를 스스로 결정할 수 있는 fine-tuning된 언어 모델입니다[3]. 학습은 자기 지도(self-supervised) 방식으로 구성되며, 모델이 API 사용 예시를 스스로 생성하고 평가합니다. 각 도구에 대해 소수의 시연 예시(문자 그대로 몇 가지 예시)만 있으면 충분합니다[3]. 기존 접근 방식과 달리, 도구 통합을 위한 대규모 레이블링이나 인간 중심의 템플릿이 필요하지 않습니다. 모델이 특정 API를 언제, 어떻게 활용할지 스스로 학습하면서도 전반적인 언어 능력을 유지하며 좁게 정의된 과제에 국한되지 않습니다[1].
저자들은 간단한 API 호출을 통해 접근 가능한 다양한 도구를 Toolformer에 통합하였습니다. 실험 버전에서는 다음 유틸리티들이 사용되었습니다[3]:
- 계산기(Calculator) – 산술 계산 수행을 위한 도구.
- 질의응답(Q&A) 시스템 – 지식 베이스에서 사실적 질문에 대한 답변을 찾기 위한 도구.
- 검색 엔진(2종) – 인터넷에서 최신 정보를 검색하기 위한 도구.
- 기계 번역 시스템 – 언어 간 텍스트 번역을 위한 도구.
- 달력(Calendar) – 날짜 및 시간 정보를 얻기 위한 도구.
각 도구는 텍스트 조각(특별한 텍스트 레이블) 형식으로 표현되어, 모델이 API 호출을 생성 중인 텍스트에 직접 삽입할 수 있습니다[4]. 예를 들어 모델은 현재 문맥에 `[Calculator(...)]` 또는 `[Search("검색어")]`와 같은 구조를 삽입하여 외부 호출이 필요함을 알릴 수 있습니다. 응답을 생성하는 동안 Toolformer는 특수 기호(화살표 →)를 생성하며, 이 기호를 통해 시스템이 생성을 일시 중지하고 해당 API 호출을 실행합니다. 얻어진 결과는 텍스트에 삽입되고, 이후 다음 텍스트 조각의 생성이 이어집니다[4]. 이러한 메커니즘을 통해 모델은 아키텍처를 변경하지 않고도 단일 언어 모듈로서 외부 서비스의 기능을 동적으로 활용할 수 있습니다.
모델 학습 (방법론)
개발자들은 Toolformer의 학습 과정을 여러 단계로 기술하였으며[4], 합성 데이터 생성을 위해 in-context learning 기법을 활용하였습니다[1]:
- API 호출 후보 생성. 먼저 대규모 코퍼스(예: 기사나 웹 페이지)의 텍스트를 가져와, 텍스트를 계속하거나 보완하는 데 잠재적으로 도움이 될 수 있는 도구 호출을 인위적으로 삽입합니다. 이러한 삽입은 각 API 사용에 대해 수동으로 준비된 몇 가지 예시를 기반으로 N-shot 프롬프팅을 활용하여 모델이 스스로 생성합니다[1]. 예를 들어 모델은 「2024년 이 도시의 인구는 [QA("이 도시의 인구는 얼마인가?") → ...] 명이었다」와 같은 단편을 받을 수 있으며, 여기서 QA()는 누락된 데이터를 반환해야 하는 질의응답 시스템 호출입니다. 각 도구에 대해 적합한 문맥이 선별됩니다. 예를 들어 계산기의 경우, 산술 결과가 실제로 필요한 곳—즉 여러 숫자와 「같다」또는 「합계」같은 단어를 포함하는 문장—을 모델이 선택합니다[4].
- API 호출 실행 및 데이터 보강. 이어서 모델이 생성한 모든 호출이 실제로 실행됩니다. 예를 들어 검색 엔진에 요청을 보내거나 계산기로 수식을 계산합니다. 얻어진 답변은 텍스트에 다시 삽입되어 `{답변}` 형태의 삽입이 포함된 완성된 문장 변형을 형성합니다[4][4]. 동시에 답변이 삽입되지 않은 「빈」 변형과 호출이 전혀 없는 원본 텍스트도 이후 비교를 위해 보존됩니다.
- 필터링 및 유용성 자기 평가. 이 단계에서 Toolformer는 생성된 API 삽입 중 어떤 것이 텍스트 후속 내용 예측에 실제로 유용한지를 자체적으로 평가합니다[4]. 세 가지 시나리오에서 언어 모델이 텍스트를 이어나갈 확률을 비교합니다: (가) 호출 없음, (나) 결과 삽입 없이 도구 호출만 있는 경우, (다) 호출과 삽입된 결과가 모두 있는 경우[4]. 특정 API 응답을 추가했을 때 문구의 올바른 후속 내용에 대한 모델 확률이 증가한다면—즉 실제로 모델이 다음 단어를 예측하는 데 도움이 된다면—그 예시는 유용한 것으로 간주됩니다. 확률 향상을 가져오는 삽입만 선택에 남습니다. 이를 통해 도구 호출이 불필요하거나 새로운 정보를 제공하지 못한 경우가 걸러집니다. 마지막으로 모델은 API 호출이 최적으로 삽입된 실제 텍스트 예시를 포함하는 필터링된 dataset으로 fine-tuning됩니다[1]. 학습은 표준 언어 모델링 목표, 즉 도구 호출 결과를 나타내는 token을 포함한 시퀀스의 다음 token을 예측하는 방식으로 수행됩니다.
새로운 도구를 도입하는 데 필요한 것은 그 사용에 대한 소수의 수동 예시뿐이며, 이후 학습 데이터 생성은 자동으로 이루어진다는 점을 강조할 필요가 있습니다[3]. 덕분에 Toolformer 접근 방식은 전문화된 레이블 코퍼스의 존재에 거의 의존하지 않으며 데이터 주석 작업을 최소화합니다. 모델은 API 호출의 형식과 적절한 사용 시점을 스스로 학습하면서 범용성을 유지합니다. 즉, 주어진 과제 해결에 실제로 필요할 때만 도구를 활용합니다[1].
실험 결과
방법론을 실험적으로 검증하기 위해 연구자들은 기존 언어 모델 GPT-J(67억 개 매개변수)—The Pile 코퍼스로 학습된 오픈소스 LLM—를 활용하였습니다[4]. 이 모델을 앞서 설명한 절차로 fine-tuning하여 GPT-J 기반의 Toolformer를 얻었습니다. 새로운 접근 방식의 성능은 수학 문장 문제 풀기, 사실 검색 및 지식 기반 질의응답(QA), 번역, 빈칸 채우기 등 여러 표준 과제에서 zero-shot(예시 없음) 방식으로 평가되었습니다. 테스트 데이터로는 사실적 지식 평가를 위한 Natural Questions, TriviaQA, 산술 수학 문장 문제를 위한 ASDiv, MAWPS, SVAMP, 다국어 QA 벤치마크 MLQA, LAMA 등이 사용되었습니다[5].
결과에 따르면 Toolformer는 많은 과제에서 동일한 크기의 기본 모델을 크게 능가하였습니다[1]. 더욱이 도구를 연결함으로써 상대적으로 소규모인 모델(67억 개 매개변수)이 일부 지표에서 훨씬 더 큰 GPT-3 모델(1,750억 개 매개변수)을 앞설 수 있었습니다[1][6]. 예를 들어 정확한 계산이 요구되는 수학 문장 문제에서 Toolformer는 일반 LLM과 비교해 특히 두드러진 진전을 보였으며, GPT-3조차 오류를 범하는 문제를 계산기를 활용하여 정확하게 풀었습니다[1]. 사실적 질의응답(QA) 테스트에서도 GPT-J 기반 Toolformer는 최신 정보를 위한 인터넷 검색이 가능했기 때문에 GPT-3와 동등하거나 더 나은 응답 품질을 보였습니다[1]. 중요한 것은 새로운 접근 방식이 모델의 전반적인 언어 능력을 저하시키지 않았다는 점입니다. 일반 텍스트의 자연스러운 이어쓰기와 같은 능력에서 Toolformer는 도구 없이도 원래 GPT-J 수준의 자연어 생성 능력을 유지하였습니다[3]. 즉, API 호출 기능의 추가가 모델의 기본 능력을 "빼앗지" 않고 오히려 추가적인 기능으로 확장한 것입니다.
연구의 의의 및 후속 연구
Toolformer의 개발은 합성 데이터 생성과 유용성 자기 평가를 통해 수동 레이블링 없이도 외부 도구 사용을 모델에 학습시킬 수 있다는 원칙적 가능성을 입증하였습니다. 이 성과는 보다 효율적이고 신뢰할 수 있는 대형 언어 모델로 가는 길을 열어줍니다. 사실이나 수학적 규칙을 기억하기 위해 수십억 개의 매개변수를 늘리는 대신, 비교적 소규모 모델이 지식 베이스, 계산기, 서비스 등 외부 자원을 동적으로 활용하여 자체적인 빈틈을 메울 수 있습니다[1]. 이러한 접근 방식은 모델이 존재하지 않는 정보를 만들어내는 「환각(hallucination)」현상을 줄이고, 전체 모델을 재설계하지 않고도 응답 정확도와 지식의 최신성을 높일 수 있게 합니다. 본질적으로 Toolformer는 대형 모델의 언어 능력과 전문 도구의 정확성을 결합하여 "두 세계 최고의 장점"을 실현합니다[3].
Schick과 동료들의 연구는 LLM이 외부 API를 자율적으로 습득하는 것을 최초로 입증한 연구 중 하나로, 연구 커뮤니티에서 큰 관심을 불러일으켰습니다. 이 아이디어를 발전시키는 후속 연구들이 등장하였습니다. 예를 들어 2023년에는 Toolformer의 원리를 그래프 데이터 처리에 적용한 Graph-ToolFormer 모델이 제안되었습니다. ChatGPT가 생성한 프롬프트를 활용하여 Graph-ToolFormer는 언어 모델이 그래프 분석 과제(예: 그래프 속성 획득, 지식 네트워크 처리 등)를 해결하기 위한 외부 도구 호출을 학습하도록 합니다[7]. 또 다른 주목할 만한 개발은 다수의 서드파티 소프트웨어 API를 정확하게 사용하는 데 초점을 맞춘 Gorilla 모델(캘리포니아 대학교 버클리, 2023)입니다[8]. Gorilla는 광범위한 문서화된 함수 모음으로 fine-tuning된 LLaMA 모델로, 과제 설명에 따라 올바른 API 호출을 생성할 수 있으며, 실험에서 라이브러리 및 서비스 호출 형성 정확도에서 GPT-4조차 능가할 만큼 성공적이었습니다[8]. Gorilla에는 문서 검색 메커니즘과의 통합이 구현되어 있어 API 변경 사항에 대한 정보를 최신 상태로 유지하고, 도구 사용 시 오류와 환각을 크게 줄입니다[8]. 이러한 연구들은 Toolformer가 개척한 방향의 중요성을 확인시켜 줍니다. LLM과 외부 도구의 결합은 보다 강력하고 신뢰할 수 있는 AI 시스템을 만들기 위한 유망한 경로로 여겨집니다.
도구를 언어 모델에 통합하는 아이디어는 연구뿐만 아니라 산업계에서도 발전하고 있다는 점이 주목됩니다. 2023년 3월 OpenAI는 ChatGPT 플러그인 시스템을 공개하였습니다. 이는 모델을 외부 서비스(웹 브라우저, 지식 베이스, 연산 엔진 등)에 연결하여 최신 정보를 얻고 계산을 수행할 수 있도록 하는 특별한 인터페이스입니다[9]. 사용자들은 오래전부터 이러한 기능을 요청해왔으며, 플러그인의 등장은 사실상 Toolformer와 유사한 개념을 실용적으로 구현한 것입니다. 즉, 다양한 사용자 요청을 처리할 때 모델의 기능을 확장하기 위한 "도구"로 모델을 보강하는 것입니다[9]. 이처럼 Toolformer는 대형 언어 모델이 외부 지식과 연산을 필요에 따라 활용할 수 있는 플랫폼이 되는 AI 발전의 전반적인 흐름과 맥을 같이합니다. Meta AI와 UPF 팀이 수행한 이 연구는 LLM이 수동 지도 없이도 도구 사용을 스스로 학습할 수 있음을 보여줌으로써 이 방향의 중요한 기반을 마련하였으며, 그로써 보다 범용적이고 안전한 지능형 보조 시스템에 한 걸음 더 가까워졌습니다[1][3].
링크
- arXiv의 원문 논문 「Toolformer: Language Models Can Teach Themselves to Use Tools」
- Synced Review의 Toolformer 개요
- OpenReview의 Toolformer 페이지
- Medium의 Toolformer 개요
- arXiv의 Gorilla 모델 논문
- OpenAI 공식 사이트의 ChatGPT 플러그인 페이지
참고 문헌
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
- Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
- Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
- Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
- Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
- OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
- Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Schick, T. et al. (2023). Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.
각주
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [1]
- ↑ Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [4]
- ↑ «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
- ↑ Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
- ↑ Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
- ↑ 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
- ↑ 9.0 9.1 «ChatGPT plugins». OpenAI. [9]