원문: https://arxiv.org/pdf/2411.07279
Abstract
언어 모델은 훈련 데이터 내의 작업에서는 뛰어난 성능을 보이지만, 복잡한 추론이 필요한 새로운 문제에서는 종종 어려움을 겪습니다. 우리는 테스트 시점 학습(Test-Time Training, TTT)을 사용하여 모델의 추론 능력을 향상시키는 방법을 연구했습니다. TTT란 추론(모델 예측)을 수행하는 동안 입력 데이터를 기반으로 한 손실(loss)을 이용해 모델의 파라미터를 임시로 업데이트하는 기법입니다. 이 연구에서는 추상적 추론 데이터셋(ARC, Abstraction and Reasoning Corpus)을 벤치마크로 사용하여 TTT의 효과를 평가했습니다.
실험을 통해 TTT를 성공적으로 적용하기 위해 필요한 세 가지 중요한 요소를 발견했습니다.
1. 유사한 작업에 대한 초기 파인튜닝(finetuning): TTT를 적용하기 전에 비슷한 문제를 미리 학습시키는 과정.
2. 보조 작업 형식 및 데이터 증강(augmentations): TTT에 사용되는 보조 작업 설계와 데이터의 다양화.
3. 개별 인스턴스 단위의 학습(per-instance training): 각 입력 데이터마다 별도로 학습 과정을 수행.
이 방법을 적용하자 ARC 작업에서 성능이 크게 향상되었으며, 기본 파인튜닝 모델 대비 최대 6배 높은 정확도를 달성했습니다. 특히, 80억 개의 파라미터를 가진 언어 모델에 TTT를 적용했을 때, ARC 공개 검증 세트에서 53% 정확도를 기록했으며, 이는 기존 공개 신경망 기반(State-of-the-Art, SoTA) 성능을 약 25% 개선한 결과입니다. 또한, 최근 프로그램 생성 기반 접근법과 TTT를 결합하자, 공개 검증 세트에서 61.9% 정확도로 평균 인간 수준 성능과 동등한 결과를 얻었습니다.
이 연구는 추상적 추론 능력을 향상시키는 데 있어 명시적 심볼릭 탐색(explicit symbolic search)만이 유일한 방법이 아니라는 것을 보여줍니다. 추가적인 테스트 시점 학습을 통해 소수의 예제(few-shot examples)를 기반으로 모델 성능을 극대화할 수 있다는 것을 입증한 것입니다.
1 Introduction
배경
• 언어 모델(Language Models, LMs)은 자신이 훈련된 데이터 안에서 잘 작동하고, 익숙한 문제의 변형이나 조합도 잘 해결합니다.
• 하지만 훈련되지 않은 새로운 문제, 특히 복잡한 추론이나 계획, 문자열 조작 등이 필요한 문제에서는 성능이 떨어지는 경우가 많습니다.
• 여기서 핵심 질문은 “언어 모델이 훈련 데이터와 크게 다른 새로운 문제를 해결할 수 있을까?”입니다. 이는 인공지능의 새로운 기술 습득 능력을 이해하는 중요한 척도입니다.
ARC 데이터셋을 이용한 평가
• ARC(Abstraction and Reasoning Corpus)는 언어 모델의 추상적 추론 능력을 평가하기 위해 만들어진 어려운 데이터셋입니다.
• ARC는 새로운 형식과 규칙으로 구성된 시각적 추론 문제를 제시하며, 모델이 이를 추론과 탐색 능력으로 해결해야 합니다.
• 기존 언어 모델은 ARC에서 성능이 낮았고, 주로 프로그램 생성 기법(program synthesis)을 활용해 문제를 풀었습니다.
3. 새로운 접근법: TTT(Test-Time Training)
• TTT는 모델이 테스트 단계에서 입력 데이터를 기반으로 임시로 추가 학습을 수행하는 방법입니다. 이를 통해 모델이 새로운 문제에 적응하도록 만듭니다.
• TTT는 일반적인 파인튜닝(fine-tuning)과는 다릅니다.
• 파인튜닝은 대량의 데이터를 사용하는 반면, TTT는 테스트 데이터 하나나 소수의 레이블된 예제만 사용해 작업을 수행합니다.
• 이 방식은 데이터를 거의 사용하지 않는 저데이터 환경(low-data regime)에서 작동합니다.
4. TTT의 효과
• TTT를 ARC 데이터셋에 적용한 결과, 모델 성능이 크게 향상되었습니다.
• 1B(10억) 파라미터 모델: 성능이 6배 향상 (6.2% → 36.2%).
• 8B(80억) 파라미터 모델: 성능이 45.0%까지 상승.
• 기존에는 프로그램 생성 방식을 사용해야만 해결할 수 있던 문제들도 이제 TTT만으로 해결이 가능해졌습니다.
5. TTT의 성공적인 활용을 위한 핵심 요소
TTT를 효과적으로 적용하려면 다음 조건이 중요합니다.
1. 유사한 작업에 대한 초기 파인튜닝: 테스트 단계에서 유사한 작업을 미리 학습.
2. 증강 데이터 생성: “leave-one-out” 전략을 통해 훈련 데이터를 증강.
3. 개별 인스턴스 학습: 각 입력 데이터마다 맞춤형 학습 수행.
4. 자체 일관성(self-consistency): 변환 가능한 데이터를 사용해 일관된 결과를 도출.
6. 연구의 주요 성과
1. ARC 데이터셋에서 8B 파라미터 모델로 53%의 정확도를 달성 (기존 최고 성과 대비 25% 향상).
2. 프로그램 생성 기법과 TTT를 결합하여 61.9% 정확도를 기록, 이는 평균 인간 수준 성과와 동등.
3. 과거에는 프로그램 생성이 필요했던 작업도 완전 신경망 방식(fully neural approaches)으로 해결 가능.
7. 결론
이 연구는 복잡한 문제를 해결하기 위해 꼭 심볼릭 탐색(symbolic search)이나 프로그램 생성 같은 명시적 방법이 필요하지 않음을 보여줍니다. 대신, 테스트 단계에서의 추가 학습(TTT)이 올바르게 사용된다면, 언어 모델이 새로운 문제에서도 뛰어난 성과를 낼 수 있다는 것을 증명합니다.
2 Preliminaries
연구의 전체 흐름을 이해하는 데 필요한 기초 지식을 제공합니다.
1. ARC 챌린지
• ARC(Abstraction and Reasoning Corpus)는 언어 모델의 추상적 추론 능력을 평가하기 위한 도전 과제로, 이 데이터셋의 구조와 목표를 정의합니다.
2. In-Context Learning(컨텍스트 학습)과 Test-Time Training(TTT, 테스트 시점 학습)에 대한 개요
3. 연구에서 사용한 기본 실험 설정에 대해 설명합니다.
2.1 ARC Challenge
ARC의 목적
언어 모델(LMs)이 시각적 퍼즐을 해결하는 능력을 평가합니다. 즉, 언어 모델이 추상적 추론을 얼마나 잘할 수 있는지를 측정합니다.
작업(Task)
• 각 퍼즐은 입력-출력 쌍으로 구성된 2D 격자(grid) 형태로 주어집니다.
• 격자는 최대 30×30 크기이며, 최대 10가지 색상으로 구성된 도형이나 패턴을 포함합니다.
• 출력은 y = f(x)라는 변환 규칙에 따라 입력 에 적용된 결과입니다.
• 변환 규칙은 단순한 반사(reflection) 또는 개수 세기(counting)부터, 복잡한 중력 효과(gravity), 경로 탐색(path finding)까지 다양합니다.
데이터셋 구성
1. 훈련 데이터(Training Data)
(x_{train}^k, y_{train}^k)_{k=1}^K : 입력과 출력 쌍 K개로 구성. (K: 보통 2~7개의 쌍)
2. 테스트 데이터(Test Data)
(x_{test}^m, y_{test}^m)_{m=1}^M : 입력과 출력 쌍 M개로 구성. (M: 보통 1~3개의 쌍)
3. 목표
• 주어진 훈련 데이터를 바탕으로 테스트 입력x_{test} 의 출력 y_{test} 를 예측하는 것.
ARC 문제의 표현
• 하나의 작업(Task): d = (x_{train}, y_{train}, x_{test}, y_{test}) , (d \in D_{ARC}).
• 데이터셋 크기
• 훈련용 데이터셋 (D_{train}^{ARC} ): 400개 작업.
• 검증용 데이터셋 (D_{val}^{ARC} ): 400개 작업.
평가 기준
• 정확히 일치하는 출력만 정답으로 인정됩니다. 부분 점수는 부여되지 않습니다.
ARC 문제 해결 접근법
ARC 문제를 해결하는 기존 접근법은 크게 두 가지로 나뉩니다.
1. 프로그램 생성 접근법(Program Synthesis)
• 변환 함수 를 먼저 찾아내고, 이를 테스트 데이터에 적용하여 출력 예측.
• 주로 명시적인 심볼릭 탐색 기법을 사용.
2. 완전 신경망 접근법(Fully Neural Approaches)
• 모델이 내부적으로 변환 규칙을 추론하여 테스트 출력 를 직접 예측.
• 이 연구에서 사용된 방법.
ARC 데이터를 언어 모델에 적용
• 연구에서 사용된 언어 모델은 텍스트 데이터로만 사전 훈련되었습니다. (시각적 인코더 없음)
• 2D 격자 데이터를 텍스트 표현으로 변환해야 모델이 입력으로 사용할 수 있습니다:
• 예: 숫자 리스트, 색상 단어, 도형 및 위치 정보 등으로 변환.
• 변환된 데이터를 소수의 예제(few-shot prompting)와 함께 모델에 제공하여 테스트 출력을 예측합니다.
핵심 요약
• ARC는 모델의 새로운 규칙 추론 능력을 평가하기 위해 설계된 데이터셋입니다.
• 이 연구에서는 완전 신경망 방식을 사용하며, 언어 모델이 새로운 시각적 패턴을 효과적으로 학습하고 예측할 수 있는지 확인합니다.
• 2D 데이터를 텍스트로 변환해 언어 모델에 적용하여, 기존 명시적 접근법을 대체할 가능성을 탐구합니다.
2.2 In-context Learning
In-context Learning
인컨텍스트 학습은 언어 모델(LMs)이 파라미터를 업데이트하지 않고도 새로운 작업에 적응할 수 있는 능력을 의미합니다.
• 모델이 제공받은 입력-출력 예제(input-output pairs)를 기반으로 조건부 예측을 수행합니다.
작동 방식
1. 모델은 입력-출력 쌍(x1, y1), ...,(xn, yn) 의 시퀀스 를 조건으로 학습하지 않은 상태에서 새로운 입력xn+1 에 대한 출력yn+1을 예측합니다.
2. 이를 수식으로 표현하면 다음과 같습니다.
• 여기서 LM은 언어 모델을 나타내며, \hat{y}_{n+1} 은 예측된 출력입니다.
• 모델은 입력 데이터를 기반으로 암묵적으로 학습된 규칙을 활용해 예측을 수행합니다.
In-context Learning의 특징
1. 파라미터 업데이트 없음
• 모델의 내부 가중치(parameter)를 변경하지 않고도 새로운 작업에 적응.
• 훈련 없이 주어진 예제만으로 즉석에서 예측을 수행.
2. 명시적 학습과 구별
• 기존 머신러닝 알고리즘처럼 명시적으로 데이터를 학습하지는 않지만, 암묵적으로 학습된 것처럼 보이는 특성을 보임.
한계
1. 표준 머신러닝 알고리즘과의 차이
• 컨텍스트 학습은 기존의 전통적인 머신러닝 알고리즘과 정확히 동일하지 않습니다.
• 이전 연구(Akyürek et al., 2022)는 컨텍스트 학습이 암묵적인 머신러닝 시뮬레이션에 가깝다고 논의하지만, 이는 완전히 증명되지 않았습니다.
2. 새로운 작업에서의 성능 저하
• 언어 모델이 훈련되지 않은 새로운 유형의 작업에서는 컨텍스트 학습만으로는 항상 효과적이지 않습니다.
• 예: ARC 데이터셋처럼 복잡한 추론 문제가 포함된 경우, 소규모 모델(몇십억 개의 파라미터 수준)은 성능이 저조했습니다.
• 이는 작은 모델이 충분한 일반화 능력을 가지지 못하기 때문입니다.
요약
• In-context Learning은 모델이 훈련 없이 제공된 예제들을 기반으로 새로운 작업에 적응할 수 있는 능력입니다.
• 파라미터 업데이트 없이 작동하지만, ARC와 같은 복잡한 문제에서는 종종 효과가 떨어질 수 있습니다.
• 이는 언어 모델이 기존에 학습한 데이터를 넘어서 일반화된 추론 능력을 가지는 데 한계가 있음을 보여줍니다.
2.3 Test-Time Training (TTT)
TTT란 무엇인가?
• TTT는 모델이 추론(예측) 단계에서 동적으로 파라미터를 업데이트하여 새로운 데이터에 적응하도록 하는 학습 방법입니다.
• 이는 대규모 언어 모델(LMs) 시대에서는 아직 상대적으로 탐구되지 않은 접근 방식입니다.
• Transductive Learning의 일종으로, 테스트 데이터의 구조를 활용해 예측 성능을 개선합니다.
TTT의 작동 방식
1. 초기 모델 파라미터
• 모델은 초기 파라미터로 시작합니다.
2. 테스트 입력에서 훈련 데이터 생성
• 주어진 테스트 입력 데이터를 기반으로 훈련 데이터D_{TTT}를 생성합니다.
3. 파라미터 최적화
• 생성된 데이터 D_{TTT} 에 대해 손실 함수 를 최소화하도록 모델을 훈련합니다.
• 결과적으로 임시 업데이트된 파라미터를 얻습니다.
4. 예측 수행
• 업데이트된 파라미터 를 사용해 최종 예측을 생성합니다.
5. 파라미터 복원
• 다음 테스트 입력을 처리하기 위해 모델은 원래의 파라미터 로 복원됩니다.
기존 연구와 차이점
• 기존 방식(Sun et al., 2020)
D_{TTT} 는 주로 비지도 학습 목표(예: Masked Autoencoding)로 입력x 만을 사용해 생성
• 이 연구의 방식: In-Context Learning을 활용하여 더 풍부한 컨텍스트(예제 쌍 )를 포함. D_{TTT}를 더 풍부하고 효과적으로 구성
TTT 과정의 핵심 요소
1. D_{TTT} 데이터셋 생성
• 테스트 입력에서 어떻게 확장된 D_{TTT}를 생성할지.
• 세부 내용은 연구의 Section 3에서 다룸.
2. 자체 일관성을 활용한 추론 전략
• 변환 가능한 데이터에서 자체 일관성(self-consistency) 기반의 추론 전략.
• 세부 내용은 Section 4에서 다룸.
3. 기본 모델
• 초기 모델 는 유사한 작업 데이터셋(Dataset D_{FT})에 대해 사전 학습된 상태.
• 세부 내용은 Section 5에서 다룸.
요약
• TTT는 테스트 입력 데이터로부터 학습 데이터를 생성하고, 이를 기반으로 임시적으로 모델을 재학습하여 새로운 작업에 적응하는 방식입니다.
• 기존 연구와 달리, 이 연구는 In-Context Learning에서 제공되는 추가적인 컨텍스트 정보를 활용하여 TTT를 확장했습니다.
• 이 접근법은 ARC와 같은 복잡한 추론 문제에서 모델 성능을 크게 향상시키는 데 기여합니다.
2.4 Experimental Setup
실험 목표
• 각 구성 요소(TTT의 핵심 요소)가 성능에 미치는 영향을 개별적으로 분석
• 하나의 요소만 바꾸고, 나머지는 최적의 값으로 고정하여 실험.
• 실험의 기본 설정과 다양한 모델, 데이터, 하이퍼파라미터가 어떻게 사용되었는지 설명.
1. 모델 아키텍처와 최적화
사용한 모델: Llama-3 계열의 언어 모델
• 8B 파라미터 모델(Llama-3).
• 1B 및 3B 파라미터 모델(Llama-3.2).
LoRA(Low-Rank Adaptation): 파라미터 효율적 TTT를 위해 사용된 방법.
• 각 작업 에 대해 별도의 LoRA 파라미터 세트를 초기화하고 데이터셋에서 학습.
• LoRA 세부 설정:
• 랭크(rank): 128.
• 적용 레이어: MLP, Attention, Output 레이어.
• 최적화 기법: AdamW 옵티마이저를 사용하여 2 에포크(epoch) 동안 학습. 배치 크기(batch size): 2.
2. 데이터 및 포맷팅
• ARC 데이터셋 사용
• ARC 검증 세트에서 80개 작업을 랜덤으로 선택
• 난이도별로 균형을 맞춤: 쉬운(easy), 중간(medium), 어려운(hard), 전문가 수준(expert) 각각 20개.
• 난이도 분류 기준: LeGris et al. (2024a).
• 작업 목록은 Appendix A.2에서 제공.
• TTT 데이터 제한
• 효율성을 위해 데이터셋의 최대 크기를 작업당 250개로 제한.
• 데이터 포맷
• 입력 격자(grid)를 텍스트로 변환
• numpy의 기본 배열 출력 형식을 사용하여 변환 (Fig. 8 참조).
3. 실험 환경
• GPU 및 시간
• NVIDIA A100 GPU를 사용.
• 100개의 랜덤 검증 작업 처리 시간: 약 12시간.
• 하이퍼파라미터
• 추가 세부 사항은 Appendix B.2에서 제공.
4. 분석 범위
이후 섹션에서는 다음 요소들이 언어 모델의 추상적 추론 능력에 어떻게 기여하는지 분석:
1. 사전 학습 데이터 (D_{FT}).
2. TTT 데이터 (D_{TTT}).
3. 훈련 목표 (Training Objectives).
4. 추론 절차 (Inference Procedures).
5. 모델 크기 (Model Size).
3 What Dataset and Loss During TTT?
3.1 Data Generation
데이터 생성의 목표
• 목적: 주어진 작업(Task)의 훈련 입력-출력 쌍(training input-output pairs)을 기반으로, TTT 데이터셋을 생성하여 테스트 시점 학습(Test-Time Training)에 활용.
• 핵심 아이디어
• 훈련 데이터를 활용해 새로운 학습 데이터를 생성.
• 변환과 증강(augmentation)을 통해 다양성을 추가하여 모델이 더 일반화된 학습을 하도록 지원.
데이터 생성 과정
Step 1: Leave-One-Out Tasks
• Leave-One-Out(LOO)는 K개의 훈련 데이터에서 하나의 입력-출력 쌍을 제외하여 나머지를 훈련 데이터로 사용하고, 제외된 하나를 테스트 데이터로 사용하는 방식입니다.
• j: 제외된 예제의 인덱스.
• d^{ICL}_j : j-번째 예제를 테스트 사례로 간주하여 생성된 Synthetic Task(가상 작업).
• 나머지 K-1개의 쌍은 훈련 데이터로 사용.
• K개의 훈련 예제가 주어지면 K개의 Leave-One-Out 작업 생성 가능.
• 랜덤 순열(Random Permutations): 훈련 데이터의 순서를 무작위로 바꾸어 d^{ICL}_j를 변형한 두 가지 추가 버전 포함.
Step 2: Rule-Based Transformations
• 역변환 가능한 변환(Invertible Transformations)
• 변환 t는 원래 데이터를 복원할 수 있는 특징을 가짐 t^{-1}(t(x)) = x
• 변환 예: 회전(rotation), 뒤집기(flip), 색상 변경(color permutation), 크기 조정(size scaling) 등.
• 변환 t를 d^{ICL}_j에 적용하여 증강된 작업(Augmented Tasks) t^{ICL}_j생성.
• 결과: 모든 변환 t와 작업 j에 대해 새로운 증강 데이터셋 D_{TTT-ICL} 생성
Baseline: End-to-End Learning Tasks
• End-to-End Learning(E2E)
• 위의 Leave-One-Out 방식과 비교하기 위해, 훈련 데이터를 개별 입력-출력 쌍으로 처리하여 E2E 데이터셋 D_{TTT-E2E}생성.
• 훈련 데이터를 독립적인 학습 인스턴스로 처리, 다른 입력-출력 쌍은 문맥(context)으로 제공되지 않음.
• 변환 적용
• D_{TTT-E2E} 에도 Rule-Based Transformations를 적용하여 데이터셋 증강.
In-Context Learning vs. End-to-End Learning 비교
1. In-Context Learning (ICL)
• 문맥(훈련 데이터)을 포함하여 학습 및 예측.
• Few-shot Prompting 방식을 사용.
2. End-to-End Learning (E2E)
• 독립적인 입력-출력 쌍으로 학습.
• 문맥을 고려하지 않으므로 계산적으로 더 효율적.
3.2 Optimization Objective
1. LoRA(Low-Rank Adaptation)란?
• LoRA는 대규모 모델의 대부분의 파라미터를 동결(frozen)시키고, 특정 작업에 맞게 일부 저차원(low-rank) 어댑터 파라미터만 학습하는 방법입니다.
장점
• 계산 효율성: 모든 파라미터를 학습하지 않아도 되므로 계산량이 크게 줄어듭니다.
• 모델의 일반 능력 유지: 기본 모델의 파라미터를 동결하므로, 모델이 다른 작업에서 학습한 일반적인 능력을 잃지 않습니다.
2. 최적화 목표
TTT 데이터셋에서 작업별로 파라미터를 최적화하는 방식입니다.
손실 함수(Loss Function)
• 모델은 언어 모델링 손실(language modeling loss)을 최소화합니다.
• 손실 함수 는 다음을 포함합니다:
1. 데모 입력-출력 쌍(demonstrations)
•(x_1, y_1), …, (x_K, y_K) .
• 두 번째 예제(n=2)부터 손실 계산 시작.
2. 테스트 입력-출력 쌍(test example)
x_{test}, y_{test} .
• 수식
• L_LM: 언어 모델링 손실(크로스 엔트로피 손실).
• 두 번째 예제(n=2)부터 손실 계산을 시작하는 이유: 모델이 빠르게 변환 패턴을 학습하도록 유도.
왜 데모 데이터를 포함하는가?
• 테스트 데이터만 사용하는 대신, 훈련 데이터(데모 입력-출력 쌍)를 포함하여 모델이 더 많은 맥락(context)을 학습하도록 유도.
• 이는 모델이 변환 규칙을 더 정확히 추론하게 합니다.
3. 작업별 LoRA 어댑터
• 작업별 맞춤 파라미터 학습
• 각 테스트 작업마다 개별적인 LoRA 어댑터를 학습.
• 개의 테스트 작업이 있다면, 개의 LoRA 어댑터를 학습.
• 왜 개별 어댑터를 사용하는가?
• 각 작업마다 변환 규칙과 패턴이 다르기 때문에, 하나의 어댑터로 모든 작업을 처리하면 성능이 저하될 수 있음.
• 작업별 어댑터를 학습하면, 작업 특화된 학습이 가능.
3.3 Results
1. 비교 실험(Ablation)의 종류
연구에서는 TTT의 효과를 확인하기 위해 6가지 실험을 수행했습니다.
1) FT (No TTT)
• TTT를 사용하지 않은 기본 모델.
• 모델은 단순히 사전 파인튜닝(fine-tuned)된 상태로만 사용됩니다.
• 이 실험은 TTT가 없는 상태에서의 성능 기준을 제공합니다.
2) No Transformations
• 데이터 증강(augmentation) 없이 학습.
• Section 3.1의 Step 2에서 설명된 변환(transformations)을 적용하지 않고, Leave-One-Out(LOO) 데이터만 사용.
• 변환 없이 학습했을 때 성능 저하를 확인.
3) End-to-End (E2E) Data
• In-Context Learning(ICL) 대신, 입력-출력 쌍을 독립적으로 학습(E2E 방식).
• 문맥(context) 없이 데이터를 개별적으로 처리했을 때 성능이 어떻게 변하는지 평가.
4) Shared TTT
• 모든 작업에 대해 하나의 LoRA 어댑터를 학습.
• 작업별로 LoRA 어댑터를 학습하지 않고, 모든 작업에서 동일한 어댑터를 공유.
5) No Demonstration Loss
• 데모 데이터(훈련 입력-출력 쌍)에 대한 손실 계산을 제외.
• 손실 계산은 오직 테스트 데이터 출력 에 대해서만 수행:
6) QLoRA
• LoRA 어댑터를 양자화(Quantized LoRA)하여 학습.
• 메모리 사용량을 줄이기 위한 대안으로, 성능 손실이 발생하는지 확인.
2. 주요 결과 요약
TTT 메서드의 주요 효과
• TTT 적용 시
• 파인튜닝만 한 모델(FT)에 비해 6배 정확도 향상.
• 정확도: 5 → 29.
구성 요소별 성능 비교
1. No Transformations
• 변환(transformations)을 제거하면 성능이 크게 감소.
• 정확도: 29 → 13 (약 55% 감소).
• 변환은 데이터 다양성을 증가시키고 일반화 능력을 높이는 데 매우 중요.
2. End-to-End (E2E) Data
• E2E 방식은 ICL 방식에 비해 성능이 낮음.
• 정확도: 29 → 18 (약 38% 감소).
• 이유:E2E는 학습 파라미터가 적고, 문맥(context)을 사용하지 않아 변환 패턴 학습이 어려움.
3. Shared TTT
• 모든 작업에 하나의 LoRA 어댑터를 사용하는 경우 성능이 감소.
• 정확도: 29 → 22 (약 24% 감소).
• 이유:작업별로 어댑터를 학습하면, 각 작업에 특화된 학습이 가능.
4. No Demonstration Loss
• 데모 데이터(훈련 입력-출력 쌍)에 대한 손실 계산을 제외하면 약간의 성능 감소.
• 정확도: 29 → 26.
• 데모 손실은 모델이 변환 규칙을 더 잘 이해하도록 도움.
5. QLoRA (Quantized LoRA)
• LoRA 어댑터를 양자화하면 성능이 약간 감소.
• 정확도: 29 → 26.
• 하지만, 메모리 사용량이 제한적인 상황에서는 QLoRA가 실용적 대안이 될 수 있음.
3. 분석 및 결론
1. TTT는 파인튜닝만 한 모델 대비 큰 성능 향상을 제공합니다.
2. 데이터 변환(Transformations)과 작업별 LoRA 어댑터는 성능 향상에 중요한 역할을 합니다.
3. QLoRA는 성능 손실이 약간 있지만 메모리 효율성이 필요한 경우 유용합니다.
4. 데모 손실을 포함하는 것은 모델이 변환 규칙을 학습하는 데 추가적인 도움을 줄 수 있습니다.
4 What Inference Strategy After TTT?
4.1 Augmented Inference
1. 기존 접근법과 한계
• 일반적으로 테스트 시점 계산(test-time compute)을 확장하면 언어 모델의 성능이 향상됩니다.
• 기존 방법: 샘플링과 랭커(ranker)를 결합.
• 모델이 여러 응답을 생성한 뒤, 랭커를 사용해 최적의 응답을 선택.
• 이 방식은 다양한 답이 존재하는 문제(예: 코드 생성, 수학 계산)에서 효과적.
• 그러나 하나의 최적 답을 요구하는 경우(예: ARC 데이터셋)에는 샘플링의 다양성을 보장하기 어려움:
• 응답 간의 다양성을 강제하기 어렵고, 샘플 내부의 일관성을 유지하기도 어렵다.
2. Augmented Inference 전략
기존 샘플링 대신 증강 추론 방식을 사용
1. 역변환 가능한 기하학적 변환(invertible geometric transformations):
• 변환을 통해 테스트 작업을 여러 동등한 버전(equivalent versions)으로 생성.
• 예: 회전(rotation), 반사(reflection).
• 변환 후, 다시 역변환(inverse transformation)을 통해 원래 형태로 예측값을 복원.
2. 그리디 디코딩(Greedy Decoding)
• 변환된 데이터를 모델에 입력하여 단일 예측값을 생성.
3. 증강 추론의 구체적인 과정
1) 변환을 사용한 작업 생성
• 주어진 작업 와 테스트 입력 에 대해
1. 변환 집합 를 정의.
• 는 역변환 가능한 기하학적 변환(예: 회전, 반사)으로 구성.
2. 각 변환 에 대해
• 모든 훈련 데이터와 테스트 입력에 변환 를 적용.
• 변환된 데이터를 모델에 입력하여 예측값 생성
• 생성된 예측값 에 역변환 을 적용해 최종 예측값 도출
2) 순서 변경(Permutations)
• 훈련 데이터의 순서를 변경하여 모델이 입력 순서에 의존하지 않도록 함.
• 각 변환 에 대해 개의 다른 순열을 샘플링.
• 이는 모델이 데모 데이터의 순서를 처리할 때 발생하는 편향을 줄이기 위해 사용.
3) 추가 예측 후보 생성
• Transpose(전치)와 Rotation(회전)
• 추가 변환을 사용하여 예측 후보를 더 많이 생성.
• 이는 모델이 다양한 경우에 대해 더 많은 예측 후보를 가지도록 도움.
4.2 Ensembling Predictions (Voting Strategy)
계층적 투표의 목표
• 증강 추론(Augmented Inference)에서 생성된 여러 예측값 후보 중에서 가장 신뢰할 수 있는 최종 예측을 결정.
• 두 단계로 진행
1. Intra Transformation Voting: 변환별 그룹에서 상위 후보 선택.
2. Global Voting: 변환별 상위 후보들 간의 전체 투표로 최종 예측값 도출.
1. Intra Transformation Voting
• 목적: 변환별로 생성된 예측값 중 최고 빈도(top-3) 후보를 선택.
과정
1. 변환 그룹화
• 예측값을 해당 변환 별로 그룹화.
• 각 그룹 내에서 가장 자주 등장한 예측값을 기준으로 상위 3개를 선택.
2. 예외 처리 (3개 미만 후보일 경우)
• 변환 그룹 내에 3개 이상의 고유한 예측값이 없을 경우, 추가적인 예측값을 계산:
• Row-based majority:예측 결과 격자의 각 행에서 가장 자주 등장한 값을 선택.
• Column-based majority:예측 결과 격자의 각 열에서 가장 자주 등장한 값을 선택.
• 이 방식으로 부족한 후보를 보완.
2. Global Voting
• 목적: 변환별 상위 후보들 중에서 최종 예측값을 결정.
과정
1. 전체 투표
• Intra Transformation Voting에서 선택된 변환별 상위 후보들을 모아 전체 투표 진행.
• 최빈도 기준으로 상위 2개의 예측값을 최종 후보로 선택.
2. 동점일 경우
• 동점이 발생하면 **Identity Transformation(변환이 없는 예측값)**에 우선권을 부여.
• 이유: 원본 입력 데이터를 기반으로 한 예측값이 더 신뢰 가능하다고 간주.
이 전략의 장점
• 다양성 보장: 변환별로 독립적으로 상위 후보를 선정해 데이터 다양성을 활용.
• 일관성 유지: 최빈도 기준으로 신뢰성 높은 예측값을 선택.
• 효율성: 두 단계의 투표 과정을 통해 예측값 후보를 체계적으로 좁혀감으로써 계산량과 복잡성을 줄임.
5 What Fine-Tuning Before TTT?
5.1 Preparing Fine-tuning Data
데이터 생성 전략
1. REARC 기반 생성
• ARC 데이터셋에서 제공되는 REARC(도메인 특정 언어 및 변환 함수)를 사용해 새로운 입출력 쌍을 생성.
• 동일한 변환 원칙을 유지하며 새롭게 샘플링된 데이터셋으로 작업.
2. 언어 모델(LLM)을 활용한 생성
• GPT-4와 같은 LLM을 활용해 새로운 작업 생성기를 개발.
• Few-shot prompting: 기존 생성기 함수(예: )를 기반으로 새로운 생성기 를 생성.
• 설명 및 생성기 동시 생성: 작업 설명과 생성기를 함께 생성.
• Two-stage Approach
• (1) 작업 설명 생성.
• (2) 새 설명을 기반으로 생성기 생성.
3. 기하학적 변환
• 기본 변환: 회전, 반사, 크기 조정 등.
• 패턴 조작: 타일링, 반복 등.
• 입출력 변환: 입력과 출력 모두에 변환 적용.
5.2 Results (결과)
주요 실험 설정
1. No FT:
• 파인 튜닝 없이 기본 Llama 3 모델만 사용.
2. All:
• REARC, 규칙 기반 증강, LLM 생성 데이터를 모두 포함.
3. No-Geom:
• 기하학적 변환을 제거.
4. No-LM:
• LLM 생성 데이터를 제외하고 REARC와 규칙 기반 데이터만 사용.
결과 요약
1. 파인 튜닝 데이터의 효과:
• REARC 및 규칙 기반 증강 데이터만 사용한 경우 가장 높은 성능을 보임.
• LLM 생성 데이터 포함 시 성능 5% 감소:
• 현재 LLM 생성 작업에는 추가적인 필터링이 필요함을 시사.
2. 모델 크기 및 성능:
• 모델 크기 증가에 따라 기본 파인 튜닝 성능 향상:
• 8B 모델이 36%로 가장 높은 정확도.
• TTT 적용 후 1B와 3B 모델의 성능이 8B 모델과 유사해짐:
• TTT가 작은 모델의 성능 격차를 효과적으로 좁힘.
결론
• 파인 튜닝 데이터의 구성은 TTT 성능에 영향을 미치며, 특히 규칙 기반 증강 데이터가 중요.
• LLM 생성 데이터는 현재 필터링 개선이 필요.
• TTT는 작은 모델에서도 대규모 모델과 비슷한 성능을 달성할 수 있는 강력한 방법임.
6 ARC Benchmark and Comparison to Other Systems
ARC 데이터셋에서 TTT(Test-Time Training)와 기존 방법의 성능을 비교합니다. 분석 초점은 다음 세 가지입니다.
1. TTT 방법론의 성능 개선 효과.
2. 기존 접근법과의 조합을 통한 성능 향상.
3. 완전 신경망(neural-only) 방식과 프로그램 생성(program synthesis) 방식 간의 차이.
1. TTT의 효과
• TTT와 증강 추론(inference)을 기반으로 한 파이프라인을 ARC의 공개 검증 세트에 적용.
• 결과
• TTT를 적용한 경우 정확도가 39.3% → 47.1%로 상승.
• 기존의 신경망 기반(end-to-end neural) 방법의 성능을 능가.
2. 기존 방법과의 통합
• BARC: Li et al. (2024)에서 제안한 방법으로, 신경망과 프로그램 생성 접근법을 결합하여 54.4% 정확도를 달성.
• BARC의 신경망 방식과 유사하지만, TTT는 추가적으로 다음 요소를 포함:
• 작업별 LoRA(저차 적응) 학습.
• 더 많은 증강 데이터(기하학적 변환 포함).
• 계층적 자기 일관성 투표(self-consistency voting).
• 결과:
• BARC의 신경망 모델에 TTT를 적용했을 때 정확도 53%로 35% 성능 향상.
• 프로그램 생성 방식과 결합 시 정확도 61.9%로 상승:
• 인간 평균 성능(60.2%)에 근접.
3. 프로그램 생성과 신경망 접근법 비교
• BARC 연구에서는 프로그램 생성 방식과 신경망 예측 방식이 서로 상호 보완적임을 확인.
• 신경망 방식은 프로그램 생성 방식이 해결한 작업의 42.2%만 해결 가능.
• 그러나 TTT를 적용한 경우, 신경망 방식이 프로그램 생성 모델이 해결한 작업의 73.5%를 해결
• 이는 TTT가 신경망 모델의 체계적 추론 패턴 학습 능력을 크게 향상시킴을 의미.
4. 결론
• TTT는 ARC에서 신경망 방식의 성능을 크게 향상.
• 프로그램 생성 접근법과 결합하면 최고 성능(61.9%)을 달성
• 이는 인간 평균 성능과 유사.
• 신경망 기반 방식과 프로그램 생성 방식을 결합하면 상호 보완적인 이점을 극대화 가능.
7 Conclusion
이 연구는 테스트 시점 학습(Test-Time Training, TTT)을 통해 언어 모델의 추론 능력을 크게 향상시킬 수 있음을 보여줍니다. 특히, ARC(Abstraction and Reasoning Corpus) 데이터셋과 같은 어려운 추론 문제에서 TTT의 효과를 검증했습니다. 주요 결론은 다음과 같습니다.
주요 발견
1. TTT의 효과성
• TTT는 ARC 작업에서 모델의 성능을 크게 향상시켰습니다.
• TTT를 적용한 모델은 기존 파인튜닝 모델 대비 정확도가 6배 향상되었습니다.
2. TTT 성공을 위한 핵심 요소
• 작업별 LoRA 어댑터:각 작업에 맞춘 효율적인 파라미터 적응으로 성능을 극대화.
• 기하학적 변환:회전, 반사와 같은 역변환 가능한 데이터 증강이 학습 과정을 강화.
• 자체 일관성을 활용한 추론(Self-consistent Inference):여러 예측값을 계층적으로 집계하여 더 정확한 결과를 도출.
3. 기존 방법과의 통합
• BARC와 같은 프로그램 생성 접근법과 TTT를 결합하면 ARC 데이터셋에서 61.9% 정확도를 달성
• 이는 인간 평균 성능(60.2%)에 근접한 결과.
• 완전 신경망(neural-only) 방식이 프로그램 생성 방식과 대등하게 경쟁할 수 있음을 입증.
4. 언어 모델 발전에 미치는 영향
• 이 연구는 심볼릭 탐색(symbolic search)이 반드시 필요하지 않음을 강조합니다.
• 대신, 동적인 테스트 시점 학습과 같은 계산 기법이 신경망 모델의 추론 능력을 획기적으로 발전시킬 수 있음을 보여줍니다.
Limitations
제안된 TTT(Test-Time Training) 방법론의 한계와 이를 둘러싼 고려사항을 다룹니다.
1. 평가 프레임워크
• ARC 챌린지의 공식 리더보드는 공개 및 비공개 작업에 대한 평가를 진행합니다.
• 현재 제안된 TTT 파이프라인은 A100 GPU 기준으로 100개의 작업을 처리하는 데 12시간이 소요됩니다.
• 그러나 공식 리더보드는 P100 GPU 또는 2×T4 GPU에서 12시간 이내 처리가 요구되어 현재 하드웨어 제약으로 제출되지 않았습니다.
• 실험에서는 80개의 검증 작업으로 구성된 개발 세트를 사용했으며, 최적화 편향이 발생할 가능성을 인정합니다.
• TTT 단계에서 기하학적 증강(Augmentation)이 선택되었으며, 학습률, 배치 크기, 에포크 등의 표준 하이퍼파라미터가 최적화되었습니다.
2. 실험 재현성
• 높은 계산 요구로 인해, 표준 오차 분석이 포함되지 않은 결과가 보고되었습니다.
• 초기 관찰 결과, 실행 간 변동이 최소임을 나타내지만, 최종 버전에서는 상세한 통계 분석이 포함될 예정입니다.
3. 데이터 유출 가능성
• Llama-3 모델은 공개 검증 세트에서 매우 낮은 성능을 보였지만, 데이터셋의 공개적 접근 가능성(GitHub, Kaggle 등)으로 인해 사전 학습 중 해당 예제를 접했을 가능성이 있습니다.
댓글