LoopCD: 루프 트랜스포머의 첫 반복을 약한 참조로 쓰는 학습 없는 대조 디코딩에 대한 Apple의 연구

핵심 요약

  • Apple 연구팀은 Decoding Looped Transformers Better for (Almost) Free 논문에서 디코딩 방법 LoopCD를 제안했습니다. 같은 블록을 여러 번 반복하는 루프 트랜스포머에서 첫 반복의 예측을 약한 참조(reference)로 삼아 마지막 예측과 대조하는 방법입니다. 추가 학습이나 보조 모델 없이 추론 시점에만 적용합니다.

  • 반복 깊이를 그대로 둔 실험에서 Ouro-2.6B-Thinking의 AIME 2024 pass@1이 61.88\% 에서 73.33\% 로, Huginn-0125의 HumanEval pass@1이 LoopCD-Hidden으로 22.56\% 에서 31.71\% 로 올랐습니다. 다만 Looped-Qwen3의 수학 추론(reasoning) pass@1과 GSM8K처럼 오히려 떨어진 항목도 부록에 함께 보고되어 있습니다.

  • 반복 횟수를 절반으로 줄인 채 LoopCD를 적용하자, 6개 설정 모두 전체 반복의 일반 디코딩과 같거나 높은 정확도를 냈습니다. 이때 순방향 FLOPs는 22.5\% 에서 48.2\% 줄었습니다. 이 결과는 객관식 벤치마크에서만 측정했고, FLOPs는 실제 지연 시간이 아니라 이론적 연산량입니다.

LoopCD 소개

루프 트랜스포머는 중간 반복의 예측을 버립니다

어려운 문제를 풀 때 처음 떠오른 답과 오래 생각한 끝에 고른 답을 나란히 놓아 보면, 생각이 어느 쪽으로 움직였는지가 보입니다. 이번에 소개할 LoopCD는 이 움직임의 방향을 디코딩에 쓰는 방법입니다. 루프 트랜스포머(Looped Transformer)가 반복할 때마다 만드는 중간 예측을 버리지 않고, 첫 반복의 예측과 마지막 반복의 예측을 대조해 다음 토큰을 고릅니다.

루프 트랜스포머는 공유된 층 블록을 여러 번 반복 실행하는 구조입니다. 파라미터 수를 늘리지 않고도 반복 횟수만큼 계산 깊이를 늘릴 수 있어서, Universal Transformer 이후 꾸준히 연구되어 왔습니다. 최근에는 Ouro, Huginn, Parcae 처럼 이 구조로 사전 학습한 언어 모델이 공개되었습니다. 이미 학습된 모델의 중간 층 블록을 학습 없이 반복시키는 Training-Free Looped Transformers 도 나왔고, 이번 논문이 실험한 Looped-Qwen3는 이 방식을 Qwen3-4B에 적용한 모델입니다. PyTorchKR에서도 토큰마다 순환 깊이를 늘리는 RLT(Recurrent Looped Transformer) 를 소개한 적이 있습니다.

위 그림은 논문이 실험한 네 모델의 구조입니다. 모델마다 반복하는 범위가 다릅니다. Ouro는 전체 디코더 층 묶음을 통째로 반복하고, Huginn과 Parcae, Looped-Qwen3는 입력을 처리하는 앞쪽 층(prelude)과 출력 직전의 뒤쪽 층(coda) 사이에 있는 공유 블록만 반복합니다. 어느 구조든 반복이 한 번 끝날 때마다 같은 표현 공간 위의 은닉 상태(hidden state)가 나오고, 이 상태를 출력 층에 넣으면 같은 다음 토큰에 대한 예측 분포를 얻을 수 있습니다. 그러나 일반적인 디코딩은 마지막 반복의 상태만 쓰고 나머지는 버립니다.

대조 디코딩에는 정렬된 약한 모델이 필요합니다

대조 디코딩(Contrastive Decoding) 은 강한 모델의 예측을 약한 모델의 예측에서 멀어지는 방향으로 밀어 주는 디코딩 방법입니다. 두 모델이 함께 높게 평가하는 토큰보다, 강한 모델만 높게 평가하는 토큰을 더 선호하게 만드는 방식입니다. 확산 모델의 분류기 없는 가이던스(Classifier-Free Guidance) 와 Autoguidance 도 같은 원리로, 조건이 없거나 성능을 낮춘 모델의 출력에서 멀어지는 방향으로 샘플을 유도합니다.

이 방법은 약한 모델을 어디서 구하느냐가 문제입니다. 첫 번째 방법은 같은 계열의 작은 모델을 따로 두는 것인데, 모델을 두 개 실행해야 하고 두 모델의 어휘와 행동이 잘 맞아야 합니다. 두 번째 방법은 문맥 인식 디코딩 처럼 입력 문맥을 뺀 프롬프트로 약한 예측을 만드는 것인데, 같은 입력을 두 가지 형태로 처리해야 합니다. 세 번째로 DoLa 는 같은 모델의 중간 층을 출력 층에 바로 연결해 약한 예측으로 씁니다. 별도 모델은 필요 없지만, Apple 연구팀은 이렇게 층 방향으로 대조하면 약한 예측과 마지막 예측 사이에 구조적 불일치가 남는다고 봅니다.

첫 번째 반복이 곧 약한 참조입니다

연구팀은 루프 트랜스포머라면 별도의 약한 모델 없이, 모델 안에서 약한 참조를 얻을 수 있다고 봅니다. 첫 반복을 마친 상태와 마지막 반복을 마친 상태는 같은 블록이 만든 같은 표현 공간의 상태이고, 같은 출력 층으로 해석됩니다. 두 상태는 같은 입력에 대해 계산량만 다르게 들인 결과입니다. 연구팀의 표현을 빌리면 반복 경로는 "보조 모델이나 외부 학습 없이 정렬된 약한 예측과 강한 예측의 쌍"을 만들어 냅니다.

LoopCD는 마지막 반복의 예측을 첫 반복의 예측에서 멀어지는 방향으로 한 번 더 밀어 줍니다. 반복이 진행되며 예측이 움직인 방향을 그대로 조금 더 연장하는 셈입니다. 이렇게만 해도 같은 반복 깊이에서 평균 정확도가 올랐고, 객관식 벤치마크에서는 반복 횟수를 절반으로 줄여도 전체 반복의 정확도를 따라잡았습니다.

LoopCD의 동작 방식

첫 반복 상태와 마지막 반복 상태

어떤 입력 접두사에 대해 반복 블록의 초기 상태를 h_0, k 번 반복한 뒤의 상태를 h_k 라고 하면, 루프 트랜스포머는 블록 f 를 R 번 적용한 뒤 뒤쪽 층과 언어 모델 헤드로 마지막 상태 h_R 을 로짓(logit)으로 바꿉니다.

h_0 \xrightarrow{f} h_1 \xrightarrow{f} \cdots \xrightarrow{f} h_R, \qquad z_R = \operatorname{lm\_head}\big(\operatorname{coda}(h_R)\big)

일반 디코딩은 p_R = \operatorname{softmax}(z_R) 에서 다음 토큰을 고릅니다. LoopCD는 첫 반복 상태 h_1 을 약한 참조로, h_R 을 강한 예측으로 두고 둘의 차이를 이용합니다. 대조를 어디에서 하느냐에 따라 두 가지 변형이 있습니다.

LoopCD-Logits와 LoopCD-Hidden

LoopCD-Logits는 두 상태를 각각 뒤쪽 층과 헤드에 통과시켜 로짓을 얻은 뒤 로짓 공간에서 결합합니다.

z' = z_R + \omega\,(z_R - z_1), \qquad \omega \ge 0

\omega 는 가이던스 강도이고, \omega = 0 이면 일반 디코딩과 같습니다. 확률로 다시 쓰면 p'(v) \propto p_R(v)\,\big(p_R(v)/p_1(v)\big)^{\omega} 가 되어, 마지막 반복에서 첫 반복보다 확률이 많이 오른 토큰일수록 더 큰 가중치를 받습니다. 참조 로짓 z_1 을 얻으려고 뒤쪽 층과 헤드를 한 번 더 실행해야 합니다.

LoopCD-Hidden은 출력 층에 넣기 전에 은닉 상태 공간에서 결합합니다.

h' = h_R + \omega\,(h_R - h_1)

결합한 h' 을 뒤쪽 층과 헤드에 한 번만 통과시키므로 출력 층 연산이 늘지 않습니다. 연구팀이 512토큰 프리필(prefill) 기준으로 계산한 연산량 배수는 아래와 같습니다. LoopCD-Hidden은 벡터 연산만 더해 모든 모델에서 1.000\times 입니다.

모델 반복 뒤에 있는 층 수 LoopCD-Logits 연산량 배수
Ouro-1.4B 0 1.019\times
Ouro-2.6B 0 1.010\times
Huginn-0125 (R=32 ) 2 1.022\times
Huginn-0125 (R=16 ) 2 1.042\times
Parcae-370M 4 1.152\times
Parcae-1.3B 8 1.119\times
Looped-Qwen3 17 1.306\times

LoopCD-Logits의 추가 비용은 반복 블록 뒤에 있는 층과 헤드가 전체 연산에서 차지하는 비율로 정해집니다. 그래서 층 수만으로는 비교할 수 없고, 뒤쪽 층이 4개인 Parcae-370M이 8개인 Parcae-1.3B보다 배수가 큽니다. 기존 Qwen3-4B에 반복을 덧붙인 Looped-Qwen3는 반복 블록 뒤에 17개 층이 있어서 연산량이 30\% 넘게 늘어납니다.

가이던스 강도: 고정 방식과 적응 방식

고정 강도는 한 평가 설정 안의 모든 토큰에 같은 \omega 를 씁니다. 적응 강도는 토큰마다 일반 예측의 불확실성에 맞춰 \omega 를 조절합니다. p_R 에서 가장 높은 두 확률을 p_{R,(1)}, p_{R,(2)} 라고 하면 다음과 같습니다.

\omega = \omega_{\max}\big[1 - (p_{R,(1)} - p_{R,(2)})\big]

상위 두 후보의 확률이 비슷할수록 최대 강도 \omega_{\max} 에 가까워지고, 한 후보가 확실히 앞서면 가이던스가 약해집니다. 전체 어휘에 대한 엔트로피를 계산하지 않고 상위 두 확률의 차이만 봅니다. 적응 강도를 쓰려면 일반 예측 p_R 이 먼저 있어야 하므로, 연구팀은 이 규칙을 z_R 을 이미 계산하는 LoopCD-Logits에만 적용했고 LoopCD-Hidden에는 고정 강도만 썼습니다.

실험 설정

연구팀은 학습 방식이 서로 다른 네 계열의 루프 트랜스포머로 실험했습니다. Ouro는 매 반복이 끝날 때의 예측을 학습 중에 함께 감독합니다. Huginn과 Parcae는 사전 학습 때 반복 횟수를 무작위로 뽑아 학습합니다. Looped-Qwen3는 반복하도록 학습한 적이 없는 Qwen3-4B에 학습 없이 반복을 덧붙인 모델입니다.

모델 파라미터 앞쪽 층 반복 블록 층 뒤쪽 층 반복 횟수 R
Ouro-1.4B 1.4B 0 24 0 4
Ouro-2.6B 2.6B 0 48 0 4
Huginn-0125 3.5B 2 4 2 32 또는 16
Parcae-370M 0.37B 4 4 4 8
Parcae-1.3B 1.3B 8 8 8 8
Looped-Qwen3 4.0B 15 4 17 8

평가는 세 가지 방식으로 나뉩니다:

  • 수학 추론: Ouro-Thinking 모델로 AIME 2024, AIME 2025(각 30문제), OlympiadBench 영어 수학 674문제를 풀었습니다. 문제당 16개 풀이를 샘플링해 pass@1과 pass@10을 추정했습니다.
  • 코드 생성: HumanEval과 MBPP를 EvalPlus의 기본 테스트와 확장 테스트로 채점했고, 그리디 디코딩을 썼습니다.
  • 객관식 7종: ARC-Challenge, ARC-Easy, SciQ, MMLU, HellaSwag, WinoGrande, PIQA에서 각 보기의 가능도(likelihood)를 비교해 답을 골랐습니다.

LoopCD 실행과 비교 대상인 일반 디코딩은 체크포인트, 프롬프트, 퓨샷 예시 수, 생성 길이, 정답 추출기를 모두 공유합니다. 가이던스 강도는 본 평가 전에 스크리닝 스윕으로 정했습니다. LoopCD-Logits의 고정 강도는 객관식 점수 비교에 \omega = 0.5, 답과 코드 생성에 Ouro와 Looped-Qwen3는 0.3, Huginn은 0.2 였습니다. 수학 추론은 샘플링 생성인데도 고정 강도 0.5 (Looped-Qwen3는 0.4 )와 최대 1.5 까지의 적응 상한을 썼고, LoopCD-Hidden은 모델별로 강도와 참조 반복을 따로 정했습니다.

실험 결과

수학 추론: Ouro-Thinking에서 pass@1이 5~7포인트 상승

두 Ouro-Thinking 모델 모두 세 벤치마크의 pass@1과 pass@10이 올랐습니다. 아래 표는 pass@1만 옮긴 것입니다.

모델 방법 AIME 2024 AIME 2025 OlympiadBench 평균 변화
Ouro-1.4B-Thinking 일반 디코딩 50.83 38.96 61.27
LoopCD 고정 56.88 46.25 63.75 +5.27
LoopCD 적응 59.17 47.08 63.48 +6.22
Ouro-2.6B-Thinking 일반 디코딩 61.88 49.58 64.05
LoopCD 고정 70.62 58.33 66.66 +6.70
LoopCD 적응 73.33 56.88 67.29 +7.33

pass@10의 평균 변화는 +2.53 에서 +4.12 포인트였습니다. pass@1 평균으로는 적응 강도가 앞섰지만, Ouro-2.6B의 AIME 2025처럼 고정 강도가 더 높은 항목도 있습니다.

같은 실험을 Looped-Qwen3에 적용한 결과는 부록에 따로 실려 있습니다. 여기서는 pass@1이 오히려 떨어졌습니다. 고정 강도에서 AIME 2024 pass@1은 64.79\% 에서 61.88\% 로 내려갔고, 같은 조건의 pass@10은 82.91\% 에서 86.17\% 로 올랐습니다. 세 벤치마크 평균으로 pass@1은 -1.11 (고정)과 -1.67 (적응), pass@10은 +1.90 과 +3.18 포인트입니다. 연구팀은 가이던스가 샘플 하나의 성공률은 낮추면서 여러 샘플이 덮는 범위는 넓혔을 가능성을 들었지만, pass@k 점수가 풀이 다양성을 직접 측정하지는 않는다고 덧붙였습니다.

코드 생성: 은닉 상태 결합이 Huginn에서 가장 큰 향상

코드 생성은 모델 계열과 크기에 따라 향상 폭이 달랐습니다. 아래 표는 HumanEval과 MBPP의 기본 테스트 결과입니다.

설정 방법 HumanEval MBPP 4개 열 평균 변화
Ouro-2.6B 일반 디코딩 75.61 77.78
LoopCD-Logits 적응 79.88 79.10 +2.54
Huginn-0125 R=32 일반 디코딩 23.17 42.06
LoopCD-Logits 고정 27.44 44.97 +3.97
LoopCD-Logits 적응 28.66 41.27 +2.57
Huginn-0125 R=32 (별도 기준선) 일반 디코딩 22.56 40.74
LoopCD-Hidden 31.71 41.27 +5.13
Looped-Qwen3 일반 디코딩 79.88 66.14
LoopCD-Logits 고정 79.27 70.11 +1.42

4개 열 평균은 기본 테스트와 확장 테스트를 모두 포함한 값입니다. 평균은 모든 설정에서 올랐지만, Huginn의 적응 강도 MBPP와 Looped-Qwen3의 고정 강도 HumanEval처럼 기준선보다 낮아진 칸도 있습니다. LoopCD-Hidden 행은 연구팀이 은닉 상태 실험용으로 따로 측정한 기준선과 비교한 값이라, 로짓 실험의 기준선(23.17)과 숫자가 조금 다릅니다. Huginn에서 LoopCD-Hidden은 출력 층을 한 번만 실행하면서도 두 로짓 규칙보다 평균 향상이 컸습니다.

부록의 GSM8K와 MMLU-Pro 결과는 엇갈렸습니다. MMLU-Pro는 10개 행 중 9개 행에서 올랐지만(나머지 1개 행은 -0.01 ), GSM8K는 10개 행 중 6개 행에서만 올랐고 Huginn R=32 고정 강도에서 -1.29, Looped-Qwen3에서 -1.14 포인트 떨어졌습니다.

객관식 7종: 모든 모델의 평균이 소폭 상승

객관식 벤치마크에서는 6개 모델 모두 7종 평균이 올랐지만, 향상 폭은 1포인트 안팎입니다.

모델 LoopCD-Logits 고정 LoopCD-Logits 적응 LoopCD-Hidden
Ouro-1.4B +0.58 +0.29
Ouro-2.6B +0.84 +0.95
Huginn-0125 R=32 +0.74 +0.86 +0.83
Huginn-0125 R=16 +0.62 +0.63 +0.75
Parcae-370M +0.90 +1.29
Parcae-1.3B +1.38 +1.59 +0.85
Looped-Qwen3 +0.32 +0.79

연구팀은 LoopCD-Hidden의 효과가 반복 블록 뒤쪽 층이 깊을수록 줄어든다고 분석했습니다. 뒤쪽 층이 2개인 Huginn에서는 로짓 방식과 비슷하거나 조금 높았지만, 8개인 Parcae-1.3B에서는 로짓 방식 향상분의 약 60\% 만 남았습니다. LoopCD-Hidden 열의 빈 칸은 본 결과표에 없는 설정입니다. Ouro의 은닉 상태 결과는 부록 분석에만 있는데, HellaSwag에서는 로짓 방식보다 높았지만(+1.73 , +2.61 ) ARC-Challenge, ARC-Easy, SciQ, MMLU에서는 로짓 방식보다 낮았습니다.

벤치마크별로 보면 ARC-Challenge와 HellaSwag의 향상이 크고, WinoGrande와 PIQA는 여러 설정에서 기준선보다 낮아졌습니다. 예를 들어 Ouro-1.4B의 WinoGrande는 적응 강도에서 -2.45 포인트, Parcae-1.3B의 PIQA는 -1.68 포인트입니다. 연구팀은 학습 방식이 서로 다른 네 계열 모두에서 평균이 올랐다는 점을 들어, LoopCD의 효과가 특정 반복 학습 목표에 기대지 않는다고 설명합니다.

반복을 절반으로 줄여도 전체 반복의 정확도를 유지

같은 깊이에서 정확도가 오른다면, 그만큼 반복을 줄일 수 있지 않을까요? 연구팀은 Huginn, Parcae, Looped-Qwen3의 반복 횟수를 절반으로 줄이고 LoopCD를 적용해 이 질문을 확인했습니다.

반복을 절반으로 줄이면 일반 디코딩의 7종 평균은 0.17 에서 1.29 포인트 떨어졌습니다. 같은 절반 깊이에서 LoopCD를 적용하면 6개 설정 모두 전체 반복의 일반 디코딩과 같거나 높아졌습니다. Huginn-0125는 32번 대신 16번만 반복하고도 LoopCD-Logits로 +1.02, LoopCD-Hidden으로 +0.51 포인트 높았고, Looped-Qwen3는 LoopCD-Hidden으로 전체 반복과 같은 점수(+0.00 )였습니다.

LoopCD-Logits의 추가 출력 층 비용까지 포함한 순방향 FLOPs는 전체 반복의 0.52 에서 0.78 배였습니다. 줄일 수 있는 연산량은 전체 연산에서 반복 블록이 차지하는 비율에 따라 정해집니다. 그래서 반복 블록의 비중이 큰 Huginn은 46\% 에서 48\% 를 줄였습니다. 뒤쪽 층이 많은 Looped-Qwen3는 LoopCD-Logits를 쓰면 출력 층 추가 비용이 반복 절감분보다 커집니다. 그래서 LoopCD-Hidden으로만 실험했고, 23.6\% 를 줄였습니다. 연구팀은 Huginn의 다음 토큰 엔트로피가 16번째 반복 무렵 안정되고 32번째까지 거의 변하지 않는다는 점을 들어, Huginn에서 반복을 절반으로 줄여도 손실이 작은 이유를 설명합니다.

이 결과를 읽을 때 확인할 조건이 세 가지 있습니다. 우선 절반 깊이 실험은 객관식 벤치마크에서만 했고, 수학 추론과 코드 생성에서는 하지 않았습니다. 또한 Ouro는 이 실험에 포함되지 않았습니다. 마지막으로 연구팀이 직접 밝힌 대로, FLOPs는 이론적인 연산량이며 실제 실행 시간(wall-clock) 단축을 측정한 값이 아닙니다. 절반 깊이 설정은 참조 반복과 강도도 전체 깊이와 따로 정했습니다(예: Huginn LoopCD-Logits는 h_1 대신 h_5 를 참조로 사용).

LoopCD는 왜 작동하는가

결과를 확인했으니, 이제 왜 첫 반복이 좋은 참조가 되는지 와 이득이 어디서 나오는지 를 살펴보겠습니다. 연구팀은 논문의 상당 부분을 이 분석에 할애했습니다.

이득은 참조 예측이 마지막 예측과 얼마나 다른지를 따라갑니다

첫 반복만으로 낸 예측은 마지막 반복보다 7종 평균이 4.0 에서 23.7 포인트 낮았습니다. 그런데 참조로서의 가치는 그 예측의 정확도가 아니라 마지막 예측과의 불일치 정도에 달려 있었습니다. 아래 표는 ARC-Challenge에서 참조 반복 k 를 바꿔 가며 LoopCD-Logits(\omega = 0.5 )를 적용한 결과 중 일부입니다.

모델 참조 반복 k 참조 단독 정확도 마지막 예측과 다른 답 비율 향상 폭
Huginn-0125 (마지막 37.54) 1 22.78 51.3\% +3.07
2 22.10 46.8\% +1.79
16 37.20 7.3\% +0.17
Parcae-1.3B (마지막 40.36) 1 32.34 30.0\% +3.50
6 41.04 7.0\% +1.02

Parcae-1.3B의 6번째 반복은 단독 정확도(41.04\% )가 마지막 예측(40.36\% )보다 높은데도 향상 폭이 1포인트에 그쳤습니다. 이미 마지막 상태에 거의 수렴해서 연장할 방향이 남아 있지 않기 때문입니다. 반대로 Huginn의 2번째 반복은 1번째만큼 약하지만, 불일치가 이미 줄어 향상 폭이 절반 수준입니다. 연구팀은 이 결과를 근거로 로짓 공간에서는 첫 반복이 가장 좋은 참조라고 정리합니다.

예외는 Huginn의 LoopCD-Hidden입니다. Huginn은 반복 상태를 가우시안 노이즈에서 시작합니다. 첫 반복과 마지막 반복의 은닉 상태 차이에는 이 노이즈를 걷어 내는 움직임이 크게 섞여 있습니다. 로짓으로 바꾸면 뒤쪽 층과 헤드가 이 노이즈를 투영해 없애지만, 은닉 상태에서 바로 대조하면 노이즈를 그대로 키웁니다. 그래서 Huginn의 LoopCD-Hidden은 첫 상태를 참조로 쓰면 -0.58 포인트였고, 6번째 상태를 참조로 썼을 때 +0.83 포인트로 가장 높았습니다. 결정적인 초기 상태로 시작하는 Parcae와 Looped-Qwen3는 두 방식 모두 첫 상태를 참조로 썼습니다.

반복 도중의 층은 참조가 될 수 없습니다

DoLa처럼 중간 층을 약한 예측으로 쓰면 어떨까요? 연구팀이 Ouro의 마지막 반복 안쪽 층(0, 8, 16번째 등)을 참조로 시험하자 ARC-Challenge 정확도가 일반 디코딩보다 최대 20.6 포인트(Ouro-1.4B), 24.9 포인트(Ouro-2.6B) 떨어졌습니다. 같은 강도에서 첫 반복을 마친 상태 h_1 은 2.1 과 2.6 포인트를 올렸습니다. Ouro-1.4B에서 반복이 끝난 시점의 예측은 마지막 예측과의 차이(Jensen-Shannon 발산)가 0.71, 0.13, 0.013비트로 차례로 줄어듭니다. 반면 반복 안쪽 층의 예측은 첫 반복이든 마지막 반복이든 평균 0.57에서 0.84비트로 크게 흔들렸습니다. 연구팀은 루프 구조가 반복 내부에 학습된 출구 지점을 두지 않기 때문이라고 설명합니다.

가이던스는 아슬아슬한 결정만 바꿉니다

연구팀은 로짓 대조 벡터 z_R - z_1 을 z_R 에 평행한 성분과 직교하는 성분으로 나눴습니다. 평행 성분은 모든 로짓을 같은 비율로 키워 토큰 순위를 바꾸지 않는 온도(temperature) 조절에 해당하고, 직교 성분은 토큰 사이의 순위를 바꿉니다. HellaSwag에서 직교 성분만 적용하면 \omega = 0.5 에서 Ouro-1.4B가 +1.72 포인트로 전체 갱신의 +0.76 보다 높았고, Ouro-2.6B도 +2.27 대 +1.56 이었습니다. 연구팀은 이를 근거로 이득의 대부분이 순위 재조정에서 나온다고 설명합니다. 반면 ARC-Challenge에서는 온도 조절 성분이 들어간 전체 갱신이 더 작은 강도(\omega = 0.9 )에서 정점(+2.47 )에 이르렀고, 순위 재조정만으로는 \omega = 1.3 까지 올려야 비슷한 정점(+2.65 )에 닿았습니다. 어느 변형이 나은지는 벤치마크에 따라 달랐습니다.

순위 재조정은 상위 두 후보의 차이보다 큰 힘이 가해질 때만 답을 바꿉니다. ARC-Challenge 문항을 일반 예측의 확신도로 5등분하자, 확신이 가장 낮은 구간에서 4개 모델이 +6.4 에서 +13.3 포인트를 얻었고 가장 높은 구간에서는 많아야 +0.4 포인트였습니다. 실제로 답이 바뀐 문항은 5.8\% 에서 14.9\% 에 그쳤고, 순 향상은 2.1 에서 3.5 포인트였습니다.

논문은 이 과정을 문항 하나로 보여 줍니다. "숲에 좁은 파괴 경로를 남기는 자연재해"를 묻는 ARC-Challenge 문항이 있습니다. 이 문항에서 Ouro-1.4B의 마지막 예측은 "earthquake"(지진, -0.201 )를 정답 "tornado"(토네이도, -0.209 )보다 0.01 미만 차이로 앞세웠습니다. 그러나 첫 반복부터 마지막 반복까지 tornado의 점수는 +0.90, earthquake는 +0.32 올랐습니다. LoopCD는 이 움직임을 연장해 tornado(-0.170 )를 earthquake(-0.199 )보다 앞으로 올렸습니다. 연구팀은 가이던스가 새로운 지식을 더하는 것이 아니라 "참조 상태에서 읽어 낸 움직임의 방향을 이어 갈 뿐"이라고 설명합니다.

생성 과제는 강도를 낮게 잡아야 합니다

객관식은 답 하나를 고르는 가능도 비교라서 생성보다 넓은 강도 범위에서 이득이 유지되었습니다. 모델별로 가장 높은 지점은 0.25에서 1.0 사이였고, 연구팀은 \omega = 0.5 를 골랐습니다. 자기회귀 생성은 앞쪽 토큰의 변화가 뒤쪽 접두사에 누적되므로, 연구팀은 \omega 를 0.2에서 0.3 사이로 좁게 골랐습니다. 강도가 커지면 붕괴가 빨리 옵니다. Ouro-1.4B의 GSM8K는 \omega = 0.8 에서 8포인트, \omega = 1.0 에서 20포인트 떨어졌고, HumanEval도 같은 강도에서 10포인트와 22포인트 떨어졌습니다. 객관식 평가에서는 적응 강도가 확신이 높은 토큰의 가이던스를 줄여 주므로, 최대 강도 \omega_{\max} 를 0.5에서 1.0 사이로 넓게 잡아도 평균 이득이 유지되었습니다.

같은 이름의 POSTECH 연구와 비교

Apple 논문이 arXiv에 올라오기 열흘 전인 2026년 9월 21일, POSTECH 연구팀(Byeongho Yu, Junhyuk So, Eunhyeok Park)이 같은 이름의 논문을 공개했습니다. 제목은 LoopCD: Loop-wise Contrastive Decoding for Improving Reasoning in Looped Language Models 입니다. EMNLP 2026 본 학회 채택 논문이며, 공식 구현 도 공개되어 있습니다. 이름이 같을 뿐 아니라 앞선 반복의 예측을 약한 참조로 두고 마지막 반복과 대조한다는 핵심 아이디어도 같습니다. Apple 논문의 참고문헌에는 이 연구가 없습니다.

항목 Apple LoopCD POSTECH LoopCD
공개 2026년 10월 1일 2026년 9월 21일 (EMNLP 2026)
대조식 z_R + \omega(z_R - z_1), 은닉 상태 결합 변형 추가 \log p^{(\ell_e)} - \lambda \log p^{(\ell_a)}, 개연성 제약 추가
참조 반복 로짓은 첫 반복, Huginn 은닉 상태는 6~7번째 Huginn 6, 8, 10번째 중, Ouro 0, 1번째 중 선택
강도 조절 고정 또는 상위 두 확률 차이 기반 적응 고정 \lambda \in \{0.1, 0.2, 0.3\}
모델 Ouro, Huginn, Parcae, Looped-Qwen3 Huginn-0125, Ouro-1.4B
과제 수학 추론, 코드, 객관식 7종, 반복 절반 실험 GSM8K, MATH-500, 코드, StrategyQA
비용 측정 이론적 FLOPs 실제 토큰 처리 속도 (일반 디코딩의 0.98\times 이상)
코드 없음 공개

두 연구가 겹치는 설정의 결과도 비슷한 방향입니다. POSTECH 연구에서 Huginn-0125의 HumanEval은 그리디 디코딩 24.39에서 30.49로, Ouro-1.4B는 69.50에서 74.39로 올랐습니다. 이득이 확신이 낮은 토큰에 몰린다는 분석도 두 논문에 공통으로 있습니다. POSTECH 연구는 이런 토큰을 "hard token"이라 부르며 숫자와 연산자, 추론 단계 표지에 많다고 보고했고, 실제 처리 속도를 재서 추가 비용이 거의 없음을 보였습니다.

두 연구가 각자 다룬 범위는 다릅니다. Apple 연구에는 은닉 상태 변형, 적응 강도, 반복 절반 실험, 더 많은 모델 계열이 있습니다. POSTECH 연구에는 MTI, Self-Eval, NoiseCD 같은 다른 디코딩 방법과의 비교, 조기 종료(early exit)와의 결합 실험, 고정 하이퍼파라미터에서의 견고성 확인이 있습니다.

두 대조식은 형태가 다르지만, 필자가 정리해 보면 Apple의 로짓 식은 POSTECH 식에서 \lambda = \omega/(1+\omega) 로 둔 것에 온도만 1/(1+\omega) 배 곱한 형태입니다. POSTECH의 개연성 제약을 빼고 그리디 디코딩으로 보면 두 식이 고르는 토큰은 같고, 실제 차이는 참조 반복의 선택, POSTECH의 개연성 제약, 샘플링 온도에서 생깁니다.

Apple은 LoopCD 코드를 공개하지 않았습니다. 지금 쓸 수 있는 공식 구현은 POSTECH 연구의 저장소뿐입니다. 이 저장소는 Huginn-0125와 Ouro-1.4B만 지원하고, Apple 논문의 은닉 상태 변형과 적응 강도는 포함하지 않습니다. 또한 2026년 10월 4일 기준으로 저장소에 라이선스 파일이 없습니다.

한계와 해석 시 주의할 점

검증 범위가 작은 모델에 한정됩니다. 실험한 모델은 0.37B에서 4B 사이입니다. 대형 모델에서 같은 효과가 나는지는 확인되지 않았습니다.

강도 선택에 별도 검증 세트가 언급되지 않습니다. 연구팀은 가이던스 강도와 참조 반복을 본 평가 전 스크리닝 스윕으로 골랐다고 밝혔는데, 논문이 보여 주는 스윕 곡선은 평가에 쓴 같은 벤치마크의 평균입니다. 객관식 향상 폭이 1포인트 안팎이라는 점을 함께 고려하면, 새 과제에 적용할 때는 강도를 다시 찾아야 할 가능성이 있습니다.

비교 대상이 일반 디코딩뿐입니다. DoLa나 작은 모델을 쓰는 대조 디코딩과 같은 다른 디코딩 방법과는 비교하지 않았습니다(Ouro의 ARC-Challenge에서 반복 안쪽 층을 참조로 쓴 시험이 유일합니다). 시드 반복이나 오차 막대, 유의성 검정도 없습니다. 객관식 향상이 1포인트 안팎이고 AIME가 30문제 세트라는 점을 함께 고려해야 합니다.

모든 항목이 오르지는 않았습니다. Looped-Qwen3의 수학 추론 pass@1, GSM8K 일부 설정, WinoGrande와 PIQA는 기준선보다 낮아졌습니다. 평균 변화만으로 판단하면 이런 항목이 가려집니다.

연산량 절감은 이론값이고 객관식에서만 측정했습니다. 반복 절반 실험은 Huginn, Parcae, Looped-Qwen3의 객관식 평가에만 있습니다. 서빙 환경에서 실제 지연 시간이 얼마나 줄어드는지, 긴 생성 과제에서도 절반 깊이의 정확도가 유지되는지는 논문에서 다루지 않았습니다.

외부 개발자가 Apple의 로짓 식을 직접 구현해 다른 조건에서 시험한 비공식 실험 도 있습니다. 태국어 O-NET 373문항에서 Ouro 기본 모델에 LoopCD를 적용하자, 마지막 반복 대비 변화가 -0.3 과 +0.5 포인트로 통계적으로 유의하지 않았습니다. 반복하도록 학습하지 않은 Qwen3.5-Base(선형 어텐션을 섞은 하이브리드 구조)에 Looped-Qwen3 방식으로 반복을 붙인 경우, LoopCD는 반복만 한 결과보다는 높았지만 반복하지 않은 원래 모델보다 낮았습니다. 다만 이 차이도 유의하지 않았고, 논문과 같은 계열의 Qwen3-4B-Base에서는 LoopCD가 가장 높았습니다(58.4\% 대 반복 없음 57.9\% , 유의하지 않음). 언어와 문제 형식이 다른 단일 실험이라, 논문이 다루지 않은 조건에서는 효과가 작을 수 있다는 정도로만 참고할 수 있습니다.

연구팀은 결론에서, Ouro처럼 중간 반복의 예측을 염두에 두고 학습한 모델이라면 약한 예측과 강한 예측의 쌍이 더 유용해질 수 있다고 전망합니다. 루프 트랜스포머가 이미 계산해 놓고 버리던 중간 반복을 디코딩 신호로 바꾼다는 점에서, LoopCD는 루프 구조를 쓰는 모델이 늘어날수록 같이 검토할 만한 추론 시점 기법입니다. 두 LoopCD 연구가 거의 동시에 같은 결론에 이른 만큼, 이후 연구에서는 두 방식을 같은 조건에서 비교한 결과가 나오기를 기대해 봅니다.

:scroll: Decoding Looped Transformers Better for (Almost) Free 논문

:scroll: LoopCD: Loop-wise Contrastive Decoding for Improving Reasoning in Looped Language Models 논문

:github: POSTECH LoopCD GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:에서 이런 글들을 계속 정리하고 있습니다. 회원 가입으로 주요 글들을 이메일:love_letter:로, 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로 새 글 알림을 받아보세요! :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: