# Ornith-1.0 - 에이전트형 코딩을 위한 자기 개선 오픈소스 모델

> Clean Markdown view of GeekNews topic #30979. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=30979](https://news.hada.io/topic?id=30979)
- GeekNews Markdown: [https://news.hada.io/topic/30979.md](https://news.hada.io/topic/30979.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-07-01T08:16:54+09:00
- Updated: 2026-07-01T08:16:54+09:00
- Original source: [github.com/deepreinforce-ai](https://github.com/deepreinforce-ai/Ornith-1)
- Points: 2
- Comments: 1

## Topic Body

- **Ornith-1.0**은 에이전트형 코딩용 자기 개선 오픈소스 모델로, 9B Dense, 31B Dense, 35B MoE, 397B MoE 구성을 제공하며 Gemma 4와 Qwen 3.5 위에서 후훈련됨
- 훈련 프레임워크는 **강화학습**으로 솔루션 rollout뿐 아니라 rollout을 이끄는 스캐폴드(scaffold)까지 생성하도록 학습해, 스캐폴드와 결과 솔루션을 함께 최적화함
- README 기준 Ornith-1.0은 Terminal-Bench 2.1, SWE-Bench, NL2Repo, OpenClaw 같은 코딩 벤치마크에서 비슷한 크기의 오픈소스 모델 대비 **최첨단 성능**을 달성함
- 모든 체크포인트는 **OpenAI 호환 인터페이스**를 노출하고 256K 토큰 컨텍스트 창을 지원하며, vLLM, SGLang, Hugging Face Transformers, llama.cpp, Ollama 등으로 실행 가능함
- MIT 라이선스이며 지역 제한 없이 전 세계에서 접근 가능하고, reasoning_content와 tool_calls를 통해 추론 블록과 도구 호출을 분리해 에이전트 프레임워크와 코딩 CLI에 연결할 수 있음

---

### 모델 개요와 훈련 방식
- **Ornith-1.0**은 에이전트형 코딩을 위한 자기 개선 오픈소스 모델군임
- 제공 모델 크기는 9B Dense, 31B Dense, 35B MoE, 397B MoE이며, Gemma 4와 Qwen 3.5 위에서 후훈련됨
- **자기 개선 훈련 프레임워크**는 강화학습을 사용함
  - 모델은 솔루션 rollout뿐 아니라 rollout을 이끄는 **스캐폴드(scaffold)** 도 생성하도록 학습함
  - 스캐폴드와 결과 솔루션을 함께 최적화해 더 나은 검색 궤적과 더 높은 품질의 솔루션을 찾도록 함
- 라이선스는 **MIT**이며, 전 세계 접근 가능하고 지역 제한이 없음

### 벤치마크 결과
- 각 모델은 크기에 맞는 기준 모델과 비교됐고, 세 모델은 동일한 하네스와 디코딩 설정을 사용함
- ## Ornith-1.0-9B
  - Terminal-Bench 2.1에서 **Terminus-2 기준 43.1**, Claude Code 기준 40.6을 기록함
  - SWE-bench Verified 69.4, SWE-bench Pro 42.9, SWE-bench Multilingual 52를 기록함
  - NL2Repo 27.2, Claw-eval Avg 63.1을 기록함
  - SWE Atlas는 QnA 17.9, RF 16.6, TW 15.3을 기록함
- ## Ornith-1.0-35B
  - Terminal-Bench 2.1에서 **Terminus-2 기준 64.2**, Claude Code 기준 62.8을 기록함
  - SWE-bench Verified 75.6, SWE-bench Pro 50.4, SWE-bench Multilingual 69.3을 기록함
  - NL2Repo 34.6, Claw-eval Avg 69.8을 기록함
  - SWE Atlas는 QnA 37.1, RF 29.7, TW 27.8을 기록함
- ## Ornith-1.0-397B
  - Terminal-Bench 2.1에서 **Terminus-2 기준 77.5**, Claude Code 기준 78.2를 기록함
  - SWE-bench Verified 82.4, SWE-bench Pro 62.2, SWE-bench Multilingual 78.9를 기록함
  - NL2Repo 48.2, Claw-eval Avg 77.1을 기록함
  - SWE Atlas는 QnA 41.2, RF 42.6, TW 39.1을 기록함

### 평가 설정
- **Terminal-Bench 2.1 Terminus-2** 평가는 Harbor/Terminus-2 프레임워크, parser=json, temperature=1.0, top_p=1.0, 128K 컨텍스트 창을 사용함
  - 각 실행은 4시간 timeout, 32 CPU 코어, 48GB RAM을 사용하고 5회 평균임
  - Qwen chat template은 학습과 추론 일관성을 위해 조정됐고, Harbor는 vLLM의 reasoning_content 키와 맞추도록 수정됨
- **Terminal-Bench 2.1 Claude Code** 평가는 Claude Code 2.1.126, parser=json, temperature=1.0, top_p=1.0, max_new_tokens=131072를 사용하고 5회 평균임
- **SWE-bench Verified / Pro / Multilingual**은 OpenHands 하네스, temperature=1.0, top_p=0.95, 256K 컨텍스트 창을 사용함
- **SWE Atlas QnA / RF / TW**는 mini-SWE-agent 하네스, temperature=1.0, top_p=0.95, 128K 컨텍스트 창을 사용하고 5회 평균임
- **NL2Repo**는 temperature=1.0, top_p=1.0, 400K 컨텍스트, 48K 출력, anti-hacking filters를 사용함
- **ClawEval**은 실제 사용자 작업 분포 기반의 에이전트형 코드 벤치마크이며, temperature=0.6, 256K 컨텍스트를 사용함

### 실행과 체크포인트
- Ornith-1.0은 **reasoning model**이며, 기본적으로 assistant turn이 `&lt;think&gt; … &lt;/think&gt;` 블록으로 시작한 뒤 최종 답변을 반환함
- 서빙 레시피는 reasoning parser를 켜서 chain-of-thought를 별도 `reasoning_content` 필드로 반환하고, tool-call parser를 켜서 `<tool_call>` 블록을 OpenAI 스타일 `tool_calls`로 노출함
- 필요한 런타임 버전은 다음과 같음
  - **Transformers** ≥ 5.8.1
  - **vLLM** ≥ 0.19.1
  - **SGLang** ≥ 0.5.9
- 권장 샘플링 파라미터는 `temperature=0.6`, `top_p=0.95`, `top_k=20`임
  - 보고된 벤치마크 설정을 재현하려면 `temperature=1.0`을 사용함
- 모든 체크포인트는 같은 **OpenAI 호환 인터페이스**를 노출하고 256K, 즉 262,144 토큰 컨텍스트 창을 지원함
  - Dense 9B는 단일 80GB GPU에 적합함
  - MoE 체크포인트는 tensor parallelism으로 멀티 GPU 노드에 shard됨
- 제공 체크포인트
  - [Ornith-1.0-9B](https://huggingface.co/deepreinforce-ai/Ornith-1.0-9B): Dense 약 9B, bf16, 단일 GPU 서빙과 파인튜닝용
  - [Ornith-1.0-9B-GGUF](https://huggingface.co/deepreinforce-ai/Ornith-1.0-9B-GGUF): Dense 약 9B, GGUF 양자화, llama.cpp / Ollama 로컬 추론용
  - [Ornith-1.0-35B](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B): MoE 35B, bf16, full-precision 멀티 GPU 서빙용
  - [Ornith-1.0-35B-FP8](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B-FP8): MoE 35B, FP8, FP8 지원 GPU에서 VRAM을 약 절반으로 줄이는 서빙용
  - [Ornith-1.0-35B-GGUF](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B-GGUF): MoE 35B, GGUF 양자화, llama.cpp / Ollama 로컬 추론용
  - [Ornith-1.0-397B](https://huggingface.co/deepreinforce-ai/Ornith-1.0-397B): MoE 397B, bf16, 멀티 GPU 노드 full-precision 서빙용
  - [Ornith-1.0-397B-FP8](https://huggingface.co/deepreinforce-ai/Ornith-1.0-397B-FP8): MoE 397B, FP8, FP8 지원 GPU에서 메모리 효율적 서빙용

### OpenAI 호환 API와 에이전트 사용
- vLLM 또는 SGLang 서버가 실행되면 OpenAI 호환 클라이언트로 `/v1/chat/completions` 엔드포인트를 호출할 수 있음
- 로컬 서버 예시는 `base_url="http://localhost:8000/v1"`, `api_key="EMPTY"`, `model="Ornith-1.0"`을 사용함
- 응답 메시지에서 **reasoning_content**는 `&lt;think&gt;` 추론 trace를 담고, `content`는 최종 답변을 담음
- 도구를 전달하면 Ornith-1.0은 well-formed 함수 호출을 생성하고, 서버는 이를 표준 **tool_calls** 필드로 파싱함
- OpenAI 호환 SDK는 Python, Node.js, `curl` 등에서 같은 엔드포인트를 사용할 수 있음

### 지원 프레임워크와 코딩 CLI
- Ornith-1.0은 도구 호출과 에이전트형 코딩 기능에 최적화됨
- OpenAI 호환 엔드포인트와 tool calling을 제공하기 때문에 표준 에이전트 프레임워크와 함께 사용할 수 있음
- README에는 MCP 서버를 통한 도구 연결 예시와 `run_shell` 함수 도구 호출 예시가 포함됨
- 예시로 제시된 에이전트 하네스와 런타임은 다음과 같음
  - **Hermes Agent**: `OPENAI_BASE_URL`, `OPENAI_API_KEY`, `MODEL="Ornith-1.0"` 설정
  - **OpenHands**: LiteLLM의 `openai/Ornith-1.0` 경로와 로컬 base URL 사용
  - **llama.cpp / Ollama**: 9B와 35B GGUF 빌드를 로드해 로컬 추론
  - **Unsloth Studio**: `FastLanguageModel.from_pretrained`로 로컬 추론 또는 파인튜닝
  - **OpenClaw**: OpenAI 호환 엔드포인트를 Ornith 서버로 지정
- 코딩 CLI는 `OPENAI_BASE_URL`과 `OPENAI_API_KEY`를 Ornith-1.0 엔드포인트로 지정해 연결할 수 있음
- OpenCode 예시는 `~/.config/opencode/opencode.json`에 Ornith 로컬 provider를 등록하고 `Ornith-1.0` 모델을 사용함

## Comments



### Comment 60900

- Author: neo
- Created: 2026-07-01T08:16:55+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48722052) 
- 이전 논의: [https://news.ycombinator.com/item?id=48709744](<https://news.ycombinator.com/item?id=48709744>)  
  [https://swelljoe.com/post/will-it-mythos/](<https://swelljoe.com/post/will-it-mythos/>): “성능이 좋지 않은 편으로, 거의 모든 모델이 찾은 버그 하나만 찾았음. 크기 대비 다른 벤치마크 성능은 뛰어난데도 그렇다. […] 도구 없는 채팅에서도 성능이 나쁘고, **환각**을 꽤 열심히 보인다. 지금은 bash/Python을 포함한 전체 도구 접근 권한을 준 상태로 재현을 진행 중인데, 그러면 이 모델도 경쟁력이 있을 수 있다”
  - 2026년에 “도구 없는 채팅에서 성능이 나쁘다”는 말이 진지하게 나오는 게 이상함. 이 파인튜닝이 좋은지는 직접 안 써봐서 모르겠지만, 명백히 **에이전트형 모델**을 도구 접근 없이 테스트하고 잘 되길 기대하는 건 말이 안 되지 않나? 대체 뭘 테스트한 건지 모르겠음
  - 그 벤치마크는 **Kimi K2.6**과 **K2.7 Code**를 거의 최하위권에 둠. 둘 다 Ornith 35B보다 낮고, Gemma 4 26B를 GLM-5.2보다 훨씬 높게 평가함. 결과가 별로 납득되지 않음

- 이건 로컬 LLM 커뮤니티에서 즉시 거부당하지 않은 첫 **Qwen 파인튜닝**이고, 어떤 경우에는 추천까지 됨. 제한적으로 써본 바로는 괜찮고, 코딩 문제에 창의적인 해법을 내놓음. 9~35B 모델이 클릭 한 번으로 전체 앱을 만들어주길 기대하진 않음. 불평하던 대부분은 그런 기대치에서 나온 듯함
  - 로컬 LLM 커뮤니티에는 예전 **암호화폐/NFT 장사꾼**들이 몰려와서, 이전 커뮤니티의 과장 문화까지 같이 가져온 상태임. 아직 깊이 있는 기술자들이 남아 있긴 하지만, 공허한 마케팅 목소리에 점점 묻히고 있음
  - 안타깝게도 처음부터 계속 이런 식이었음. 로컬 모델을 로컬 작업에, 적당한 안전장치와 함께 시험해보는 데 해로울 건 없음  
    Qwen, Gemma, Llama, gpt-oss 같은 모델 대부분은 특수 토큰, 프롬프트 구조, 모델 선호 같은 자잘한 함정을 찾는 게 지금은 정말 번거로움. 그래도 힘들게 익힌 프롬프트와 매개변수로 조정한 **에이전트 실행 환경**에서는 아주 잘 돌아가는 모델을 얻을 수 있음
  - 더 나아진 건 아님. LocalLLama 커뮤니티의 대다수는 이걸 별로 좋아하지 않고, 새로 온 몇 명만 글을 올리는 정도임
  - 서로 다른 커뮤니티에 있는 듯함. Qwen 모델은 대중이 접근 가능한 **로컬 하드웨어**에서 실제로 돌릴 수 있는 모델 중 가장 많이 추천되는 쪽임

- 이런 “**자기 개선**” 모델들은 왜 결국 최첨단 모델보다 더 나아질 정도까지 개선되지 않는 걸까?

- 직접 테스트한 바로는 **Ornith-1.0 35B**가 Qwen-3.6 35B보다 약간 더 나았음  
  내 테스트는 큰 C++ 코드베이스에 기능을 추가하거나 수정하는 작업들임. 흥미로운 점은 이 모델이 Qwen3.6 35B보다 훨씬 빠르다는 것임. Ornith가 더 짧은 사고 과정을 만드는 듯함  
  내 테스트에서는 답을 만드는 속도가 3배까지 빨랐음. llamacpp와 codex-cli로 사용 중임

- Ornith-1.0 35B를 직접 만든 **FP8 블록 양자화**로 테스트해봤는데 마음에 듦. RTX PRO 6000(sm120)에서 vLLM으로 200토큰/초 이상 나오고, 지난 며칠 동안 에이전트식 코딩 작업으로 캐시된 토큰을 1.4억 개 넘게 돌렸음  
  대략 Qwen 3.6 35B-A3B와 27B 사이쯤으로 보이지만, 좋은 점은 Qwen 3.6보다 과도하게 생각하거나 같은 루프에 빠지는 일이 훨씬 적다는 것임. 사고 추적을 보면 분해 접근 방식의 템플릿이 마음에 듦  
  중간 규모 Go 코드베이스에서 기본 분석, 작업 처리, 일부 프런트엔드/백엔드 변경은 잘했지만, 더 긴 단순 커널 구현 작업에서는 완전히 한계에 부딪혔음. Pi Agent 실행 환경에서 약 100회 반복했는데 망쳤고, 이런 작업은 Kimi K2.6이나 GLM 5.2 같은 더 강한 공개 모델들이 해낼 수 있는 유형임
  - 이 모델 크기에서는 **실행 환경**이 더 중요해 보였음. 개인적으로 qwen3.6 27b에서는 원시 pi 대신 little-coder로 옮겼는데, 한번 살펴볼 만함

- 여기서 무슨 일이 벌어진 건지 설명해줄 수 있나? 그냥 Qwen을 겉만 바꾼 건가? **deepreinforce-ai**는 누구고, 왜 이 모델이 그들의 웹사이트에는 없을까?  
  어떻게 자기 개선을 한다는 건지 궁금함. 디스크 위의 모델이 바뀌는 건가, 아니면 단일 컨텍스트 실행 중에만 더 나아지는 건가?
  - 자기 개선은 하지 않음. 제목이 오해를 부르는 표현임  
    내가 보기엔 Qwen과 Gemma 4 위에 자체 강화학습을 돌려 훈련한 것 같음. 둘의 가중치를 어떻게 결합했는지는 모르겠고, Qwen을 기반으로 삼고 Gemma 4를 훈련 보조에 쓴 건지도 확실치 않음. 여기서 “자기 개선”은 가중치를 사용하는 방식이 아니라 **훈련 과정**을 가리키는 듯함

- 이것들은 그냥 Qwen이나 Gemma 4를 **벤치마크 최적화**한 버전으로 보임
  - 그렇다면 이미 벤치마크에 꽤 최적화된 Qwen을 더 밀어붙였다는 점은 인상적임

- “밀집형 9B가 단일 80GB GPU에 들어간다”  
  우리 같은 평범한 사람은 못 쓰겠음
  - 이상해 보임. 9B 모델이면 보통 **24GB GPU**에도 비양자화 상태로 들어감
  - 이미 양자화 버전들이 나와 있음

- 로컬 모델을 많이 써봤는데 전부 장난감처럼 느껴졌음. 그런데 이건 실제로 유용하다는 느낌이 들었음. **Qwen 36-A3B**도 좋다고 들었는데 아직 써보진 못함

- **자기 개선 시스템**은 흥미롭지만, 출처 추적과 거버넌스를 훨씬 어렵게 만듦. 에이전트가 시간이 지나며 자기 행동을 바꿀 수 있게 되면, 왜 특정 방식으로 행동했는지 이해하는 일이 점점 더 중요해짐
