2P by GN⁺ | ★ favorite | 댓글 1개
  • 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이 <think> … </think> 블록으로 시작한 뒤 최종 답변을 반환함
  • 서빙 레시피는 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됨
  • 제공 체크포인트

OpenAI 호환 API와 에이전트 사용

  • vLLM 또는 SGLang 서버가 실행되면 OpenAI 호환 클라이언트로 /v1/chat/completions 엔드포인트를 호출할 수 있음
  • 로컬 서버 예시는 base_url="http://localhost:8000/v1";, api_key="EMPTY", model="Ornith-1.0"을 사용함
  • 응답 메시지에서 reasoning_content<think> 추론 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_URLOPENAI_API_KEY를 Ornith-1.0 엔드포인트로 지정해 연결할 수 있음
  • OpenCode 예시는 ~/.config/opencode/opencode.json에 Ornith 로컬 provider를 등록하고 Ornith-1.0 모델을 사용함

댓글과 토론

Hacker News 의견들
  • 이전 논의: https://news.ycombinator.com/item?id=48709744
    https://swelljoe.com/post/will-it-mythos/: “성능이 좋지 않은 편으로, 거의 모든 모델이 찾은 버그 하나만 찾았음. 크기 대비 다른 벤치마크 성능은 뛰어난데도 그렇다. […] 도구 없는 채팅에서도 성능이 나쁘고, 환각을 꽤 열심히 보인다. 지금은 bash/Python을 포함한 전체 도구 접근 권한을 준 상태로 재현을 진행 중인데, 그러면 이 모델도 경쟁력이 있을 수 있다”

    • 2026년에 “도구 없는 채팅에서 성능이 나쁘다”는 말이 진지하게 나오는 게 이상함. 이 파인튜닝이 좋은지는 직접 안 써봐서 모르겠지만, 명백히 에이전트형 모델을 도구 접근 없이 테스트하고 잘 되길 기대하는 건 말이 안 되지 않나? 대체 뭘 테스트한 건지 모르겠음
    • 그 벤치마크는 Kimi K2.6K2.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도 좋다고 들었는데 아직 써보진 못함

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