0. Abstract
해당 survey에서는 1) 추론 능력(reasoning skills)과 2) 외부 tool을 쓰는 능력이 향상된 **Augmented Language Models (ALMs)**를 다룬다. 추론 능력의 향상은 복잡한 문제를 여러 개의 단순한 문제로 쪼개는 것으로 정의되고, 외부 tool은 code interpreter와 같은 외부 모듈을 호출하는 것이다.
ALMs은 기존의 Language Models(LMs)보다 많은 벤치마크에 대해 높은 성능을 보인다.
1. Introduction
LLM을 통해 NLP에서 많은 발전이 있었지만 (ex. Copilot, 구글 검색엔진, ChatGPT), 여러 한계점들이 존재한다.
- 사실이 아니지만 그럴싸한 예측을 내는 것 (non-factual but plausible, aka hallucination)
- 성능을 내기 위해서는 엄청난 수의 parameter가 필요하다는 것
→ 실수가 잦아지고, training & 유지보수가 어려워진다.
→ LLM의 태생적 한계를 보여준다 : 1) single parametric 모델이라는 점과 2) context가 제한되어 있다는 점
⇒ 이러한 한계를 극복하기 위해서 1) 여러 reasoning strategies와 2) 외부 데이터 source를 가져오는 방법을 사용한다. = Augmented Language Models
※ 용어 정의
Reasoning = complex한 task를 여러 개의 subtask로 decompose하는 것. (recursion, iteration 등의 방법 사용)
Tool = 외부 모듈, 추가적인 정보를 수집하거나 virtual/physical world에 영향을 줄 수 있는 도구
Act = 도구를 사용하는 것.
2. Reasoning
핵심 아이디어 : 하나의 문제를 (정답을 맞출 수 있는)여러 단계로 나눠서 최종 정답을 맞추게 하는 것
2.1 Eliciting reasoning with prompting
프롬프트는 크게 2가지 : few-shot, zero-shot이 있다.
few-shot에서는 Chain-of-Thought를 사용한 예시를 프롬프트에 넣어주는 방식을 사용할 수 있다.
zero-shot에서는 “Let’s think step by step”과 같은 문구를 추가함으로써, 조금 부족하지만 few-shot-CoT를 흉내낼 수 있다.
2.2 Recursive prompting
문제를 divide and conquer로 접근해서 분해할 때, 1) 여러 개의 문제를 푼 다음에 합치거나, 2) 순차적으로 풀어서 전 단계 문제의 답을 다음 단계 문제를 해결할 때 사용할 수 있다.
2.3 Explicitly teaching language models to reason
프롬프트에도 단점이 있다. (적절한 예시를 수동으로 제공해야 함, 프롬프트가 길어질 수록 효과가 약해짐)
이러한 문제를 해결하기 위해서 최근에는 1) working memory (임시로 저장하는 역할), 2) 파인튜닝 등의 시도도 이루어지고 있다.
2.4 Comparison and limitations of abstract reasoning
추론하는 경로를 모두 탐색하는 것을 어려울 뿐더러, 중간 과정이 유효하지 않거나 답이 틀릴 수도 있다. 이 때문에 다양한 tool을 쓰는 것의 필요성도 드러난다.
3. Using Tools and Act
= LM에 어떤 것을 augment를 할 수 있는지 (what)
정확한 계산이나 Information Retrieval이 필요하면 외부 모듈(코드 실행, 검색 엔진)들을 사용할 수 있다.
LM은 자기 자신을 여러번 호출하면서 결과를 개선할 수도 있고, 텍스트 데이터를 넘어서 음성(목소리의 톤)처럼 다양한 유형의 데이터를 활용할 수도 있다.
Information Retrieval : 크게 두가지 종류의 retriever가 있다: sparse(bag-of-words)나 dense (vector)로 들고 오는 유형들. document 자체를 들고 와서 conditioning으로 줄 수도 있고, CoT 방식으로 retrieve할 수도 있다. + 검색 엔진 사용하거나 web을 탐색하는 접근도 가능하다.
복잡한 계산을 위해서 외부 모듈이나 code interpreters를 사용할 수 있다. virtual/physical 공간에서도 활용할 수 있는데, 자신이 현재 있는 state에서 취할 수 있는 action들과 그 action들의 영향을 학습하면 된다.
4. Learning to reason, use tools, and act
= LM에게 어떻게 학습을 시키는지 (how)
4.1 Supervision
Few-shot prompting : LM에게 tool을 사용하는 예시를 인간이 직접 줄 수 있다.
Fine-tuning : parameter 자체를 업데이트해서 tool을 사용하게 할 수 있다.
Prompt pre-training : pre-training이 완료된 LM을 파인튜닝하게 되면 기존의 분포를 이상하게 하거나 overfitting되게 할 수 있다. 따라서 pre-trained 단계에서 원하는 demo들을 기존 데이터들과 섞는 방법이 있다.
Bootstrapping : 최종 예측을 틀리게 만든 데이터들을 폐기하면서 학습을 진행한다. 간접적인 supervision의 역할을 하게 된다.
4.2 Reinforcement learning
supervision 데이터는 어렵고 비싼 경우가 많다. 하지만 human preference data(ranking이나 like/dislike)는 쉽고 빠르며 더 저렴하다.
reward의 형식을 제공하는 방식으로는 1) Hard-coded reward functions, 2) Human feedback이 있다.
5. Discussion
- 기존의 language model은 결국 다음 토큰을 예측하는 것이어서 context를 이해하지 못했지만, Augemented language model은 context를 학습한다.
- query tool로 memorize해야 하는 양을 줄일 수는 있으나, 어느정도의 지식은 갖추고 있어야 추론할 수 있을 것이다. 그러면 어떤 상황에서 tool을 사용할지 결정하는 것도 정해야 한다.
- ALM은 외부 non-parameteric 모듈에 의존하기 때문에 필요로 하는 parameter 수도 적다.
- 외부 기능을 사용함으로써 ALM은 autonomous machine intelligence이자, generalist agent에 가까워진다.
Augmented Language Models의 장점 : ① Truthfulness, ② Estimating and reducing uncertainty, ③ Interpretability, ④ Enhanced capabilities
6. Conclusion
ALM이란 기존 LM에게 더 좋은 추론 능력과 tool을 제공하는 것이다. 추가적인 정보를 가져올 수도 있고(passive tool), 다른 곳에 어떠한 action을 취할 수 있는(active tool) 방법이 있다. language model에게 적절한 augmentation을 제공하는 방법은 아직 open quesiton이다.
링크:
https://arxiv.org/abs/2302.07842