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

3 days ago 16

(github.com/deepreinforce-ai)

  • 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_URL과 OPENAI_API_KEY를 Ornith-1.0 엔드포인트로 지정해 연결할 수 있음
  • OpenCode 예시는 ~/.config/opencode/opencode.json에 Ornith 로컬 provider를 등록하고 Ornith-1.0 모델을 사용함
Read Entire Article