NL-228, Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters, Preprint 2024
◼ Comment
- 전반적인 scaling inference 에 다양한 실험들을 볼 수 있었음
- 결론만 말하면
- 문제(입력)의 난이도에 따라 어떻게 인퍼런스할지 최적의 방법이 다르다는 것
- 쉬운 문제
- 작은 모델을 활용해서 테스트시 계산을 많이하는게 전체 비용에서 효과적
- 다양하게 샘플링하는 것보다, LLM 결과를 조금씩 수정하는게 좋음
- best-of-N > beam-search
- 어려운 문제
- 큰 모델 쓰는게 좋음. 즉 pretraining에 계산을 쓰고 테스트시 계산을 적게하는게 전체 비용에선 효과적
- 수정방법보다, parallel하게(다양하게) 샘플링하고 일부 수정하는 방식이 좋음
- beam-search > best-of-N
- 예산에 따라서도 방법론이 달라질 수 있는데
- 근데 결국 실질적으로 활용한다면 다음의 문제들이 있을거 같음
- 문제의 난이도 결정하는 모델이 필요함
- 논문에선 LLM을 통해 난이도를 선정했다고함
- refernce을 따랐다고 하기때문에 reference을 봐야할 필요가 있긴한데, 어쨌든 난이도를 결정짓는게 쉽지 않을거 같음
- 검증기, reward 모델 등
- 난이도 평가할때도 사용되지만, 여러개 샘플링해서 나온 결과중 무엇을 택해야 하는가? 하는 문제가 있음
- 코딩문제, 수학문제야 뭐 검증기가 있을테니 괜찮겠지만, 일반적인 생성문제에서는 이것을 설계하는게 쉽지 않을듯
- 다진 good-bad 데이터가 많으면 모델 학습시킬 수 있을듯
- 보상모델도 PRM이라 해서 단계별 reward을 고려하는 방법과, 출력의 reward만 계산하는 방법등이 있다고 함.
- 실험결과보면 단순히 다수결로 결과 정하는것도 효과가 있긴하나 reward 모델쓰는게 더 효과적임
- 수정모델
- 결과를 계속해서 수정해가나는 모델도 따로 학습했다고하는데 이 데이터 만드는 것은 아직 비공개임
- 즉 이러한 데이터 만드는것도 일이며, 무엇보다 이 데이터의 품질이 매우 중요할거 같은데 최종 출력을 계속해서 바꾸는 작업이기 때문
Abstract
- LLMs(대형 언어 모델)이 출력 성능을 개선하기 위해 테스트 시점에서 더 많은 계산을 사용하는 것은, 개방형 자연어에서 작동할 수 있는 일반적인 자기 개선 에이전트를 구축하는 중요한 단계입니다.
- 이 논문에서는 LLM의 추론 시점 계산 확장에 대해 연구하며, 특히 "LLM이 고정적이지만 단순하지 않은 양의 추론 시점 계산을 사용할 수 있을 때, 어려운 프롬프트에 대해 얼마나 성능을 개선할 수 있는가?"라는 질문에 초점을 맞춥니다.
- 이 질문에 대한 답변은 LLM의 성능 한계뿐만 아니라 LLM의 사전 훈련의 미래와 추론 시점 계산과 사전 훈련 계산 간의 트레이드오프를 어떻게 설정해야 하는지에 대한 시사점을 제공합니다.
- 그 중요성에도 불구하고, 다양한 테스트 시점 추론 방법의 확장 동작을 이해하려는 연구는 거의 없었습니다.
- 더욱이, 현재 연구는 이러한 전략들 중 많은 경우에서 부정적인 결과를 제시합니다.
- 이 논문에서는 테스트 시점 계산을 확장하는 두 가지 주요 메커니즘을 분석합니다:
- (1) 밀집형, 프로세스 기반 검증 보상 모델에 대한 검색;
- (2) 테스트 시점에서 주어진 프롬프트에 맞춰 모델의 응답 분포를 적응적으로 업데이트하는 것.
- 두 경우 모두 프롬프트의 난이도에 따라 테스트 시점 계산 확장의 효과가 크게 달라진다는 것을 발견했습니다.
- 이 관찰은 프롬프트별로 테스트 시점 계산을 적응적으로 가장 효과적으로 할당하는 "계산 최적화" 확장 전략을 적용하는 동기를 제공합니다.
- 이 계산 최적화 전략을 사용하여, 우리는 테스트 시점 계산 확장의 효율성을 best-of-N 기준 대비 4배 이상 개선할 수 있었습니다.
- 또한 FLOPs를 맞춘 평가에서, 더 작은 기본 모델이 어느 정도의 사소하지 않은 성공률을 달성한 문제에 대해, 테스트 시점 계산을 사용하여 14배 더 큰 모델을 능가할 수 있음을 발견했습니다.
1. Introduction
- 사람들은 어려운 문제에 대해 더 오랜 시간 동안 생각함으로써 결정을 보다 신중하게 개선하는 경향이 있습니다 [9, 17, 18].
- 그렇다면, 오늘날의 대형 언어 모델(LLM)에 유사한 능력을 심어줄 수 있을까요?
- 더 구체적으로, 어려운 입력 쿼리가 주어졌을 때, 언어 모델이 테스트 시점에서 추가적인 계산을 가장 효과적으로 활용하여 응답의 정확도를 높일 수 있게 할 수 있을까요?
- 이론적으로는, 테스트 시점에서 추가적인 계산을 적용하면 LLM은 훈련된 것보다 더 나은 성능을 발휘할 수 있어야 합니다.
- 또한, 이러한 테스트 시점에서의 능력은 에이전트 및 추론 작업에서도 새로운 가능성을 열어줄 수 있습니다 [28, 34, 47].
- 예를 들어, 사전 훈련된 모델 크기를 추론 시점의 추가 계산과 맞바꿀 수 있다면, 데이터센터 규모의 LLM을 대신해 소형 장치에서 모델을 배포할 수 있는 활용 사례가 가능해질 것입니다.
- 약간 학습과 추론을 다 합친 계산 cost 입장에서 추론쪽으로 cost을 옮긴다면? 관점인듯
- 추가적인 추론 시점 계산을 통해 모델 출력을 자동으로 개선하는 것은 인간의 감독을 줄이면서 작동할 수 있는 일반적인 자기 개선 알고리즘을 개발하는 경로도 제공합니다.
- 기존의 추론 시점 계산에 대한 연구는 상반된 결과를 보여줍니다.
- 한편으로는, 현재의 LLM이 테스트 시점에서 계산을 사용하여 출력을 개선할 수 있다는 연구도 있으며 [4, 8, 23, 30, 48], 다른 한편으로는 수학적 추론과 같은 더 복잡한 작업에서 이러한 방법의 효과가 여전히 크게 제한된다는 연구도 있습니다 [15, 37, 43].
- 관련 논문쓰려면 이것들 읽어봐야할듯?
- 특히 추론 문제는 새로운 지식이 아니라 기존 지식을 기반으로 추론을 도출해야 할 때가 많기 때문입니다.
- 이러한 상충된 결과는 테스트 시점 계산 확장을 위한 다양한 접근 방식을 체계적으로 분석할 필요성을 제기합니다.
- 우리는 테스트 시점에서 계산량을 확장하는 것의 이점을 이해하는 데 관심이 있습니다.
- 아마도 테스트 시점 계산을 확장하는 가장 간단하고 잘 연구된 방법은 **best-of-N 샘플링**일 것입니다.
- 이는 기본 LLM에서 "병렬"로 N개의 출력을 샘플링하고 학습된 검증자 또는 보상 모델을 통해 가장 높은 점수를 얻은 출력을 선택하는 방법입니다 [7, 22].
- 그러나 이러한 방법이 LLM을 개선하기 위해 테스트 시점에서 계산을 사용하는 유일한 방법은 아닙니다.
- 응답을 얻는 제안 분포를 수정하거나(예: 기본 모델에게 원래 응답을 "순차적으로" 수정하도록 요청하는 방식 [28]),
- 이 방식도 괜찮을거 같은데?
- 검증자 사용 방식을 변경함으로써(예: 프로세스 기반 밀집 검증자를 훈련시키고 이에 대한 탐색을 수행하는 방법 [22, 45]),
- 테스트 시점 계산을 확장하는 능력을 크게 향상시킬 수 있음을 이 논문에서 보여줍니다.
- 테스트 시점에서 계산량을 확장하는 이점을 이해하기 위해, 우리는 도전적인 **MATH** 벤치마크 [13]에서 PaLM-2 [3] 모델을 사용하여 실험을 수행했습니다.
- 이 모델은 잘못된 답변을 수정하도록 특별히 미세 조정되었으며
- [28](제안 분포를 개선하는 방법; 섹션 6),
- 프로세스 기반 보상 모델(PRM)을 사용하여 답변의 개별 단계를 검증하도록 조정되었습니다 [22, 45](섹션 5).
- 두 접근법 모두에서, 특정 테스트 시점 계산 전략의 효율성은 문제의 특성과 사용된 기본 LLM에 따라 매우 달라진다는 것을 발견했습니다.
- 예를 들어, 기본 LLM이 이미 합리적인 응답을 쉽게 생성할 수 있는 쉬운 문제의 경우, 모델이 N개의 수정본을 예측하면서 초기 답변을 반복적으로 수정하게 하는 것(즉, 제안 분포를 수정하는 것)이 병렬로 N개의 독립적인 응답을 샘플링하는 것보다 테스트 시점 계산을 더 효과적으로 사용할 수 있습니다.
- (Large language monkeys은 N개 샘플링해서 커버리지를 늘리는 느낌이었는데)
- 쉬운문제에서는 정확성을 위해서는 그냥 반복적으로 수정본을 생성하는게 낫다?
- 반면, 문제 해결을 위해 다양한 고차원적인 접근 방식을 탐색해야 하는 더 어려운 문제의 경우, 새로운 응답을 독립적으로 병렬로 다시 샘플링하거나 프로세스 기반 보상 모델에 대해 트리 탐색을 수행하는 것이 테스트 시점 계산을 사용하는 더 효과적인 방법일 수 있습니다.
- 어려운 문제에서는 독립적으로 N개 샘플링하는게 낫다?
- 그렇다면 입력에 대해 난이도를 알아야할텐데, 뒤에 나옴
- 이 발견은 프롬프트에 따라 테스트 시점 계산을 활용하는 특정 방법을 선택하여 추가적인 계산을 가장 효율적으로 사용하는 adaptive compute-optimal 전략을 적용해야 할 필요성을 강조합니다.
- 또한, 우리는 기본 LLM 관점에서 문제의 난이도 개념(섹션 4)이 테스트 시점 계산의 효율성을 예측하는 데 사용될 수 있음을 보여주었고, 이를 통해 프롬프트에 따라 실질적으로 'compute-optimal' 전략을 구현할 수 있습니다.
- 이 논문에서는 compute-optimal 전략을 제시하는거 같은데.. 뒤에 설명을 봐야알듯?
- 이 방법으로 테스트 시점 계산을 적절하게 할당함으로써, 우리는 수정과 탐색 모두에서 테스트 시점 계산 확장을 크게 개선하여 best-of-N 기준을 뛰어넘는 성능을 발휘하면서도 계산량은 약 4배 적게 사용했습니다(섹션 5 및 6).
- 개선된 테스트 시점 계산 확장 전략을 사용하여, 테스트 시점에서의 추가 계산이 얼마나 효과적으로 사전 훈련을 대체할 수 있는지 이해하고자 했습니다.
- 우리는 더 작은 모델에서 추가적인 테스트 시점 계산을 사용하는 것과 14배 더 큰 모델을 사전 훈련하는 것을 비교하는 **FLOPs** 일치 비교를 수행했습니다.
- 쉬운 문제와 중간 난이도 문제, 그리고 일부 경우 어려운 문제에 대해서도(사전 훈련 및 추론 워크로드의 특정 조건에 따라), 추가적인 테스트 시점 계산이 사전 훈련 확장보다 더 바람직한 경우가 많다는 것을 발견했습니다.
- 이는 사전 훈련만을 확장하는 데 집중하는 대신, 일부 상황에서는 더 작은 모델을 덜 계산량으로 사전 훈련한 후 테스트 시점 계산을 적용하는 것이 더 효과적일 수 있음을 시사합니다.
- 그렇긴 해도, 가장 어려운 문제에서는 테스트 시점 계산 확장을 통해 거의 이점이 없음을 관찰했습니다.
- 너무 큰모델을 학습하느라 계산량을 쏟아붓지 말고 작은모델 만들고 테스트때 계산량을 확장하는게 좋다. 너무 어려운 문제는 큰 모델이 필요하긴함
- 대신, 이러한 문제에서는 사전 훈련 계산을 추가적으로 적용하여 더 나은 성과를 얻을 수 있었으며, 이는 현재의 테스트 시점 계산 확장 방식이 사전 훈련 확장과 1:1로 교환될 수 없음을 보여줍니다.
- 전반적으로, 이 결과는 비교적 단순한 방법론을 사용하더라도 테스트 시점 계산 확장은 이미 사전 훈련 확장보다 더 선호될 수 있으며, 테스트 시점 전략이 발전함에 따라 더 많은 개선이 이루어질 것임을 시사합니다.
- 장기적으로는 사전 훈련에 소모되는 FLOPs가 줄어들고 추론 시점에서 더 많은 FLOPs가 사용되는 미래를 암시합니다.
- 주요 결과 요약입니다.
- 왼쪽: 반복적인 자기 개선(즉, 수정) 및 검색에 대한 컴퓨팅 최적 스케일링. 왼쪽에서 PaLM 2-S* 수정 모델의 컴퓨팅 최적 스케일링 정책을 수정 설정(위) 및 PRM 검색 설정(아래)의 기준선과 비교합니다. 수정의 경우, 표준 best-of-N(예: "병렬")과 컴퓨팅 최적 스케일링 간의 차이가 점차 벌어지며, 컴퓨팅 최적 스케일링이 테스트 시간의 컴퓨팅 리소스를 4배 덜 사용하면서 best-of-N을 능가합니다. PRM 검색 설정에서도 초기부터 컴퓨팅 최적 스케일링이 best-of-N보다 크게 개선된 성능을 보이며, 일부 시점에서 4배 적은 컴퓨팅 자원으로 best-of-N을 거의 능가하는 성과를 나타냅니다. 세부 사항은 섹션 5와 6에서 확인할 수 있습니다.
- 오른쪽: 테스트 시간의 컴퓨팅 자원과 모델 파라미터 스케일링 비교. PaLM 2-S*의 컴퓨팅 최적 테스트 시간 스케일링 성능을 추가 테스트 시간 컴퓨팅 없이 약 14배 더 큰 사전 훈련 모델(예: 탐욕적 샘플링)과 비교합니다. 두 모델 모두에 대해 𝑋 토큰의 사전 훈련과 𝑌 토큰의 추론을 기대하는 상황을 고려합니다. 더 큰 모델을 훈련하면 이 두 용어의 FLOPs 요구 사항이 효과적으로 증가합니다. 작은 모델에 추가 테스트 시간 컴퓨팅을 적용하여 더 큰 모델의 FLOPs 요구 사항을 맞춘다면, 정확도 측면에서 어떻게 비교될까요? 수정의 경우(위) 𝑌 << 𝑋일 때, 테스트 시간 컴퓨팅이 추가 사전 훈련보다 종종 선호됩니다. 그러나 추론과 사전 훈련 토큰 비율이 증가함에 따라, 테스트 시간 컴퓨팅은 쉬운 질문에서는 여전히 선호되지만, 어려운 질문에서는 사전 훈련이 더 나은 선택이 되는 경향을 보입니다. PRM 검색에서도 유사한 경향을 확인할 수 있습니다(아래). 자세한 내용은 섹션 7을 참조하십시오.
2. A Unified Perspective on Test-Time Computation: Proposer and Verifier
- 우리는 먼저 테스트 시간 계산을 사용하는 방법들을 통합한 후, 대표적인 방법들을 분석합니다.
- 먼저, 테스트 시간에 추가적인 계산을 사용하는 것을 모델의 예측 분포를 적응적으로 수정하는 관점에서 봅니다.
- 테스트 시간 계산은 단순히 LLM(대형 언어 모델) 자체에서 샘플링하는 것보다 더 나은 출력을 생성하도록 분포를 수정해야 합니다.
- 일반적으로, LLM의 분포를 수정하는 두 가지 방법이 있습니다:
- (1) 입력 수준에서: 주어진 프롬프트에 추가적인 토큰 세트를 첨가하여 LLM이 수정된 분포를 얻을 수 있도록 조건을 설정하는 방법, 또는
- (2) 출력 수준에서: 표준 언어 모델에서 여러 후보를 샘플링한 후 이 후보들에 수정을 가하는 방법입니다.
- 출력을 계속 수정하는 방법 흥미로운데? 내가 쓴 논문에서처럼 small model -> llm model 수정을 좀더 다양하게 실험해볼수도?
- 즉, LLM 자체가 유도하는 제안 분포를 프롬프트에 단순히 조건을 설정하는 것보다 더 나은 방향으로 수정하거나, 사후 검증자 또는 평점자를 사용해 출력을 수정할 수 있습니다.
- 이 과정은 복잡한 목표 분포에서 단순한 제안 분포와 평점 함수를 결합하여 샘플링하는 마르코프 체인 몬테카를로(MCMC) [2] 방식을 연상시킵니다.
- 입력 토큰을 수정하여 제안 분포를 직접 수정하거나, 검증자를 사용하는 방법은 우리의 연구에서 독립된 두 축을 형성합니다.
- Modifying the proposal distribution.
- 제안 분포를 개선하는 한 가지 방법은 RL(강화 학습) 영감을 받은 미세 조정 방법(STaR 또는 ReSTEM [35, 50] 등)을 통해 특정 추론 과제에 맞춰 모델을 직접 최적화하는 것입니다.
- 이러한 기술들은 추가적인 입력 토큰을 사용하지 않으며, 대신 모델을 미세 조정하여 개선된 제안 분포를 유도합니다.
- 대신, self-critique [4, 8, 23, 30] 같은 기법은 모델 자체가 테스트 시간에 자신의 제안 분포를 개선하도록 하여, 반복적으로 출력물을 비판하고 수정할 수 있게 합니다.
- 즉, 미리 준비된 모델에 단순히 프롬프트를 제시하는 것은 테스트 시간에서 효과적인 수정을 가능하게 하지 못하므로, 우리는 복잡한 추론 기반 환경에서 모델이 반복적으로 답을 수정할 수 있도록 미세 조정합니다.
- 이를 위해 Best-of-N 기반의 개선된 모델 응답을 사용한 정책 데이터로 미세 조정하는 방법을 사용합니다 [28].
- 응답을 반복적으로 수정하며 생성할 수 있는 모델을 fine-tune한다?
- Optimizing the verifier.
- 제안 분포와 검증자의 추상화에서, 검증자는 제안 분포에서 최적의 답을 집계하거나 선택하는 데 사용됩니다.
- 가장 일반적인 방법은 best-of-N 샘플링을 적용하는 것으로, N개의 완성된 솔루션을 샘플링한 다음 검증자에 따라 가장 좋은 것을 선택하는 것입니다 [7].
- best-of-N은 쉽게 생각해서 reward 모델로 응답중 가장 높은 점수를 픽하는것
- 그러나 이 접근 방식은 프로세스 기반 검증자 [22] 또는 프로세스 보상 모델(PRM)을 훈련시켜 더욱 개선될 수 있습니다.
- PRM은 최종 답변뿐만 아니라 솔루션의 각 중간 단계의 정확성을 예측합니다.
- PRM은 중간 단계까지 고려해서 점수를 주는 방법?
- 그런 다음, 이러한 단계별 예측을 사용해 솔루션 공간을 검색하는 트리 탐색을 수행할 수 있으며, 이는 단순한 best-of-N에 비해 더 효율적이고 효과적인 검색 방법이 될 수 있습니다 [6, 10, 48].
3. How to Scale Test-Time Computation Optimally
- 다양한 방법의 통합을 바탕으로, 우리는 주어진 프롬프트에서 언어 모델(LM)의 성능을 가장 효과적으로 향상시키기 위해 테스트 시간 계산을 어떻게 활용할 수 있을지 이해하고자 합니다.
- 구체적으로 다음 질문에 답하고자 합니다:
- Problem setup
- 주어진 프롬프트와 문제를 해결하기 위한 테스트 시간의 컴퓨팅 예산이 주어졌을 때, 앞서 설명한 추상화에 따르면 테스트 시간 계산을 활용하는 다양한 방법이 있습니다.
- 이러한 방법들은 주어진 문제의 특성에 따라 효과적일 수도, 그렇지 않을 수도 있습니다.
- 그렇다면 주어진 프롬프트에 대해 테스트 시간 컴퓨팅을 가장 효과적으로 활용하는 방법을 어떻게 결정할 수 있을까요?
- 또한, 이렇게 활용하는 방법이 단순히 훨씬 더 큰 사전 훈련 모델을 사용하는 것과 비교했을 때 얼마나 좋은 성과를 낼 수 있을까요?
- 위의 관점대로 문제를 설정하고 실험하는듯
- 제안 분포를 수정하거나 검증자에 대해 검색할 때, 테스트 시간의 컴퓨팅 예산을 어떻게 할당할지 결정하기 위해 조정할 수 있는 여러 하이퍼파라미터가 있습니다.
- 예를 들어, 수정용으로 미세 조정된 모델을 제안 분포로 사용하고 ORM(출력 보상 모델)을 검증자로 사용할 때,
- 테스트 시간의 컴퓨팅 예산을 모델에서 독립적으로 N개의 샘플을 병렬로 생성한 후 best-of-N을 적용하는 데 모두 사용할 수도 있고,
- 수정 모델을 사용해 N개의 수정본을 순차적으로 샘플링한 후 ORM을 통해 가장 좋은 답변을 선택할 수도 있으며,
- 이 두 극단적인 방법 사이에서 균형을 잡을 수도 있습니다.
- 즉 응답을 여러개 생성하는데도 cost가 들고, 각 응답을 수정하는데도 cost가 들기 때문 이를 적절히 균형잡히는게 낫지 않나?
- 이걸 하기 위해서는 응답을 수정하는 fine-tuned model이 있어야하고 응답점수를 평가하는 검증자도(ORM) 있어야함
- 직관적으로 "쉬운" 문제는 모델의 초기 샘플이 올바른 방향에 있을 가능성이 높기 때문에 수정 작업이 더 큰 이득을 가져다줄 수 있습니다.
- 하지만 어려운 문제는 다양한 고차원적 문제 해결 전략을 탐색해야 할 수 있으므로, 병렬로 여러 번 독립적으로 샘플링하는 것이 더 나은 선택일 수 있습니다.
- 어려운 문제는 걍 독립적으로 샘플링하는게 낫다?
- 검증자의 경우, 여러 검색 알고리즘(예: 빔 서치, 선행 검색, best-of-N 등) 중에서 선택할 수 있으며, 각각은 사용 중인 검증자와 제안 분포의 품질에 따라 다른 성능을 보일 수 있습니다.
- 더 복잡한 검색 절차는 어려운 문제에서 단순한 best-of-N이나 다수결 기반 방식보다 더 유용할 가능성이 큽니다.
3.1. Test-Time Compute-Optimal Scaling Strategy
- 위 설명은 테스트 시점에서의 계산 자원을 최적 할당하는 방법에 대한 내용을 다루고 있습니다.
- 주어진 문제에 대해 최적의 테스트 시점 계산 자원 할당을 선택하고자 한다는 취지입니다.
- 이를 위해, 테스트 시점의 계산 방법(예: 이 논문에서의 검증기를 통한 수정 및 검색, 또는 다른 방법들)에 대해 "테스트 시점 계산 최적 확장 전략"을 정의하며, 이는 특정 테스트 시점 전략에 해당하는 하이퍼파라미터를 선택하여 주어진 프롬프트에서 최대 성능 이득을 얻는 것을 목표로 합니다.
- 공식적으로는, Target(𝜃, 𝑁, 𝑞)를 모델이 주어진 프롬프트 𝑞에 대해 테스트 시점 계산 하이퍼파라미터 𝜃와 계산 자원 𝑁을 사용하여 생성하는 자연어 출력 토큰의 분포로 정의합니다.
우리는 주어진 문제에 대해 목표 분포의 정확도를 극대화하는 하이퍼파라미터 𝜃를 선택하고자 합니다. - 이를 공식으로 나타내면 다음과 같습니다:
3.2. Estimating Question Difficulty for Compute-Optimal Scaling
- 테스트 시간 스케일링 특성을 효과적으로 분석하기 위해, 우리는 섹션 2에서 논의된 다양한 메커니즘(예: 제안 분포 및 검증기)에 대해 최적 전략 𝜃∗𝑞,𝑦∗(𝑞)(𝑁)의 근사치를 특정 프롬프트의 통계 함수로서 제시할 것입니다.
- 이 통계는 주어진 프롬프트의 난이도를 추정하는 개념입니다.
- 컴퓨팅 최적 전략은 이 프롬프트의 난이도에 따라 정의됩니다.
- 비록 이 전략이 식 1에 제시된 문제에 대한 근사적인 해결책에 불과하지만, 임의적이거나 균일하게 할당된 추론 시간 컴퓨팅에 비해 성능을 상당히 개선할 수 있다는 것을 확인했습니다.
- 우리는 질문 난이도의 추정을 통해 각 질문을 5가지 난이도 수준 중 하나에 할당합니다.
- 그런 다음 이 이산 난이도 분류를 사용해 주어진 테스트 시간 컴퓨팅 예산에 대해 𝜃∗𝑞,𝑦∗(𝑞)(𝑁)를 검증 세트에서 추정합니다.
- 그런 다음 테스트 세트에 이 컴퓨팅 최적화 전략을 적용합니다.
- 구체적으로, 난이도 범위별로 각각 가장 성능이 좋은 테스트 시간 컴퓨팅 전략을 선택합니다.
- 즉 질문 난이도에 따라 컴퓨팅 전략이 달라진다.
아마도 쉬운 문제는 적은 샘플링 + 많은 수정작업어려운 문제는 많은 샘플링 + 적은 수정작업 아닐까?- 여기서는 문제 난이도에 따라 샘플링하는 방법이 달라지는 것 (샘플링: 그림 2참고)
- 이러한 방식으로 질문 난이도는 컴퓨팅 최적화 전략을 설계할 때 질문에 대한 충분한 통계로 작용하게 됩니다.
- Defining difficulty of a problem
- Lightman 등[22]의 접근 방식을 따라, 우리는 질문 난이도를 주어진 LLM의 함수로 정의합니다.
- 구체적으로, 우리는 모델의 pass@1 비율을 테스트 세트의 각 질문에 대해 2048개의 샘플에서 추정하고, 이를 5개 분위로 나누어 난이도 수준을 할당합니다.
- 우리는 이러한 모델 특정 난이도 분류가 MATH 데이터셋의 사람이 레이블한 난이도 분류보다 테스트 시간 컴퓨팅 사용의 효과를 더 잘 예측할 수 있다는 것을 발견했습니다.
- 가장 쉽게 난이도를 설정할 수 있는 방법.. 하지만
- 하지만 위에서 설명한 대로 질문 난이도를 평가하는 것은 배포 시 정답 여부를 확인할 수 있는 기능을 가정한 것이며, 이는 우리가 실제로는 답을 모르는 테스트 프롬프트에만 접근할 수 있는 환경에서는 불가능합니다.
- 정답을 모르는 테스트때는 어떻게 난이도를 평가할 것인가?
- 따라서 실용적인 컴퓨팅 최적화 스케일링 전략은 난이도를 먼저 평가한 후, 이를 바탕으로 적절한 스케일링 전략을 적용해야 합니다.
- 이에 따라 우리는 문제의 난이도를 모델이 예측한 난이도의 개념으로 근사화하며, 이는 동일한 문제에 대해 2048개의 샘플을 사용해 학습된 검증기의 최종 답변 점수 평균을 기반으로 하는 분위 분류 과정을 따릅니다(정답 여부 확인이 아닌).
- 이를 모델 예측 난이도 설정이라고 부르고, 정답 여부에 의존하는 설정은 오라클 난이도라고 부릅니다.
- 즉 pass@1하지 않고, 학습된 검증기를 활용한 답변 점수의 평균을 활용한다?
- 검증기는 그럼 어떻게 학습되는것인가?
- 모델 예측 난이도는 정답 레이블을 알 필요는 없지만, 이 방식으로 난이도를 추정할 때는 여전히 추론 과정에서 추가적인 계산 비용이 발생합니다.
- 하지만 이 일회성 추론 비용은 실제로 추론 시간 전략을 실행하는 데 소요되는 비용 내에 포함될 수 있습니다(예: 검증기를 사용할 때, 동일한 추론 계산을 검색 실행에도 사용할 수 있음).
- 더 일반적으로, 이는 강화 학습의 탐색-활용 균형과 유사합니다.
- 실제 배포 환경에서는 난이도를 평가하는 데 소요되는 컴퓨팅과 최적의 컴퓨팅 접근 방식을 적용하는 데 소요되는 컴퓨팅 간의 균형을 맞춰야 합니다.
- 이는 중요한 향후 과제이며(섹션 8 참고), 우리의 실험은 단순화를 위해 이 비용을 고려하지 않았습니다.
- 우리의 목표는 테스트 시간 컴퓨팅을 효과적으로 할당함으로써 가능한 성과에 대한 최초의 결과를 제시하는 것입니다.
- 동일한 테스트 세트를 사용해 난이도 범위를 계산하고 컴퓨팅 최적화 전략을 선택하는 과정에서 발생할 수 있는 혼동 요인을 피하기 위해, 우리는 테스트 세트의 각 난이도 범위에서 2겹 교차 검증을 사용합니다.
- 한 겹에서 성능이 가장 좋은 전략을 선택하고, 해당 전략으로 다른 겹에서 성능을 측정한 후, 두 테스트 겹의 결과를 평균냅니다.
4. Experimental Setup
- 다음은 여러 검증기 설계 선택과 제안 분포를 사용한 분석 실험 설정을 설명한 후, 이후 섹션에서 분석 결과를 제시합니다.
- 데이터셋:
- 우리는 모델이 이미 질문에 답하는 데 필요한 기본적인 '지식'을 모두 가지고 있고, 대신 이 지식으로부터 복잡한 추론을 이끌어내는 것이 주된 도전 과제인 경우, 테스트 시점에서의 계산이 가장 유용할 것이라고 기대합니다.
- 이를 위해 우리는 MATH [13] 벤치마크에 집중합니다.
- 이 벤치마크는 고등학교 수준의 수학 경시대회 문제들로, 다양한 난이도를 포함하고 있습니다.
- 모든 실험에서 Lightman et al. [22]에서 사용한 데이터셋 분할을 따르며, 12,000개의 훈련 문제와 500개의 테스트 문제로 구성됩니다.
- 모델:
- 우리는 PaLM 2-S* [3] (Codey) 기본 모델을 사용하여 분석을 수행합니다.
- 이 모델은 많은 현대의 대규모 언어 모델(LLM)과 유사한 성능을 나타낸다고 생각되며, 따라서 우리의 연구 결과가 유사한 모델에도 적용될 수 있다고 봅니다.
- 특히 이 모델은 MATH 벤치마크에서 비트리비얼한 성능을 나타내며 아직 성능이 포화되지 않았으므로, 이 모델이 적절한 실험 대상이 될 것이라고 기대합니다.
5. Scaling Test-Time Compute via Verifiers
- 이 섹션에서는 검증기를 최적화하여 테스트 시간 컴퓨팅을 어떻게 효과적으로 확장할 수 있는지를 분석합니다.
- 이를 위해, 우리는 프로세스 검증기(Verifiers)와 함께 테스트 시간 검색을 수행하는 다양한 접근 방식을 연구하고, 이러한 다양한 접근 방식의 테스트 시간 컴퓨팅 스케일링 특성을 분석합니다.
5.1. Training Verifiers Amenable to Search
- PRM training:
- 원래 PRM 학습 [22, 42]은 인간 크라우드 워커의 레이블을 사용했습니다.
- Lightman et al. [22]는 PRM 학습 데이터(PRM800k 데이터셋)를 공개했지만, 우리는 이 데이터가 우리에게는 대부분 효과적이지 않음을 발견했습니다.
- 이 데이터셋으로 학습된 PRM은 단순한 전략(예: best-of-N 샘플링)으로도 쉽게 악용될 수 있었습니다.
- 이는 그들의 데이터셋에 포함된 GPT-4 생성 샘플과 우리 PaLM 2 모델 간의 분포 차이 때문이라고 가정합니다.
- 대신, 우리 PaLM 2 모델을 위해 크라우드 워커 PRM 레이블을 수집하는 비용이 많이 드는 과정을 거치지 않고, Wang et al. [45]의 방법을 적용하여 인간 레이블 없이 PRM을 감독합니다.
- 이 방법은 솔루션의 각 단계에서 몬테카를로 롤아웃을 실행하여 얻은 단계별 정확도 추정치를 사용합니다.
- 따라서 PRM의 단계별 예측은 기본 모델의 샘플링 정책에 대한 value-to-go 추정치에 해당하며, 최근 연구 [31, 45]와 유사합니다.
- 우리는 ORM 기준 모델(부록 F 참조)과도 비교했지만, PRM이 일관되게 ORM을 능가함을 확인했습니다.
- 따라서 이 섹션의 모든 탐색 실험은 PRM 모델을 사용합니다.
- PRM 학습에 대한 추가 세부 사항은 부록 D에 나와 있습니다.
- 자동 레이블을 만들어서 학습하는거 같은데 어떤 방법인지 궁금하군
- Answer aggregation:
- 테스트 시점에서 과정 기반 검증기는 기본 모델에서 샘플링된 여러 솔루션의 각 단계를 평가하는 데 사용할 수 있습니다.
- PRM을 사용하여 best-of-N 답변을 선택하려면, 각 답변의 단계별 점수를 집계하여 최적의 답변 후보를 결정하는 함수를 사용해야 합니다.
- 이를 위해 먼저 각 답변의 단계별 점수를 집계하여 전체 답변에 대한 최종 점수를 얻습니다(단계별 집계).
- 그런 다음, 답변 간 집계를 통해 최적의 답변을 결정합니다(답변 간 집계).
- 구체적으로, 우리는 Step-wise aggregation와 Inter-answer aggregation를 다음과 같이 처리합니다:
- PRM을 통해 응답의 최종 점수를 도출하는 방법으로 2가지를 시도해본 듯
- Step-wise aggregation:
- 단계별 점수를 곱하거나 최소값을 취하는 방법 [22, 45] 대신, PRM의 마지막 단계에서의 예측을 전체 답변 점수로 사용합니다.
- 우리가 연구한 모든 집계 방법 중 이 방법이 가장 좋은 성능을 보였습니다(부록 E 참조).
- Inter-answer aggregation:
- 우리는 Li et al. [21]를 따라, 일반적인 best-of-N 방식 대신 “best-of-N 가중치 선택”을 적용합니다.
- Best-of-N 가중치 선택은 동일한 최종 답변을 가진 모든 솔루션에서 검증기의 정확도 점수를 평균화하며, 총합이 가장 큰 최종 답변을 선택합니다.
5.2. Search Methods Against a PRM
- 우리는 테스트 시점에서 PRM을 탐색 방법을 통해 최적화합니다.
- 몇 가지 샘플링된 출력 방법을 사용하는 세 가지 탐색 접근 방식을 연구했으며, 기본 LLM을 few-shot 프롬프트로 설정했습니다(부록 G 참조).
- 그림 2에는 이를 설명하는 그림이 나와 있습니다.
- Best-of-N weighted:
- 우리는 기본 LLM에서 N개의 답변을 독립적으로 샘플링한 후, PRM의 최종 답변 판단에 따라 최적의 답변을 선택합니다.
- Beam search:
- 빔 서치는 PRM을 최적화하기 위해 단계별 예측을 통해 탐색을 수행합니다.
- 우리의 구현은 BFS-V [10, 48]와 유사합니다.
- 구체적으로, 우리는 고정된 빔 수 N과 빔 너비 M을 설정합니다.
- 그런 다음 다음 단계를 실행합니다:
- 1. 해결책의 첫 번째 단계에서 N개의 초기 예측을 샘플링합니다.
- 2. PRM의 단계별 보상-to-go 예측에 따라 생성된 단계를 점수화합니다(이 설정에서 보상이 희소하기 때문에 접두어에서의 총 보상에 해당).
- 3. 상위 N/M 점수를 가진 단계만 필터링합니다.
- 4. 이제 각 후보에서 다음 단계에 대해 M개의 제안을 샘플링하여 다시 총 N/M × M개의 후보 접두어를 얻습니다. 그런 다음 2-4단계를 반복합니다.
- 이 알고리즘은 해결책이 끝날 때까지 또는 빔 확장의 최대 라운드 수(우리의 경우 40)에 도달할 때까지 실행됩니다.
- 탐색이 완료되면 N개의 최종 답변 후보가 남고, 이에 Best-of-N 가중치 선택을 적용하여 최종 답변 예측을 합니다.
- 즉 중간중간 단계에서 점수 threshold을 주는 개념인듯
- Lookahead search:
- 룩어헤드 서치는 빔 서치가 개별 단계를 평가하는 방식을 수정한 것입니다.
- 이 방법은 탐색 과정에서 각 단계의 PRM 값 추정의 정확성을 높이기 위해 룩어헤드 롤아웃을 사용합니다.
- 구체적으로, 빔 서치의 각 단계에서 현재 단계에서의 PRM 점수를 사용하여 상위 후보를 선택하는 대신,
- 룩어헤드 서치는 최대 k단계의 시뮬레이션을 수행하고, 해결책이 종료되면 일찍 중단합니다.
- 즉 현재 단계의 PRM 점수만을 사용해서 cut하는것은 빔서치이고
- k개의 next step 토큰까지 생성해보고 점수계산을 해보는게 lookahead 방법인듯
- 시뮬레이션 롤아웃의 분산을 최소화하기 위해 temperature 0을 사용하여 롤아웃을 수행합니다.
- 그런 다음 이 롤아웃의 끝에서 PRM의 예측이 현재 단계의 빔 서치 점수를 결정하는 데 사용됩니다.
- 즉, 빔 서치는 k = 0일 때의 룩어헤드 서치의 특수한 경우로 볼 수 있습니다.
- PRM이 정확할 경우, k를 증가시키면 추가적인 계산 비용을 대가로 단계별 값 추정의 정확도가 향상될 수 있습니다.
- 또한, 이 버전의 룩어헤드 서치는 MCTS [38]의 특수한 경우인데, 여기서는 PRM이 이미 학습되어 고정되어 있기 때문에 탐색을 촉진하는 MCTS의 확률적 요소들이 제거됩니다.
- 이러한 확률적 요소들은 값 함수를 학습하는 데 유용하지만(우리는 이미 PRM으로 이를 학습했습니다), 테스트 시점에서는 탐색보다 활용이 더 중요하기 때문에 유용하지 않습니다.
- 따라서 룩어헤드 서치는 테스트 시점에서 MCTS 스타일 방법이 어떻게 적용될지를 대체로 대표합니다.
5.3. Analysis Results: Test-Time Scaling for Search with Verifiers
- 다양한 검색 알고리즘을 비교한 결과와 문제 난이도에 따라 컴퓨팅 최적화된 검색 방법을 도출하는 전략을 제시합니다.
- Comparing search algorithms
- 먼저, 다양한 검색 설정을 대상으로 실험을 진행했습니다.
- 표준적인 Best-of-N 접근 방식 외에도 트리 탐색 방법을 구분하는 두 가지 주요 매개변수인 빔 너비(𝑀)와 예상 단계 수(𝑘)를 기준으로 설정을 탐색했습니다.
- 모든 설정을 광범위하게 탐색하지는 않았으나, 최대 예산 256을 기준으로 다음 설정을 탐색했습니다.
- 1. 빔 탐색: 빔 너비를 √𝑁으로 설정 (여기서 𝑁은 생성 예산).
- 2. 고정 빔 너비 4로 설정한 빔 탐색.
- 3. 예상 단계 수 𝑘 = 3을 빔 탐색 설정 1과 2에 모두 적용한 탐색.
- 4. 예상 단계 수 𝑘 = 1을 빔 탐색 설정 1에 적용한 탐색.
- 생성 예산에 따른 검색 방법을 공정하게 비교하기 위해 각 방법의 비용을 추정하는 프로토콜을 구축했습니다.
- 생성 하나를 기본 LLM으로부터 샘플링한 답변으로 간주했습니다.
- 빔 탐색과 Best-of-N의 경우 생성 예산은 각각 빔 수와 𝑁에 해당합니다.
- 그러나 예상 단계 검색은 추가적인 계산을 사용합니다.
- 검색의 각 단계에서 𝑘개의 추가 단계를 샘플링하므로, 예상 단계 검색의 비용을 𝑁 × (𝑘 + 1) 샘플로 정의했습니다.
- Results.
- 왼쪽 그림 3에 따르면, 작은 생성 예산에서는 빔 탐색이 Best-of-N보다 성능이 크게 우수했습니다.
- 예산이 적을때는 beam-search가 낫고, 많을때는 best-of-N (여러번 샘플링)하는게 낫다?
- 그러나 예산이 확장됨에 따라 이러한 성능 향상은 급격히 줄어들며, 빔 탐색이 종종 Best-of-N 기준선보다 성능이 낮아지는 것을 확인했습니다.
- 또한, 예상 단계 검색은 추가적인 계산으로 인해 동일한 생성 예산에서 다른 방법보다 일반적으로 성능이 낮았습니다.
- 검색에서 오는 감소하는 수익은 PRM의 예측을 과도하게 활용하는 데서 기인할 가능성이 있습니다.
- 예를 들어, 일부 경우(그림 29 참조)에서는 검색이 해결책의 끝부분에서 반복적이고 정보가 부족한 단계를 생성하게 만들었습니다.
- 다른 경우에는 지나치게 최적화된 검색이 1-2단계로만 구성된 매우 짧은 해결책을 초래했습니다.
- 이것이 가장 강력한 검색 방법(예: 예상 단계 검색)이 가장 성능이 낮은 이유를 설명합니다.
- 검색으로 발견된 몇 가지 예는 부록 M에 포함되어 있습니다.
- Which problems does search improve?
- 검색 방법을 컴퓨팅 최적화 방식으로 확장하려면 문제 난이도에 따라 성능을 평가해야 합니다.
- 빔 탐색(𝑀 = 4)과 Best-of-N을 비교한 결과, 그림 3 오른쪽에서 보듯이 높은 생성 예산에서는 전체적으로 두 방법이 유사한 성능을 보였지만, 난이도에 따른 차별화된 경향을 보였습니다.
- 쉬운 문제(레벨 1과 2)에서는 더 강력한 최적화 방법인 빔 탐색이 예산이 증가할수록 성능을 저하시켰습니다.
- 이는 PRM 신호의 과도한 활용을 암시합니다.
- 반면, 어려운 문제(레벨 3과 4)에서는 빔 탐색이 일관되게 Best-of-N보다 우수한 성능을 보였습니다.
- 가장 어려운 문제(레벨 5)에서는 어느 방법도 큰 진전을 이루지 못했습니다.
- 이러한 결과는 직관과 일치합니다.
- 쉬운 문제에서는 검증기가 대부분 정확한 판단을 내릴 것이므로, 빔 탐색을 통해 추가적인 최적화를 적용하면 검증기가 학습한 잘못된 특징을 더욱 증폭시켜 성능 저하를 초래할 수 있습니다.
- 어려운 문제에서는 기본 모델이 처음부터 정답을 샘플링할 가능성이 낮으므로, 검색이 모델이 올바른 답을 생성하도록 유도하는 데 도움이 될 수 있습니다.
- 예산이 한정된 상황에서, 어려운 문제일수록 beam-search가 best-of-N보다 낫다?
- Compute-optimal search.
- 위 결과를 통해 문제 난이도가 주어진 컴퓨팅 예산에서 최적의 검색 전략을 예측하는 유용한 통계임을 알 수 있습니다.
- 또한, 최적의 검색 전략은 난이도에 따라 크게 달라질 수 있습니다.
- 그림 4에서 난이도 수준별로 가장 성능이 우수한 검색 전략을 시각화한 "컴퓨팅 최적화" 확장 경향을 확인할 수 있습니다.
- 생성 예산이 적을 때, 예측된 난이도를 기반으로 한 경우에도 최대 4배 적은 테스트 시 컴퓨팅으로 Best-of-N을 거의 능가하는 성능을 보였습니다(예: 16대 64 생성).
- 생성 예산이 높은 경우, 예측된 난이도를 사용할 때는 이러한 이점이 줄어들지만, 예측 대신 이상적인 난이도 구간을 사용하면 테스트 시 컴퓨팅을 최적화하여 성능 향상을 계속 얻을 수 있었습니다.
- 이는 검색 중 테스트 시 컴퓨팅을 적응적으로 할당하여 성능을 향상시킬 수 있음을 보여줍니다.
- 문제 난이도를 안다면, 같은 자원에서 높은 성능을 달성할 수 있는 샘플링을 보여줌
6. Refining the Proposal Distribution
- 지금까지 우리는 검증자들에 대한 검색의 테스트 시간 계산 확장 특성을 연구했습니다.
- 이제 제안 분포를 수정하는 확장 특성을 연구해 보겠습니다(섹션 2).
- 구체적으로, 우리는 모델이 반복적으로 스스로의 답변을 수정할 수 있도록 하여, 모델이 테스트 시에 자신의 분포를 동적으로 개선할 수 있게 합니다.
- 기존의 대형 언어 모델(LLM)에게 스스로의 실수를 수정하도록 지시하는 것은 추론 문제에서 성능 개선을 얻는 데 크게 효과적이지 않은 경우가 많습니다 [15].
- 따라서 우리는 Qu et al. [28]의 권장 방법을 바탕으로 하여, 우리의 상황에 맞게 수정 사항을 통합하고, 언어 모델을 미세 조정하여 스스로의 답변을 반복적으로 수정하도록 합니다.
- 먼저, 질문에 대한 이전 시도들을 조건으로 하여 스스로의 제안 분포를 순차적으로 수정하는 모델을 어떻게 훈련하고 사용하는지 설명합니다.
- 그런 다음, 수정 모델의 추론 시간 확장 특성을 분석합니다.
- LLM을 써서 수정하도록 하는게 아니라, 수정모델을 따로 학습해서 사용하는듯
6.1. Setup: Training and Using Revision Models
- 우리의 수정 모델을 미세 조정하는 절차는 [28]과 유사하지만, 몇 가지 중요한 차이점을 도입했습니다.
- 미세 조정을 위해서는 일련의 잘못된 답변들이 뒤따라 나오는 올바른 답변들로 구성된 경로가 필요하며, 이를 통해 SFT(Supervised Fine-Tuning)를 실행할 수 있습니다.
- 이상적으로, 올바른 답변은 맥락에서 제공된 잘못된 답변들과 상관관계가 있어야 하며, 이를 통해 모델이 주어진 맥락 내에서 예시된 실수를 암묵적으로 식별하고, 그 실수를 무시하지 않고 편집을 통해 수정하도록 효과적으로 가르칠 수 있습니다.
- Generating revision data.
- Qu et al. [28]의 정책 기반 접근 방식은 여러 차례에 걸친 롤아웃(rollouts)을 얻는 데 효과적이었으나, 인프라 상의 계산 비용 때문에 완전히 실현 가능하지 않았습니다.
- 따라서 우리는 64개의 응답을 병렬로 샘플링하고, 이를 바탕으로 후속적으로 다중 턴 롤아웃을 구성했습니다.
- 구체적으로, [1]의 방법을 따라, 각 올바른 답변을 이 세트의 잘못된 답변들과 연결하여 다중 턴 미세 조정 데이터를 구성했습니다.
- 맥락에 최대 4개의 잘못된 답변을 포함시키며, 맥락에서 제공되는 답변의 수는 0에서 4까지 균등 분포에서 무작위로 샘플링합니다.
- 우리는 최종 올바른 답변과 상관관계가 있는 잘못된 답변을 선택하기 위해 문자 편집 거리(char edit distance) 메트릭을 사용했습니다(부록 H 참조).
- 토큰 편집 거리가 상관관계의 완벽한 척도는 아니지만, 이 휴리스틱(heuristic)이 잘못된 맥락 내 답변과 올바른 목표 답변을 연관시키기에 충분함을 발견했습니다.
- 무작위로 잘못된 답변과 올바른 답변을 연결하는 것보다는 의미 있는 수정 모델을 훈련하는 데 도움이 되었습니다.
- refernce [1]을 따라 데이터 만들었다고 하는데, [1]은 일단 Training revision models with synthetic data. Coming soon, 2024로 공개되지 않은거임ㅋㅋ
- 추측해보면 gold answer을 변형시켜서 잘못된 답변을 만든게 아닐까?
- Using revisions at inference-time.
- 미세 조정된 수정 모델을 활용하면 테스트 시에 수정된 응답의 연속된 샘플을 얻을 수 있습니다.
- 우리의 수정 모델은 최대 4개의 이전 답변을 맥락에서 훈련하지만, 우리는 맥락을 가장 최근에 수정된 4개의 응답으로 잘라서 더 긴 연속된 체인을 샘플링할 수 있습니다.
- 그림 6(왼쪽)에 따르면, 수정 모델에서 더 긴 체인을 샘플링할수록 pass@1 성능이 점진적으로 향상되며, 모델이 맥락에서 이전 답변의 실수로부터 효과적으로 학습할 수 있음을 보여줍니다.
- 그렇긴 해도 추론 시에는 분포 변화가 발생합니다.
- 모델은 맥락에서 잘못된 답변만을 포함한 시퀀스에서 훈련되었지만, 테스트 시에는 모델이 올바른 답변을 샘플링할 수 있으며, 이는 다음 수정 단계에서 올바른 답변이 잘못된 답변으로 바뀌는 결과를 초래할 수 있습니다. (이러한 문제가 있을거 같긴했음. 그렇다면 reward 모델로 threshold을 주려나?)
- 실제로 Qu et al. [28]과 유사하게, 우리의 수정 모델은 순진한 접근 방식에서는 약 38%의 올바른 답변이 다시 잘못된 답변으로 변환된다는 것을 발견했습니다.
- 따라서 우리는 모델이 만든 수정된 응답 중 가장 올바른 답변을 선택하기 위해 순차적 다수결 투표 또는 검증자 기반 선택 메커니즘을 사용합니다(그림 5 참조).
- 수정이 됐을때 verifier (reward 모델)로 threshold 줘서 정답을 선택하는듯
- Comparisons.
- 수정 방식을 통해 제안 분포를 수정하는 효과를 테스트하기 위해, 우리는 질문에 대한 N번의 수정을 연속적으로 샘플링하는 것과 N번의 시도를 병렬로 샘플링하는 성능을 비교하는 공정한 실험을 설정했습니다.
- 그림 6(오른쪽)에서 보듯이, 검증자 기반 및 다수결 기반 선택 메커니즘 모두에서 솔루션을 연속적으로 샘플링하는 것이 병렬로 샘플링하는 것보다 더 나은 성능을 보였습니다.
- 병렬로 쭉 생성하는것보다, 수정하는것도 의미가 있다!
6.2. Analysis Results: Test-Time Scaling with Revisions
- 이전에 답변을 순차적으로 제안하는 방식이 병렬로 제안하는 방식보다 더 우수하다는 것을 확인했습니다.
- 하지만 순차적 샘플링과 병렬 샘플링은 서로 다른 특성을 가질 수 있다고 예상할 수 있습니다.
- 병렬로 답변을 샘플링하는 것은 문제를 해결하기 위한 여러 완전히 다른 접근 방식을 모두 아우르는 전역 탐색(global search) 과정처럼 작용할 수 있습니다.
- 예를 들어, 서로 다른 후보는 문제 해결을 위해 완전히 다른 고차원적 접근 방식을 사용할 수 있습니다.
- 반면, 순차적 샘플링은 이미 어느 정도 올바른 방향으로 가고 있는 응답을 수정하는 국소적 개선(local refinement) 과정으로 작용할 수 있습니다.
- 이러한 상호 보완적인 이점을 고려할 때, 추론 시간 자원을 병렬 샘플링(예: √𝑁)과 순차적 수정(예: √𝑁) 사이에 적절히 분배하는 것이 중요합니다.
- 이제 순차적 샘플링과 병렬 샘플링 사이에서 계산 자원을 최적으로 배분하는 비율의 존재를 보여주고,
- 주어진 프롬프트의 난이도에 따라 이들의 상대적인 장단점을 이해하겠습니다.
- Trading off sequential and parallel test-time compute.
- 순차적 샘플링과 병렬 샘플링을 최적으로 배분하는 방법을 이해하기 위해 다양한 비율에 대한 실험을 수행했습니다.
- 그림 7(왼쪽)에서 보듯이, 주어진 생성 예산 내에서 최대 정확도를 달성하는 이상적인 순차적-병렬 비율이 존재함을 확인할 수 있습니다.
- 또한 그림 7(오른쪽)에서는 질문의 난이도에 따라 이상적인 순차적-병렬 비율이 달라진다는 것도 볼 수 있습니다.
- 특히 쉬운 질문의 경우 순차적 수정이 더 큰 이점을 제공하는 반면, 어려운 질문의 경우 순차적 계산과 병렬 계산의 균형을 맞추는 것이 최적의 성능을 낼 수 있습니다. (결과중 나름 핵심인거 같음)
- 이러한 결과는 순차적 수정(즉, 제안 분포 수정)과 병렬 샘플링(즉, 검증자를 활용한 검색)이 테스트 시간 계산을 확장하는 두 가지 상호 보완적인 축이라는 가설을 뒷받침합니다.
- 문제마다 더 효과적인 방식을 사용할 수 있음을 의미합니다.
- 모델의 생성 예시는 부록 L에 포함되어 있으며, 추가 결과는 부록 B에 나와 있습니다.
- Compute-optimal revisions.
- 순차적 샘플링과 병렬 샘플링의 효율성은 질문 난이도에 따라 달라지므로, 난이도에 따라 최적의 순차적-병렬 계산 비율을 선택할 수 있습니다.
- 그림 8에서는 오라클 및 예측 난이도 개념을 사용하여 이 계산 최적화 확장 전략을 적용한 결과를 나타냅니다.
- 두 경우 모두 수정 과정을 통해 제안 분포를 개선함으로써 테스트 시간 계산 확장을 크게 향상할 수 있음을 알 수 있습니다.
- 특히, 더 높은 생성 예산에서 병렬 샘플링의 성능이 한계에 도달할 때, 계산 최적화 확장은 지속적인 성능 향상을 보여줍니다.
- 즉 병렬적으로 다수의 샘플링만으로는 성능의 한계가 있는데, 수정방법을 통해 성능의 고점을 조금더 높여주는 느낌
- 오라클과 예측 난이도 범주 모두에서, 계산 최적화 확장은 최대 4배 적은 테스트 시간 계산 자원을 사용하면서도 best-of-N 방식을 능가할 수 있음을 알 수 있습니다(예: 64개의 샘플이 256개 샘플을 능가).
- 전반적으로, 이 결과는 프롬프트별로 제안 분포를 조정함으로써 테스트 시간 계산 확장을 개선할 잠재력을 보여줍니다.
- Takeaways for compute-optimal scaling by refining the proposal distribution with revisions
- 우리는 순차적 계산(예: 수정)과 병렬 계산(예: 표준 best-of-N) 사이에 상충관계가 존재한다는 것을 발견했으며, 순차적 계산과 병렬 계산의 이상적인 비율은 계산 자원과 주어진 질문에 크게 의존한다는 것을 확인했습니다.
- 구체적으로, 쉬운 질문일수록 순차적 계산에 의존하는 것이 더 효과적이며, 어려운 질문은 순차적 계산과 병렬 계산의 이상적인 비율을 적용했을 때 가장 좋은 성능을 보이는 경우가 많습니다.
- 또한, 주어진 질문의 난이도와 테스트 시간 계산 자원에 맞춰 최적의 설정을 선택함으로써, 병렬 best-of-N 기준과 비교하여 최대 4배 적은 계산 자원으로 더 나은 성능을 달성할 수 있습니다.
7. Putting it Together: Exchanging Pretraining and Test-Time Compute
- 지금까지 우리는 추가적인 테스트 시간 계산을 활용함으로써 기본 LLM이 예측하는 분포보다 더 복잡한 분포를 표현할 수 있으며, 이를 통해 성능을 향상시킬 수 있다는 것을 확인했습니다.
- 이제 우리는 이러한 분포 표현의 유연성이 증가함에 따라 추가적인 테스트 시간 계산이 더 높은 용량의 모델 부족이나 사전 훈련 중 더 많은 FLOP(Floating Point Operations)를 수행하지 못한 부분을 보완할 수 있을 것이라고 가정합니다.
- 이 섹션에서는 이것이 어느 정도까지 가능한지 연구합니다.
- 이를 위해 다음 질문을 제기합니다.
- Question: Exchanging pretraining and test-time compute
- 모델이 𝑋 FLOP로 사전 훈련되었다고 가정합시다.
- 이 모델로 𝑌 FLOP의 추론을 실행할 계획이라고 가정할 때, 총 FLOP 예산을 𝑀배로 늘려 성능을 개선하고자 한다면(즉, 사전 훈련과 추론을 합쳐 𝑀(𝑋 + 𝑌) FLOP를 사용하는 경우), FLOP를 사전 훈련 계산을 늘리는 데 사용하는 것이 더 나을까요, 아니면 추가적인 테스트 시간 계산(추론)으로 사용하는 것이 더 나을까요?
- 사전 훈련 FLOP를 늘리는 경우, 추가적인 계산 자원을 더 많은 데이터를 훈련하는 데 사용할지, 더 많은 파라미터를 훈련하는 데 사용할지에 대한 설계 결정을 해야 합니다 [14].
- chinchilla?
- 우리는 LLaMA 시리즈 모델에서 적용된 접근 방식처럼 모델 파라미터를 확장하고 훈련 데이터 양은 고정하는 설정에 중점을 둡니다 [41].
- 이 설정은 사전 훈련 계산 확장에 대한 대표적인 접근 방식을 보여주며, 데이터와 파라미터를 동일하게 확장하는 사전 훈련 계산의 최적 확장 분석은 향후 연구로 남겨 둡니다 [29].
- Defining an exchange rate between FLOPs.
- 이제 사전 훈련 FLOP와 추론 FLOP 간의 교환 비율을 정의하는 방법을 설명하겠습니다.
- 사전 훈련 FLOP를 결정하기 위해 일반적으로 사용되는 근사치인 𝑋 = 6𝑁𝐷_pretrain [14]을 사용하며, 추론 FLOP는 𝑌 = 2𝑁𝐷_inference [29]로 계산합니다.
- 여기서 𝑁은 모델 파라미터 수를 나타내며, 𝐷pretrain은 사전 훈련에 사용된 토큰 수, 𝐷inference는 추론 시 생성된 토큰 수를 의미합니다.
- 이러한 근사치를 통해, 모델 파라미터를 𝑀배로 늘리면 사전 훈련과 추론 FLOP가 모두 𝑀배로 증가함을 알 수 있습니다(즉, 총 FLOP는 𝑀(𝑋 + 𝑌)).
- 더 작은 모델을 사용하면서 테스트 시간 계산을 통해 파라미터를 확장한 모델과 동일한 FLOP를 달성하려면, 더 작은 모델의 추론 계산을 𝑀 + 3(𝐷pretrain/𝐷inference)(𝑀 − 1) 배로 늘려야 합니다.
- 주목할 점은, 더 큰 모델과 동일한 FLOP를 달성하기 위해 사용할 수 있는 추론 계산량은 𝐷pretrain/𝐷inference 비율에 따라 달라진다는 것입니다.
- 이 비율의 역수를 𝑅(예: 𝐷inference/𝐷pretrain)이라고 부릅니다. 특정 프로덕션 환경이나 사용 사례에 따라 𝑅 값은 매우 다를 수 있습니다.
- 특히, 대규모 프로덕션 환경에서는 추론에 사용되는 토큰 수가 사전 훈련에 사용된 토큰 수보다 훨씬 많을 것으로 예상할 수 있으며, 이 경우 𝑅 >> 1이 됩니다.
- 반면, 테스트 시간 계산을 사용해 모델 성능을 개선하는 self-improvement 설정에서는 추론에 사용되는 토큰 수가 사전 훈련에 사용된 토큰 수보다 훨씬 적을 가능성이 높으며, 이 경우 𝑅 << 1이 됩니다.
- 따라서 적용할 수 있는 테스트 시간 계산의 규모는 이 비율에 따라 달라지며, 설정에 따라 결론이 달라질 것으로 예상됩니다.
- 그림 9에서는 이러한 테스트 시간 계산과 사전 훈련 계산 간 교환 방식을 사용하여 파라미터를 약 14배로 확장한 것과 비교하여, 계산 최적화 확장을 평가합니다.
- 우리는 𝑅 값이 각각 0.16 (𝑅 << 1), 0.79 (𝑅 ∼ 1), 22 (𝑅 >> 1)인 세 가지 경우를 비교하며, 각 비율은 추론 예산에 해당합니다.
- 매우 어려운 질문만 예상되거나(예: 난이도 범주 4/5) 더 큰 𝐷inference(즉, 더 큰 𝑅 값)를 가진 경우, 예산을 사전 훈련에 할당하는 것이 더 효과적이라는 것을 알 수 있습니다(예: 별표가 선 위에 위치).
- 반면, 주로 쉬운 질문이나 중간 난이도의 질문을 예상하거나(예: 범주 1/2/3, 때때로 4), 낮은 추론 요구사항을 가진 경우(셀프-임프루브먼트 파이프라인처럼), 테스트 시간 계산을 사용하는 것이 더 좋습니다.
- 결론은 어려운 질문은 pretraining쪽에 비용을 써서, 더 좋은 LLM을 쓰는게 좋다는거 같고
- 쉬운 질문은 inference쪽에 비용을 써서, 더 많은 샘플링(계산)을 해서 답을 도출하는게 좋다는거 같다.
- Takeaways for exchanging pretraining and test-time compute
- 테스트 시간 계산과 사전 훈련 계산은 1:1로 "교환"할 수 없습니다.
- 쉬운 질문이나 중간 난이도의 질문, 즉 모델의 역량 범위 내에 있는 질문이거나 추론 요구 사항이 적은 설정에서는 테스트 시간 계산을 통해 추가적인 사전 훈련을 충분히 대체할 수 있습니다.
- 하지만 주어진 기본 모델의 역량을 벗어나는 어려운 질문이나 높은 추론 요구 사항이 있는 경우, 성능 향상을 위해 사전 훈련이 더 효과적일 가능성이 큽니다.
8. Discussion and Future Work
- 이 연구에서는 수학적 추론을 위한 테스트 시간 계산을 확장하기 위해, 검증자에 대한 검색을 개선하거나 LLM(대형 언어 모델)의 제안 분포를 수정하는 다양한 기술의 효율성을 철저히 분석했습니다.
- 전반적으로, 특정 접근법의 효율성은 기본 LLM의 능력 관점에서 문제의 난이도와 밀접하게 관련이 있다는 결론에 도달했습니다.
- 이를 통해, 주어진 테스트 시간 컴퓨팅 예산 하에서 성능을 향상시키기 위한 적응형, 프롬프트 의존적인 전략인 "컴퓨팅 최적화" 스케일링 개념을 도입하게 되었습니다. 이러한 컴퓨팅 최적화 스케일링 전략을 적용하면, 테스트 시간 계산 스케일링의 효율성을 2배에서 4배 향상시킬 수 있음을 확인했습니다.
- FLOPs(부동 소수점 연산) 기준으로 추가적인 사전 훈련 계산과 비교할 때, 처음으로 테스트 시간 계산이 수정 및 검색과 같은 간단한 방법으로도 특정 유형의 프롬프트에서 잘 확장될 수 있음을 보였고, 사전 훈련에 FLOPs를 사용하는 것보다 이득을 제공할 수 있음을 증명했습니다.
- 그럼에도 불구하고, 이번 연구에는 몇 가지 한계가 존재하며, 이는 향후 연구에서 해결할 과제입니다.
- Further improving test-time compute scaling.
- 이번 연구에서는 검증자와 제안 분포(수정을 통한)라는 두 가지 주요 메커니즘의 테스트 시간 계산 스케일링을 개선하는 데 중점을 두었습니다.
- 6장에서 revisions과 verifiers를 결합했지만, PRM(프로세스 보상 모델) 트리 탐색 기법과 수정을 결합한 실험은 진행하지 않았습니다.
- 또한, **Critique and Revise** [23]와 같은 다른 기법도 연구하지 않았습니다.
- 향후 연구는 이러한 다양한 접근 방식을 결합하여 테스트 시간 계산 스케일링을 어떻게 더욱 개선할 수 있을지 조사해야 합니다.
- 또한, 이번 연구에서는 어려운 문제에서 이러한 방법들이 작은 성과만을 제공했음을 발견했으며, 이를 극복할 수 있는 새로운 방법을 개발해야 합니다.
- Assessing question difficulty quickly.
- 우리는 테스트 시간 최적화 스케일링 전략을 근사하기 위한 간단한 통계로 문제 난이도 개념을 사용했습니다.
- 이 방식이 효과적이긴 했지만, 난이도를 추정하는 데에도 상당한 테스트 시간 계산이 필요했습니다.
- 향후 연구에서는 질문의 난이도를 더 효율적으로 추정하는 방법(예: 질문 난이도를 직접 예측하도록 모델을 사전 훈련 또는 미세 조정하는 방법)이나 난이도를 평가하는 것과 문제 해결을 시도하는 것 사이에서 동적으로 전환하는 방식을 고려해야 합니다.
- Interleaving test-time and training-time compute.
- 이번 연구에서는 테스트 시간 계산 스케일링에만 집중했고, 추가적인 사전 훈련과 테스트 시간 계산을 교환할 수 있는 정도에 주목했습니다.
- 그러나 미래에는 추가적인 테스트 시간 계산의 출력을 다시 기본 LLM으로 증류하여, 자연 언어 기반의 개방형 자기 개선 루프를 가능하게 할 수 있을 것입니다.
- 이를 위해, 향후 연구는 이번 연구 결과를 확장하고 테스트 시간 계산의 출력을 기본 LLM 자체를 향상시키는 데 어떻게 사용할 수 있을지 연구해야 합니다.
Reference
댓글
댓글 쓰기