/ Модель

Характеристики

Контекст
262 144 токена
Размер весов
19,3 ГБ
Лицензия
Apache 2.0
Архитектура
qwen3_5 · dense
Базовая модель
Qwen3.5-9B
Библиотека
transformers
Опубликована
11 сен 2026

JackOD-9B-Coder

Генерация текстаТекст → текст7 профессий

Текстовая модель на основе Qwen3.5-9B, объединённая для многошагового агентного программирования и решения задач с вызовами инструментов.

847скачиваний за 30 дней4лайкавеса обновлены16 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

JackOD-9B-Coder — текстовая модель для многошагового агентного программирования, созданная объединением нескольких моделей на основе Qwen/Qwen3.5-9B. В README описана схема слияния omnimerge_v2 с весами 0,55 для DeltaCoder-9B, 0,30 для Qwopus3.5-9B-Coder и 0,15 для Ornith-1.5-9B; метаданные классифицируют результат как дообучение Qwen/Qwen3.5-9B. Архитектура — плотная Qwen 3.5, около 9 млрд параметров по базовой модели; формат репозитория — safetensors, библиотека — Transformers. Модель принимает и выдаёт текст. Заявленная область применения — продолжительная работа над задачей программирования в диалоге с вызовами инструментов. В README приведены результаты нескольких кодовых бенчмарков, но автор отдельно предупреждает, что раннее тестирование агентного сценария ограничено и проверка harness ещё продолжается.

Модель предназначена для генерации и исправления кода, решения сложных задач программирования и работы агента, который продолжает задачу между ходами и вызовами инструментов. README сообщает, что у модели нет vision tower и весов visual.*, поэтому, несмотря на унаследованную конфигурацию мультимодальной архитектуры и связанные теги, изображениями она не обрабатывает. В качестве ограничений указаны ограниченные для её размера общие знания и предварительный характер оценки агентной надёжности. Лицензия — Apache-2.0.

Сценарии применения

  • генерация и исправление программного кода
  • решение сложных задач программирования
  • поэтапное выполнение задач кодирования в диалоге
  • работа кодового агента с вызовами инструментов

Ограничения

Общие знания ограничены относительно размера модели; автор описывает агентные испытания как ранние и малочисленные, а проверка на cline harness ещё продолжается. Изображения модель не обрабатывает: в репозитории нет vision tower и весов visual.*.

Для каких профессий подходит7

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

JackOD-9B-Coder

A four-way omnimerge_v2 merge over Qwen/Qwen3.5-9B, built for one job: multi-turn agentic coding — staying on a task across turns and tool calls until it is actually finished.

It is not built to win knowledge benchmarks, and its world knowledge is limited for its size. What it is built to do is finish, and stop — and on the hardest code benchmark in the set it is the best model in its own family tree.

rolemodelweight
base / task-baseQwen/Qwen3.5-9B— (shared ancestor)
sourcedanielcherubini/Qwen3.5-DeltaCoder-9B (LoRA on Qwen3.5-9B, merged to dense)0.55
sourceJackrong/Qwopus3.5-9B-coder0.30
sourceornith-ai/Ornith-1.5-9B0.15

--base and --task-base are both Qwen3.5-9B: every source descends from it, so task vectors are taken against the true common ancestor instead of against a sibling.

Kept intact from the base: the MTP head (15 tensors) is excluded from the merge (--skip-patterns visual.,mtp.) and passed through, so the draft head survives — an averaged MTP head stops being a usable drafter.

There is no vision tower. config.json inherits a populated vision_config from the Qwen3_5ForConditionalGeneration architecture and the repo ships preprocessor_config.json / video_preprocessor_config.json, but that is metadata with no weights behind it: base and merge both carry 775 tensors and zero visual.*. No mmproj exists for this model and none can be built. The visual. half of the skip pattern was a no-op here. This model is text-only.

Where the name comes from

JackOD is an initialism of its three merge sources:

lettersource
JackJackrong/Qwopus3.5-9B-coder — JackRong's Qwopus 9B
Oornith-ai/Ornith-1.5-9B
Ddanielcherubini/Qwen3.5-DeltaCoder-9B

Qwen3.5-9B is not in the name: it is the shared ancestor all three descend from, the --base/--task-base the merge is taken against, rather than a flavour contributed to the blend.

Field impression — initial, limited testing

This section is the author's early hands-on impression from a small number of runs, not a benchmark result. It is reported because it is the reason the model exists, and it should be read as an anecdote until a proper harness campaign replaces it.

Verification against the cline test harness is still in progress. So far it has fixed a task in 535 s on the harness; a second run went to timeout. It also fixed the task on a separate machine through the plugin.

For comparison, on the same task, A3B-class models typically take 1.5–4 h with a success rate below 50%. The one exception is Ornith-1.5-27B-A3B, which has a high success rate but still needs ~2 h or more per task.

That gap — minutes rather than hours, from a 9B dense model — is what this merge was assembled to get. It is an early signal from few runs, and the sample is far too small to quote a success rate of its own.

Recipe

Full reproducible chain, including the scripts that built it: recipes/jackod-9b-coder/ in omnimergekit.

python omnimergekit.py \
  --base      Qwen3.5-9B --task-base Qwen3.5-9B \
  --source    DeltaCoder-9B-applied \
  --source    Qwopus3.5-9B-Coder \
  --source    Ornith-1.5-9B \
  --weights   0.55,0.30,0.15 \
  --method omnimerge_v2 --density 0.53 --darex-q 0.75 --seed 42 \
  --no-auto-mlp-skip --skip-patterns visual.,mtp. \
  --output JackOD-9B-Coder

One step is not optional: Qwen3.5-9B and DeltaCoder-9B-applied carry no root eos_token_id (it lives only in the nested text config). The GGUF converter reads the root, finds nothing, and falls back — putting the wrong terminator in the quant and leaking control tokens into generations. patch_jackod.py copies the root EOS, tokenizer and chat template from Qwopus, whose chat template this model serves.

Evaluation

Q6_K + imatrix, llama.cpp, greedy (sampler=template_default, temp 0.0 / top-p 1.0 / top-k 0). Scores read from summary.json.score. The LiveCodeBench row is lcb_v6_55 throughout — lcb_medium_55 is a different problem set and is never mixed in.

BenchmarkJackOD-9B-CoderQwen3.5-9B (base)DeltaCoder-9B (0.55)Qwopus3.5-9B-Coder (0.30)Ornith-1.5-9B (0.15)
HumanEval (164)0.88410.89020.91460.85370.7805
HumanEval+ (164)0.82320.8049 †0.82320.79880.7073
LiveCodeBench v6 (55 hard)0.78180.72730.63640.60000.5818
MultiPL-E (300)0.80330.82000.80000.82000.7267
IFEval (100)0.91000.9300 †0.92000.88000.8200

† The base's HumanEval+ and IFEval cells come from an earlier 9B bank rather than the cohort pod run. That bank agrees with the cohort exactly on HumanEval (0.8902 both) but differs on MultiPL-E by 1.67 pp, so treat those two base cells as indicative rather than same-basis.

LiveCodeBench is the real result: 0.7818 beats every source and the base. +5.45 pp over the strongest source (the base itself) and +14.54 pp over DeltaCoder, the 0.55-weight source the merge leans on hardest. On the hard problems the merge is not splitting the difference between its parents — it is above all of them.

Elsewhere it lands where a merge should: identical to DeltaCoder on HumanEval+ (0.8232 both), a little under it on HumanEval (−3.05 pp, 5 problems of 164) and IFEval, a little under the base on MultiPL-E (−1.67 pp). Those are give-backs, and small ones.

Length and runaway behaviour — where the merge actually comes from

Response length in characters on lcb_v6_55, the same 55 hard problems under an identical cap. capped = finish_reason == "length": the model never terminated on its own.

modelcapped / 55p50p90max>20k
DeltaCoder-9B (0.55)2537,52450,55577,59054
Qwen3.5-9B (base)1837,98449,37653,56453
Qwopus3.5-9B-Coder (0.30)829,26143,26159,63341
Ornith-1.5-9B (0.15)228,72250,27856,57128
JackOD-9B-Coder129,28245,74989,32437

This table is the thesis of the merge. Read next to the eval table above, the two heaviest sources split cleanly along opposite axes:

  • DeltaCoder is the best coder in the cohort (HumanEval 0.9146) and the worst at stopping — 25 of 55 hard problems never terminate.
  • Ornith-1.5-9B is the weakest coder (LiveCodeBench 0.5818, HumanEval 0.7805) and by far the best at stopping — 2 of 55.
  • JackOD takes both: the best LiveCodeBench score of the entire cohort and the best termination rate, 1 of 55.

Against the base that is an 18× reduction in non-terminating generations; against DeltaCoder, its heaviest source, 25×. A capped generation is a scoring failure regardless of whether the reasoning was on track, so this is not a separate nicety — it is a large part of why the LiveCodeBench number is what it is.

Other benches, all on the published Q6_K:

Benchmarkp50p90max>20k
HumanEval (164)5901,19260,2191
HumanEval+ (164)5901,1825,9610
MultiPL-E (300)2575391,0070
IFEval (100)7913,16011,6600

Earlier attempts in this family — do not use them for agentic work

This merge went through several earlier arms. They are listed here because their numbers are in circulation and, read as a table, they are misleading.

armHumanEvalHumanEval+LCB v6 (55)MultiPL-EIFEvalcapped / 55
JackOD-Coder-9B0.82320.76830.81820.79330.93003
JackOD3.5-9B0.8659—0.7455——7
JackDeltaCoder-9B0.84150.76830.63640.80670.92008
JackOD-9B-Coder (this model)0.88410.82320.78180.80330.91001

JackOD-Coder-9B scores higher than this model on LiveCodeBench (0.8182 vs 0.7818) and on IFEval, and it is still the wrong model to deploy. That is the point of this section.

In real multi-turn agentic coding — a live tool loop, not a benchmark harness — JackDeltaCoder-9B and every earlier JackOD arm fail:

  • they do not drive tools properly, mis-forming or skipping tool calls that the task depends on;
  • they fall into loops, re-treading the same step instead of advancing;
  • they abandon the task, concluding the problem is too hard to solve and stopping without a fix.

None of that is visible in a single-shot code benchmark, which is exactly why their benchmark rows look competitive. A one-shot HumanEval or LiveCodeBench problem never asks a model to call a tool, read the result, and decide what to do on turn seven. The only arm in this family that holds up in a live agentic loop is the published one. Treat the rows above as a record of what was tried, not as a menu.

Tool calling — tool-eval-bench hardmode

88 scenarios offered, 84 scored, 168 points. 5 paired seeds (42–46) per arm, n=5 → t=2.776, greedy, --hardmode --weight-by-difficulty, scorer 2.6.1.dev65+g6be685f0e, served by llama.cpp 5bda51bf with --jinja. Every arm shares that basis exactly.

Tool-calling benchmark

modelroletotal points (mean, 5 seeds)95% CI
Ornith-1.5-9Bsource145.6 ±4.2[141.4, 149.8]
JackOD-9B-Codermerge144.4 ±4.7[139.7, 149.1]
Qwen3.5-9Bbase142.0 ±3.9[138.1, 145.9]
DeltaCoder-9Bsource139.6 ±5.7[133.9, 145.3]
Qwopus3.5-9B-Codersource132.6 ±3.6[129.0, 136.2]

On aggregate points this merge does not beat its sources — it is second, and every interval overlaps. It sits above its base and within noise of Ornith. The aggregate is not where the difference lives.

Where it does separate: Autonomous Planning

categoryJackODOrnithbaseDeltaCoderQwopus
M Autonomous Planning (6)5.22.84.84.03.6
H Instruction Following (10)9.69.29.28.88.0
I Context & State (20)17.017.216.416.215.2
P Hard Mode (38)29.830.229.828.226.0
C Multi-Step Chains (8)7.48.06.67.25.2
K Safety & Boundaries (26)20.221.419.219.621.4
L Toolset Scale (8)6.87.87.27.26.8
E Error Recovery (6)4.65.05.05.03.4
J Code Patterns (6)5.86.05.85.46.0

Autonomous Planning is the one axis with a clear, consistent edge: 5.2/6, best of all five arms — while Ornith, the top aggregate scorer, is the worst at 2.8/6. The merge reaches Ornith's overall level while fixing exactly Ornith's long-horizon planning weakness.

That pairing is worth sitting with, because Ornith is also the source with the best termination rate (2/55 capped). A model that stops reliably and plans worst than anything else in the cohort looks like one that stops too early — terminating is easy if you give up. The merge is the arm that does both: it carries the goal (5.2/6 planning, best) and still lands the plane (1/55 capped, best). That combination, not either number alone, is what the field impression above is describing.

Categories A/B/D/F (tool selection, parameter precision, restraint & refusal, localization) are 6/6 for every arm and are omitted; G Structured Reasoning and N Creative Composition are 6/6 for all but Qwopus (5.8 and 5.2). Structured Output is 2.0/4 for all five — none of these models clears it.

Serving

generation_config.json ships the serving recipe:

temperature 0.8 · top_p 0.95 · top_k 20 · min_p 0.05 · repeat_penalty 1.05

Add, where your runtime supports them (ollama and llama.cpp do; HF GenerationConfig has neither field):

repeat_last_n 96 · presence_penalty 0

The published mannix/JackOD-9B-Coder ollama tags carry exactly this set.

Temperature is not a free parameter here

0.8 is a deliberate middle, because the failure modes sit on both sides of it and they are different failures:

  • Lower degrades coding ability first. Push it further down and hallucinations and erratic behaviour follow.
  • Higher makes the model less willing to use its tools — it drifts toward writing its own scratch scripts instead of calling what it already has.

Neither symptom announces itself as a sampler problem, which is why the value is stated rather than left to taste.

On the repetition controls

Earlier revisions of this card recommended presence_penalty 1.5. That has been replaced by repeat_penalty 1.05 over a repeat_last_n 96 window, with presence_penalty back at 0. The job is the same — discouraging the model from re-treading a tool call it already made — but a bounded recent-token window does it without the broad, unbounded pressure a large presence penalty puts on every token the model has ever emitted.

For tool calling, --jinja is mandatory in llama.cpp: without it the tool grammar never comes from the model's chat template and every tool scenario degrades to prose.

Quants

GGUF quants — 25 tiers including the CD ladder, each with a .sha256, and the calibration imatrix archived alongside: ManniX-ITA/JackOD-9B-Coder-MTP-GGUF

Also on ollama: mannix/JackOD-9B-Coder

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen3_5ForConditionalGeneration
Ревизия весов
7805782

0 моделей