0. Abstract
Language Model이 여러 task에서 뛰어난 성능을 보이지만 (특히 Scale-up할 수록), 비교적 간단한 사칙 연산이나 factual lookup을 어려워하는 것을 확인할 수 있다. 해당 논문에서는 이를 해결하기 위해서 LM이 외부 tool들을 사용하는 방법을 학습시킬 수 있음을 보여준다.
Toolformer라는 모델을 소개하는데, 어떤 API를 언제 사용할지, 어떤 argument를 전달할지, 호출 결과를 어떻게 합칠지를 학습한다. Self-supervised이기 때문에 API마다 몇개의 예제만 작성해주면 된다.
비교적 간단한 방법으로 여러 downstream task에서 좋은 성능을 보이며, 더 큰 모델과 성능이 비슷하고 가장 핵심인 language modeling 능력도 떨어지지 않는다.
1. Introduction
LLM이 여러 task에서 뛰어난 성능을 보이고 있지만, 한계 또한 존재한다:
- 최신 데이터를 모른다는 점
- hallucination
- 데이터가 부족한 언어는 이해를 못한다는 점
- 수학적 능력의 부족
- 시간이 흐른다는 의미를 모름
이러한 문제를 해결하기 위한 간단한 방법은 외부 tools를 활용하는 것이다. 기존 방법들은 human annotation을 많이 필요로 하거나, task-specific한 설정에서 도구를 사용했다. Toolformer 모델은 다음과 같이 새로운 접근 방식을 택한다:
- Self-supervised 방식으로 학습하여 대량의 human annotation는 필요로 하지 않게 한다. (비용 뿐만이 아니라, 인간이 유용하다고 생각하는 것과 모델에게 유용한 것은 차이가 있을 수 있기 때문에 중요하다)
- general하게 할 수 있었던 능력도 그대로 유지되어야 한다.
2. Approach
LM이 다양한 API를 사용할 수 있게 학습시키는 과정은 크게 3단계로 나뉜다.
1) Sampling API Calls language model의 in-context 학습을 통해 API 호출들이 일어날 만한 곳들을 확인한다. API 호출이 들어갈 수 있는 위치를 최대 k개까지 추출한다.
2) Executing API Calls 1)에서 확인한 API 호출들을 모두 실행한다. (결과는 single text sequence이어야 한다.)
3) Filtering API Calls 다음 토큰을 예측하는데 도움이 되는지를 기준으로 필터링을 진행한다. 이때 Loss를 계산하는데, 만약 API 호출을 한 input과 output이 condition으로 주어진 loss 값이 다른 경우들*보다 (threshold만큼) 크다면 API 호출을 사용하는 것이 모델에 도움이 되지 않는 것이기 때문이다.
*① API 호출을 하지 않은 경우, ② API 호출의 output을 안주는 경우
Model Finetuning 이렇게 만들어진 데이터셋을 파인튜닝하는데 사용한다. API 관련 내용을 제외하고는 기존 내용과 똑같기 때문에 어디에 어떤 API를 호출할지를 배우는 것을 자체 피드백만으로도 가능하게 한다.
※ Inference할 때는 텍스트를 생성하다가 “→” 토큰이 생성되면 디코딩을 멈추고 API 호출을 한다.
3. Tools
다양한 외부 tool들을 사용할 수 있는데 두가지 제한 조건이 있다:
① input과 output이 모두 text로 표현될 수 있어야 한다,
② API를 어떤 식으로 사용하고 싶은지 예시를 제공할 수 있어야 한다.
해당 논문에서는 5가지만을 사용한다: ① Question Answering, ② Calculator, ③ Wikipedia Search, ④ Machine Translation System, ⑤ Calender
4. Experiments
다양한 downstream task에서 tool을 적절히 사용하는지 확인하고, 가장 핵심인 language modeling 능력이 유지되는지, 그리고 모델 size에 어떤 영향을 받는지도 확인한다.
QA, 수학, Multilingual, Temporal등 다양한 downstream tasks의 데이터셋에 대해서 zero-shot 성능을 확인한다. 유저가 어떤 tool을 사용하는지 직접 알려주지 않아도 알아서 찾는 것까지 확인해야하기 때문이다.
모델 size가 커질 수록 Toolformer를 사용한 경우와 사용하지 않은 경우 모두 성능이 좋아지지만, 둘 간의 간격은 좁혀지지 않는다.
5. Analysis
<API> 토큰이 가장 확률이 높은 토큰일 때만 호출하는 것(Regular Greedy Decoding)이 아니라, Top-k개 안에 있어도 호출을 하는 전략을 사용할 수 있다. 적절한 k값이 설정된다면, 성능이 높아진다.
6. Related Works
- Language Model Pretraining : 추가적인 텍스트 정보를 pretrain 단계에서 제공하는 방식들이 존재하는데, 기존의 방식들은 Toolformer와 다르게 무조건 추가적인 정보를 제공한다.
- Tool Use : tool을 사용하는 기존의 방식들은 대량의 human supervision이 필요하거나 어떤 tool을 써야 하는지 알려준다. 하지만 Toolformer는 self-supervised 방식으로 학습하는 새로운 접근을 한다.
- Bootstrapping : Bootstrap과 유사한 접근으로 Toolformer는 필터링 단계를 거친 자신의 예측을 기반으로 학습한다.
7. Limitations
tool들은 독립적으로 존재하기 때문에 chain 형식으로 이을 수가 없다는 점, 현재 방식으로는 interactive하게 tool을 사용하지 못한다는 한계가 있다.
그리고 특정 tool을 사용하는 방법을 학습하기에는 데이터셋이 부적합한 경우가 많을 수도 있다.
8. Conclusion
간단한 API들을 self-supervised 방식으로 새롭게 만들어진 데이터셋으로 파인튜닝하여 학습하는 Toolformer는, size가 큰 여러 모델보다도 높은 zero-shot 성능을 보인다.
논문 링크 :
https://arxiv.org/abs/2302.04761
'AI > Paper Review' 카테고리의 다른 글
[논문 리뷰] Self-Refine: Iterative Refinement with Self-Feedback (2) | 2025.01.03 |
---|---|
[논문 리뷰] ReAct: Synergizing Reasoning and Acting in Language Models (0) | 2025.01.02 |
Augmented Language Models: a Survey (1) | 2024.12.30 |
A Survey of Large Language Models (2) | 2024.12.26 |
[논문 리뷰] Interactive Text-to-Image Retrieval with Large Language Models: A Plug-and-Play Approach (PlugIR) (1) | 2024.12.24 |