Knowledge 목록으로

Ornith-1.5 GGUF — 공식 양자화 비교와 GB10 벤치마크 실행 계획

🔍 조사 완료🤖 LLM / 모델2026년 8월 19일8
작성 DevSnack Lab직접 조사·실행 범위는 본문 결과와 한계에 기록
Ornith-1.5GGUFLLMQ4_K_MQ5_K_MQ6_KQ8_0imatrixAtomicChatBartowskiGB10llama.cppllama-serverMTPNVFP4벤치마크후속 실험
— Ornith-1.5 9B·35B-A3B·397B의 공식 GGUF, Bartowski imatrix, AtomicChat AD 양자화, NVFP4 특수 빌드와 공식 성능·GB10 로컬 벤치마크 결과를 정리한 공개 리서치

먼저 읽을 결론

GB10 35B-A3B 서버 실측 1차 완료. Q5_K_M은 5회 내 품질 통과 2/2·생성 64.6 tok/s, Q6_K은 2/2·59.8 tok/s, Q8_0은 0/2·54.4 tok/s를 기록했다. 속도는 별도 합성 prompt가 아니라 실제 Science·History production 대본 요청에서 측정했다. MTP·NVFP4·reasoning on/off·coding/tool call은 별도 트랙으로 유지한다.

조사 상세

Ornith-1.5 GGUF — 공식 양자화 비교와 GB10 벤치마크 실행 계획

이 문서는 Ornith-1.5의 공개 모델 정보와 GGUF 양자화를 비교하고, 이후 GB10 로컬 환경에서 재현 가능한 벤치마크를 실행하기 위한 조사·실행 계획서입니다. 공식 모델 팀의 성능 수치, 커뮤니티 양자화 측정값, 로컬에서 새로 측정할 항목을 구분해 기록합니다.

한눈에 보는 결론

Ornith-1.5는 DeepReinforce가 공개한 에이전틱 코딩·추론 모델군입니다. 397B MoE, 35B-A3B MoE, 9B dense 세 가지 크기로 공개됐고 MIT 라이선스를 사용합니다.[1][2][3]

세 크기 모두 공식 Hugging Face GGUF 리포지터리가 별도로 공개되어 있습니다.[5][6][7]

128GB 통합 메모리를 사용하는 GB10 로컬 환경에서는 35B-A3B가 핵심 검증 대상입니다. 공식 35B Q4_K_M은 21.71GB, Q5_K_M은 25.35GB, Q8_0은 37.80GB이며, 비전 입력에는 약 0.90GB mmproj가 추가됩니다.[6] 397B는 가장 작은 공식 Q4_K_M도 240.60GB이므로 단일 GB10 로컬 테스트 대상에서 제외합니다.[7]

핵심 답변

  • 주력 모델: Ornith-1.5-35B-A3B
  • 1차 비교 양자화: 공식 Q4_K_M, Bartowski Q4_K_M, AtomicChat AD-Q4_K-IQ4_XS, AtomicChat AD-Q5_K-Q4_K
  • 경량 기준선: 공식 Ornith-1.5-9B Q4_K_M
  • 별도 트랙: MTP speculative decoding과 Blackwell 전용 NVFP4
  • 아직 확인하지 않은 값: GB10 실제 tok/s, 메모리 peak, MTP acceptance, tool calling 성공률

공식 벤치마크 수치는 모델 카드의 자체 보고값입니다.[1][2][3] 따라서 아래 표는 GB10 실측 결과가 아니라 후속 로컬 실험에서 대조할 공개 기준값입니다.

조사 범위와 읽는 방법

이번 조사는 공식 발표·공식 Hugging Face 모델 카드·공식 GGUF 파일·Bartowski imatrix를 대상으로 합니다.[1][5][8] AtomicChat AD 양자화와 Avifenesh NVFP4 특수 빌드도 함께 비교 범위에 포함합니다.[10][12] 공개 task benchmark, 양자화 품질 측정, 로컬 실행 계획은 서로 다른 종류의 결과이므로 같은 표에서 동일한 의미로 해석하지 않습니다.

본문의 공식 성능은 Ornith 팀이 공개한 모델 평가 결과, 양자화 품질은 BF16 대비 KLD·top-1 측정, GB10 벤치마크는 앞으로 실행할 로컬 측정 계획을 뜻합니다.

모델 기본 정보

모델구조파라미터·활성컨텍스트GGUF 기준
Ornith-1.5-9Bdense, Qwen3.5 계열언어 8.95B + 비전 0.46B262,144공식 Q4_K_M부터 Q8_0, mmproj 제공
Ornith-1.5-35B-A3BMoE, Qwen3.5 MoE 계열본체 약 34.7B, 토큰당 약 3B 활성262,144256 experts 중 8개 라우팅, MTP 포함 계열
Ornith-1.5-397BMoE397B급262,144공식 Q4_K_M부터 Q8_0, 최소 파일도 240GB급

9B는 32개 레이어와 hybrid attention을 사용하며, 35B-A3B는 40개 레이어, 256 routed experts 중 8개를 선택하고 shared expert를 추가합니다.[10][11] 35B는 속도는 약 3B 활성 파라미터의 영향을 받지만, 메모리는 35B 전체 전문가를 상주시켜야 하므로 dense 3B처럼 계산하면 안 됩니다.[11]

세 모델 모두 reasoning 모델로 동작하며, 기본 응답은 <think> 블록을 열 수 있습니다. 공식 카드의 서빙 레시피는 reasoning parser와 tool-call parser를 함께 사용하도록 안내합니다.[2][3][4] 9B와 35B GGUF는 비전 projector를 함께 사용할 수 있지만, 텍스트 벤치와 비전 벤치는 mmproj 사용 여부를 분리해야 합니다.[8][9][10]

1.5의 핵심 변화

Ornith-1.0의 self-scaffolding을 확장해 모델이 학습 과제를 제안하고, 과제별 scaffold를 만들고, solution rollout을 생성한 뒤 세 단계의 보상을 GRPO로 함께 최적화하는 self-improvement loop를 사용합니다.[1] 모델 카드가 설명하는 핵심은 고정된 사람이 만든 과제·하네스만 반복하는 것이 아니라, 현재 능력의 경계에 맞는 새 과제를 계속 생성한다는 점입니다.[1]

공식 성능 정보

공식 페이지는 모든 Ornith-1.5 결과를 5회 독립 실행 평균으로 제시합니다.[1][2][3] Terminal-Bench는 Terminus-2 또는 Claude Code 경로를 구분하고, SWE-Bench 계열은 OpenHands를 사용하며, 네트워크 차단·Git history 제거 등 평가 조건도 명시합니다.[1][2][3]

벤치마크9B35B-A3B397B
Terminal-Bench 2.1, Terminus-246.267.886.1
Terminal-Bench 2.1, Claude Code47.068.585.2
SWE-bench Verified70.679.086.0
SWE-bench Pro47.559.665.1
SWE-bench Multilingual54.471.479.6
DeepSWE미공개22.056.0
GPQA Diamond86.489.292.8
MCP-Atlas54.270.280.0
Toolathlon-Verified41.248.771.2
WideSearch59.567.880.8
BrowseComp56.467.686.6
ClawEval66.572.581.4

표의 수치는 공식 Ornith 페이지와 각 Hugging Face 모델 카드의 표를 대조해 기록했습니다.[1][2][3] 35B와 9B는 동급 또는 더 큰 모델과 비교한 공식 표가 있지만, 이 문서에서는 로컬 GGUF 선택에 직접 필요한 모델별 점수만 남겼습니다.

주의할 점은 공식 Terminal-Bench 점수가 단순한 llama-cli 한 번 생성 결과가 아니라는 것입니다.[1][2][3] 128K 컨텍스트, 별도 하네스, 4시간 제한, 여러 반복 실행이 포함된 에이전틱 평가이므로 GB10의 단일 프롬프트 생성 속도와 같은 지표로 해석하면 안 됩니다.

공식 GGUF 파일과 크기

파일 크기는 Hugging Face API의 실제 파일 크기를 GB 단위로 환산했습니다.[5][6][7] mmproj는 비전 입력에만 필요합니다.[8][9][10]

모델BF16Q4_K_MQ5_K_MQ6_KQ8_0mmproj
9B17.92GB5.63GB6.47GB7.36GB9.53GB0.92GB
35B-A3B71.07GB21.71GB25.35GB29.21GB37.80GB0.90GB
397B미제공240.60GB281.79GB325.55GB421.51GB0.92GB

공식 리포지터리의 장점은 모델명과 양자화 파일의 대응이 단순하고, llama-server -hf로 직접 불러오기 쉽다는 점입니다.[5][6][7] 반면 Q4 이하의 세밀한 품질 대안과 모델별 imatrix 튜닝은 커뮤니티 리포지터리가 더 많습니다.[8][9][10]

커뮤니티 GGUF 양자화

Bartowski imatrix

Bartowski 리포지터리는 llama.cpp b10472로 만들었고, plain prose·tool calling·reasoning 대화를 섞은 모델별 calibration corpus로 imatrix를 만들었다고 설명합니다.[8][9]

  • 9B: Q2부터 Q8까지 K-quant와 I-quant를 폭넓게 제공합니다.[8]
  • 35B-A3B: Q2부터 Q8까지 제공하며, Q4_K_M은 21.86GB, Q5_K_M은 25.49GB, Q6_K은 30.53GB입니다.[9]
  • 9B의 추천 기본값은 Q4_K_M 5.91GB입니다.[8]
  • 35B의 추천 기본값은 Q4_K_M 21.86GB입니다.[9]
  • 35B 양자화에는 MTP 레이어가 포함됐다고 명시하며, --spec-type draft-mtp로 speculative decoding을 켤 수 있습니다.[9]
  • 35B의 MTP 레이어는 Q8_0을 제외한 imatrix 양자화에서 Q4_0으로 저장됩니다.[9]
  • 비전 입력은 별도 mmproj 파일을 사용합니다.[8][9]

공식 Q4_K_M과 Bartowski Q4_K_M의 파일 크기가 다른 것은 오류로 단정하면 안 됩니다. 공식 파일과 Bartowski 파일은 서로 다른 리포지터리의 산출물입니다.[5][8][9] 실제 비교에서는 파일 SHA256, llama.cpp 버전, MTP 포함 여부를 함께 기록해야 합니다.[8][9][13]

AtomicChat AD 양자화

AtomicChat은 모델별 importance matrix를 사용해 tensor별 비트 배치를 조정한 AD 계열을 제공합니다. 모델 카드에는 BF16 기준의 mean KL divergence와 top-1 일치율을 직접 측정해 공개했습니다.[10][11]

9B 측정값

파일크기Mean KLDBF16 top-1
Q8_09.53GB0.00224997.94%
AD-Q8_0-Q6_K8.55GB0.00347397.46%
Q6_K7.36GB0.00604596.54%
Q5_K_M6.47GB0.02988392.80%
AD-Q5_K-Q4_K5.93GB0.02549393.10%
AD-Q4_K-IQ4_XS5.61GB0.03442691.93%
AD-IQ3_S-IQ3_XXS4.29GB0.14413283.44%

35B-A3B 측정값

파일크기Mean KLDBF16 top-1
Q8_036.90GB0.01162095.64%
AD-Q6_K29.10GB0.01296195.31%
Q5_K_M24.73GB0.02687093.31%
AD-Q5_K-Q4_K22.14GB0.02513793.52%
Q4_K_M21.17GB0.04771891.01%
AD-Q4_K-IQ4_XS20.13GB0.03151292.71%
AD-IQ3_S-IQ3_XXS15.51GB0.08733488.07%

이 값들은 task benchmark가 아니라 4,096 context의 held-out eval corpus에서 BF16 next-token과 비교한 양자화 품질 지표입니다.[10][11] 따라서 AD-Q4가 task 성능에서도 항상 우위라는 뜻은 아니며, 후속 로컬 벤치마크에서 실제 코딩·툴콜링 결과를 확인해야 합니다.

NVFP4·MTP 특수 빌드

Avifenesh의 NVFP4 GGUF는 35B-A3B 본체 20.19GB와 약 0.95GB draft artifact를 제공하며, MTP speculative decode를 포함합니다. 다만 이 파일은 upstream llama.cpp의 일반 NVFP4 타입이 아니라 memra와 전용 llama.cpp 브랜치용 serving artifact입니다. 따라서 공식 GGUF와 같은 표에 섞지 말고 Blackwell 전용 엔진 비교군으로 분리해야 합니다.[12]

공개된 memra probe에서 MTP K=2 draft acceptance는 embedded full head 53.7%, masked head 48.8%였습니다.[12] 제공자도 현재 workload에서는 spec-off가 더 빠를 수 있다고 명시하므로, acceptance rate만 보고 속도 향상을 가정하면 안 됩니다.[12]

GB10 적용성과 선택 기준

35B-A3B

  • 가장 균형적인 주력 후보: 공식 Q4_K_M 또는 Bartowski Q4_K_M
  • 품질 우선 후보: 공식 Q5_K_M, AtomicChat AD-Q5_K-Q4_K, Q6 계열
  • 128GB 통합 메모리에서는 파일 자체는 충분히 들어가지만, 131K 또는 262K 컨텍스트·KV cache·런타임 버퍼를 별도로 남겨야 함
  • MTP on과 MTP off를 별도 측정해야 함
  • 비전과 MTP를 한 번에 섞지 말고 텍스트 MTP, 텍스트 plain, 비전 plain을 각각 측정

9B

  • 경량 baseline 및 긴 컨텍스트 실험용
  • 공식 Q4_K_M은 약 5.63GB, AtomicChat AD-Q5_K-Q4_K은 약 5.93GB입니다.[5][10]
  • 9B에는 speculative decoding을 기대하지 말고 plain decode 기준으로 측정합니다.[8][10]
  • 비전 실험은 약 0.92GB mmproj를 추가합니다.[5][8][10]

397B

공식 Q4_K_M만 240.60GB이므로 GB10 단일 128GB 로컬 테스트에서는 제외합니다. 서버나 다중 GPU 비교가 아닌 이상, 397B를 다운로드해 벤치하는 것은 현재 목적에 맞지 않습니다.[7]

GB10 벤치마크 실행 계획

1단계: 로더·호환성 확인

  • llama.cpp commit 또는 release를 고정하고 기록
  • 모델 파일과 mmproj의 SHA256 기록
  • 모델 card의 chat template와 GGUF metadata 확인
  • 텍스트 plain load를 먼저 통과시킨 뒤 MTP를 켬
  • 비전은 MTP와 분리해 mmproj load만 확인
  • reasoning 출력과 최종 답변을 별도 필드로 저장

Bartowski 양자화는 b10472로 생성됐고, 새 아키텍처 지원 여부에 따라 그 버전 이상이 필요하다고 적혀 있습니다.[8][9] 실행에 사용될 llama.cpp 빌드의 commit은 모델 비교 결과와 함께 고정해 기록합니다.[13]

2단계: 속도 측정

모든 양자화에 같은 설정을 적용하고 다음을 남깁니다.

구분기록값
모델정확한 HF 리포·파일명·SHA256
런타임llama.cpp commit, CUDA, 드라이버, 실행 옵션
메모리load 직후와 생성 중 peak memory
프리필prompt processing tok/s
디코드generation tok/s, 첫 토큰 시간
speculativeacceptance rate, 평균 accepted tokens, spec on/off 차이
안정성로드 실패, 반복, tool call JSON 오류, timeout
품질Self Bench Pack 점수, HTML 테스트 통과율, 툴콜 성공률

속도는 짧은 프롬프트만으로 결론 내리지 않습니다. 512토큰·4K·16K·64K·131K 입력 구간을 나눠 프리필과 디코드를 따로 기록하고, 장문 구간에서 메모리와 속도가 무너지는지도 봐야 합니다.

3단계: 품질·에이전트 측정

  • 동일 system prompt와 동일 temperature를 사용
  • 실사용 coding lane은 temperature 0.6, top-p 0.95, top-k 20으로 고정
  • 공식 점수 재현 lane은 temperature 1.0을 별도로 기록
  • reasoning on과 off를 섞지 않음
  • plain과 MTP는 같은 seed·prompt로 비교
  • tool calling은 이름 정확성, JSON 유효성, 인자 정확성, 재시도 횟수를 별도 점수화
  • HTML 생성은 렌더링·기능 테스트까지 통과해야 성공으로 처리

공식 benchmark 재현 조건은 일반 로컬 추론 조건과 다르므로, 로컬 결과에는 반드시 official reproductionlocal practical 라벨을 나눠 기록합니다.[1][2][3]

권장 1차 비교 매트릭스

트랙모델 파일목적
A공식 35B Q4_K_M공식 배포 기준선
BBartowski 35B Q4_K_Mimatrix 기준선
CAtomicChat AD-Q4_K-IQ4_XS같은 크기대의 model-tuned layout
DAtomicChat AD-Q5_K-Q4_K24GB급 품질·용량 절충
E공식 35B Q8_0품질 상한선
F공식 9B Q4_K_M경량 baseline
GNVFP4 35Bmemra·Blackwell 전용 별도 실험

처음부터 모든 Q2·Q3 파일을 돌릴 필요는 없습니다. 먼저 A부터 F까지로 파일 포맷·품질·속도 차이를 잡고, 품질 손실이 허용될 때만 Q3·IQ3·Q2를 추가하는 순서가 효율적입니다.

1차 실행 우선순위

Ornith-1.5-35B-A3B는 공식 수치만 보면 코딩·에이전트 성능이 강하고, 3B 활성 MoE라 GB10에서 테스트할 가치가 있습니다.[1][3] 다만 GGUF 선택에 따라 MTP 포함 여부와 imatrix 방식이 달라지므로 모델 이름만 보고 비교하면 안 됩니다.[8][9][10] tensor별 bit layout과 mmproj 사용 가능 여부도 양자화 리포지터리별로 확인해야 합니다.[8][9][10]

1차 실행 대상은 Bartowski 35B Q4_K_M, AtomicChat AD-Q4_K-IQ4_XS, AtomicChat AD-Q5_K-Q4_K 세 가지입니다.[9][10][11] 공식 35B Q4_K_M은 변환 기준선으로 함께 두고, 9B Q4_K_M은 경량 baseline으로 추가합니다.[5][6] NVFP4는 llama.cpp 본선 결과에 섞지 않고 별도 엔진 트랙으로 보관합니다.[12]

GB10 첫 로컬 실측 — 35B-A3B 서버 품질·실사용 속도

2026-08-24에 외장 저장소에 보관한 Ornith-1.5-35B-A3B-MTP Q5_K_M·Q6_K·Q8_0을 같은 llama-server 프로토콜로 측정했습니다. 모델마다 서버를 한 번만 로드하고, 실제 YouTube production Science·History 대본 prompt를 품질 테스트에 사용했습니다. 속도는 별도 합성 prompt가 아니라 품질 테스트의 스트리밍 요청에서 함께 수집했습니다.

모델파일 크기서버 로드1차 통과5회 내 통과평균 시도PromptGenerationTTFTMTP acceptance
Q5_K_M23.61 GiB28.1s0/22/24.01,208 tok/s64.6 tok/s0.738s44.7%
Q6_K27.20 GiB32.0s0/22/23.01,237 tok/s59.8 tok/s1.032s43.3%
Q8_035.21 GiB44.1s0/20/25.01,176 tok/s54.4 tok/s0.836s46.0%

세 모델 모두 로드와 실행은 성공했고 OOM·인프라 오류는 없었습니다. Q5_K_M은 속도·용량·최종 통과율의 균형이 가장 좋았고, Q6_K은 더 느리지만 재시도 수렴성이 나았습니다. Q8_0은 가장 큰 파일임에도 이번 structured output 계약에서 우위를 보이지 않았습니다.

이 결과는 모델당 두 fixture·반복 1회의 1차 결과입니다. 사람의 의미 품질 평가, reasoning on, MTP off, coding/tool call, NVFP4 전용 엔진 비교는 아직 별도 측정 대상입니다. 상세 결과는 Ornith-1.5 서버 품질·실사용 속도 Benchmark에 기록했습니다.

확인되지 않은 항목

  • 공식 task benchmark의 수치는 모델 팀 자체 보고이며, 동일 조건의 독립 재현값은 이 문서에 넣지 않았습니다.
  • AtomicChat의 KLD·top-1은 task benchmark가 아니므로, 코딩·툴콜링 성능을 대체하지 않습니다.
  • reasoning on/off, MTP on/off, coding/tool call 품질과 속도는 아직 별도 측정하지 않았습니다.
  • NVFP4는 upstream llama.cpp·Ollama 호환을 전제로 한 파일이 아니므로, 전용 엔진 결과를 일반 GGUF 결과로 해석하면 안 됩니다.

Sources

[1] https://ornith.ai/ornith_1_5.html [2] https://huggingface.co/ornith-ai/Ornith-1.5-9B [3] https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B [4] https://huggingface.co/ornith-ai/Ornith-1.5-397B [5] https://huggingface.co/ornith-ai/Ornith-1.5-9B-GGUF [6] https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF [7] https://huggingface.co/ornith-ai/Ornith-1.5-397B-GGUF [8] https://huggingface.co/bartowski/Ornith-1.5-9B-GGUF [9] https://huggingface.co/bartowski/Ornith-1.5-35B-A3B-GGUF [10] https://huggingface.co/AtomicChat/Ornith-1.5-9B-GGUF [11] https://huggingface.co/AtomicChat/Ornith-1.5-35B-A3B-GGUF [12] https://huggingface.co/Avifenesh/Ornith-1.5-35B-A3B-NVFP4-MTP-GGUF [13] https://github.com/ggml-org/llama.cpp