
Step 5 Preview는 도구를 자주 쓰고 긴 작업을 수행하는 에이전트를 위해 92개 트랜스포머 블록, 희소 어텐션, 에이전트 기반 데이터 구축과 장기 강화학습 시스템을 설계했다. 개발팀은 긴 문맥 처리 비용과 깊은 모델의 학습 불안정성, 긴 궤적에서의 학습 효율과 보상 배분을 주요 과제로 꼽았다.
모델 구조와 학습 안정성
개발팀은 에이전트 작업에서 여러 단계에 걸친 추론이 중요하지만, 도구 호출이 잦으면 입력 문맥이 길어지고 명시적인 단계별 추론에 쓸 토큰도 제한된다고 설명한다. 이에 따라 모델이 입력 문맥을 처리하는 동안 암묵적으로 추론하도록 깊이를 늘리는 ‘좁고 깊은’ 구조를 택했다. Step 5 Preview는 트랜스포머 블록 92개로 구성되며, 개발팀은 대규모 오픈 모델인 Qwen 3.8 max, Kimi K3와 깊이가 비슷하지만 전체 파라미터와 활성 파라미터는 각각 이들 모델의 4분의 1, 3분의 1 미만이라고 밝혔다. 이 구조가 비용을 낮추면서도 조 단위 파라미터 모델에 견줄 장기 에이전트 역량을 제공한다는 설명은 개발팀의 주장이다.
어텐션은 효율적인 계층과 전체 문맥을 보는 희소 계층을 3대 1 비율로 교차 배치했다. 효율적 계층에는 Gated Sliding Window Attention(Gated SWA)을 적용했다. 개발팀은 여러 대안을 살펴본 뒤 성능 차이가 크지 않고, 추측 디코딩에서 구현이 더 간단하다는 점을 선택 이유로 들었다. 전체 어텐션 계층에는 Gated GQA를 바탕으로 한 Sparse GQA를 적용해 최대 100만 토큰 문맥의 학습과 추론을 지원하도록 했다.
깊은 구조를 FP8 혼합 정밀도로 학습하는 과정에서는 수치 폭발과 기울기 급증이 관찰됐다. 개발팀은 이를 완화하기 위해 은닉 상태와 해당 기울기를 FP32로 처리했다. BF16으로 표현한 큰 은닉값이 깊은 네트워크에서 빠르게 커지는 현상을 줄였으며, 학습 오버헤드는 미미했다고 밝혔다. Zero-centered RMSNorm의 학습 가능한 스케일 값도 BF16 대신 FP32로 저장했다. 스케일 값이 -1에 가까울 때 BF16 정밀도가 부족해 특정 채널이 꺼졌다 다시 켜지는 진동을 막기 위해서다.
또한 일부 중간 계층에서 발생해 여러 계층을 거치며 커지는 기울기 급증을 막기 위해, 계층별 기울기 값 가운데 극히 일부를 잘라내는 세밀한 기울기 클램프를 도입했다. 개발팀은 계층마다 기울기 값의 0.00004%만 클램프해도 급증을 억제하고 수렴을 더 원활하게 했다고 밝혔다. 데이터 반복도 급증에 영향을 줄 수 있으며, 계층 중복성이 원인일 수 있다는 설명은 개발팀의 가설이다.
Sparse GQA는 공유 인덱스 키를 블록 단위로 압축하고, 각 KV 그룹이 관련 있는 과거 문맥을 따로 선택한다. 블록 크기를 8로 설정해 인덱서와 상위 k개 선택 비용을 8배 줄였다. 인접 토큰의 선택 결과가 상당히 겹친다는 점을 이용해 계산을 묶어 GPU 활용도를 높이는 구현도 적용했다.
개발팀은 블록 크기 B=8, 선택 토큰 수 k=4096을 최종 설정으로 제시했다. 이는 512개 블록을 선택하는 구성이다. 시퀀스가 길어질수록 인덱싱 비용 절감이 메인 경로의 추가 비용보다 커진다는 설명이다. 토큰 포함률은 B=1, k=2048 기준 구성의 79.09%에 가까운 78.06%였다.
에이전트 기반 데이터 구축
데이터 구축 시스템은 전문가가 정한 원칙과 품질 기준 아래 에이전트가 작업 일부를 조율하도록 설계했다. 통합 문맥 계층에 작업 명세, 파이프라인 상태, 실행 환경, 중간 결과와 피드백을 축적해 여러 분야의 작업에 재사용한다. 전문가는 높은 수준의 원칙을 제공하고 중요한 지점을 검토하며, 에이전트는 중간 결과에 따라 작업 단계를 조정한다.
에이전트는 사전 학습 데이터와 GitHub 같은 인터넷 자료에서 지식을 찾아 모델에 부족하거나 드물게 나타나는 주제를 식별하고, 이를 바탕으로 더 어려운 작업을 만들도록 구성했다. 다만 에이전트가 자율적으로 만든 데이터가 자동으로 적절한 것은 아니었다. 개발팀은 에이전트가 쉬운 과제를 만들거나 익숙한 형식에 반복해서 머무는 편향을 관찰했다고 밝혔다. 과제 제약, 정답 패치 길이, 테스트 사례 수, 여러 선도 모델의 성능 등을 난이도 신호로 활용하고, 저장소·주제·작업 흐름의 분포를 추적해 다양성을 관리한다.
과제 명세나 평가의 허점을 이용해 실제 능력을 보이지 않고 성공하는 보상 해킹도 점검한다. 과제와 평가 절차에 지름길이 있는지 감사하고, 발견한 실패 사례에 맞춰 검사를 반복 개선한다. 반복 가능한 Docker 이미지 구축, 검증, 테스트 범위 측정, 출력 형식 확인은 재사용 가능한 코드와 도구에 맡긴다. 이를 통해 일상적인 작업에 드는 에이전트와 사람의 개입을 줄인다는 설명이다.
개발팀은 이 시스템으로 과학적 추론, 소프트웨어 엔지니어링, 머신러닝 연구·개발, 전문 업무를 아우르는 검증 가능한 환경을 수백만 규모로 구축했다고 밝혔다. 구축 과정의 작업 기록과 결정, 피드백도 수집해 향후 자동화된 사후 학습 데이터 연구에 활용할 계획이다.
장기 강화학습과 실행 비용
학습할 과제는 지속 시간, 깊이, 변별력의 세 축으로 평가한다. 지속 시간은 에이전트가 일관된 진행을 유지해야 하는 시간이고, 깊이는 성공 상태에 도달하기 전의 상태 전이 수로 파일 수정 수와 편집한 줄 수를 통해 측정한다. 변별력은 여러 실행 결과의 보상 차이로 평가한다. 개발팀은 장시간 터미널 작업, 저장소 규모의 소프트웨어 엔지니어링, 여러 단계로 진행되는 프로그램 구축처럼 지속 시간과 깊이가 모두 높은 과제를 만든다고 설명한다.
학습과 추론의 불일치는 0에 가까운 지연 상태에서 연산자를 비트 단위로 맞추고, 지연이 생긴 뒤에는 추론 상태를 학습 쪽에서 재현하는 방식으로 다룬다. 개발팀은 staleness = 0일 때 학습과 추론의 logprob 차이가 정확히 0이며, 텐서 병렬 크기(TP)가 1인 학습과 TP가 8인 추론에서도 결과가 비트 단위로 같다고 밝혔다. 이 정렬의 전체 오버헤드는 10% 미만이다. 지연이 있는 경우에는 전문가 선택 결과와 상위 p 후보 토큰 집합을 재생하고, 후보 토큰에 대해서만 logprob를 다시 계산한다. 개발팀은 이 방법으로 장기 작업에서 logprob 차이를 1e-2 미만으로 유지했다고 설명한다.
긴 작업은 대화 차례와 토큰 수를 늘려 추론 비용을 키운다. 개발팀은 세션을 한 인스턴스에 유지하고 높은 동시성에서 요청이 대기·재시도할 수 있게 하는 session_admission 스케줄러를 사용한다. SFT 이후 학습한 MTP-3 헤드는 전체 처리 속도를 약 30% 높였고, BF16 품질을 유지하는 네이티브 FP8 MoE는 약 20%를 추가로 높였다고 밝혔다. 조정된 EP, KV 캐시의 CPU 오프로드, MXFP4 가중치 저장, FP8 KV QAT를 통해 유효 KV 캐시 용량도 8~12배 늘렸다. 학습 단계에서는 MoE 계산, 희소 어텐션 인덱스 선택, 언어 모델 헤드와 교차 엔트로피 계산을 분할해 최대 메모리 사용량을 낮췄다.
긴 실행 결과가 학습 전에 누락되면 학습 데이터의 분포가 달라질 수 있다. 개발팀은 누락이 긴 과제와 어려운 과제에 집중되는 문제를 추적하기 위해 각 실행이 하나의 명시된 종료 상태에 도달하도록 하는 기록 시스템과, 실행 중 개입을 기록하는 차례 단위 이벤트 로그를 도입했다. 이를 통해 전체 샘플 누락률을 1% 미만으로 낮췄다고 밝혔다.
작업이 문맥 창보다 길어지는 문제에는 문맥을 재구성해 이어서 실행할 수 있는 상태로 압축하는 방식을 제안한다. 개발팀은 압축을 정책 학습의 핵심 요소로 두고 동일한 과제 보상 아래 종단 간 학습한다고 설명한다. 보상 배분에서는 학습 가능한 비평가가 결과 보상을 토큰별 기준값으로 바꾸며, 비평가를 사전 학습해 정책 손실의 분산을 줄인다. 잘못된 도구 호출처럼 특정 차례에서 발생한 실패는 해당 차례에만 불이익을 주고 나머지 차례는 그대로 둔다. 보상 해킹을 감지하면 해당 행동에 불이익을 주고 다른 방법을 시도하도록 하면서 실행을 계속한다.
개발팀은 Step 5 Preview와 주변 학습 시스템이 계속 발전 중이며, 문맥과 학습 비용을 같은 속도로 늘리지 않고 더 긴 작업에서 유용한 진행을 이어가도록 하는 것이 남은 과제라고 밝혔다.
참고 자료
- Physics of Language Models: Part 2.1, Grade-School Math and the Hidden Reasoning Process
- Verbalizable Representations Form a Global Workspace in Language Models
- Language models can learn implicit multi-hop reasoning, but only if they have lots of training data
- Step 3.5 Flash: Open Frontier-Level Intelligence with 11B Active Parameters
- DeepSeek-V3.2: Pushing the Frontier of Open Large Language Models
- DeepSeek-V3 Technical Report
- Massive Activations in Large Language Models
- MAI-Thinking-1: Building a Hill-Climbing Machine
- Zero-centered Re-parameterization of LayerNorm
- A Unified View of Attention and Residual Sinks: Outlier-Driven Rescaling is Essential for Transformer Training
- ShortGPT: Layers in Large Language Models are More Redundant Than You Expect
- The Curse of Depth in Large Language Models
- DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence
- Research Acceleration: The View Inside OpenAI
- Agentic Coding and Persistent Returns to Expertise
- Inside OpenAI's In-House Data Agent
- Training Language Models to Follow Instructions with Human Feedback
- Loop Engineering
- A Case Study on Emergent Cheating and Whistleblowing in Autonomous Research Swarms
- Hacker-Opus: Generalization from Reward Hacking to Cyberattacks in RL-Trained Opus-Class Models
- OpenAI – Hugging Face Incident Technical Report
- Deterministic Inference across Tensor Parallel Sizes That Eliminates Training-Inference Mismatch
- Stabilizing MoE Reinforcement Learning by Aligning Training and Inference Routers
- Grokking or Glitching? How Low-Precision Drives Slingshot Loss Spikes
- Scheduling Mixed RL Rollouts Beyond Prefix Locality
- OpenAI o1 system card
- The Bitter Lesson
- Reinforcement Learning: An Introduction
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요