Dory1.0-4B는 반복 횟수로 추론 연산과 정확도를 조절한다

Dory1.0-4B: A Looped Normalized-GPT

HF Daily2611.03998

Maxim Fishman, Simeng Sun, Shantanu Acharya2026-11-02

무엇인가

Dory1.0-4B가 겨냥하는 문제는 테스트 시점 연산 확장이 대부분 토큰 공간에서 이뤄진다는 점이다. 모델이 더 긴 추론 흔적을 생성하면 지연, KV 캐시, 서빙 비용이 토큰마다 커진다. 논문은 공유 레이어 블록을 여러 번 적용하는 루프형 잠재 순환 모델을 보완적 연산 확장축으로 제시한다. 같은 파라미터로 토큰당 더 많은 계산을 잠재 공간에서 수행하고, 하나의 체크포인트를 반복 횟수 k에 따라 다른 추론 예산으로 서빙할 수 있다는 주장이다.

어떻게 동작하나

구조는 nGPT 백본에 입력 블록 16층, 공유 순환 블록 40층, 출력 블록 16층을 두는 방식이다. 전체 72개 물리 레이어는 36개 MLP 전용 층과 27개 슬라이딩 윈도, 9개 전체 어텐션 층으로 구성되며 어텐션은 3대1로 교차한다. 입력과 출력 블록은 한 번만 실행되고, 순환 블록은 k번 실행된다. 입력 블록의 출력 x를 매 루프마다 현재 상태에 더해 L2 정규화한 뒤 공유 블록 Fθ를 적용하고 다시 정규화한다. 수식으로는 s0=x, u_t=N(s_{t-1}+x), s_t=N(Fθ(u_t))이며, 별도 학습 어댑터나 외부 잔차 덧셈 없이 최종 상태 s_k를 출력 블록과 언어모델 헤드로 넘긴다. k가 1이면 72층, 2면 112층, 4면 192층을 적용하는 셈이다.

무엇과 다른가

사전학습은 6조 토큰 규모다. 처음 4.5조 토큰은 k=1의 일반 비루프 모델로 NVFP4에서 학습해 BF16 대비 약 20%의 종단간 속도 향상을 냈다. 이어 BF16으로 약 1.5조 토큰을 더 학습하며 루프를 도입했고, k를 1에서 4까지 균등 확률로 샘플링하되 옵티마이저 스텝과 마이크로배치 인덱스에 결정적으로 묶어 데이터 병렬 복제본이 같은 값을 쓰게 했다. 일부 복제본은 10% 비율로 1루프를 강제하는 오버라이드를 적용했다. 루프 역전파는 깊이 1의 절단 역전파를 사용해 마지막 순환 호출과 입출력 블록만 학습했다. 이후 약 3000억 토큰을 추가해 문맥 길이를 256K로 늘렸고 총 학습량은 약 6.3조 토큰이 됐다.

어떻게 쓰나

후학습은 256K 토큰 팩킹으로 9에포크 진행한 SFT와 200스텝의 RLVR로 이뤄진다. SFT는 사고 과정과 비사고 응답을 섞고 사전학습의 랜덤 루프 샘플링을 유지했다. RLVR은 23개 환경에서 비동기 GRPO로 수행했으며, 어려운 프롬프트를 더 깊은 루프로 보내는 난이도 인지 루프 커리큘럼을 도입했다. SFT 체크포인트로 프롬프트당 8개 응답을 채점해 평균 보상이 0과 1 사이인 프롬프트만 남기고, 라우팅 점수 s_i=0.3q_i+0.7u_i를 써서 낮은 점수의 프롬프트가 깊은 루프 슬롯을 먼저 채우게 했다. 루프별 프롬프트 할당은 k=1,2,3,4에 4대1대1대1이었다. 이 커리큘럼의 절제 실험에서 4루프 기준 Terminal-Bench v2.1 정확도가 14.0%에서 21.4%로 올랐다.

전제와 한계

12개 벤치마크 등가중 평균은 1루프 35.2, 2루프 39.7, 4루프 40.6이다. 2루프 이상에서 Qwen3.5-9B, Gemma 4 12B, Gemma 4 26B-A4B 평균을 앞서고, 총 파라미터가 약 9배인 Qwen3.6-35B-A3B와는 1.7점 차이까지 따라붙는다. 4루프에서는 GDPval-AA v2가 815에서 967 Elo로, SWE-Bench Verified가 50.3%에서 61.8%로, Terminal-Bench v2.1이 12.5%에서 22.2%로 오른다. Gemma 4 26B-A4B 대비 SWE-Bench Verified 61.8% 대 57.4%, GDPval-AA v2 967 대 752 Elo이며, τ3-Banking과 IFBench, AA-LCR에서는 4루프 기준 평가된 모든 베이스라인을 앞선다. SciCode는 35.11%로 Qwen3.5-9B의 28.21%를 넘고, GDPval-AA v2는 Qwen3.6-35B-A3B의 987 Elo에 근접한다. 다만 AA-Omniscience 정확도처럼 깊은 실행의 이득이 과제에 따라 거의 없는 경우도 있다.

루프는 정확도뿐 아니라 에이전트 작업의 출력 토큰도 줄인다. 4루프는 1루프 대비 시도당 출력 토큰을 1.3~2.5배 줄였다. GDPval-AA v2에서는 시도당 턴 수가 116에서 49로 줄고 턴당 출력 토큰은 5%만 변했으며, Terminal-Bench v2.1은 턴 수 39% 감소와 턴당 토큰 20% 감소가 함께 나타났다. SWE-Bench Verified는 턴 17%, 턴당 토큰 11%가 줄었고, τ3-Banking은 턴 수 변화가 7%에 그친 대신 턴 길이가 18% 짧아졌다. 출력 토큰에 토큰당 레이어 적용 수 72, 112, 192를 곱해 계산하면 2루프는 1루프의 1.03~1.25배 연산으로 네 과제에서 4루프 정확도 이득의 86%, 80%, 58%, 42%를 회복한다. 4루프는 1루프의 1.07~2.04배 연산이 들어, 저자들은 k=2를 기본값으로, 정확도가 중요한 작업에는 k=4를 권한다.

메모리와 서빙 최적화도 함께 제시한다. 마지막 루프 KV 캐싱은 각 루프가 이전 캐시를 덮어써 k와 무관하게 1루프 크기의 KV 캐시를 유지한다. k=4에서 루프별 캐싱 대비 점수 변화는 -2.12에서 +0.42점이었고 출력 길이 변화도 작았다. 자기 투기 디코딩은 같은 체크포인트로 k=1 초안을 만들고 k=4로 검증하며, γ=4 토큰을 제안하고 KV와 활성값을 재사용해 측정된 모든 구성에서 1.37~1.71배 처리량을 냈다. 요청 지속시간 기준으로는 6개 벤치마크에서 1.11~1.53배 빨라졌다. 양자화는 MXFP8 PTQ가 BF16과 대체로 비슷했고, NVFP4와 Q5_K_M은 QAD를 적용해 격차를 줄였다. DGX Spark에서 MXFP8과 NVFP4는 BF16 대비 최대 2.44배 추론 속도를 보였다.

개발자 관점에서 이 논문은 하나의 모델을 k=2 기본, k=4 고정밀로 운용하는 식의 추론 예산 조절을 보여준다. 마지막 루프 KV 캐싱을 쓰면 루프 수를 늘려도 KV 메모리가 1루프와 같아 서빙 메모리 계획이 단순해지고, 양자화 체크포인트는 배포 비용을 낮춘다. 한계도 분명하다. 깊은 실행의 이득은 과제 의존적이며, 마지막 루프 캐싱은 이전 루프 질의가 학습 때의 동일 루프 KV가 아니라 최종 루프 KV를 보게 하는 불일치를 만들고 점수를 최대 2.12점 떨어뜨린다. 자기 투기 디코딩의 이득은 배치가 커질수록 줄어들고, 평가 프로토콜이 외부 Artificial Analysis와 달라 점수를 직접 비교하면 안 된다는 전제도 붙는다.