👨🏽💻 Title & Authors (Affiliation)
- Chain-of-Thought Reasoning Without Prompting
- Xuezhi Wang and Denny Zhou, Deep Mind
- 24.02
✍🏼 요약
- LLM이 답변을 생성 할 때, 최초 생성할 토큰을 Top-1이 아니라 확률이 낮은 Top-K를 쓰면 CoT 현상이 일어나면서, Reasoning 능력이 좋아지더라
🔒 Problem
- LLM의 Reasoning 능력을 향상시키기 위해, 기존 연구에서는 Few-shot, Zero-shot Prompting을 사용했다.
- 이는 효과적이긴 하지만, 일반적으로 Manual 한 방식이다(Best를 찾는게 어려움)
- Original CoT의 예시
🔑 Main Ideas
- LLM에게 Explicit 하게 CoT를 학습시키지 않아도, LLM 안에는 Implicit 하게 CoT Path가 내재되어 있지 않을까? -> 그걸 끄집어내 보자!
- Greedy Decoding 대신, top-k의 토큰들을 활용하는 Decoding 방식을 통해서 내재된 CoT Path를 찾아보자.
- 처음 생성되는 Token을 Top-K로 선택 했을 때의 실험 결과(K=0 -> 가장 확률이 높은 Token을 바로 선택)
- PLM은 주로 바로 답을 말하는 경향이 있다. Pretraining 과정에서 CoT가 필요한 복잡한 문제를 풀어본 경험이 없기 때문
- 그러나 Greedy Decoding을 안하면, PLM 스스로 CoT와 비슷한 효과를 내기도 한다.
- CoT-Decoding for Extracting CoT Paths
- 하지만 어떻게 유효한(정답이 맞는) CoT Path(K)를 찾을 것인가?
- 흥미롭게도, 유효한 CoT의 경우 final answer을 생성해내는 과정에서 측정되는 confident가 매우 높게 나옴
- Confident: probability disparity between the top and secondary tokens
- where ${𝑥^1}_t$ and ${𝑥^2}_t$ represent the top two tokens at each decoding step 𝑡 in the 𝑘-th decoding path, chosen for their maximum post-softmax probabilities from the vocabulary, given $x_t$ being part of the answer tokens.
- 만약 정답이 여러 token인 경우, Average를 구함. 즉, 정답이 “60” 이면, “6”과 “0”에 대한 값을 구한 뒤, 나누기 2
- 정답이든 아니든 일단 모델이 최종적으로 답이라고 뱉은 토큰에 대해서 확도를 구하는 듯.
- 위 식의 값(delta)이 크면 클 수록 유효한 CoT Path가 나타남.
- Confident: probability disparity between the top and secondary tokens
- 추가 고려사항
- 그냥 길이에 따라서 유효하고 유효하지 않고 따질 수 없나? -> 길이로 판단 할 수 없는 예외 케이스가 많음
- 모델이 뱉은 답변에서 무엇을 정답 Span으로 처리해서 Confident를 구할 것인가? -> 마지막 Numeric Value를 정답으로 하거나, “so the answer is” 토큰 다음에 나오는 토큰을 정답 token으로 처리.
- 최초 말고 중간에 Top-K 샘플링을 적용 할 수 없나? -> 가능하나, 최초 토큰에 적용하는 것만큼 효율적일 수는 없음.
- 처음 말고는 그 뒤로 쭉 Greedy Sampling을 하는데, 이 때 그냥 Temperature Sampling(0.7이라든가)을 적용 할 수 없나? -> 오답이 너무 많아져서 비효율적임.
- Experiments
- 모든 입력 Format은 다음과 같이 고정, “Q: [question]\nA:”
- Default K는 10으로 함
- 모델: PaLM2 X-Small, Small, Medium, Large, 그리고 Mistral-7B로 실험
- 주로 프리트레인만 된 상태에서 실험하고, Instruction Tuned된 모델에 대해서도 실험
📈 Results
- Mathmatical Reasoning Tasks
- Grade-school math problems(GSM8K), multi-step arithmetic dataset(MultiArith),
- IT 모델은 이미 CoT 데이터로 학습한 모델임에도 성능 향상이 있다.
- Natural Language Reasoning Tasks
- “year parity” : 유명한 인물이 태어난 년도가 짝수인지 홀수인지 묻는 문제. GPT4도 어려워 하는 문제(Acc 50%대). 그러나 많은 LLM들이 유명한 인물의 태어난 연도도 잘 알고, 주어진 연도가 홀수인지 짝수인지 잘 알고 있으나, 이 문제는 잘 못푼다.
- 직접 100명의 유명인사를 찾아서 데이터셋을 만듦
- “year parity” : 유명한 인물이 태어난 년도가 짝수인지 홀수인지 묻는 문제. GPT4도 어려워 하는 문제(Acc 50%대). 그러나 많은 LLM들이 유명한 인물의 태어난 연도도 잘 알고, 주어진 연도가 홀수인지 짝수인지 잘 알고 있으나, 이 문제는 잘 못푼다.
- Symbolic Reasoning Tasks
- the Coin Flip task with 2,3,4 rounds of potential flips
- Big-Bench-Hard 에서 2개 추출 : Web of lies, with 3,4,5 truth/lie statements, Multi-step arithmetic with various depth level 𝑑 and length 𝑙.
- We also include two natural-language-based but synthetic tasks from Big-Bench, Sports Understanding and Object Counting, to probe model’s intrinsic abilities in solving synthetic tasks.
- 1) Task가 어려워질 수록 효과가 적다.
- 동전 던지기의 경우, 현재 동전의 상태를 Tracking해야 하는데, CoT Path로는 부족하다. 이런 문제는 Few-shot CoT Prompting이 훨씬 잘 먹힌다(현태 어떤 상태인지 물어보는 Prompt를 넣으면).
- Multi-step Arithmetic의 경우, Left-to-Right 연산만으로는 못푸는데, CoT Path가 여기에 취약
- 2) Synthetic Task에서 효과가 없다. 즉, Pretraining에서 보지못한 distribution의 task일 수록 잘 풀지 못한다.
- 1) Task가 어려워질 수록 효과가 적다.
- CoT Prompting과의 비교
Limitations
- CoT Prompting 처럼 Explicit 하게 문제를 해결하는데 도움이 되는 정보를 넣을 수없다.
- 그래서 CoT Prompting 만큼 성능이 좋거나, 어려운 문제를 해결 할 수는 없다.
- 작은 모델이나, 어려운 문제에서 효과 미미
✏️ Conclusion
- Explicit 한 CoT Prompting 없이, 단순히 Decoding 시에 Top-K token을 활용하는 것 만으로도 Reasoning 성능을 높일 수 있다.
- 다만 어려운 문제나, 작은 모델에서는 효과가 미미하다.