핵심 요약
이 논문은 범용 모델을 넘어 소프트웨어 엔지니어링 에이전트에 특화된 모델을 만드는 방법론을 제시한다. 대규모 강화학습(RL)과 실제 개발 환경을 모방한 벤치마크를 통해, 복잡한 코드 수정과 장기적인 계획 수립 능력을 비약적으로 향상시켰음을 입증한다.
왜 중요한가
이 논문은 범용 모델을 넘어 소프트웨어 엔지니어링 에이전트에 특화된 모델을 만드는 방법론을 제시한다. 대규모 강화학습(RL)과 실제 개발 환경을 모방한 벤치마크를 통해, 복잡한 코드 수정과 장기적인 계획 수립 능력을 비약적으로 향상시켰음을 입증한다.
핵심 기여
에이전트 기반 소프트웨어 엔지니어링 특화 모델 Composer 2 개발
Kimi K2.5를 기반으로 지속적 사전 학습(Continued Pretraining)과 대규모 강화학습(RL)을 결합하여 복잡한 코딩 작업에 최적화된 모델을 구축했다.
실제 개발 환경을 반영한 CursorBench 벤치마크 도입
기존 벤치마크의 한계를 극복하기 위해 실제 Cursor 세션에서 추출한, 더 길고 모호한 프롬프트와 대규모 코드 수정을 요구하는 평가 데이터셋을 구축했다.
비동기식 강화학습 파이프라인 및 하드웨어 최적화
NVIDIA Blackwell GPU와 MXFP8/NVFP4 정밀도를 활용하고, Context Parallelism을 도입하여 1조 개 파라미터 규모의 모델을 효율적으로 학습시켰다.
Self-Summarization 기법을 통한 장기 문맥 처리
긴 작업 과정에서 모델이 스스로 요약본을 생성하고 이를 활용하게 함으로써, 제한된 컨텍스트 윈도우 내에서도 일관성 있는 추론을 유지하도록 설계했다.
핵심 아이디어 이해하기
기존 코딩 모델은 주로 자동 완성이나 짧은 함수 작성에 초점을 맞췄다. 하지만 실제 소프트웨어 엔지니어링은 수천 줄의 코드를 이해하고, 여러 파일을 수정하며, 실행 결과를 바탕으로 계획을 수정하는 복잡한 과정이다. Transformer 기반 모델은 컨텍스트 길이가 길어질수록 연산량이 제곱으로 늘어나고, 단순히 다음 토큰을 예측하는 학습만으로는 장기적인 계획 수립 능력을 갖추기 어렵다는 한계가 있었다.
Composer 2는 이를 해결하기 위해 두 단계 학습 전략을 취한다. 먼저 '지속적 사전 학습'을 통해 코드에 대한 깊은 지식을 주입하고, 이후 '강화학습(RL)'을 통해 도구 사용과 문제 해결 전략을 최적화한다. 특히 RL 과정에서는 정답 코드와의 일치 여부뿐만 아니라, 모델이 생성한 코드의 간결성, 실행 성공 여부, 그리고 엔지니어링 원칙 준수 여부를 보상(Reward)으로 제공하여 실질적인 문제 해결 능력을 키운다.
또한 'Self-Summarization'이라는 메커니즘을 도입했다. 이는 모델이 긴 작업을 수행할 때 중간 과정을 스스로 요약하여 다음 단계의 입력으로 사용하는 방식이다. 이를 통해 모델은 과거의 중요한 결정을 잊지 않으면서도 새로운 정보를 처리할 수 있는 여유 공간을 확보하며, 결과적으로 수백 번의 도구 호출이 필요한 장기 프로젝트에서도 일관된 성능을 유지하게 된다.
방법론
학습은 Kimi K2.5(1.04T 파라미터, 32B 활성 파라미터 MoE)를 베이스 모델로 시작한다. 32k 토큰 길이의 대규모 코드 데이터로 사전 학습을 진행한 후, 256k까지 컨텍스트를 확장하고 특정 코딩 작업에 대한 SFT(Supervised Fine-tuning)를 거친다.
강화학습 단계에서는 비동기식 정책 경사(Policy Gradient) 알고리즘을 사용한다. 프롬프트당 여러 샘플을 생성하여 그룹 내 상대적 우위를 비교하는 방식을 취하되, GRPO에서 발생하는 길이 편향(Length Bias)을 제거하기 위해 길이 표준화 항을 제외하고 비선형 길이 페널티(Nonlinear Length Penalty)를 도입했다. [가중 토큰 수 x를 입력으로] → [하이퍼파라미터 k, q와 함께 비선형 오목 함수 연산을 수행하여] → [길이에 따른 페널티 값 Clength를 얻고] → [이 값이 보상에서 차감되어 모델이 불필요하게 긴 응답을 내놓지 않도록 유도함].
하드웨어 효율성을 위해 NVIDIA Blackwell GPU의 MXFP8 및 NVFP4 정밀도를 활용한다. 특히 MoE 레이어의 Forward Pass에서는 NVFP4를, Backward Pass에서는 MXFP8을 사용하여 수치적 안정성과 연산 속도를 동시에 확보했다. [BF16 값을 입력으로] → [FP8E4M3 블록 스케일과 FP32 토큰 스케일을 적용해 FP4E2M1 형식으로 변환하여] → [양자화된 텐서를 얻고] → [이를 통해 메모리 대역폭을 절약하고 Blackwell GPU의 텐서 코어 연산 효율을 극대화함].
인프라 측면에서는 Context Parallelism(CP)을 주축으로 사용한다. [시퀀스를 2*CP 조각으로 분할 → 각 랭크가 담당 조각 처리 → KV latent 벡터 All-gather → 어텐션 계산] 순으로 연산을 수행하여 통신 오버헤드를 최소화하고 긴 시퀀스 학습 시 메모리 한계를 해결했다.
주요 결과
자체 벤치마크인 CursorBench-3에서 61.3%의 정확도를 기록하며, 이전 모델인 Composer 1.5(44.2%) 대비 37% 이상의 성능 향상을 보였다. 이는 GPT-5.4(63.9%)와 대등한 수준이면서도 추론 비용은 훨씬 저렴한 파레토 최적(Pareto-optimal) 지점을 달성한 결과이다.
공개 벤치마크인 SWE-bench Multilingual에서는 73.7%를 기록하여 Composer 1.5(65.9%)보다 크게 개선되었으며, Terminal-Bench에서도 61.7%의 높은 점수를 획득했다.
RL 학습 과정에서 평균 보상과 Best-of-K 성능이 동시에 상승하는 것을 확인했다. 이는 모델이 단순히 기존 성공 경로를 반복하는 것이 아니라, 새로운 정답 경로를 탐색하고 커버리지를 넓히고 있음을 시사한다.
비선형 길이 페널티 도입 결과, 쉬운 작업에서는 빠르게 답을 내놓고 어려운 작업에서는 더 깊이 생각(Chain-of-Thought)하는 효율적인 에이전트 행동 양식이 유도됨이 확인됐다.
기술 상세
아키텍처는 Kimi K2.5 기반의 Mixture-of-Experts(MoE) 구조를 따르며, Multi-Head Latent Attention(MLA)을 적용하여 KV 캐시 효율성을 극대화했다. 추론 속도 향상을 위해 Multi-Token Prediction(MTP) 레이어를 추가로 학습시켜 투기적 디코딩(Speculative Decoding)에 활용한다.
RL 알고리즘은 분산 환경에서 안정성을 유지하기 위해 Kullback-Leibler(KL) 발산 추정기로 k1 = -log r 방식을 채택했다. 이는 기존 k3 추정기가 p와 q가 멀어질 때 분산이 급격히 커지는 문제를 해결하여 대규모 학습 안정성을 높인다.
MoE 라우팅의 불일치 문제를 해결하기 위해 Router Replay 기법을 도입했다. 추론 시 선택된 전문가 인덱스를 학습 시 강제로 할당함으로써 정책 경사 계산 시 발생하는 노이즈를 억제한다.
하드웨어 최적화를 위해 ThunderKittens 프레임워크를 기반으로 커스텀 CUDA 커널을 개발했다. 특히 NVFP4 양자화 시 IEEE 표준 부동소수점 연산을 준수하여 학습 초기 단계의 발산을 방지했다.
한계점
모델이 여전히 지능이나 일관성 측면에서 개선의 여지가 있는 사례들이 존재하며, 에이전트가 수천 시간의 인간 작업이 필요한 더 복잡한 장기 과제로 확장됨에 따라 알고리즘 및 인프라 측면의 추가 연구가 필요함.
실무 활용
실제 개발 환경인 Cursor IDE에 통합되어 자율적인 코드 수정 및 디버깅 에이전트로 활용 가능하다.
- 대규모 코드베이스에서의 복잡한 버그 진단 및 수정
- 기존 기능을 유지하면서 진행하는 대규모 리팩터링
- 프로덕션 로그와 소스코드를 교차 참조하여 장애 원인 파악
- 다수 파일에 걸친 신규 기능 구현 및 테스트 코드 작성
코드 공개 여부: 비공개
키워드
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.