Cohere, 개발자용 첫 모델 ‘North Mini Code’ 공개
출처: Hugging Face 블로그
[아래에 나열된 모든 공동 저자]
오늘 우리는 North Mini Code를 공개합니다. 이 모델은 30 B 파라미터의 Mixture‑of‑Experts 모델이며, 실제로는 3 B 활성 파라미터를 가지고 있으며 강력한 에이전트 코딩 능력을 갖추고 있습니다. Apache 2.0 라이선스로 Hugging Face에서 제공됩니다.
North Mini Code는 Cohere의 새로운 모델 패밀리 중 첫 번째 모델이며, 에이전트 기반 소프트웨어 엔지니어링 작업을 위해 특별히 설계·학습되었습니다.
그림 1: North Mini Code의 에이전트 코딩 작업 및 복합 코드 생성 벤치마크 성능. 동일 규모의 주요 오픈소스 모델과 비교했습니다. 벤치마크 방법론 상세 내용은 여기에서 확인하세요.
North Mini Code는 복잡한 소프트웨어 엔지니어링 워크플로, 터미널 기반 에이전트 작업, 고품질 코드 생성을 위해 최적화되었습니다. Artificial Analysis의 Coding Index에서 North Mini Code는 33.4점을 기록했으며, Qwen3.5(35 B‑A3B), Gemma 4(26 B‑A4B), Devstral Small 2(24 B Dense) 등을 앞서고, Nemotron 3 Super(120 B‑A12B), Mistral Small 4(119 B‑A6B), Devstral 2(123 B)와 같은 훨씬 큰 모델보다도 우수한 성능을 보였습니다.1 동일 규모 클래스에서 가장 강력한 오픈소스 코딩 모델 중 하나로 자리 잡았습니다.
**OpenCode에서 North Mini Code 체험하기**
실제 코드 에이전트는 모델의 품질과 다양한 에이전트 하네스에 대한 견고성에 크게 좌우됩니다. 우리는 단일 하네스에 최적화하는 대신 여러 하네스를 활용해 North Mini Code를 학습했습니다. 이 접근법 덕분에 North Mini Code는 OpenCode와 같은 코딩 에이전트의 신뢰할 수 있는 기반이 될 수 있습니다.
## 아키텍처
그림 2: North Mini Code는 슬라이딩‑윈도우 셀프‑어텐션과 전체 셀프‑어텐션이 교차 배치된 Mixture‑of‑Experts Transformer 디코더입니다.
North Mini Code는 디코더‑전용 Transformer 기반 희소 Mixture‑of‑Experts 모델입니다. 우리는 효율적인 어텐션 구현을 사용하며, RoPE가 적용된 슬라이딩‑윈도우 어텐션과 위치 임베딩이 없는 글로벌 어텐션을 3:1 비율로 교차 배치합니다[1]. 피드‑포워드 블록은 128개의 전문가를 갖는 MoE 블록이며, 토큰당 8개의 전문가가 활성화됩니다. 각 전문가 블록은 SwiGLU 활성화를 사용하는 FFN 블록입니다. 라우터는 top‑k 선택 전에 로짓에 시그모이드 활성화를 적용합니다. 또한 희소 레이어 앞에 단일 밀집 레이어를 사용합니다.
## 코딩 우수성을 위한 사후 학습
그림 3: 사후 학습 파이프라인은 두 단계의 지도 미세조정(SFT)과 검증 가능한 보상을 이용한 에이전트 강화학습(RLVR) 단계로 구성됩니다. 목표는 소프트웨어 엔지니어링 및 터미널 작업입니다.
우리는 North Mini Code를 두 단계로 구성된 연속 지도 미세조정(SFT) 후 검증 가능한 보상(RLVR) 강화학습을 통해 사후 학습합니다. 첫 번째 SFT 단계에서는 코딩 능력에 초점을 맞춘 데이터를 넓은 믹스에 섞어 견고성과 사용성을 동시에 확보합니다. 데이터 믹스는 프로그래밍, 추론, 지시 수행을 포함하며, 전체 토큰 중 70%가 코드 데이터, 43%가 에이전트 툴 사용 데이터, 27%가 단일 턴 경쟁·과학 프로그래밍 데이터로 구성됩니다. 두 번째 SFT 단계에서는 에이전트·추론 중심 샘플만을 사용해 45억 토큰 규모의 데이터 믹스를 적용하며, 이때 코드 데이터가 전체 토큰의 61%를 차지합니다. 이 믹스는 툴 호출과 완성이 실행 가능하고 정확함이 검증된 최고 품질의 데이터로 구성됩니다.
내부 데이터 파이프라인은 컨테이너화된 에이전트 코딩 환경에 크게 의존합니다. 우리는 합성 SFT 데이터 생성 및 RLVR에 사용할 별도 환경 서브셋을 유지합니다. 대부분은 실제 레포지토리에서 추출한 소프트웨어 엔지니어링 작업이며, 나머지는 오픈소스·내부 데이터셋에서 가져온 터미널 기반 에이전트 작업입니다. 전체적으로 약 5 k개의 고유 레포지토리에서 70 k개 이상의 검증 가능한 작업을 사용했습니다. SWE‑Bench[2]와 SWE‑Bench‑Pro[3] 레포지토리와 중복을 제거해 평가 시 소스 누수를 방지했습니다[4].
첫 번째와 두 번째 SFT 단계에서는 각각 64 k와 128 k 컨텍스트 길이를 사용했습니다. 이 “long‑to‑longer” 연쇄 방식은[5, 6]과 유사하게 짧은 고품질 데이터를 먼저 학습해 견고한 베이스라인을 만든 뒤, 검증된 고품질 샘플에 대해서만 장기 컨텍스트 학습을 진행합니다. 다단계 학습이 없으면 초기 단계의 20 B 비코드 토큰이 후반부의 1.5 B 고품질 코드 토큰을 압도해 성능 저하와 단계별 데이터 경향 차이로 인한 행동 충돌이 발생합니다. 경험적으로, 거의 전체 길이 분포를 사용해 학습하면 64 k까지 잘라낸 경우보다 평가 시 최종 트래젝터리가 짧아지는 현상이 관찰되었습니다.
SFT 단계에서 정량적 지표 최적화 대신, SFT를 RLVR을 위한 프라이밍으로만 활용하는 방식을 채택했습니다. 데이터 믹스는 샘플 다양성과 downstream 단계에서 높은 K값의 pass@K를 최적화합니다. 샘플 수준 필터링을 통해 잘못된 툴 호출, 불필요한 공백, 형식이 틀린 특수 토큰, 허위 인용 등 병리를 제거했습니다. RLVR 행동을 악화시키는 하이퍼파라미터(예: 낮은 엔트로피, 비정형 생성)는 ablation을 통해 제거했습니다. 최종 SFT 모델은 SWE‑Bench Verified[2]에서 80.2% pass@10, Terminal‑Bench v2[7]에서 55.1% pass@10을 달성했습니다.
## 다양한 하네스에서의 견고성
하네스 견고성은 에이전트가 다양한 예측 불가능한


