오픈소스 자가 개선형 에이전트 코딩 모델 'Ornith-1.0' 공개
Ornith-1.0은 스스로 학습하고 개선하는 오픈소스 에이전트 코딩(Agentic Coding) 모델로, Gemma 4와 Qwen 3.5를 기반으로 다양한 크기(9B~397B)로 출시되었습니다. 강화학습을 통해 해결책뿐만 아니라 탐색 과정까지 공동으로 최적화하여, 유사 규모의 타 오픈소스 모델들을 코딩 벤치마크에서 대폭 상회하는 최고 수준(SOTA)의 성능을 기록했습니다. MIT 라이선스로 누구나 제한 없이 무료로 사용할 수 있다는 점이 가장 큰 특징입니다.
원문 제목: Ornith-1.0: 에이전트 코딩을 위한 자가 개선형 오픈소스 모델 소스: hackernews 본문: Ornith-1.0 알로하! 🌺 Ornith-1.0은 에이전트 코딩을 위한 자가 개선형 오픈소스 모델입니다.
주요 특징:
- 최고 수준의 코딩 에이전트: 9B-Dense, 31B-Dense, 35B-MoE, 397B-MoE 등 다양한 버전으로 제공되며(Gemma 4 및 Qwen 3.5를 기반으로 사후 학습됨), Terminal-Bench 2.1, SWE-Bench, NL2Repo, OpenClaw와 같은 코딩 벤치마크에서 동급 규모의 오픈소스 모델들 중 최고 수준(State-of-the-Art)의 성능을 달성했습니다.
- 자가 개선형 학습 프레임워크(Self-Improving Training Framework): Ornith-1.0은 강화학습(RL)을 활용하여 단순히 솔루션(결과물)을 생성하는 것뿐만 아니라, 그 결과물을 도출하는 과정인 스캐폴드(scaffold)도 함께 생성하도록 학습합니다. 스캐폴드와 최종 솔루션을 공동으로 최적화함으로써, 모델은 더 나은 탐색 궤적을 발견하고 더 높은 품질의 솔루션을 생성해 냅니다.
- 라이선스: MIT 라이선스를 채택하여 전 세계적으로 접근 가능하며, 지역적 제한이 전혀 없습니다.
벤치마크 각 모델은 해당 크기에 적합한 기준선(baselines)과 비교 평가되었습니다. 세 가지 모델 모두 동일한 테스트 하네스(harness)와 디코딩 설정을 사용했습니다(표 하단의 참고사항 확인).
[Ornith-1.0-9B 평가 결과 표]
- Terminal-Bench 2.1 (Terminus-2): Ornith 43.1 / Qwen3.5-9B 21.3 / Qwen3.5-35B 41.4 / Gemma4-12B 21 / Gemma4-31B 42.1
- Terminal-Bench 2.1 (Claude Code): Ornith 40.6 / Qwen3.5-9B 18.9 / Qwen3.5-35B 38.9
- SWE-bench Verified: Ornith 69.4 / Qwen3.5-9B 53.2 / Qwen3.5-35B 70 / Gemma4-12B 44.2 / Gemma4-31B 52
- SWE-bench Pro: Ornith 42.9 / Qwen3.5-9B 31.3 / Qwen3.5-35B 44.6 / Gemma4-12B 27.6 / Gemma4-31B 35.7
- SWE-bench Multilingual: Ornith 52 / Qwen3.5-9B 39.7 / Qwen3.5-35B 60.3 / Gemma4-12B 32.5 / Gemma4-31B 51.7
- NL2Repo: Ornith 27.2 / Qwen3.5-9B 16.2 / Qwen3.5-35B 20.5 / Gemma4-12B 10.3 / Gemma4-31B 15.5
- Claw-eval Avg: Ornith 63.1 / Qwen3.5-9B 53.2 / Qwen3.5-35B 65.4 / Gemma4-12B 32.5 / Gemma4-31B 48.5
- SWE Atlas - QnA: Ornith 17.9 / Qwen3.5-9B 9.2 / Qwen3.5-35B 13.2
- SWE Atlas - RF: Ornith 16.6 / Qwen3.5-9B 4.3 / Qwen3.5-35B 10.2
- SWE Atlas - TW: Ornith 15.3 / Qwen3.5-9B 4.4 / Qwen3.5-35B 9.8
[Ornith-1.0-35B 평가 결과 표]
- Terminal-Bench 2.1 (Terminus-2): Ornith 64.2 / Qwen3.5-35B 41.4 / Qwen3.6-35B 52.5 / Gemma4-31B 42.1 / Qwen3.5-397B 53.5
- Terminal-Bench 2.1 (Claude Code): Ornith 62.8 / Qwen3.5-35B 38.9 / Qwen3.6-35B 49.2 / Qwen3.5-397B 48.6
- SWE-bench Verified: Ornith 75.6 / Qwen3.5-35B 70 / Qwen3.6-35B 73.4 / Gemma4-31B 52 / Qwen3.5-397B 76.4
- SWE-bench Pro: Ornith 50.4 / Qwen3.5-35B 44.6 / Qwen3.6-35B 49.5 / Gemma4-31B 35.7 / Qwen3.5-397B 51.6
- SWE-bench Multilingual: Ornith 69.3 / Qwen3.5-35B 60.3 / Qwen3.6-35B 67.2 / Gemma4-31B 51.7 / Qwen3.5-397B 69.3
- NL2Repo: Ornith 34.6 / Qwen3.5-35B 20.5 / Qwen3.6-35B 29.4 / Gemma4-31B 15.5 / Qwen3.5-397B 36.8
- Claw-eval Avg: Ornith 69.8 / Qwen3.5-35B 65.4 / Qwen3.6-35B 68.7 / Gemma4-31B 48.5 / Qwen3.5-397B 70.7
- SWE Atlas - QnA: Ornith 37.1 / Qwen3.5-35B 13.2 / Qwen3.6-35B 15.5 / Qwen3.5-397B 20.4
- SWE Atlas - RF: Ornith 29.7 / Qwen3.5-35B 10.2 / Qwen3.6-35B 11.4 / Qwen3.5-397B 18.4
- SWE Atlas - TW: Ornith 27.8 / Qwen3.5-35B 9.8 / Qwen3.6-35B 13.3 / Qwen3.5-397B 18.5
[Ornith-1.0-397B 평가 결과 표]
- Terminal-Bench 2.1 (Terminus-2): Ornith 77.5 / Qwen3.5-397B 53.5 / Qwen3.7-Max 73.5 / GLM-5.2-744B 81.0 / Minimax-M3-428B 64 / DeepSeek-V4-Pro-1.6T 64 / Claude Opus 4.7 70.3 / Claude Opus 4.8 85
- Terminal-Bench 2.1 (Claude Code): Ornith 78.2 / Qwen3.5-397B 48.6 / Qwen3.7-Max 69.8 / GLM-5.2-744B 82.7 / Minimax-M3-428B 66.5 / Claude Opus 4.7 69.7 / Claude Opus 4.8 78.9
- SWE-bench Verified: Ornith 82.4 / Qwen3.5-397B 76.4 / Qwen3.7-Max 80.4 / DeepSeek-V4-Pro-1.6T 80.6 / Claude Opus 4.7 80.8 / Claude Opus 4.8 87.6
- SWE-bench Pro: Ornith 62.2 / Qwen3.5-397B 51.6 / Qwen3.7-Max 60.6 / GLM-5.2-744B 62.1 / Minimax-M3-428B 59 / DeepSeek-V4-Pro-1.6T 55.4 / Claude Opus 4.7 64.3 / Claude Opus 4.8 69.2
- SWE-bench Multilingual: Ornith 78.9 / Qwen3.5-397B 69.3 / Qwen3.7-Max 78.3 / DeepSeek-V4-Pro-1.6T 76.2
- NL2Repo: Ornith 48.2 / Qwen3.5-397B 36.8 / Qwen3.7-Max 47.2 / GLM-5.2-744B 48.9 / Minimax-M3-428B 42.1 / Claude Opus 4.8 69.7
- Claw-eval Avg: Ornith 77.1 / Qwen3.5-397B 70.7 / Qwen3.7-Max 65.2 / DeepSeek-V4-Pro-1.6T 75.8 / Claude Opus 4.7 78.2
- SWE Atlas - QnA: Ornith 41.2 / Qwen3.5-397B 20.4 / Minimax-M3-428B 37.9 / DeepSeek-V4-Pro-1.6T 27.2 / Claude Opus 4.7 40.3 / Claude Opus 4.8 48.8
- SWE Atlas - RF: Ornith 42.6 / Qwen3.5-397B 18.4 / Claude Opus 4.7 48.6 / Claude Opus 4.8 46.7
- SWE Atlas - TW: Ornith 39.1 / Qwen3.5-397B 18.5 / Minimax-M3-428B 30.8 / Claude Opus 4.7 38.5
- Terminal-Bench 2.1 (Terminus-2): Harbor/Terminus-2 프레임워크로 평가되었습니다. 파서=json, 온도(temperature)=1.0, top_p=1.0, 128K 컨텍스트 창을 사용했습니다. 각 실행은 4시간의 시간 제한과 32개의 CPU 코어 및 48GB RAM 환경에서 5회 실행의 평균값을 사용합니다. 학습과 추론의 일관성을 유지하기 위해 Qwen 채팅 템플릿을 조정했으며, vLLM의 reasoning_content 키와 일치하도록 Harbor를 수정했습니다.
- Terminal-Bench 2.1 (Claude Code): Claude Code 2.1.126으로 평가되었습니다. 파서=json, 온도=1.0, top_p=1.0, max_new_tokens=131072를 사용했으며 5회 실행의 평균값을 사용합니다 (Qwen 채팅 템플릿 동일하게 수정됨).
- SWE-bench Verified / Pro / Multilingual: OpenHands 하네스를 사용했으며, 온도=1.0, top_p=0.95, 256K 컨텍스트 창 환경에서 평가했습니다.
- SWE Atlas QnA / RF / TW: mini-SWE-agent 하네스를 사용했으며, 온도=1.0, top_p=0.95, 128K 컨텍스트 창 환경에서 5회 실행 평균값을 사용했습니다.
- NL2Repo: 온도=1.0, top_p=1.0, 400K 컨텍스트, 48K 출력, 안티 해킹 필터를 적용했습니다.
- ClawEval: 실제 사용자 작업 분포를 기반으로 한 에이전트 코드 벤치마크이며, 온도=0.6, 256K 컨텍스트 환경에서 평가했습니다.
빠른 시작
참고: Ornith-1.0은 추론(Reasoning) 모델입니다. 기본적으로 어시스턴트 턴은 최종 답변 전에