베이스 모델의 결정적 한 스텝만으로 코딩 에이전트 사후학습 성능을 예측한다
Before They Can Solve: Predicting Post-Training Coding-Agent Performance from Base Models
무엇인가
베이스 체크포인트를 고르는 일은 그 모델의 에이전트 능력이 드러나기 훨씬 전에 이뤄지는 고비용 결정이다. 능력을 확인하려면 사후학습에 컴퓨트와 엔지니어링을 쏟아부어야 하는데, 그 투자는 체크포인트를 이미 고른 뒤에야 가능하다. 기존 평가는 서로 반대 이유로 이 문제를 풀지 못한다. SWE-bench Verified 같은 end-to-end 에이전트 벤치마크는 베이스 체크포인트에게 너무 가혹하다. 튜닝되지 않은 베이스 모델은 도구 사용 하네스를 안정적으로 조작하지 못해 pass@K가 거의 0에 머문다. 반대로 HumanEval, MBPP 같은 비에이전트 코드 벤치마크는 저장소가 변해가는 동안 상태를 일관되게 유지하는 능력을 측정하지 않는다. 논문이 제시한 수치에 따르면 열 쌍의 공개 베이스/사후학습 모델에서 사후학습 SWE-bench Verified pass@1과의 스피어만 상관은 RepoBench XFirst가 0.830인 반면 HumanEval은 -0.394다. 평가가 에이전트적이면 돌릴 수가 없고, 에이전트적이지 않으면 예측력이 없다.
어떻게 동작하나
논문의 출발점은 커버리지 원리다. 유망한 베이스 체크포인트는 사후학습이 나중에 선택할 행동에 확률 질량을 남겨둔 모델이라는 것이다. 그래서 프런티어 모델이 실제 에이전트 코딩 벤치마크에서 성공한 궤적을 미래를 내다보는 신호로 쓴다. 절차는 이렇다. 먼저 mini-swe-agent 같은 하네스로 프런티어 사후학습 LLM의 성공 궤적을 모은다. 코드 변경이 일어난 스텝 집합 C에 대해 각 스텝까지의 누적 패치를 재구성하고, 그 상태에서 태스크 테스트를 다시 돌린다. 결정적 스텝 T*는 검증기가 처음으로 통과를 내는 최초의 코드 변경 스텝, 즉 T* = min{T ∈ C : V(P_≤T) = 1}로 정의된다. 이때 T*에서 취한 행동 y*를 골든 액션이라 부른다. 정의상 T* 직전 상태는 실패(0)이고 y*를 적용한 상태는 통과(1)이므로, y*는 주어진 문맥에서 태스크를 실제로 해결한 행동임이 검증기로 인증된다. 벤치마크의 사람이 쓴 정답 패치와 달리 실제 코딩 에이전트가 만들어낸 행동이라는 점이 다르다. 평가 문맥은 T* 이전 스텝만 포함한다. T* 이전의 행동들은 실패에서 통과로 가는 전환을 만들지 않으므로 그것에 보상을 주면 문제 해결 능력이 아니라 궤적 생성자 모방을 측정하게 되고, T* 이후 행동은 태스크 해결과 무관한 변경을 섞을 수 있기 때문이다.
무엇과 다른가
이 결정적 스텝 위에 세 개의 상호 보완 프로브를 세운다. 첫째, Decisive-Action BPB는 골든 액션에 체크포인트가 얼마나 많은 확률 질량을 주는지 절대적으로 묻는다. 궤적 접두부와 골든 액션을 하나의 고정된 채팅 템플릿으로 이어 붙여 토큰화하고, 골든 액션에 완전히 포함되는 토큰들의 음의 로그우도를 비트 단위로 합산한 뒤 액션의 바이트 길이로 나눈다. 바이트당 비트로 정규화하기 때문에 토크나이저가 다른 체크포인트끼리도 비교할 수 있고 값이 낮을수록 좋다. 채팅 템플릿이 추가한 포맷 텍스트는 BPB 계산에서 마스킹한다. 둘째, Patch MCQ는 비교 질문을 던진다. 같은 궤적 접두부 조건에서 사후학습 LLM들로부터 후보 액션을 샘플링하고, 접두부의 누적 패치에 적용해 검증기 결과로 라벨을 붙인다. 검증에 실패한 후보들이 오답 보기가 되고 골든 액션이 정답이 된다. 즉 오답 보기는 사람이 쓴 루브릭이 아니라 태스크 검증기 자체가 거부한 행동이다. 보기 전체를 하나의 문맥에 넣고 정답 문자(A/B/C/D)의 다음 토큰 확률을 비교하며, 위치 편향을 줄이기 위해 보기 순서를 순환시키며 확률을 집계한다. 셋째, prefix-conditioned pass@K는 생성 질문을 던진다. 결정적 스텝의 접두부에서 K개의 연속 생성을 샘플링하고 각각을 태스크 자체 테스트로 검증해, 하나라도 통과하면 그 태스크를 성공으로 센다. 베이스 모델이 하네스를 처음부터 몰아야 하는 end-to-end pass@K와 달리, 실제 궤적 접두부를 문맥으로 주고 그다음 한 걸음만 생성하게 한다.
어떻게 쓰나
실험은 열 개의 베이스 체크포인트에서 이뤄졌다. Nemotron-3-Nano, Nemotron-3-Super, Nemotron-3-Ultra, Qwen-3.5-35B-A3B-Base, DeepSeek-V4-Flash-Base, Kimi-K2-Base, GLM-4.5-Air-Base, Hy3-Preview-Base, DeepSeek-V4-Pro-Base, Gemma-4-26B-A4B다. 궤적은 GPT-5.6-Sol, Opus-5, Kimi-K3가 SWE-Bench Verified, SWE-Pro, DeepSWE에서 mini-swe-agent를 하네스로 만들어낸 성공 궤적에서 수집했고, Patch MCQ의 오답 보기는 Opus-4.8, Sonnet-5, GPT-5.6-Terra, GPT-5.6-Luna, GLM-5.2, Gemini-3.7-Flash, Gemini-3.6-Flash 등으로 생성했다. 각 프로브 점수와 사후학습 체크포인트의 SWE-bench Verified pass@1 사이의 순위 일치를 스피어만 ρ로 측정한다.
전제와 한계
결과는 강하다. DeepSWE 궤적으로 만든 프로브에서 Decisive-Action BPB는 ρ=0.964, Patch MCQ는 ρ=0.903, K=16의 prefix-conditioned pass@K는 ρ=0.988로 사후학습 SWE-bench Verified 순위와 일치했다. SWE-bench Verified 자체 궤적으로 만들면 각각 0.915, 0.903, 0.906이었다. 즉 출처 벤치마크를 목표 벤치마크와 맞추는 것이 더 높은 순위 일치를 사주지는 않았고, Decisive-Action BPB와 prefix-conditioned pass@K는 오히려 홀드아웃인 DeepSWE 출처가 더 잘 맞았다. SWE-bench Multilingual에서는 순위 일치가 유지되거나 개선되어 Decisive-Action BPB ρ=0.976, Patch MCQ 0.927, prefix-conditioned pass@K 0.945였다. 다만 피어슨 r은 0.82~0.85로 눈에 띄게 낮은데, 원인은 Gemma 4 26B가 SWE-bench Multilingual에서 17.3%를 받고 SWE-bench Verified에서는 52.0%를 받는 한 점이다. 베이스라인 비교도 분명하다. 같은 열 체크포인트에서 MBPP는 ρ=0.091, HumanEval은 ρ=-0.394로 순위 신호가 거의 없고, 가장 강한 베이스라인인 RepoBench XFirst도 ρ=0.830으로 DeepSWE 유래 프로브 세 개(0.867~0.964)에 못 미친다.
사후학습 레시피가 제각각인 공개 모델만으로는 베이스 체크포인트 자체의 기여를 분리하기 어렵기 때문에, 저자들은 Nemotron-3-Nano-Base, Nemotron-3-Super-Base, Qwen-3.5-35B-A3B-Base 세 모델을 동일한 SFT 레시피로 1,000 스텝, 16.8B 토큰만큼 학습시켰다. 같은 하네스와 평가 하이퍼파라미터로 측정한 사후 SFT 순서는 공개 보고된 순서와 일치했고, SWE-Pro 궤적으로 계산한 세 프로브도 같은 순서를 냈다. 다만 체크포인트가 셋뿐이라 저자들은 이를 정밀한 추정이 아니라 상관 경향의 연장으로 읽는다. 절제 실험에서는 결정적 스텝만 쓰는 것이 전체 턴을 쓰는 것보다 훨씬 잘 맞았고, 도구 호출 포맷 텍스트를 마스킹하면 모든 코퍼스에서 순위 일치가 개선됐다. Patch MCQ는 보기를 하나씩 독립 채점해 최저 BPB를 고르는 방식이 ρ=0.665(DeepSWE 질문)와 0.578(SWE-Verified 질문)에 그친 반면, 네 보기를 한 문맥에 넣고 정답 문자 확률을 읽으면 0.806과 0.842로 올라가고 추론을 허용하면 0.867과 0.903까지 개선됐다. 샘플링 예산은 K=16이면 충분했다. DeepSWE 접두부에서 ρ는 K=8에서 0.915, K=16에서 0.952, K=32에서 0.951로 정체했고, SWE-bench Verified 접두부에서는 K=8과 16에서 이미 0.988이었다가 K=32에서 0.906으로 떨어졌다. 통과율이 최대 83.7%까지 포화되면서 Nemotron Ultra와 DeepSeek V4 Pro가 동점이 되는 구간이 생기기 때문이다.
실무적으로 이 논문은 사후학습 예산을 쓰기 전에 후보 베이스 체크포인트를 줄이는 스크리닝 도구를 제안한다. 필요한 재료는 두 가지뿐이다. 하나는 이미 공개된 에이전트 코딩 벤치마크의 성공 궤적, 다른 하나는 그 벤치마크의 실행 가능한 검증기다. 새 벤치마크를 만들거나 사람이 라벨을 붙일 필요가 없고, 어떤 에이전트 코딩 벤치마크든 베이스 모델 평가로 바꿀 수 있다는 것이 저자들의 주장이다. 체크포인트를 고르는 단계에서는 순위만 맞으면 되므로 절대 점수보다 스피어만 상관을 기준으로 프로브를 고르는 편이 낫다. 또 하나 실무적으로 중요한 지점은 베이스 모델이 도구 호출을 못 해도 평가가 가능하다는 것이다. 골든 액션의 확률 질량, 검증기가 거부한 대안과의 구분, 접두부 조건 생성 성공률은 모두 하네스를 처음부터 몰 필요가 없다.
저자들이 밝힌 전제와 한계는 이렇다. 결정적 스텝은 프런티어 모델의 성공 궤적이 있어야 정의되므로 성공 궤적을 만들 수 없는 태스크에는 적용할 수 없다. SFT 통제 실험은 체크포인트 세 개에 불과해 상관 경향의 확인 이상으로 읽으면 안 되고, 다른 궤적 출처를 쓰면 일부 프로브의 일치도가 약해진다. 샘플링 예산 K는 클수록 좋아지지 않는다. K=32에서 통과율 포화로 순위 일치가 오히려 떨어지는 구간이 관측됐다. 또한 저자들은 APTBench의 SWE MCQ 1,682개를 직접 감사해 정답으로 지정된 보기가 틀렸거나 유일하게 정답이 아닌 문항을 확인했고, 그래서 루브릭 기반이 아니라 검증기 인증 기반으로 Patch MCQ를 설계했다고 밝힌다. 마지막으로 이 프레임워크가 측정하는 것은 베이스 체크포인트가 사후학습으로 끌어낼 수 있는 잠재력의 순위이지 사후학습 후의 절대 성능이 아니다.