LLM(대규모 언어 모델) 추론 능력: Chain-of-Thought부터 I/O Fine-Tuning까지
1. 강의 소개 및 LLM 추론의 정의
- 본 강의는 Google DeepMind의 Denny Zhou가 대규모 언어 모델(LLM)의 추론 능력에 대해 발표한 내용이다.
- Denny Zhou는 Google Brain에서 추론 팀을 설립했으며, Chain-of-Thought (CoT) 프롬프팅과 Self-Consistency (자기 일관성) 기법의 선구자이며, In-Context Learning 및 CoT 추론의 수학적 기반을 개발한 것으로 유명하다.
LLM 추론의 특정 정의
- LLM이 추론하는지 여부에 대한 일반적인 논쟁에 참여하지 않고, 이 강의에서는 추론에 대한 매우 구체적인 정의를 사용한다.
- 추론이란 입력과 출력 사이에 생성되는 중간 토큰(intermediate tokens) 또는 중간 단계(intermediate steps)를 의미한다.
- 이러한 아이디어는 2017년 Daman의 논문에서도 이미 소개되었는데, 당시 수학 문제 해결에 자연어를 사용한 획기적인 접근이었다.
추론 과정을 보여주는 예시 (Last Letter Concatenation)
- Denny Zhou는 Google Brain에서 추론 팀을 만들었을 때 '마지막 글자 연결(Last Letter Concatenation)'이라는 과제를 동기 부여 예시로 사용했다.
- 문제 예시: "artificial intelligence"의 각 단어의 마지막 글자를 연결하면 무엇이 출력되는가?.
- 추론 과정이 없을 때: 출력은 'L E'가 될 수 있다.
- 추론 과정이 있을 때 (강조된 텍스트): 모델은 "artificial의 마지막 글자는 L, intelligence의 마지막 글자는 E이다. L과 E를 연결하여 L E가 된다"와 같이 단계별 출력을 생성한다.
- 이러한 강조된 텍스트가 바로 여기서 정의하는 추론(Reasoning)이다.
- 심화 내용: 이 과제에서 처음에는 첫 글자 연결을 시도했지만, 기존 모델들이 웹상의 많은 예시를 학습하여 쉽게 해결했기 때문에, 모델들이 실패했던 마지막 글자 연결로 변경되었다. 이는 LLM이 단순한 패턴 인식이나 훈련 데이터에 의존하는 것이 아니라, 새로운 방식의 중간 단계가 필요함을 보여준다.
2. LLM 추론의 이론적 배경과 초기 실패 사례
2.1. 이론적 근거 (Boolean Circuits)
- Stanford의 Professor Tima와 그의 학생들과의 협력 연구를 통해 추론에 대한 강력한 이론적 결과가 도출되었다.
- 수학적 개념: 크기 T의 불리언 회로(Boolean circuits of size T)로 풀 수 있는 모든 문제는 상수 크기의 트랜스포머(Constant size transformers)가 O(T)개의 중간 토큰을 생성함으로써 해결할 수 있다.
- 여기서 '크기(size)'는 논리 게이트의 수를 의미한다.
- 이 결과는 매우 강력하며, 최종 답만을 직접 생성하려고 하면 LLM은 엄청난 깊이(huge depths)를 요구하거나 문제를 전혀 해결할 수 없다는 이해를 제공한다.
2.2. 사전 훈련된 모델의 추론 능력 (Decodability)
- 일반적인 통념: 사전 훈련된 모델(Pre-trained models)은 CoT 프롬프팅이나 미세 조정(Fine-tuning)과 같은 추가적인 프롬프팅 엔지니어링 없이는 추론할 수 없다는 믿음이 있다.
- 강사의 주장: 이러한 통념은 틀렸다. 사전 훈련된 모델은 이미 추론할 준비가 되어 있으며, 필요한 것은 디코딩(decoding) 과정뿐이다.
2.3. 디코딩 문제로서의 실패
- 문제 예시: "나에게 사과 3개가 있고 아빠는 나보다 2개 더 많다면, 총 사과는 몇 개인가?".
- 일반적인 사전 훈련 모델(예: LLaMA)에 이 질문을 하면, 기본적으로 Greedy Decoding (탐욕적 디코딩)을 사용하기 때문에 '5 Apples'와 같은 틀린 답을 내놓을 가능성이 높다.
- 문제의 원인: 추론 능력이 없는 것이 아니라 디코딩에 문제가 있다.
3. 추론 능력 활성화 기법 1: 디코딩
3.1. Chain-of-Thought Decoding (CoT Decoding)
- Greedy Decoding 대신, 첫 번째 토큰에 대해 더 많은 후보(candidates)를 확인하여 디코딩을 진행할 수 있다.
- 후보 1 (Greedy): '5 apples' (오답).
- 후보 2: 'I have three apples and then my dad has two more apples than me so he has a five apples and 3 + 5 equal to 8. It's perfect' (정답 및 추론 과정 포함).
- 후보 3: 'We have eight apples in total' (정답).
- 후보 4: 'You can clearly see a chain of sort in this response and the final answer is correct' (정답 및 추론 과정 포함).
- 핵심 통찰: 추론 경로(reason path)는 이미 출력 공간(output space) 내에 존재하며, 특히 후보 2와 후보 4는 Chain-of-Thought 추론에 기반하고 있다.
3.2. 응답 선택 기준: 신뢰도(Confidence)
- 가장 좋은 응답을 선택하는 방법이 문제인데, 단순한 출력 길이보다는 최종 답안의 신뢰도를 사용하는 것이 더 나은 아이디어이다.
- 신뢰도의 정의: 모델은 사전 훈련된 모델이므로, 토큰 예측 시의 확률(probability)을 살펴볼 수 있다.
- 놀라운 결과: CoT 추론 과정이 포함된 응답의 경우, 최종 답안 토큰(예: 8)의 신뢰도가 훨씬 더 높다. 이 예시에서 모델의 신뢰도는 거의 98%에 달한다.
- CoT Decoding 절차:
- Greedy Decoding을 넘어 더 많은 생성 후보를 확인한다.
- 최종 답안에 대해 가장 높은 신뢰도를 가진 후보를 선택한다.
4. 추론 능력 활성화 기법 2: 프롬프팅
4.1. Chain-of-Thought Prompting (CoT Prompting)
- CoT Decoding이 프로그래밍 작업을 필요로 하므로, 자연어를 사용하여 모델의 출력 분포를 재구성하여 추론이 자연스럽게 먼저 순위에 오르도록 할 수 있을까?.
- 작동 원리: 질문 전에 유사한 문제와 그에 대한 단계별 풀이 과정을 예시로 제시하면, 모델은 마법처럼 그 스타일(추론 스타일)을 따르고 단계별 풀이를 생성한다.
- 심화 내용: CoT 프롬프팅은 출력 분포를 변경하여, 원래 출력 공간에 있던 Chain-of-Thought 솔루션을 최상위 순위로 끌어올리기 때문에 작동하는 것이다.
- 단점: CoT 프롬프팅은 작업별 예시(task-specific examples)가 필요하다는 단점이 있다.
4.2. "Let's think step by step" (단순 프롬프트)
- 더 간단한 접근법: 문제 다음에 단순히 "Let's think step by step"이라는 문구를 추가하는 것이다.
- 강사는 이것이 처음 나왔을 때 농담인 줄 알았을 정도로 놀라웠다고 언급했으며, 실제로 Google Brain의 PaLM 모델에서 작동하는 것을 확인하고 큰 충격을 받았다고 한다.
- 단점: 이 접근법은 예시가 필요 없다는 점에서 일반적(generic)이지만, Few-shot Prompting (CoT Prompting)보다 성능이 훨씬 나쁘다.
5. 미세 조정(Fine-Tuning)을 통한 일반화 개선
5.1. Supervised Fine-Tuning (SFT)의 한계
- 아이디어: 인간 주석가로부터 수집된 문제와 단계별 솔루션 데이터 세트를 사용하여 모델을 지도 학습 기반 미세 조정(SFT)한다.
- 이는 2017년 Daman의 논문과 2021년 OpenAI가 GSM8K 데이터셋을 사용하여 GPT-3 모델을 미세 조정했던 방식과 같다.
- 수학적 개념: 인간 솔루션의 우도(likelihood)를 최대화한다 (Maximize the likelihood). 이는 LLM 훈련에서 다음 토큰을 예측하는 것과 동일한 최대 우도 방식이다.
- SFT의 문제점: SFT는 일반적인 접근 방식이지만, 일반화(generalization)가 잘 되지 않는다는 문제가 있다. 강사는 패러다임 자체가 잘못되면 아무리 규모를 늘려도 작동하지 않는다는 교훈을 강조한다.
5.2. Self-Improvement 및 I/O Fine-Tuning (RFFT)
- 문제의 원천: SFT 절차의 실수는 인간(human)에게서 온다.
- 첫 번째 시도 (Self-Improvement): 인간으로부터 데이터를 수집하는 대신, 모델 스스로 단계별 솔루션을 생성하도록 한다.
- 모델이 솔루션을 생성하고, 정답(Ground truth answer)을 알고 있으므로 최종 답안의 정확성을 확인하여 사용할 응답을 결정한다 (Reject sampling).
- 심화 내용: 이 접근 방식은 처음에는 레이블링 비용 절감 목적으로 제안되었으나 (STAR 논문), 더 나은 모델이 생성한 훈련 데이터를 사용하면 모델이 자기 개선(self-improved)될 수 있다는 관점에서 이해된다.
- RFFT (Reasoning with Reinforced Fine-Tuning): 이는 자기 개선 과정을 반복하는 것과 동일하며, 오늘날 I/O Fine-Tuning (Instruction Optimization Fine-Tuning) 접근 방식으로 알려져 있다.
5.3. I/O Fine-Tuning의 핵심: 검증기 (Verifier)
- I/O Fine-Tuning 훈련 루프에서 가장 중요한 요소는 알고리즘 자체가 아니라 신뢰할 수 있는 검증기(reliable verifier)이다.
- 검증기는 최종 답을 알고 있기 때문에, 어떤 단계별 추론 경로가 올바른지 선택하는 데 사용된다.
- Richard Sutton의 말처럼, 검증(Verification)이야말로 AI의 핵심이다.
6. 수학적 원리와 최적화
6.1. 강화 학습을 통한 최적화 (Defining the Metric)
- 모델이 인간 데이터가 아닌 기계 생성 데이터로 미세 조정될 때 성능이 더 좋은 이유는 무엇인가?.
- 답변: 이는 기계 학습의 첫 번째 원리와 관련이 있다. 즉, 우리가 원하는 것을 직접 최적화하는 것이다.
- 추론 모델 구축 목표: 생성 품질을 측정하는 지표(Metric)를 최적화해야 한다.
- 예시: 수학 문제의 경우, 정답의 정확성(correctness)을 지표로 삼는다.
- 수학적 개념 (기울기 계산): 지표가 설정되면, 필요한 것은 지표의 기울기(gradients)를 계산하고 역전파(back propagation)를 수행하는 것이다.
- 모델이 사전 훈련된 모델이므로, 우리는 지표의 기대값(expected value)을 최대화해야 한다.
6.2. 수학적 공식 (정책 기울기)
- 우리는 문제 P와 모델 매개변수 θ가 주어졌을 때 응답 품질을 측정하는 함수 R을 최대화해야 한다.
- maxθEA∼P(A∣P,θ)[R(P,A,θ)]
- 기대값을 계산하기 위해 샘플링이 필요하며, 이것이 바로 정책 기울기(Policy Gradient)로 이어진다.
- 핵심 통찰: 추론을 위해 모델을 '장려'하는 마법 같은 방법은 없으며, 표준 기계 학습 용어를 사용하여 지표를 정의하고, 기울기를 계산하며, 역전파를 수행하는 것뿐이다.
6.3. LLM 추론과 고전적 AI의 차이점 (Search vs. Learning)
- I/O Fine-Tuning 접근 방식에서는 CoT의 길이를 확장하거나 모델 깊이를 확장하는 것이 중요하다.
- CoT 길이의 중요성: CoT가 충분히 길다면, 모델은 거의 모든 계산 가능한 문제를 해결할 수 있다.
- LLM 추론의 아름다움: 고전적 AI에서처럼 철저한 탐색(exhaustive search)에 의존하는 것이 아니라, 토큰-대-토큰 예측(token-to-token prediction)에서 인간과 유사한 추론 과정이 출현한다는 점이다.
탐색(Search)의 불필요성 예시 (2025 만들기)
- 2024년 12월 Google이 Gemini 2.0 모델을 출시했을 때, 강사는 '1부터 10까지의 숫자를 사용하여 덧셈과 곱셈 연산만으로 2025를 만드는 문제'를 시도했다.
- 고전적 방식은 파이썬 프로그램으로 철저한 탐색을 수행하는 것이다.
- Gemini의 추론 과정 (사람의 사고방식과 유사):
- 모델은 2025가 비교적 큰 숫자이므로 곱셈이 많이 관련될 것이라고 언급한다.
- 심지어 2025가 452이라는 중요한 힌트를 발견한다.
- 모델은 목표가 크므로 45에 가까워지는 중간 곱을 만드는 것을 목표로 삼았고, 최종적으로 (10×4+5)×(9+8+3−2−1)=45×45=2025와 같이 정답을 도출했다.
- 결론: 이 과정은 탐색이 필요 없음을 보여준다. Richard Sutton은 '확장 가능한 두 가지 과정은 학습(Learning)과 탐색(Search)뿐'이라고 했지만, 강사는 학습(Learning)만이 확장 가능하다는 점을 강조한다.
6.4. I/O Fine-Tuning의 한계점
- I/O Fine-Tuning은 일반화가 매우 잘 되지만, 루프 내에 검증기가 필요하므로 자동으로 검증 가능한 작업(automatically verifiable tasks)에만 적용 가능하다.
- 검증 불가능한 작업의 예시: 창의적 글쓰기(Creative writing), 디자인, 가독성 등이 중요한 일상적인 코딩 작업.
7. LLM 추론 개선을 위한 두 가지 핵심 아이디어
7.1. Aggregation (Self-Consistency)
- LLM은 다음 토큰을 예측하도록 설계되었기 때문에, '주어진 문제에 대해 추론 토큰을 생성한 다음 최종 답을 생성하는' 현재 패러다임에 문제가 있을 수 있다.
- 문제점: Greedy Decoding은 확률을 최대화(maximize the probability)하는 반면, 우리는 가장 확신하는 답(most confident answer)을 선택해야 하므로 이 둘이 일치하지 않을 수 있다.
- 수학적 해결책 (Marginalization): 추론 경로를 생성할 때, 모든 추론 경로에 대해 합산하여 최종 답안의 확률을 찾는 주변화(marginalization)를 수행해야 한다.
- 모든 추론 경로는 본질적으로 잠재 변수(latent variables)이며, 이 합은 샘플링을 통해 계산될 수 있다.
- Self-Consistency의 동기: 바로 이 주변화 개념이 Self-Consistency (자기 일관성) 접근법의 기반이 된다.
- Self-Consistency 절차:
- 랜덤 샘플링을 통해 여러 응답을 생성한다.
- 가장 자주 등장하는(most frequently) 답을 최종 답으로 선택한다.
- 핵심: 추론 경로를 보지 않고, 가장 빈번한 최종 답안을 선택하는 것이 핵심이며, 이는 확률에서 주변화를 구현하는 과정이다.
- 성능 향상: GSM8K 벤치마크에서 Self-Consistency를 적용한 후 정확도가 58%에서 75%로 크게 향상되었으며, 상대적 개선율은 거의 50%에 달했다.
Self-Consistency 심화 및 응용
- 직접 답안 vs. 추론 답안: 모델이 중간 단계 없이 직접 답안을 출력할 경우, 여러 번 샘플링하여 가장 흔한 답을 선택하는 것은 불필요하다. 이는 고전적인 기계 학습에서 로지스틱 회귀를 통해 P(y∣x)를 최대화하는 것과 같기 때문에, Self-Consistency는 추론이 등장한 후에야 유용하다.
- 일반적인 문제로의 확장 (Universal Self-Consistency): 답이 단일 토큰이 아닌 일반적인 문제(예: 도시 목록)의 경우, 가장 일관성 있는 응답(most consistent response)을 선택하도록 LLM을 유도하여 Self-Consistency를 확장할 수 있다.
7.2. Retrieval (검색)
- LLM이 추론 대신 검색만 수행하는지에 대한 논쟁이 있으나, 강사는 성능 향상에 중점을 두고 검색 + 추론을 수행해야 한다고 본다.
검색의 중요성 예시 (유사 문제 상기)
- Analogical Reasoning (유추적 추론) 예시: 네 꼭짓점이 주어진 사각형의 넓이를 구하는 문제를 GPT-3.5와 자체 모델로 시도했을 때 실패했지만, 프롬프트에 '관련 문제를 상기하라(record related problems)'는 내용을 추가하자 모델이 문제를 해결했다.
- 모델은 관련 문제(두 점 사이의 거리 공식)를 찾고, 이 공식을 사용하여 거리를 계산한 후 면적을 계산하는 방식으로 문제를 해결했다.
- Step-Back Prompting: 물리 문제와 같은 복잡한 문제를 해결하기 전에, 모델이 더 추상적인 문제를 고려하도록 하여 원리를 얻고 문제를 해결하는 방식도 검색의 한 형태로 볼 수 있다.
- Deep Research: Gemini의 Deep Research나 OpenAI의 Research는 모두 유사한 문제나 지식을 찾아 문제를 해결하는 기본적인 아이디어를 활용한다.
7.3. 요약 및 미래 방향
- 강의 요약:
- LLM 추론은 추론이 없는 것보다 항상 낫다.
- I/O Fine-Tuning은 SFT보다 낫다.
- 여러 답안을 통합(aggregating)하는 것은 하나의 답안보다 낫지만 비용이 더 많이 든다.
- 검색 + 추론은 추론만 하는 것보다 낫다.
- 미래 과제:
- 자동으로 검증 가능한 답안을 넘어, 고유하게 검증 불가능한 작업(beyond unique verifiable answers)을 해결하는 방법.
- 벤치마크를 넘어서 실제 킬러 애플리케이션을 구축하는 것.
8. Q&A (질의응답)
Q: 신뢰도 측정과 환각(Hallucination) 지표
- 질문: 신뢰도를 측정하는 더 좋은 방법이 있는지, 그리고 신뢰도가 환각의 좋은 지표가 될 수 있는지.
- 답변: 여기서 말하는 신뢰도는 토큰 예측 시의 지역 확률(local props) 또는 조건부 확률이다. 경험적 관찰에 따르면, 추론 경로를 거친 후 최종 답안의 신뢰도가 크게 상승하는 것을 볼 수 있다.
Q: 학습(Learning) vs. 탐색(Search)의 필요성
- 질문: Richard Sutton은 학습과 탐색 모두 확장 가능하다고 했지만, 강사는 학습만이 확장 가능하다(Learning is all you need)고 믿는 이유.
- 답변: 모델을 구축할 때 탐색을 염두에 둘 필요는 없다. 하지만 모델이 구축된 후에는 CoT 프롬프팅처럼 도구(tool use)의 특수한 경우로서 탐색을 통합할 수 있다. 강사는 근본적인 능력(fundamental abilities)에 관심이 있으며, 추론 과정에서는 탐색이 필요 없다고 본다. 탐색을 사용하면 항상 더 높은 정확도를 얻을 수 있지만, 이는 지능(intelligence)에 관한 것인지 아니면 단순히 탐색에 관한 것인지에 대한 문제이다.
Q: 추론 단계가 없을 때의 샘플링
- 질문: 모델이 추론 단계 없이 직접 답을 출력할 때, 로짓(logits)을 보는 대신 샘플링을 하면 확률 분포가 달라져서 더 가능성이 높은 경로를 찾을 수 있지 않나.
- 답변: 모델이 훈련 단계에서 어떻게 분포를 재구성하는지는 아직 명확하게 알 수 없다. 현재로서는 그 질문에 답할 명확한 설명이 없다.
Q: 추론과 답안의 구별 및 낮은 신뢰도의 정답 가능성
- 질문: 출력 문자열에서 추론과 답을 어떻게 구별하고 숫자를 추출해야 하는가? 답이 프로그램일 경우 구별은 어떻게 해야 하는가.
- 답변: 답이 프로그램일 경우 추출하기가 더 어렵다. SFT를 사용할 때 사람들이 수학 문제나 경쟁 프로그래밍 문제에 집중하는 이유가 이 때문이다. 일반적인 경우에는 최종 답안을 위해 매우 조심스러운 파서(parser)를 작성해야 한다.
- 질문: 문제가 너무 어려워 낮은 신뢰도의 답이 실제 정답일 경우 Self-Consistency를 사용할 수 있는가.
- 답변: Self-Consistency는 완벽하지 않다(not perfect).
Q: AGI 시대에 대비하여 아이들이 길러야 할 능력
- 질문: AGI가 2~5년 내에 도래하여 90%의 직업이 자동화된다고 가정할 때, 아이들이 미래에 생존하기 위해 길러야 할 능력은 무엇인가.
- 답변: 강사는 AGI가 5년 내에 올 것이라는 전망에 대해 회의적이다. 가장 두려운 것은 "AI가 돌아오지 않아서 내가 일자리를 잃는 것"이라고 농담한다. 현재의 접근 방식에는 많은 한계가 있으며, 챗봇과 같은 종류의 AI 대신 진정한 킬러 애플리케이션이 나오기를 바란다. 현재 AI 모델은 코딩의 좋은 보조자(assistant for coding)가 될 수 있다는 점을 알고 있다.
아날로지: LLM의 추론 능력은 마치 복잡한 미로를 푸는 탐험가와 같습니다. 처음에는 눈앞의 길(Greedy Decoding)만 보고 잘못된 방향(오답)으로 갈 수 있습니다. 하지만 CoT Decoding은 잠재적으로 존재했던 모든 경로(추론 경로)를 목록으로 확보하는 것이고, Self-Consistency는 그 경로들 중에서 가장 많은 탐험가가 선택한 최종 출구(정답)를 신뢰하여 나가는 방식입니다. I/O Fine-Tuning은 숙련된 탐험가(Verifiers)가 올바른 길을 안내하는 지도(기계 생성 데이터)를 만들어 모델에게 학습시키는 것입니다. 이 모든 과정은 탐색(Search) 없이, 오직 효율적인 학습(Learning)과 확률적 계산(Marginalization)을 통해 이루어집니다.