인공지능/자연어 처리

Few-Shot, CoT(Chain-of-Thought)와 ReAct 하나 하나 뜯어보기

이게될까 2025. 2. 5. 20:13
728x90
728x90

https://arxiv.org/abs/2005.14165

 

Language Models are Few-Shot Learners

Recent work has demonstrated substantial gains on many NLP tasks and benchmarks by pre-training on a large corpus of text followed by fine-tuning on a specific task. While typically task-agnostic in architecture, this method still requires task-specific fi

arxiv.org

https://arxiv.org/abs/2201.11903

 

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

We explore how generating a chain of thought -- a series of intermediate reasoning steps -- significantly improves the ability of large language models to perform complex reasoning. In particular, we show how such reasoning abilities emerge naturally in su

arxiv.org

https://arxiv.org/abs/2210.03629

 

ReAct: Synergizing Reasoning and Acting in Language Models

While large language models (LLMs) have demonstrated impressive capabilities across tasks in language understanding and interactive decision making, their abilities for reasoning (e.g. chain-of-thought prompting) and acting (e.g. action plan generation) ha

arxiv.org

 

ReAct는 Agent 논문에 빠지면 안되는 존재라고 생각하기에 한번 쭉 정리해보려고 합니다.

Prompt, In-Context-Learning 위주의 논문들이 나오네요

Few-Shot

Few-Shot은 단순합니다.

LLM이 진행할 Task에 대한 예시를 던져주고, 그에 맞게 적절한 Output을 추출합니다.

Prompt에서 모델이 학습하고, 그에 따라서 정답을 내는 것으로 거대 모델이 아니면 좋은 성과를 보여주기 힘들었습니다.

ReAct까지 공통점은 거대 모델이 아니면 따라하기 힘들다는 것 이네요...

Few-Shot의 성능

 

Few-Shot도 논리적 추론 문제나 복잡한 Task에서는 성능이 저하되며 한계를 보여줍니다.

 

그리하여 발전된 Few-Shot인 CoT가 등장합니다.

CoT도 단순합니다.

Few-Shot 예시에서 정답만 주는 것이 아닌 그 정답이 나오기까지의 사고 과정을 자연어로 예시를 전달하여 모델의 성능을 높입니다.

이를 통해 다양한 추론 Task에서 높은 성능을 보여줍니다.

수학 문제에서 SOTA 달성

 

여기서도 거대 모델이 아니면 Long-Context를 잘 따르지 못하는 문제가 있어 성능 향상에 문제가 되었지만 Fine-tuning 없이 Prompt 만으로 높은 성능을 내는 것을 볼 수 있습니다.

이 Ablation Study를 통해 자연어를 통한 사고 과정 예시가 중요하다는 것을 볼 수 있습니다.

 

 

Reasoning 단계에서의 환각 문제, Acting 만 진행하면 논리적 사고 과정 없이 단순 정보 탐생만 수행하여 생기는 문제들을 해결하기 위해 독립적으로 진행했던 Reasoning과 Acting을 묶어서 ReAct를 만듭니다.

문제가 들어오면 생각하는 과정을 거쳐 행동을 진행하고, 그에 따른 관측값을 다시 얻어 Reasoning 을 다시 진행하는 과정을 반복합니다.

 

https://github.com/ysymyth/ReAct

 

GitHub - ysymyth/ReAct: [ICLR 2023] ReAct: Synergizing Reasoning and Acting in Language Models

[ICLR 2023] ReAct: Synergizing Reasoning and Acting in Language Models - ysymyth/ReAct

github.com

이제 코드를 통해 ReAct 한번 활용해보기...

 

내일 뒤 이어서 작성하겠씁니다.

 

728x90