jcbtc commited on
Commit
5a66db4
·
verified ·
1 Parent(s): ef506b7

Publish model card, benchmarks, installation guide and upstream credits

Browse files
.gitattributes CHANGED
@@ -1,46 +1,5 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
36
- bundle/models/target/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
- assets/ciru-halo-agent.png filter=lfs diff=lfs merge=lfs -text
38
- bundle/native/libornith_attention_iu4.so filter=lfs diff=lfs merge=lfs -text
39
- bundle/native/libornith_head_i8_tile.so filter=lfs diff=lfs merge=lfs -text
40
- bundle/native/libornith_persistent_iu4.so filter=lfs diff=lfs merge=lfs -text
41
- bundle/native/libornith_routed_direct.so filter=lfs diff=lfs merge=lfs -text
42
- bundle/native/libornith_routed_n32.so filter=lfs diff=lfs merge=lfs -text
43
- bundle/native/libornith_routed_storage_n32.so filter=lfs diff=lfs merge=lfs -text
44
- runtime/aiter-jit-gfx1151/module_aiter_core.so filter=lfs diff=lfs merge=lfs -text
45
- runtime/wheels/amd_aiter-0.1.0rc1-cp314-cp314-linux_x86_64.whl filter=lfs diff=lfs merge=lfs -text
46
- runtime/wheels/vllm-0.1.0rc2.dev9+g9255fd9fb9.rocm100-cp314-cp314-linux_x86_64.whl filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  *.safetensors filter=lfs diff=lfs merge=lfs -text
2
+ *.whl filter=lfs diff=lfs merge=lfs -text
3
+ *.tar.gz filter=lfs diff=lfs merge=lfs -text
4
+ *.so filter=lfs diff=lfs merge=lfs -text
5
+ *.png filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
BUILD.md ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Build Ornith1.5 Ciru Halo Agent
2
+
3
+ The supplied native libraries and the source here belong to the measured AMD
4
+ Strix Halo (`gfx1151`) release. The model uses its accompanying vLLM runtime and
5
+ plugin; this is not a generic drop-in GPTQ/AWQ checkpoint.
6
+
7
+ ## Prerequisites
8
+
9
+ Use the release runtime installer first. Its pinned runtime contains Python
10
+ 3.14, ROCm 10, PyTorch, Triton, vLLM and AITER. A C++20 host development toolchain
11
+ and ROCm HIP compiler with `gfx1151` support are required for native compilation.
12
+ The build uses CPU compilation; it does not start a model or submit inference.
13
+ Use the release launch instructions for inference after building.
14
+
15
+ ## Build the eight native libraries
16
+
17
+ ```bash
18
+ git clone https://github.com/ciru-ai/ornith-ciru-halo-agent.git
19
+ cd ornith-ciru-halo-agent
20
+
21
+ # Set this to the directory produced by the release runtime installer.
22
+ RUNTIME="$HOME/ornith-runtime"
23
+
24
+ # Optional fast dependency/source check, without compilation:
25
+ bash scripts/build-native.sh --runtime "$RUNTIME" --out "$PWD/build/native" --check
26
+
27
+ # Compile all eight libraries into a new directory:
28
+ bash scripts/build-native.sh --runtime "$RUNTIME" --out "$PWD/build/native"
29
+ ```
30
+
31
+ The script discovers HIP from the runtime's ROCm SDK wheels. `ROCM_PATH` and
32
+ `HIPCC` can select an equivalent standalone ROCm SDK. Additional host-toolchain
33
+ arguments can be supplied after `--`; for example, Clang's `--gcc-toolchain`
34
+ option when the GCC installation is outside the system compiler search paths.
35
+ NixOS users should enter the release development shell before compiling.
36
+ Do not add fast-math flags: the rounding and contraction settings are deliberate.
37
+
38
+ Compilation preserves `-O2 -ffp-contract=off` and
39
+ `-fhip-fp32-correctly-rounded-divide-sqrt`, targets `gfx1151`, and emits shared
40
+ PIC libraries. Host-specific Nix store paths and experimental directory RPATHs
41
+ are not built into this portable recipe. Use the installed runtime environment
42
+ when loading the output so its HIP and C++ libraries can be resolved.
43
+
44
+ | Source | Output | Role |
45
+ | --- | --- | --- |
46
+ | `kernels/dense/dense_g256_consumer.cpp` | `libornith_dense_g256.so` | Dense transformed projections |
47
+ | `kernels/dense_n32/dense_g256_consumer.cpp` | `libornith_dense_g256_n32.so` | Single-token dense projection path |
48
+ | `kernels/routed/routed_direct_consumer.cpp` | `libornith_routed_direct.so` | Routed expert decode and A4 prefill |
49
+ | `kernels/routed_n32/routed_n32_consumer.cpp` | `libornith_routed_n32.so` | Routed expert N32 dispatch |
50
+ | `kernels/routed_storage/routed_storage_n32_consumer.cpp` | `libornith_routed_storage_n32.so` | Sparse routed expert storage path |
51
+ | `kernels/head/head_i8_tile_consumer.cpp` | `libornith_head_i8_tile.so` | Quantized output head |
52
+ | `kernels/attention/prefill.cpp` | `libornith_attention_iu4.so` | Long-context IU4 attention prefill |
53
+ | `kernels/attention/persistent.cpp` | `libornith_persistent_iu4.so` | Persistent long-context IU4 attention |
54
+
55
+ Keep component header directories separate; similarly named headers belong to
56
+ different measured implementations. A library build records the compiler version
57
+ and the exact command for every output. Existing output libraries are never
58
+ overwritten. To try rebuilt libraries, use a separate copy of the downloaded
59
+ release bundle and place the eight `.so` files in its `native/` directory.
60
+ Keep the distributed libraries available until the rebuilt bundle passes the
61
+ same startup and workload checks on your host.
62
+
63
+ ## Python plugin
64
+
65
+ `plugin-site/ornith_g256/` is the current plugin, including adaptive speculation
66
+ and the current single-token dense kernel binding. Module and library names are
67
+ stable runtime interfaces, not alternate public model names.
68
+
69
+ The release bundle supplies plugin metadata and loads this directory directly.
70
+ For development, a wheel can also be built without importing the GPU runtime:
71
+
72
+ ```bash
73
+ uv build --python "$RUNTIME/venv/bin/python" --wheel --out-dir dist
74
+ ```
75
+
76
+ The plugin intentionally does not install or upgrade its runtime dependencies.
77
+ Use the pinned release runtime; a stock vLLM upgrade is not a compatible-runtime
78
+ promise. When editing plugin code, retain the release bundle layout because the
79
+ dense kernel binding resolves `native/` relative to `plugin-site/`.
80
+
81
+ ## Reproduction scope
82
+
83
+ `SOURCE-PROVENANCE.json` records the current source files and the corresponding
84
+ measured native library digests. The sources were recovered from the compilation
85
+ locations recorded in those binaries and the retained build commands. The
86
+ portable build recipe does not claim bit-for-bit equality across compilers,
87
+ operating systems or linker versions. External-machine performance and startup
88
+ must be checked on that machine; the published benchmark results describe the
89
+ recorded release runtime.
90
+
91
+ ## Rebuild vLLM and AITER from the supplied sources
92
+
93
+ The download also includes `runtime/ciru-halo-agent-vllm-source.tar.gz` and
94
+ `runtime/ciru-halo-agent-aiter-source.tar.gz`. These contain the release source
95
+ and overlays, with upstream licenses; use these archives rather than a stock
96
+ upstream checkout. In particular, preserve the vLLM cache overlay documented in
97
+ `DEV9_CACHE_PATCH.md` within the source package. The archive's older embedded
98
+ installation notes describe its original application, not this model's profile.
99
+
100
+ The following developer route builds replacement wheels using the installed
101
+ release runtime's pinned PyTorch/ROCm. Run it in a separate runtime installation,
102
+ not one currently serving requests. Engine wheel rebuilding is more expensive
103
+ than compiling the eight model libraries and has **not been rerun for this
104
+ publication**. The published runtime uses the retained, measured engine wheels.
105
+
106
+ ```bash
107
+ # BUNDLE is the downloaded model bundle; RUNTIME is a separate installed runtime.
108
+ BUNDLE="$HOME/Ornith1.5-Ciru-Halo-Agent"
109
+ RUNTIME="$HOME/ornith-runtime-build"
110
+ mkdir -p engine-source/vllm engine-source/aiter engine-wheels
111
+
112
+ tar -xzf "$BUNDLE/runtime/ciru-halo-agent-vllm-source.tar.gz" \
113
+ -C engine-source/vllm --strip-components=1
114
+ tar -xzf "$BUNDLE/runtime/ciru-halo-agent-aiter-source.tar.gz" \
115
+ -C engine-source/aiter --strip-components=1
116
+
117
+ export VLLM_VENV="$RUNTIME/venv"
118
+ export VLLM_SOURCE="$PWD/engine-source/vllm"
119
+ export AITER_SOURCE="$PWD/engine-source/aiter"
120
+ source "$RUNTIME/runtime-env.sh"
121
+ export PYTORCH_ROCM_ARCH=gfx1151 GPU_ARCHS=gfx1151 VLLM_TARGET_DEVICE=rocm
122
+ export BUILD_TARGET=rocm ENABLE_CK=1
123
+ export MAX_JOBS=8
124
+
125
+ # Build tools only: do not install the upstream ROCm requirement file, which
126
+ # contains PyTorch/ROCm pins different from this release.
127
+ uv pip install --python "$VLLM_VENV/bin/python" \
128
+ pip 'setuptools>=77.0.3,<80' 'setuptools-scm>=8' 'setuptools-rust>=1.9' \
129
+ wheel 'cmake>=3.26.1,<4' ninja packaging pybind11 psutil pandas jinja2
130
+
131
+ # The source archives already include required vendored submodule content.
132
+ # No git submodule command is needed for these archives.
133
+ "$VLLM_VENV/bin/python" -m pip wheel --no-build-isolation --no-deps \
134
+ "$AITER_SOURCE" -w "$PWD/engine-wheels"
135
+ "$VLLM_VENV/bin/python" -m pip wheel --no-build-isolation --no-deps \
136
+ "$VLLM_SOURCE" -w "$PWD/engine-wheels"
137
+ ```
138
+
139
+ NixOS builds also require the supplied development shell and the source's CMake
140
+ integration helpers before the wheel commands:
141
+
142
+ ```bash
143
+ export CMAKE_ARGS="${CMAKE_ARGS:-} \
144
+ -DHIP_HIPCC_CMAKE_LINKER_HELPER=$VLLM_SOURCE/ciru-release/nixos/hipcc_cmake_linker_helper \
145
+ -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=$VLLM_SOURCE/ciru-release/nixos/rocm10_numa_target.cmake"
146
+ ```
147
+
148
+ Install rebuilt wheels only into an isolated runtime and check model startup,
149
+ tool calls, prefix-cache reuse and your context/concurrency profile before
150
+ switching to them. Engine build dependencies and system linkers vary by host;
151
+ this source route is provided for development, not an assertion that a full
152
+ engine rebuild has been qualified on every Linux distribution.
153
+
154
+ ## Release source checks
155
+
156
+ All eight native libraries were successfully compiled from this source tree with
157
+ the clean installed release runtime on the development Strix Halo host. The
158
+ compiler was AMD clang 23 / ROCm 10. The check exercised the portable script,
159
+ including automatic discovery of NixOS GCC/glibc paths. It did not run inference
160
+ with the newly compiled libraries or replace any running model's libraries.
161
+ All plugin Python files passed syntax parsing. Engine wheel rebuilding was not
162
+ repeated; the shipped engine wheels retain their existing runtime evidence.
CREDITS.md ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ornith1.5 Ciru Halo Agent — credits and provenance
2
+
3
+ Ciru / Crown ([jcbtc](https://huggingface.co/jcbtc)) developed the hardware-specific quantization, native kernels, vLLM integration, adaptive serving policy, and benchmark campaign for this release. **Crown is sponsored by AMD.**
4
+
5
+ ## Target model
6
+
7
+ The target derives directly from **[Ornith Team’s Ornith-1.5-35B-A3B](https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B/tree/10fbf86fed7ecee4a061f8b499a618f46001cac1)**, revision `10fbf86fed7ecee4a061f8b499a618f46001cac1`. The original BF16 weights were the quantizer input. Ciru did not train the base Ornith model.
8
+
9
+ The pinned upstream card declares **MIT**. On September 9, 2026, the Hugging Face file inventory had no separate LICENSE or NOTICE file at either that pinned revision or `main`; both resolved to the same revision. The included [upstream model card](LICENSES/ornith-upstream-model-card.md) preserves that declaration; this release does not invent an upstream copyright statement. See the downloaded source inventory in [LICENSES/sources.json](LICENSES/sources.json).
10
+
11
+ The checkpoint uses the Qwen3.5 MoE architecture. Credit to the **[Qwen team](https://github.com/QwenLM)** and the upstream contributors acknowledged by the [Ornith model card](https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B/blob/10fbf86fed7ecee4a061f8b499a618f46001cac1/README.md) for their foundational work. Ciru’s measurements should not be substituted for the upstream authors’ original model evaluations.
12
+
13
+ ## Speculative drafter
14
+
15
+ The companion is **[jzinno/Ornith-1.5-35B-A3B-DFlash2](https://huggingface.co/jzinno/Ornith-1.5-35B-A3B-DFlash2/tree/9b4852c05fd00b672b7434b1bb105bc03c8682b0)**, revision `9b4852c05fd00b672b7434b1bb105bc03c8682b0`, declared **Apache-2.0**. Credit for training this drafter belongs to **jzinno**, not Ciru.
16
+
17
+ Its upstream card records initialization from **[z-lab/Qwen3.5-35B-A3B-DFlash](https://huggingface.co/z-lab/Qwen3.5-35B-A3B-DFlash)**, also Apache-2.0. It attributes its training conversations to **NVIDIA Nemotron Post-Training Dataset v2**, under **CC-BY-4.0**, and releases the generated data as **[jzinno/Ornith-1.5-35B-A3B-Nemotron-v2-100M](https://huggingface.co/datasets/jzinno/Ornith-1.5-35B-A3B-Nemotron-v2-100M)**. These datasets are not redistributed as part of the target checkpoint.
18
+
19
+ Credit to the authors of **[DFlash: Block Diffusion for Flash Speculative Decoding](https://arxiv.org/abs/2602.06036)**, **[DFlash 2: Keep Drafting Parallel](https://inco.ai/blog/dflash2/)**, and the **[NeMo AutoModel](https://github.com/NVIDIA-NeMo/Automodel)** speculative-drafting implementation referenced by the drafter authors. Ciru’s contribution is deployment and optimization of this trained companion on Strix Halo.
20
+
21
+ ## Runtime foundations
22
+
23
+ - **[vLLM](https://github.com/vllm-project/vllm)** — Apache-2.0. The retained runtime wheel identifies itself as `0.1.0rc2.dev9+g9255fd9fb9.rocm100`, full commit `9255fd9fb9fedf4b29d574a8d8bb21d93892cc98`, with documented Ciru cache/serving changes. This is a custom runtime, not a claim that an unmodified stock wheel reproduces the results.
24
+ - **[AMD ROCm](https://github.com/ROCm)** — the GPU platform, compiler, and SDK. Individual components retain their own licenses and notices.
25
+ - **[AITER](https://github.com/ROCm/aiter)** and **[Composable Kernel](https://github.com/ROCm/composable_kernel)** — MIT-licensed kernel/runtime foundations; preserve their bundled notices.
26
+ - **[PyTorch](https://github.com/pytorch/pytorch)**, **[Triton](https://github.com/triton-lang/triton)**, **[Hugging Face Transformers](https://github.com/huggingface/transformers)**, tokenizers, and safetensors — preserve their component licenses and dependencies’ notices.
27
+ - **[Flash Linear Attention](https://github.com/fla-org/flash-linear-attention)** and its contributors — underlying linear-attention work retained within the vLLM source distribution and its license.
28
+
29
+ Use the packaged runtime source and notice files for the exact implementation provenance. A top-level model license does not replace the licenses of the companion drafter or software components.
30
+
31
+ ## Comparison builds
32
+
33
+ These authors supplied independently developed artifacts used as comparison baselines. Their weights and serving engines are not the Ciru target model or its vLLM runner.
34
+
35
+ | Artifact / runner | Attribution and recorded identity |
36
+ | --- | --- |
37
+ | Community Q4_K_XL | [peculiar-ragdoll/Unsloth-Ornith-1.5-35B-A3B](https://huggingface.co/peculiar-ragdoll/Unsloth-Ornith-1.5-35B-A3B), revision `a015e1ea842854d64a1b31d4448419f6229d7a26`; community Unsloth-style quant, not an official Unsloth upload |
38
+ | Q4 Vulkan runner | [Daniel Han Chen’s llama.cpp fork](https://github.com/danielhanchen/llama.cpp/tree/d1a92352cbd417fd840b4e765c0b82f5fe3d1d89), revision `d1a92352cbd417fd840b4e765c0b82f5fe3d1d89`; also credit [llama.cpp](https://github.com/ggml-org/llama.cpp) and contributors |
39
+ | ROCmFP4 model | [julianmb/Ornith-1.5-35B-A3B-ROCmFP4-GGUF](https://huggingface.co/julianmb/Ornith-1.5-35B-A3B-ROCmFP4-GGUF), revision `a0db6d02a557324a04cecd3feb0ab3f08565521e` |
40
+ | Recommended ROCmFP4 runner | [julianmb/HaloFPX](https://github.com/julianmb/halofpx); its supplied engine reported ROCmFPX build 213 / `e87d53e`, acquired through installer revision `16bd8a020c23e20dd844de913c4ee7486f438000` |
41
+
42
+ The final ROCmFP4 comparisons use Julian’s recommended engine. They should not be described as results from the separately investigated Laurent runner. Broader thanks to the ROCmFP4 and Strix Halo inference community for their public work.
43
+
44
+ ## Evaluation
45
+
46
+ Credit to **[EvalScope](https://github.com/modelscope/evalscope)** and the creators of **HumanEval, EvalPlus, GSM8K, IFEval**, and the **Hermes agent ecosystem**. Ciru used full public suites and native agent/tool scenarios alongside a small difficult subset and fixed BF16-prefix probes. Native benchmark licenses and attribution remain applicable to any redistributed fixtures.
47
+
48
+ The public **[benchmark report](https://llm.ciru.ai/research/ornith-strix/)** records the model-specific scores, timing definitions, source runs, runner builds, serving settings, and limitations. No endorsement by any upstream project or comparison author is implied.
LICENSES/Apache-2.0.txt ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
LICENSES/dflash2-9b4852c05fd0-LICENSE ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
LICENSES/dflash2-main-LICENSE ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
LICENSES/dflash2-upstream-model-card.md ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: sglang
4
+ base_model:
5
+ - ornith-ai/Ornith-1.5-35B-A3B
6
+ - z-lab/Qwen3.5-35B-A3B-DFlash
7
+ tags:
8
+ - speculative-decoding
9
+ - speculative-decoding-draft
10
+ - dflash2
11
+ - block-diffusion
12
+ - draft-model
13
+ - sglang
14
+ - ornith
15
+ - qwen
16
+ - qwen3
17
+ - qwen3.5
18
+ ---
19
+
20
+ # Ornith 1.5 35B A3B DFlash2
21
+
22
+ This repository contains a DFlash2 draft model for
23
+ [`ornith-ai/Ornith-1.5-35B-A3B`](https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B).
24
+ It is not a standalone language model: a compatible Ornith target checkpoint is
25
+ required at inference time, and the target verifies every proposed token.
26
+
27
+ The checkpoint was trained on projected teacher features from 100,014,884
28
+ generated assistant completion tokens (108,729 conversations). The full
29
+ generation dataset is released separately as
30
+ [`jzinno/Ornith-1.5-35B-A3B-Nemotron-v2-100M`](https://huggingface.co/datasets/jzinno/Ornith-1.5-35B-A3B-Nemotron-v2-100M).
31
+
32
+ ## Training method
33
+
34
+ Target responses were generated first. A separate offline teacher-forcing pass then
35
+ loaded the revision-pinned BF16 Ornith teacher, ran each completed sequence once, and
36
+ selected hidden layers 1, 6, 11, 16, 22, 27, 32, and 37. Feature capture used
37
+ 8 NVIDIA H200 141GB HBM3e GPUs in independent contiguous partitions; the selected drafter was
38
+ trained on 1 NVIDIA H200 141GB HBM3e GPU.
39
+
40
+ The inherited 2048-wide projection from
41
+ [`z-lab/Qwen3.5-35B-A3B-DFlash`](https://huggingface.co/z-lab/Qwen3.5-35B-A3B-DFlash)
42
+ was applied during that pass and kept frozen. Only the projected BF16 features, token
43
+ IDs, and loss masks were cached. Drafter training therefore did not keep the full
44
+ teacher resident; it loaded only Ornith's frozen embedding and language-model head with
45
+ the warm-started draft network.
46
+
47
+ The Qwen3.5 checkpoint is a plain DFlash drafter. Its compatible parameters initialize
48
+ the shared draft network before adaptation to the continued-pretrained Ornith target.
49
+ The DFlash2-only grouped causal convolutions and path selector start as exact no-ops:
50
+ each convolution has a unit self-tap with zero predecessor/dynamic correction, and the
51
+ selector's successor codebook is zero so its scores reduce to the inherited DFlash
52
+ logits. The upgraded network is therefore numerically equivalent to the plain DFlash
53
+ warm start before optimization, rather than introducing a random functional change.
54
+
55
+ The final recipe used:
56
+
57
+ - six draft layers, a 16-token training block, and a 4096-token sliding window;
58
+ - 128 anchors, selector rank 256, and selector top-k 16;
59
+ - microbatch 1 and effective batch 32;
60
+ - AdamW with learning rate 0.0001 and a warmup-plus-cosine schedule;
61
+ - 3,228 optimizer steps.
62
+
63
+ ## Held-out serving evaluation
64
+
65
+ The serving evaluation uses 40 prompts held outside the complete training-source
66
+ reservoir: 10 each from chat, code, math, and STEM. Both hardware matrices use
67
+ concurrency 1, 4, and 8, greedy sampling, and up to 512 output tokens per request. The
68
+ target is the official Ornith NVFP4 checkpoint, KV cache is FP8 E4M3, Marlin runs the
69
+ MoE, and FlashInfer runs attention. The four matched configurations are autoregressive
70
+ decoding, Ornith's built-in NEXTN head, the unadapted Qwen3.5 DFlash warm start, and
71
+ this Ornith-adapted DFlash2 drafter. Both external drafts propose up to 10 tokens.
72
+
73
+ Ornith's NEXTN/MTP head is inherited from Qwen3.5 and was not trained during Ornith's
74
+ continued pretraining, so it is not expected to be a strong speculative baseline. Its
75
+ result is included as a reference for the head shipped with the target checkpoint.
76
+
77
+ ![Held-out throughput and accepted-token comparison for ornith-ai/Ornith-1.5-35B-A3B-NVFP4 autoregressive decoding, z-lab/Qwen3.5-35B-A3B-DFlash, and jzinno/Ornith-1.5-35B-A3B-DFlash2](assets/serving-benchmark.png)
78
+
79
+ ### NVIDIA DGX Spark (GB10)
80
+
81
+ The first matrix was measured on one NVIDIA DGX Spark.
82
+
83
+ | Configuration | Concurrency | Overall tok/s | Per-user tok/s | Median TTFT | Median TPOT | Accepted length |
84
+ | --- | ---: | ---: | ---: | ---: | ---: | ---: |
85
+ | Autoregressive | 1 | 79.3 | 80.7 | 118.0 ms | 12.39 ms | n/a |
86
+ | Autoregressive | 4 | 163.1 | 46.0 | 246.1 ms | 21.74 ms | n/a |
87
+ | Autoregressive | 8 | 202.5 | 31.8 | 436.1 ms | 31.43 ms | n/a |
88
+ | NEXTN | 1 | 72.1 | 74.8 | 160.3 ms | 13.37 ms | 1.92 |
89
+ | NEXTN | 4 | 138.2 | 39.0 | 255.4 ms | 25.63 ms | 1.99 |
90
+ | NEXTN | 8 | 172.6 | 26.5 | 536.5 ms | 37.67 ms | 2.01 |
91
+ | Qwen3.5 DFlash warm start | 1 | 103.6 | 104.3 | 144.7 ms | 9.59 ms | 3.48 |
92
+ | Qwen3.5 DFlash warm start | 4 | 174.6 | 50.8 | 255.1 ms | 19.69 ms | 3.64 |
93
+ | Qwen3.5 DFlash warm start | 8 | 218.4 | 34.4 | 523.6 ms | 29.03 ms | 3.69 |
94
+ | Ornith DFlash2 | 1 | 114.2 | 115.4 | 145.1 ms | 8.67 ms | 4.02 |
95
+ | Ornith DFlash2 | 4 | 193.9 | 57.9 | 259.6 ms | 17.27 ms | 4.16 |
96
+ | Ornith DFlash2 | 8 | 236.5 | 37.2 | 539.0 ms | 26.92 ms | 4.18 |
97
+
98
+ ### NVIDIA H200
99
+
100
+ The same matrix was measured on one NVIDIA H200 141GB HBM3e GPU.
101
+
102
+ | Configuration | Concurrency | Overall tok/s | Per-user tok/s | Median TTFT | Median TPOT | Accepted length |
103
+ | --- | ---: | ---: | ---: | ---: | ---: | ---: |
104
+ | Autoregressive | 1 | 253.6 | 267.2 | 92.0 ms | 3.74 ms | n/a |
105
+ | Autoregressive | 4 | 712.6 | 225.0 | 181.8 ms | 4.45 ms | n/a |
106
+ | Autoregressive | 8 | 989.2 | 188.6 | 233.0 ms | 5.30 ms | n/a |
107
+ | NEXTN | 1 | 281.1 | 304.0 | 101.5 ms | 3.29 ms | 1.93 |
108
+ | NEXTN | 4 | 708.9 | 221.3 | 115.5 ms | 4.52 ms | 1.95 |
109
+ | NEXTN | 8 | 982.6 | 171.8 | 250.2 ms | 5.82 ms | 1.95 |
110
+ | Qwen3.5 DFlash warm start | 1 | 437.1 | 482.2 | 97.2 ms | 2.07 ms | 3.51 |
111
+ | Qwen3.5 DFlash warm start | 4 | 892.7 | 266.3 | 113.3 ms | 3.76 ms | 3.55 |
112
+ | Qwen3.5 DFlash warm start | 8 | 1190.0 | 217.3 | 250.1 ms | 4.60 ms | 3.56 |
113
+ | Ornith DFlash2 | 1 | 472.9 | 511.2 | 99.0 ms | 1.96 ms | 3.98 |
114
+ | Ornith DFlash2 | 4 | 981.0 | 312.1 | 112.2 ms | 3.20 ms | 3.90 |
115
+ | Ornith DFlash2 | 8 | 1351.6 | 244.3 | 237.0 ms | 4.09 ms | 3.97 |
116
+
117
+ On DGX Spark at concurrency 1, the draft configuration produced 114.2 output tokens/s,
118
+ 44.0% above target-only serving, with mean accepted length
119
+ 4.02 at concurrency 1. These measurements are specific to the recorded
120
+ software, hardware, prompt mix, quantization, and serving settings; they are not
121
+ general quality or speed claims. Machine-readable results are in
122
+ `spark-evaluation.json` and `h200-evaluation.json`.
123
+
124
+ ## SGLang usage
125
+
126
+ Use an SGLang build with DFlash2 support. The release evaluation used SGLang commit
127
+ `710267dc4c817b38d9965346390cd56b59b54eda`.
128
+
129
+ ```console
130
+ sglang serve \
131
+ --trust-remote-code \
132
+ --model-path ornith-ai/Ornith-1.5-35B-A3B-NVFP4 \
133
+ --revision 0f0b1b59b879ccde1353e6ebd0fb10c204d4c544 \
134
+ --kv-cache-dtype fp8_e4m3 \
135
+ --attention-backend flashinfer \
136
+ --moe-runner-backend marlin \
137
+ --speculative-algorithm DFLASH \
138
+ --speculative-draft-model-path jzinno/Ornith-1.5-35B-A3B-DFlash2 \
139
+ --speculative-num-draft-tokens 10 \
140
+ --speculative-draft-attention-backend flashinfer \
141
+ --mamba-radix-cache-strategy extra_buffer \
142
+ --mamba-ssm-dtype float32
143
+ ```
144
+
145
+ Memory limits, context length, and concurrency should be set for the deployment
146
+ hardware rather than copied blindly from the evaluation setup.
147
+
148
+ ## License and attribution
149
+
150
+ The checkpoint is released under Apache-2.0. It was initialized from the Apache-2.0
151
+ Qwen3.5 DFlash checkpoint and trained against the MIT-licensed Ornith target. The
152
+ training conversations derive from NVIDIA Nemotron Post-Training Dataset v2 under
153
+ CC-BY-4.0. See the linked repositories for their notices and model cards.
154
+
155
+ ## References
156
+
157
+ - [DFlash 2: Keep Drafting Parallel](https://inco.ai/blog/dflash2/)
158
+ - [DFlash: Block Diffusion for Flash Speculative Decoding](https://arxiv.org/abs/2602.06036)
159
+ - [NeMo AutoModel speculative-drafting implementation](https://github.com/NVIDIA-NeMo/Automodel)
LICENSES/flash-linear-attention-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2023-2025, Songlin Yang, Yu Zhang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
LICENSES/ornith-upstream-model-card.md ADDED
@@ -0,0 +1,463 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ license: mit
4
+ license_link: https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B/blob/main/LICENSE
5
+ pipeline_tag: text-generation
6
+ ---
7
+
8
+
9
+ <img width="600px" src="assets/ornith_logo.png">
10
+
11
+ [![Ornith Blog](https://img.shields.io/badge/%F0%9F%A6%A2%EF%B8%8F%20Ornith%20Blog%20-FD8E5B)](https://deep-reinforce.com/ornith.html)
12
+
13
+
14
+ # Ornith-1.5-35B-A3B
15
+
16
+
17
+ Chirp Chirp! 🐦 We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement.
18
+
19
+ Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For more details on the task, harness, and rollout reward design, please refer to our [blog](https://ornith.ai/ornith_1_5.html).
20
+
21
+ <img style="width: 100%; max-width: 900px;" src="assets/ornith_35b_eval.png" alt="Ornith 1.5 35B Benchmark Results" title="Ornith 1.5 35B Benchmark Results">
22
+
23
+ ## Ornith 1.5 35B-A3B
24
+
25
+ This model card documents **Ornith-1.5-35B-A3B**, the mid-size mixture-of-experts member of the Ornith-1.5 family. It activates only ~3B parameters per token, yet significantly outperforms its similar-sized peer Qwen 3.6-35B across all coding and agentic benchmarks, and outperforms dense models such as Gemma 4-31B and Muse Glimmer-30B by wide margins on agentic coding.
26
+
27
+ ### Benchmarks
28
+
29
+
30
+ <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;width:100%;margin:0 auto;padding:16px 0">
31
+ <table style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px">
32
+ <thead><tr>
33
+ <th style="width:22%;padding:10px 7px;text-align:left;font-weight:600;border-bottom:2px solid #FD8E5B;color:#FD8E5B"></th>
34
+ <th style="width:13%;padding:10px 7px;text-align:center;font-weight:700;border-bottom:2px solid #FD8E5B;color:#FD8E5B;font-size:14px;background:rgba(253, 142, 91, 0.12)">Ornith-1.5-35B-A3B</th>
35
+ <th style="width:13%;padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #FD8E5B;color:#FD8E5B;font-size:14px">Ornith-1.0-35B-A3B</th>
36
+ <th style="width:13%;padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #FD8E5B;color:#FD8E5B;font-size:14px">Qwen3.6-35B-A3B</th>
37
+ <th style="width:13%;padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #FD8E5B;color:#FD8E5B;font-size:14px">Gemma-4-31B <sub></sub></th>
38
+ <th style="width:13%;padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #FD8E5B;color:#FD8E5B;font-size:14px">Muse-Glimmer-30B <sub></sub></th>
39
+ <th style="width:13%;padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #FD8E5B;color:#FD8E5B;font-size:14px">Qwen3.5-397B</th>
40
+ </tr></thead>
41
+ <tbody>
42
+ <tr><td colspan="7" style="padding:8px 12px;font-weight:600;color:#FD8E5B;border-bottom:1px solid rgba(253, 142, 91, 0.2);background:rgba(253, 142, 91, 0.1)">Coding</td></tr>
43
+ <tr>
44
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">Terminal-Bench 2.1 <sub><small>(Terminus-2)</small></sub></td>
45
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">67.8</td>
46
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">64.2</td>
47
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">52.5</td>
48
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">42.1</td>
49
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">51.7</td>
50
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">53.5</td>
51
+ </tr>
52
+ <tr>
53
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">Terminal-Bench 2.1 <sub><small>(Claude Code)</small></sub></td>
54
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">68.5</td>
55
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">62.8</td>
56
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">49.2</td>
57
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
58
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
59
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">48.6</td>
60
+ </tr>
61
+ <tr>
62
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">SWE-bench Verified</td>
63
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">79</td>
64
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">75.6</td>
65
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">73.4</td>
66
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">52</td>
67
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">76</td>
68
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">76.4</td>
69
+ </tr>
70
+ <tr>
71
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">SWE-bench Pro</td>
72
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">59.6</td>
73
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">50.4</td>
74
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">49.5</td>
75
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">35.7</td>
76
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">51.2</td>
77
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">51.6</td>
78
+ </tr>
79
+ <tr>
80
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">SWE-bench Multilingual</td>
81
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">71.4</td>
82
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">69.3</td>
83
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">67.2</td>
84
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">51.7</td>
85
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
86
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">69.3</td>
87
+ </tr>
88
+ <tr>
89
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">DeepSWE</td>
90
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">22</td>
91
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">0</td>
92
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">0</td>
93
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
94
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
95
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">1</td>
96
+ </tr>
97
+ <tr>
98
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">Frontier-Bench v0.1</td>
99
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">5.1</td>
100
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">1.4</td>
101
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">1.4</td>
102
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
103
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
104
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">1.4</td>
105
+ </tr>
106
+ <tr>
107
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">NL2Repo</td>
108
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">46.2</td>
109
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">34.6</td>
110
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">29.4</td>
111
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">15.5</td>
112
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
113
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">36.8</td>
114
+ </tr>
115
+ <tr>
116
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">SWE Atlas - QnA</td>
117
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">39.8</td>
118
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">37.1</td>
119
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">15.5</td>
120
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
121
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
122
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">20.4</td>
123
+ </tr>
124
+ <tr><td colspan="7" style="padding:8px 12px;font-weight:600;color:#FD8E5B;border-bottom:1px solid rgba(253, 142, 91, 0.2);background:rgba(253, 142, 91, 0.1)">Reasoning</td></tr>
125
+ <tr>
126
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">HLE <sub><small>(no tools)</small></sub></td>
127
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">25.6</td>
128
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">20.8</td>
129
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">21.4</td>
130
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">19.5</td>
131
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">22</td>
132
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">28.7</td>
133
+ </tr>
134
+ <tr>
135
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">HLE <sub><small>(with tools)</small></sub></td>
136
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">33.4</td>
137
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">30.1</td>
138
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">28.9</td>
139
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">26.5</td>
140
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
141
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">48.3</td>
142
+ </tr>
143
+ <tr>
144
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">GPQA Diamond</td>
145
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">89.2</td>
146
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">86.2</td>
147
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">86</td>
148
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">84.3</td>
149
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">83.5</td>
150
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">88.4</td>
151
+ </tr>
152
+ <tr><td colspan="7" style="padding:8px 12px;font-weight:600;color:#FD8E5B;border-bottom:1px solid rgba(253, 142, 91, 0.2);background:rgba(253, 142, 91, 0.1)">Agentic</td></tr>
153
+ <tr>
154
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">MCP-Atlas</td>
155
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">70.2</td>
156
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">64.4</td>
157
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">62.8</td>
158
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">55</td>
159
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">75.5</td>
160
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">72.3</td>
161
+ </tr>
162
+ <tr>
163
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">Toolathlon-Verified</td>
164
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">48.7</td>
165
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">42.4</td>
166
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">41.7</td>
167
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">40.8</td>
168
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
169
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">38.3</td>
170
+ </tr>
171
+ <tr>
172
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">WideSearch</td>
173
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">67.8</td>
174
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">63.4</td>
175
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">60.1</td>
176
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">54.2</td>
177
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
178
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">74</td>
179
+ </tr>
180
+ <tr>
181
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">BrowseComp</td>
182
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">67.6</td>
183
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">63.5</td>
184
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">62</td>
185
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
186
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
187
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">78.6</td>
188
+ </tr>
189
+ <tr>
190
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);">ClawEval</td>
191
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-weight:600;color:#FD8E5B;background:rgba(253, 142, 91, 0.06)">72.5</td>
192
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">69.8</td>
193
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">68.7</td>
194
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">48.5</td>
195
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">-</td>
196
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">70.7</td>
197
+ </tr>
198
+ </tbody>
199
+ </table>
200
+
201
+ <p style="margin-top:12px;font-size:10px;opacity:0.7">
202
+ * All results reported for Ornith-1.5 are averaged over five independent runs.<br/>
203
+ * Terminal-Bench 2.1 (Terminus-2): We evaluate Terminal-Bench 2.1 using the Harbor/Terminus-2 framework with parser=json, temperature=1.0, top_p=1.0, and a 128K context window. Each run uses a 4-hour timeout with 32 CPU cores and 48GB RAM, and results are averaged over 5 runs. We adjust the Qwen chat template to ensure consistency between training and inference (https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B/blob/main/chat_template.jinja), and modify Harbor to align with vLLM's reasoning_content key.<br/>
204
+ * Terminal-Bench 2.1 (Claude Code): We evaluate Terminal-Bench 2.1 using Claude Code 2.1.126 with parser=json, temperature=1.0, top_p=1.0, max_new_tokens=131072. Results are averaged over 5 runs. Again, Qwen chat template needs to be modified.<br/>
205
+ * SWE-Bench Verified, Pro and Multilingual: using OpenHands harness with temp=1.0, top_p=0.95, 256k context window. Anti-hacking safeguards are applied throughout evaluation: Git history is removed from the local repository image to prevent access to prior solutions or commits; network access is disabled, preventing the model from retrieving external information or resources.<br/>
206
+ * DeepSWE: Evaluated using the Claude Code harness with temperature=1.0, top_p=0.95, and a 256K context window.<br/>
207
+ * SWE Atlas QnA: using mini SWE agent harness with temp=1.0, top_p=0.95, 128K context window. Results are averaged over 5 runs.<br/>
208
+ * NL2Repo: with temperature=1.0, top_p=1.0, 400K context, 48K output. Access to specified GitHub repositories and pip packages is blocked to prevent reward hacking.<br/>
209
+ * HLE: Evaluated using Claude 4.6 Opus as the judge model.<br/>
210
+ * MCP-Atlas: All models were evaluated in thinking mode on the 500-task public subset, with a 10-minute timeout per task. We use Claude 4.8 Opus as the judge model.<br/>
211
+ * Toolathlon-Verified: We use the official evaluation service with the maximum token limit set to 128K.<br/>
212
+ * ClawEval: An agentic code benchmark over real-user task distributions; temp=0.6 and 256K context.<br/>
213
+ </p>
214
+
215
+ </div>
216
+
217
+
218
+ ## Quickstart
219
+
220
+ <div style="border-left:4px solid #FD8E5B;background:rgba(253,142,91,0.1);border-radius:6px;padding:12px 16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;line-height:1.6">
221
+ <div style="font-weight:700;color:#FD8E5B;margin-bottom:6px">📝 NOTE</div>
222
+ <p style="margin:0 0 10px"><b>Ornith-1.5-35B-A3B</b> is a <b>reasoning model</b>: by default the assistant turn opens with a <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">&lt;think&gt; … &lt;/think&gt;</code> block before the final answer. The serving recipes below enable a reasoning parser so the chain-of-thought is returned in a separate <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">reasoning_content</code> field, and a tool-call parser so the model's <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">&lt;tool_call&gt;</code> blocks are surfaced as OpenAI-style <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">tool_calls</code>.</p>
223
+ <p style="margin:0 0 6px">Serving Ornith-1.5-35B-A3B requires recent runtimes:</p>
224
+ <ul style="margin:0 0 10px;padding-left:20px">
225
+ <li><b>Transformers</b> ≥ 5.8.1</li>
226
+ <li><b>vLLM</b> ≥ 0.19.1</li>
227
+ <li><b>SGLang</b> ≥ 0.5.9</li>
228
+ </ul>
229
+ <p style="margin:0 0 6px">Recommended sampling parameters:</p>
230
+ <ul style="margin:0;padding-left:20px">
231
+ <li><b>For general tasks:</b> <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">temperature=0.6</code>, <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">top_p=0.95</code>, <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">top_k=20</code></li>
232
+ <li><b>To reproduce the reported benchmarks:</b> <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">temperature=1.0</code></li>
233
+ </ul>
234
+ </div>
235
+
236
+
237
+ ### Serving Ornith-1.5-35B-A3B
238
+
239
+ Ornith-1.5-35B-A3B is a ~35B mixture-of-experts model with ~3B activated parameters per token (≈70 GB in bf16). The recipes below stand up an OpenAI-compatible server on **2× 80GB GPUs** to leave headroom for the 256K context; adjust `--tensor-parallel-size` / `--tp` to match your hardware.
240
+
241
+ #### vLLM
242
+
243
+ ```bash
244
+ vllm serve ornith-ai/Ornith-1.5-35B-A3B \
245
+ --served-model-name Ornith-1.5-35B-A3B \
246
+ --host 0.0.0.0 --port 8000 \
247
+ --tensor-parallel-size 2 \
248
+ --max-model-len 262144 \
249
+ --gpu-memory-utilization 0.90 \
250
+ --enable-prefix-caching \
251
+ --enable-auto-tool-choice --tool-call-parser qwen3_xml \
252
+ --reasoning-parser qwen3 \
253
+ --trust-remote-code
254
+ ```
255
+
256
+ #### SGLang
257
+
258
+ ```bash
259
+ python -m sglang.launch_server \
260
+ --model-path ornith-ai/Ornith-1.5-35B-A3B \
261
+ --served-model-name Ornith-1.5-35B-A3B \
262
+ --host 0.0.0.0 --port 8000 \
263
+ --tp 2 \
264
+ --context-length 262144 \
265
+ --mem-fraction-static 0.85 \
266
+ --tool-call-parser qwen3_coder \
267
+ --reasoning-parser qwen3
268
+ ```
269
+
270
+ #### For Long-Context
271
+
272
+ Ornith-1.5-35B-A3B handles context windows of up to 262,144 tokens. When a task's combined input and output must go beyond this limit, we suggest extending the effective window with RoPE scaling — YaRN is the technique we validate against, and it is already built into both vLLM and SGLang. With a scaling factor of 4.0, the usable window grows to roughly 1M tokens.
273
+
274
+ You can turn YaRN on in either of two ways:
275
+
276
+ - **Edit the checkpoint's `config.json`.** Add a `rope_scaling` block to the model configuration:
277
+
278
+ ```json
279
+ {
280
+ "rope_scaling": {
281
+ "rope_type": "yarn",
282
+ "factor": 4.0,
283
+ "original_max_position_embeddings": 262144
284
+ }
285
+ }
286
+ ```
287
+
288
+ - **Override at launch time.** Leave the checkpoint untouched and extend the serve commands above with the equivalent flags.
289
+
290
+ vLLM:
291
+
292
+ ```bash
293
+ VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 vllm serve ornith-ai/Ornith-1.5-35B-A3B ... --hf-overrides '{"rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144}}' --max-model-len 1000000
294
+ ```
295
+
296
+ SGLang:
297
+
298
+ ```bash
299
+ SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server ... --json-model-override-args '{"rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144}}' --context-length 1000000
300
+ ```
301
+
302
+ <div style="border-left:4px solid #FD8E5B;background:rgba(253,142,91,0.1);border-radius:6px;padding:12px 16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;line-height:1.6">
303
+ <div style="font-weight:700;color:#FD8E5B;margin-bottom:6px">📝 NOTE</div>
304
+ <p style="margin:0">Open-source runtimes implement YaRN <i>statically</i>: the same scaling factor is applied to every request regardless of its length, which can slightly hurt quality on ordinary-length inputs. Only enable <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">rope_scaling</code> when your workload genuinely needs the longer window, and size <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">factor</code> to match it — the target window is roughly <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">factor</code> × 262,144, so if your requests top out around 524,288 tokens, <code style="background:rgba(253,142,91,0.15);padding:1px 5px;border-radius:4px">factor: 2.0</code> is the better setting.</p>
305
+ </div>
306
+
307
+ ### Using Ornith-1.5-35B-A3B via the Chat Completions API
308
+
309
+ Once a vLLM or SGLang server is running, talk to it with any OpenAI-compatible client.
310
+
311
+ #### Basic Usage
312
+
313
+ ```python
314
+ from openai import OpenAI
315
+
316
+ client = OpenAI(
317
+ base_url="http://localhost:8000/v1",
318
+ api_key="EMPTY", # any non-empty string works for a local server
319
+ )
320
+
321
+ response = client.chat.completions.create(
322
+ model="Ornith-1.5-35B-A3B",
323
+ messages=[
324
+ {"role": "user", "content": "Write a one-line Python lambda that squares a number."}
325
+ ],
326
+ temperature=0.6,
327
+ top_p=0.95,
328
+ max_tokens=1024,
329
+ )
330
+
331
+ message = response.choices[0].message
332
+ # reasoning_content holds the <think> trace; content holds the final answer.
333
+ print("reasoning:", getattr(message, "reasoning_content", None))
334
+ print("answer:", message.content)
335
+ ```
336
+
337
+ You can also stream tokens, or hand the model tools — Ornith-1.5-35B-A3B emits well-formed function calls that the server parses into the standard `tool_calls` field:
338
+
339
+ ```python
340
+ tools = [
341
+ {
342
+ "type": "function",
343
+ "function": {
344
+ "name": "get_weather",
345
+ "description": "Get the current weather for a city",
346
+ "parameters": {
347
+ "type": "object",
348
+ "properties": {"city": {"type": "string"}},
349
+ "required": ["city"],
350
+ },
351
+ },
352
+ }
353
+ ]
354
+
355
+ response = client.chat.completions.create(
356
+ model="Ornith-1.5-35B-A3B",
357
+ messages=[{"role": "user", "content": "What is the weather in Paris right now?"}],
358
+ tools=tools,
359
+ tool_choice="auto",
360
+ temperature=0.6,
361
+ max_tokens=2048,
362
+ )
363
+
364
+ tool_call = response.choices[0].message.tool_calls[0]
365
+ print(tool_call.function.name, tool_call.function.arguments)
366
+ # -> get_weather {"city": "Paris"}
367
+ ```
368
+
369
+ You can point any OpenAI-compatible SDK (Python, Node.js, etc.) or `curl` at the same `/v1/chat/completions` endpoint.
370
+
371
+ ## Agentic Usage
372
+
373
+ Ornith-1.5-35B-A3B excels in tool-calling and agentic coding. It exposes an OpenAI-compatible endpoint with tool calling and works out of the box with standard agent frameworks.
374
+
375
+ **Examples of using Ornith with agents:**
376
+
377
+
378
+ #### Ollama
379
+ ```bash
380
+ ollama run hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF
381
+ ```
382
+
383
+
384
+ #### Atomic.chat
385
+ ```bash
386
+ # Atomic.chat loads a GGUF build of Ornith (ornith-ai/Ornith-1.5-35B-A3B-GGUF)
387
+ # through llama.cpp's OpenAI-compatible API on port 8000.
388
+ llama-server -hf ornith-ai/Ornith-1.5-35B-A3B-GGUF --port 8000 -c 262144
389
+ ```
390
+
391
+ #### llama.cpp
392
+ ```bash
393
+ # llama.cpp — serve an OpenAI-compatible API on port 8000.
394
+ llama-server -hf ornith-ai/Ornith-1.5-35B-A3B-GGUF --port 8000 -c 262144
395
+ ```
396
+
397
+ #### Hermes Agent
398
+ ```bash
399
+ # Hermes talks to any OpenAI-compatible endpoint — point it at your Ornith server.
400
+ export OPENAI_BASE_URL="http://localhost:8000/v1"
401
+ export OPENAI_API_KEY="EMPTY"
402
+ export MODEL="ornith-ai/Ornith-1.5-35B-A3B"
403
+ ```
404
+
405
+ #### OpenClaw
406
+
407
+ ```bash
408
+ # OpenClaw talks to any OpenAI-compatible endpoint — point it at your Ornith server.
409
+ export OPENAI_BASE_URL="http://localhost:8000/v1"
410
+ export OPENAI_API_KEY="EMPTY"
411
+ export OPENAI_MODEL="ornith-ai/Ornith-1.5-35B-A3B"
412
+ ```
413
+
414
+ #### Unsloth Studio
415
+
416
+ ```bash
417
+ pip install unsloth
418
+
419
+ # Load Ornith for fast local inference or fine-tuning (Python):
420
+ # from unsloth import FastLanguageModel
421
+ # model, tokenizer = FastLanguageModel.from_pretrained(
422
+ # "ornith-ai/Ornith-1.5-35B-A3B",
423
+ # max_seq_length=262144,
424
+ # load_in_4bit=True,
425
+ # )
426
+ ```
427
+
428
+
429
+ ### Coding CLIs
430
+
431
+ Ornith-1.5-35B-A3B is optimized for terminal-based coding agents. Point any OpenAI-compatible coding CLI at your Ornith-1.5-35B-A3B endpoint (set `OPENAI_BASE_URL` and `OPENAI_API_KEY`) to understand large codebases, automate tedious work, and ship faster.
432
+
433
+ #### OpenCode
434
+ ```bash
435
+ # Register your local Ornith endpoint as a provider in ~/.config/opencode/opencode.json:
436
+ #
437
+ # {
438
+ # "$schema": "https://opencode.ai/config.json",
439
+ # "provider": {
440
+ # "ornith": {
441
+ # "npm": "@ai-sdk/openai-compatible",
442
+ # "name": "Ornith (local)",
443
+ # "options": { "baseURL": "http://localhost:8000/v1", "apiKey": "EMPTY" },
444
+ # "models": { "ornith-ai/Ornith-1.5-35B-A3B": { "name": "Ornith-1.5-35B-A3B" } }
445
+ # }
446
+ # }
447
+ # }
448
+
449
+ opencode
450
+ ```
451
+
452
+ ### Citation
453
+
454
+ If you find our work helpful, feel free to give us a cite.
455
+
456
+ ```bibtex
457
+ @misc{ornith_1_5,
458
+ title = {{Ornith-1.5}: From Self-Scaffolding to Self-Improvement},
459
+ url = {https://ornith.ai/ornith_1_5.html},
460
+ author = {{Ornith Team}},
461
+ year = {2026}
462
+ }
463
+ ```
LICENSES/sources.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "repo": "ornith-ai/Ornith-1.5-35B-A3B",
4
+ "revision_requested": "10fbf86fed7ecee4a061f8b499a618f46001cac1",
5
+ "resolved_revision": "10fbf86fed7ecee4a061f8b499a618f46001cac1",
6
+ "license_notice_files": []
7
+ },
8
+ {
9
+ "repo": "ornith-ai/Ornith-1.5-35B-A3B",
10
+ "revision_requested": "main",
11
+ "resolved_revision": "10fbf86fed7ecee4a061f8b499a618f46001cac1",
12
+ "license_notice_files": []
13
+ },
14
+ {
15
+ "repo": "jzinno/Ornith-1.5-35B-A3B-DFlash2",
16
+ "revision_requested": "9b4852c05fd00b672b7434b1bb105bc03c8682b0",
17
+ "resolved_revision": "9b4852c05fd00b672b7434b1bb105bc03c8682b0",
18
+ "license_notice_files": [
19
+ "LICENSE"
20
+ ],
21
+ "downloads": [
22
+ {
23
+ "source": "https://huggingface.co/jzinno/Ornith-1.5-35B-A3B-DFlash2/resolve/9b4852c05fd00b672b7434b1bb105bc03c8682b0/LICENSE",
24
+ "local": "dflash2-9b4852c05fd0-LICENSE",
25
+ "bytes": 11358
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "repo": "jzinno/Ornith-1.5-35B-A3B-DFlash2",
31
+ "revision_requested": "main",
32
+ "resolved_revision": "9b4852c05fd00b672b7434b1bb105bc03c8682b0",
33
+ "license_notice_files": [
34
+ "LICENSE"
35
+ ],
36
+ "downloads": [
37
+ {
38
+ "source": "https://huggingface.co/jzinno/Ornith-1.5-35B-A3B-DFlash2/resolve/9b4852c05fd00b672b7434b1bb105bc03c8682b0/LICENSE",
39
+ "local": "dflash2-main-LICENSE",
40
+ "bytes": 11358
41
+ }
42
+ ]
43
+ }
44
+ ]
NATIVE-BUILD-CHECK.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "check": "all_eight_native_libraries_compiled",
3
+ "compiler": "HIP version: 7.15.26333-0000000\nAMD clang version 23.0.0git (https://github.com/ROCm/llvm-project.git 8f497e0992fb7513f7f78a6f6b6f1056c375e961)\nTarget: x86_64-unknown-linux-gnu\nThread model: posix\nInstalledDir: <runtime>/venv/lib/python3.14/site-packages/_rocm_sdk_devel/lib/llvm/bin\n",
4
+ "runtime": "fresh installed release runtime",
5
+ "gpu_work_performed": false,
6
+ "rebuilt_libraries_loaded_for_inference": false,
7
+ "libraries": {
8
+ "libornith_attention_iu4.so": {
9
+ "bytes": 186024,
10
+ "sha256": "443238ed0b47aefb7ef071bd33d7865ec9da738dab90cdc03661c52be3fa0367"
11
+ },
12
+ "libornith_dense_g256.so": {
13
+ "bytes": 69168,
14
+ "sha256": "9929be9ee06b0e4abe83bfec48d83ea95b7c624d971b4821909897554d715f55"
15
+ },
16
+ "libornith_dense_g256_n32.so": {
17
+ "bytes": 76264,
18
+ "sha256": "4a154a86266a58e6643bfd1bc437f3cb4fcb1f69520941cebb116ebf07a85e90"
19
+ },
20
+ "libornith_head_i8_tile.so": {
21
+ "bytes": 128320,
22
+ "sha256": "8f86e842e09d5c92abda88bd9a21babb8587bc32080faa13d0b475b019893d4b"
23
+ },
24
+ "libornith_persistent_iu4.so": {
25
+ "bytes": 99056,
26
+ "sha256": "94378bfdd2ea7e3a89654f42349e72a919e578cb45b5f2d27f07eac362cee464"
27
+ },
28
+ "libornith_routed_direct.so": {
29
+ "bytes": 155568,
30
+ "sha256": "e354a3018e6d7ca21991b1a24d7f9d8b1c5e34791e35253756d0ff69ca6871cf"
31
+ },
32
+ "libornith_routed_n32.so": {
33
+ "bytes": 151304,
34
+ "sha256": "960c1a2f638305d1d44aceac32456ef845abe410dc4d2a3a79a4bbad5ea30383"
35
+ },
36
+ "libornith_routed_storage_n32.so": {
37
+ "bytes": 157776,
38
+ "sha256": "d91541bdb1da0145ed5fb8bb988820894632f67456f798568f0cf859ab9e5559"
39
+ }
40
+ }
41
+ }
NOTICE ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Ornith1.5 Ciru Halo Agent
2
+ Copyright 2026 Ciru.
3
+
4
+ Ciru's model-specific quantized kernels, dispatch, cache integration and adaptive
5
+ serving policy are distributed under Apache License 2.0. Existing source headers
6
+ and upstream copyright notices are preserved.
7
+
8
+ This integration uses and adapts code from vLLM (Apache-2.0), including attention
9
+ and recurrent-model execution code. Some attention code originates in SGLang
10
+ (Apache-2.0); contributors to the vLLM project, the vLLM Team, and the SGLang Team
11
+ retain their notices in the affected sources.
12
+
13
+ The recurrent-model helpers include code originating in flash-linear-attention,
14
+ Copyright (c) 2023-2025 Songlin Yang, Yu Zhang, under the MIT license. Its full
15
+ license is included in LICENSES/flash-linear-attention-MIT.txt.
16
+
17
+ The separately distributed runtime includes AITER, PyTorch, Triton and ROCm;
18
+ retain each package's accompanying licenses and third-party notices. The model
19
+ and drafter weights retain their respective upstream licenses and authorship.
20
+ See the model card for full model/drafter credits and AMD sponsorship disclosure.
README.md ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ library_name: vllm
4
+ pipeline_tag: text-generation
5
+ base_model:
6
+ - ornith-ai/Ornith-1.5-35B-A3B
7
+ base_model_relation: quantized
8
+ model_name: Ornith1.5 Ciru Halo Agent (vllm strix halo)
9
+ tags:
10
+ - ornith
11
+ - ciru
12
+ - amd
13
+ - strix-halo
14
+ - gfx1151
15
+ - rocm
16
+ - vllm
17
+ - agentic
18
+ - tool-use
19
+ - quantized
20
+ - speculative-decoding
21
+ - dflash2
22
+ ---
23
+
24
+ # Ornith1.5 Ciru Halo Agent (vllm strix halo)
25
+
26
+ ![Ornith1.5 Ciru Halo Agent — local agents on AMD Strix Halo](assets/ciru-halo-agent.png)
27
+
28
+ **A local AI team, built around AMD Strix Halo.** Ornith1.5 **Ciru Halo Agent** combines a custom quantization of Ornith's 35B-A3B mixture-of-experts model with a purpose-built vLLM/ROCm runtime for fast coding, tool use, and concurrent agents.
29
+
30
+ The design starts with the hardware: packed four-bit weights, four-bit activation paths, Strix Halo four-bit matrix instructions, specialized kernels, and adaptive DFlash2 speculative decoding. Prefix caching and a shared memory pool let agents return to long working histories.
31
+
32
+ **Measured on AMD Ryzen AI Max+ 395 / Radeon 8060S (gfx1151):**
33
+
34
+ - **178 tok/s single-request decode** on the ten-question coding speed screen, with **166 ms mean time to first token**.
35
+ - **295 tok/s aggregate at eight concurrent requests**, completing the ten-question batch in **5.52 seconds**.
36
+ - **1,287 tok/s cold prefill at 64K** and **668 tok/s near 256K**—**1.62× and 2.71×** the recorded Q4_K_XL prefill rates, respectively.
37
+ - **256K request context capacity**, eight active sequences, and a **44 GiB shared KV/state pool**.
38
+ - **123 tok/s cached C1 decode at 63K history**, with all ten return-task health checks passing.
39
+
40
+ These figures describe specific workloads, rather than a universal generation rate. The benchmark tables below include quality results and the workloads where other builds are faster.
41
+
42
+ **[Full benchmarks, runner builds, serving settings, and limitations](https://llm.ciru.ai/research/ornith-strix/)** · **[Source and build instructions](https://github.com/ciru-ai/ornith-ciru-halo-agent)** · **[Credits](CREDITS.md)**
43
+
44
+ ## Running Ciru Halo Agent
45
+
46
+ **Use the accompanying Ciru runtime.** This is a custom packed checkpoint and serving stack; installing stock vLLM and pointing it at the weights does not reproduce this build.
47
+
48
+ The measured profile targets Linux on AMD Strix Halo, with enough unified memory for the model, drafter, and context pool. Peak whole-host memory during the recorded production campaign was **95.35 GB**. That includes other host processes and is not the model-file size or a minimum-memory guarantee. The hardware used for this work has 128 GB unified memory.
49
+
50
+ ```bash
51
+ uvx --from huggingface_hub hf download \
52
+ jcbtc/Ornith1.5-Ciru-Halo-Agent-vllm-strix-halo \
53
+ --local-dir ./ciru-halo-agent
54
+ cd ciru-halo-agent
55
+ bash runtime/INSTALL-ORNITH-RUNTIME.sh "$PWD/installed-runtime"
56
+ bash bundle/serve.sh --host 127.0.0.1 --port 8000
57
+ ```
58
+
59
+ Read **[Installation and build instructions](INSTALL.md)** first for Linux prerequisites, the runtime environment, source rebuild commands, and deployment details. The shipped stack was checked in an isolated installation on an existing Strix Halo test host; this is separate from validation on a fresh external machine. Source is available in **[ciru-ai/ornith-ciru-halo-agent](https://github.com/ciru-ai/ornith-ciru-halo-agent)**.
60
+
61
+ ### Serving behavior
62
+
63
+ | Setting | Measured profile |
64
+ | --- | --- |
65
+ | Request context limit | 262,144 tokens, including prompt and output |
66
+ | Active requests | Up to 8; additional requests queue |
67
+ | Shared KV/recurrent-state pool | 44 GiB |
68
+ | Prefix caching | Enabled, including recurrent-state reuse |
69
+ | Speculative drafter | Trained Ornith DFlash2 by jzinno |
70
+ | Single-request speculation | Adaptive 15/7/off below 32,768 computed tokens; 15-token drafting on longer contexts |
71
+ | Concurrent speculation | 7-token drafting for 2–8 active requests |
72
+ | Agent integration | OpenAI-compatible API, tool calling, preserved Ornith chat/reasoning behavior |
73
+ | Default release evidence | Text profile |
74
+
75
+ The pool is shared. **Eight active requests does not mean eight unrelated, fully populated 256K histories fit at once.** Output must fit in the remaining request context; there is no separate promise of 256K output after a 256K input. Preserve the supplied chat template and use the client’s intended thinking setting.
76
+
77
+ ## Coding speed and concurrency
78
+
79
+ HumanEval 0–9, thinking off, greedy sampling, natural end-of-sequence, cold prompt salts. Each row runs all ten questions. These are **speed and health checks**, not evidence of general coding quality.
80
+
81
+ | Concurrent requests | Ten-task completion | Mean request decode | Mean first-token latency | Aggregate throughput |
82
+ | ---: | ---: | ---: | ---: | ---: |
83
+ | 1 | 10.65 s | **178.17 tok/s** | **0.166 s** | 148.69 tok/s |
84
+ | 2 | 8.47 s | 111.59 tok/s | 0.259 s | 187.07 tok/s |
85
+ | 4 | 7.12 s | 73.54 tok/s | 0.340 s | 222.74 tok/s |
86
+ | 6 | 5.99 s | 60.81 tok/s | 0.524 s | 264.84 tok/s |
87
+ | 8 | **5.52 s** | 55.84 tok/s | 0.709 s | **294.89 tok/s** |
88
+ | 10 offered / 8 active | 7.40 s | 55.38 tok/s | 1.297 s | 249.20 tok/s |
89
+
90
+ **60/60 base and extended health checks passed.** Mean request decode measures generation after the first token. Aggregate throughput divides all output tokens by complete batch wall time, including scheduling and prefill. They are different metrics, and output length varies between configurations.
91
+
92
+ For comparison, the fresh **Q4_K_XL + DFlash2 (7-token)** C1 run at 256K capacity completed the same ten-question batch in **17.32 s**, at **131.65 tok/s mean request decode** and **0.351 s mean first-token latency**, with 10/10 health. Ciru Halo Agent completed that batch **1.63× faster**. The measured ROCmFP4 C1 MTP4 mode took **19.56 s**, at **113.31 tok/s**. Complete concurrency sweeps, alternative modes, and their health outcomes are on the research page.
93
+
94
+ ## Fast prompt ingestion
95
+
96
+ Cold input, without a prefix-cache hit. These are backend prefill-counter rates; each request then generated a natural 17-token acknowledgement. The short acknowledgement is not a sustained decode or reasoning benchmark.
97
+
98
+ | Input tokens | Ciru Halo Agent | Q4_K_XL | ROCmFP4 |
99
+ | ---: | ---: | ---: | ---: |
100
+ | 1,024 | **1,868 tok/s** | 1,056 tok/s | 1,058 tok/s |
101
+ | 8,192 | **1,715 tok/s** | 1,174 tok/s | 1,046 tok/s |
102
+ | 32,768 | **1,509 tok/s** | 998 tok/s | 842 tok/s |
103
+ | 65,536 | **1,287 tok/s** | 794 tok/s | 629 tok/s |
104
+ | 131,072 | **983 tok/s** | 552 tok/s | 414 tok/s |
105
+ | 253,952 | **668 tok/s** | 246 tok/s | 252 tok/s |
106
+
107
+ The complete near-256K cold request took **380.83 s**, versus **1,032.06 s for Q4_K_XL** and **1,007.04 s for ROCmFP4**. ROCmFP4’s lower-depth rows come from its retained author-profile sweep; the near-256K point is the fresh cold capture. The research page identifies each source run.
108
+
109
+ ## Returning agents and large histories
110
+
111
+ All rows below use **all ten coding questions**, populated histories, and confirmed prefix-cache reuse. Timing includes queueing, suffix prefill, and generation; preparing the shared history is separate.
112
+
113
+ | Shared history | Concurrency | Ciru mean decode | Ciru mean first-token latency | Ciru ten-task completion |
114
+ | ---: | ---: | ---: | ---: | ---: |
115
+ | 63,000 tokens | 1 | **123.34 tok/s** | 0.848 s | 21.49 s |
116
+ | 63,000 tokens | 8 | **32.08 tok/s** | 3.968 s | 13.69 s |
117
+ | 253,952 tokens | 1 | **94.00 tok/s** | 4.619 s | 66.37 s |
118
+ | 253,952 tokens | 8 | **11.10 tok/s** | 18.033 s | 53.64 s |
119
+
120
+ **40/40 base and extended health checks passed.** At 63K/C1, Q4_K_XL and ROCmFP4 completed the ten returns in **52.24 s** and **33.45 s**. Near 256K/C1, they completed in **75.93 s** and **61.06 s**: ROCmFP4 finished that batch sooner despite Ciru’s higher generation rate. First-token latency and output length also matter.
121
+
122
+ The tested Q4_K_XL and ROCmFP4 configurations did not share the warmed prefix successfully across eight request slots. Their **cached C8 comparison remains unavailable**; this does not establish that the runners cannot support it.
123
+
124
+ ## Quality and actual agent work
125
+
126
+ The release was evaluated separately from the short coding speed screen. Full EvalScope runs use the native **541 IFEval, 1,319 GSM8K, and 164 HumanEval** tasks. Tool and Hermes scores use their own native graders.
127
+
128
+ | Quality measure | Ciru Halo Agent | Q4_K_XL | ROCmFP4 |
129
+ | --- | ---: | ---: | ---: |
130
+ | Full GSM8K | **1,254/1,319 · 95.07%** | 1,252/1,319 · 94.92% | 1,228/1,319 · 93.10% |
131
+ | Full HumanEval | 144/164 · 87.80% | **151/164 · 92.07%** | 147/164 · 89.63% |
132
+ | Full IFEval, prompt strict | 390/541 · 72.09% | 413/541 · 76.34% | **421/541 · 77.82%** |
133
+ | Difficult HumanEval subset | **4/6** | 2/6 | 0/6 |
134
+ | Tool suite, 69 core + 15 hard | 140/168 points | 138/168 points | **143/168 points** |
135
+ | BF16 top-token agreement | 45/56 | **47/56** | 41/56 |
136
+
137
+ Full EvalScope used C8, thinking off, greedy sampling, and a 32,768-token response allowance. Ciru and ROCmFP4 used 256K capacity; Q4’s retained full-suite run used 65K capacity and its native chat protocol. Ciru had two IFEval length stops; ROCmFP4 had two GSM8K length stops. All other requests in those two runs completed naturally. Their complete evaluation wall times, including orchestration and grading, were **4,006 s** and **5,024 s**, respectively.
138
+
139
+ The difficult subset and tool suite are single blocks, not repeated confidence estimates. BF16 agreement uses seven held-out documents with eight adjacent prefix positions each: these 56 correlated anchors measure short-prefix fidelity, not task accuracy. The original BF16 source was fixed; the comparison quants’ exact source-weight ancestry is not established.
140
+
141
+ ### Hermes: three complete passes per model and concurrency
142
+
143
+ Twenty native agent scenarios per pass, three seeds, 256K capacity, up to 64 turns, and output bounded by remaining context. Scores below are native scores, not percentages of tasks passed.
144
+
145
+ | Model | C1 mean score | C1 mean workflow time | C8 mean score | C8 mean workflow time |
146
+ | --- | ---: | ---: | ---: | ---: |
147
+ | **Ciru Halo Agent** | 90.33 | 820.00 s | 92.00 | 369.66 s |
148
+ | Q4_K_XL | 94.00 | 753.18 s | 94.00 | 358.95 s |
149
+ | ROCmFP4 | 93.67 | 681.84 s | 91.00 | 550.07 s |
150
+
151
+ Ciru’s C8 mean workflow time was **1.49× faster than ROCmFP4**, while Q4 was slightly faster than Ciru in this suite. One interrupted Q4 transport run was retained separately and replaced once; it is excluded from the three complete passes. The research page includes every pass, score range, token timing, and failure count.
152
+
153
+ ## Where the speed advantage changes
154
+
155
+ Ciru Halo Agent’s strongest results are speculative coding, prompt ingestion, and shared-history workloads. **It is not the fastest model on every task.** Four ordinary prose tasks with automatic speculation measured **49.90–63.27 tok/s**, compared with approximately **59.5–59.8 tok/s for Q4** and **73.9–74.1 tok/s for ROCmFP4** in the retained no-speculation prose captures. Ciru’s target-only diagnostic measured approximately **56–58 tok/s**. The diagnostic skips draft work; its allocations still include the drafter.
156
+
157
+ 256K capacity and the successful return tests do not establish uniformly strong reasoning across every long document. The benchmarked release profile is text-only; earlier optional vision-profile results are not presented as evidence for this exact profile. Hardware, software builds, memory pools, prompt mix, and speculation acceptance affect results.
158
+
159
+ ## Credits and sponsorship
160
+
161
+ **Ciru Halo Agent is built by Ciru / Crown ([jcbtc](https://huggingface.co/jcbtc)). I am sponsored by AMD.**
162
+
163
+ - **[Ornith Team](https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B)** created the base Ornith model. Ciru’s work is its hardware-specific quantization, kernels, serving integration, and evaluation; we do not claim authorship of the base model’s training.
164
+ - **[jzinno](https://huggingface.co/jzinno/Ornith-1.5-35B-A3B-DFlash2)** trained the Ornith DFlash2 drafter, initialized from **[z-lab’s Qwen3.5 DFlash](https://huggingface.co/z-lab/Qwen3.5-35B-A3B-DFlash)**. Credit also goes to the **[DFlash](https://arxiv.org/abs/2602.06036)** and **[DFlash 2](https://inco.ai/blog/dflash2/)** authors and the NVIDIA Nemotron dataset contributors whose work supports that drafter.
165
+ - **[Qwen](https://github.com/QwenLM)** supplied the underlying Qwen model architecture used by this Ornith checkpoint.
166
+ - **[vLLM](https://github.com/vllm-project/vllm)**, **[AMD ROCm](https://github.com/ROCm)**, **[AITER](https://github.com/ROCm/aiter)**, **[Composable Kernel](https://github.com/ROCm/composable_kernel)**, **[PyTorch](https://github.com/pytorch/pytorch)**, and **[Triton](https://github.com/triton-lang/triton)** provide the runtime and compiler foundations.
167
+ - Thanks to **[peculiar-ragdoll](https://huggingface.co/peculiar-ragdoll/Unsloth-Ornith-1.5-35B-A3B)**, **[Daniel Han Chen](https://github.com/danielhanchen/llama.cpp)**, **[julianmb](https://huggingface.co/julianmb/Ornith-1.5-35B-A3B-ROCmFP4-GGUF)**, **[HaloFPX](https://github.com/julianmb/halofpx)**, and the llama.cpp/ROCmFP4 community for the comparison builds. Their artifacts are baselines, not components of Ciru’s target weights. The Q4 quant is a community Unsloth-style release, not an official Unsloth upload.
168
+
169
+ See **[CREDITS.md](CREDITS.md)** for pinned provenance and license details. The target model follows Ornith’s MIT declaration; the DFlash2 companion is Apache-2.0 and runtime components retain their own licenses.
RELEASE.json ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Ornith1.5 Ciru Halo Agent",
3
+ "source_repository": "https://github.com/ciru-ai/ornith-ciru-halo-agent",
4
+ "source_commit": "ec6a047",
5
+ "benchmarks": "https://llm.ciru.ai/research/ornith-strix/",
6
+ "target_revision": "10fbf86fed7ecee4a061f8b499a618f46001cac1",
7
+ "draft_revision": "9b4852c05fd00b672b7434b1bb105bc03c8682b0",
8
+ "files_bytes": {
9
+ "INSTALL.md": 5040,
10
+ "README.md": 13514,
11
+ "CREDITS.md": 6275,
12
+ ".gitattributes": 220,
13
+ "NOTICE": 1088,
14
+ "BUILD.md": 8422,
15
+ "NATIVE-BUILD-CHECK.json": 1700,
16
+ "bundle/paths.env": 268,
17
+ "bundle/serve.sh": 1021,
18
+ "runtime/INSTALL-ORNITH-RUNTIME.sh": 794,
19
+ "runtime/INSTALL-RUNTIME.sh": 4428,
20
+ "runtime/README.md": 1167,
21
+ "runtime/UPSTREAM-RUNTIME.md": 14159,
22
+ "runtime/nixos-module.nix": 349,
23
+ "runtime/requirements-runtime.lock": 2129,
24
+ "runtime/runtime-env.sh": 4973,
25
+ "runtime/shell.nix": 416,
26
+ "runtime/ciru-halo-agent-aiter-source.tar.gz": 55734195,
27
+ "runtime/ciru-halo-agent-vllm-source.tar.gz": 40520111,
28
+ "assets/ciru-halo-agent.png": 2424752,
29
+ "LICENSES/ornith-upstream-model-card.md": 29870,
30
+ "LICENSES/dflash2-upstream-model-card.md": 7675,
31
+ "LICENSES/dflash2-9b4852c05fd0-LICENSE": 11358,
32
+ "LICENSES/dflash2-main-LICENSE": 11358,
33
+ "LICENSES/sources.json": 1365,
34
+ "LICENSES/flash-linear-attention-MIT.txt": 1085,
35
+ "LICENSES/Apache-2.0.txt": 11358,
36
+ "runtime/aiter-jit-gfx1151/module_aiter_core.so": 567024,
37
+ "runtime/wheels/amd_aiter-0.1.0rc1-cp314-cp314-linux_x86_64.whl": 67412360,
38
+ "runtime/wheels/vllm-0.1.0rc2.dev9+g9255fd9fb9.rocm100-cp314-cp314-linux_x86_64.whl": 44318322,
39
+ "bundle/LICENSES/LICENSE-APACHE-2.0": 11358,
40
+ "bundle/models/source-prefill.safetensors": 1761622768,
41
+ "bundle/native/libornith_attention_iu4.so": 186640,
42
+ "bundle/native/libornith_dense_g256.so": 69824,
43
+ "bundle/native/libornith_dense_g256_n32.so": 76848,
44
+ "bundle/native/libornith_head_i8_tile.so": 128952,
45
+ "bundle/native/libornith_persistent_iu4.so": 103792,
46
+ "bundle/native/libornith_routed_direct.so": 156392,
47
+ "bundle/native/libornith_routed_n32.so": 151928,
48
+ "bundle/native/libornith_routed_storage_n32.so": 158536,
49
+ "bundle/packaging/serve.sh": 1474,
50
+ "bundle/cache/aiter/module_aiter_core.so": 567024,
51
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/INSTALLER": 2,
52
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/METADATA": 256,
53
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/RECORD": 2783,
54
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/REQUESTED": 0,
55
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/WHEEL": 91,
56
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/direct_url.json": 105,
57
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/entry_points.txt": 121,
58
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/top_level.txt": 12,
59
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/uv_build.json": 2,
60
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/uv_cache.json": 137,
61
+ "bundle/plugin-site/ornith_g256/__init__.py": 1174,
62
+ "bundle/plugin-site/ornith_g256/adaptive_c1.py": 14985,
63
+ "bundle/plugin-site/ornith_g256/attention.py": 772,
64
+ "bundle/plugin-site/ornith_g256/attention_compact.py": 10412,
65
+ "bundle/plugin-site/ornith_g256/attention_fast.py": 12274,
66
+ "bundle/plugin-site/ornith_g256/attention_folded.py": 9570,
67
+ "bundle/plugin-site/ornith_g256/attention_iu4.py": 2575,
68
+ "bundle/plugin-site/ornith_g256/attention_iu4_persistent.py": 12418,
69
+ "bundle/plugin-site/ornith_g256/attention_mixed.py": 4138,
70
+ "bundle/plugin-site/ornith_g256/attention_partition.py": 8642,
71
+ "bundle/plugin-site/ornith_g256/attention_storage.py": 4117,
72
+ "bundle/plugin-site/ornith_g256/attention_tile.py": 9641,
73
+ "bundle/plugin-site/ornith_g256/attention_verify.py": 3755,
74
+ "bundle/plugin-site/ornith_g256/attention_window.py": 3612,
75
+ "bundle/plugin-site/ornith_g256/cache_full1120.py": 3017,
76
+ "bundle/plugin-site/ornith_g256/column_backend.py": 5752,
77
+ "bundle/plugin-site/ornith_g256/column_kernel.py": 9422,
78
+ "bundle/plugin-site/ornith_g256/config.py": 2869,
79
+ "bundle/plugin-site/ornith_g256/dense_n32.py": 2449,
80
+ "bundle/plugin-site/ornith_g256/dense_source.py": 1818,
81
+ "bundle/plugin-site/ornith_g256/dflash_conv_boundary.py": 5508,
82
+ "bundle/plugin-site/ornith_g256/dflash_spec.py": 1393,
83
+ "bundle/plugin-site/ornith_g256/dynamic_graphs.py": 11779,
84
+ "bundle/plugin-site/ornith_g256/gdn_compact.py": 5202,
85
+ "bundle/plugin-site/ornith_g256/gdn_compact_kernel.py": 10042,
86
+ "bundle/plugin-site/ornith_g256/gdn_spec.py": 5696,
87
+ "bundle/plugin-site/ornith_g256/launch.py": 16994,
88
+ "bundle/plugin-site/ornith_g256/lifecycle.py": 8269,
89
+ "bundle/plugin-site/ornith_g256/loader.py": 2933,
90
+ "bundle/plugin-site/ornith_g256/method.py": 10049,
91
+ "bundle/plugin-site/ornith_g256/moe_base.py": 3683,
92
+ "bundle/plugin-site/ornith_g256/native.py": 12196,
93
+ "bundle/plugin-site/ornith_g256/no_spec.py": 2618,
94
+ "bundle/plugin-site/ornith_g256/phase_dispatch.py": 2184,
95
+ "bundle/plugin-site/ornith_g256/prefill_draft.py": 5630,
96
+ "bundle/plugin-site/ornith_g256/prefix_cache.py": 15261,
97
+ "bundle/plugin-site/ornith_g256/runtime.py": 6009,
98
+ "bundle/plugin-site/ornith_g256/worker.py": 13579,
99
+ "bundle/plugin-site/ornith_g256/worker_base.py": 4601,
100
+ "bundle/plugin-site/ciru_ornith_g256-0.0.2a0.dist-info/licenses/LICENSE-APACHE-2.0": 11358,
101
+ "bundle/models/draft/LICENSE": 11358,
102
+ "bundle/models/draft/README.md": 7675,
103
+ "bundle/models/draft/config.json": 1311,
104
+ "bundle/models/draft/download-source.json": 1294,
105
+ "bundle/models/draft/evaluation.json": 8078,
106
+ "bundle/models/draft/manifest.json": 1599,
107
+ "bundle/models/draft/model.safetensors": 1052513488,
108
+ "bundle/models/target/.ciru-source-verified.json": 13078,
109
+ "bundle/models/target/chat_template.jinja": 7536,
110
+ "bundle/models/target/config.json": 3438,
111
+ "bundle/models/target/configuration.json": 58,
112
+ "bundle/models/target/g256-layer-00.safetensors": 434161416,
113
+ "bundle/models/target/g256-layer-01.safetensors": 434161416,
114
+ "bundle/models/target/g256-layer-02.safetensors": 434161416,
115
+ "bundle/models/target/g256-layer-03.safetensors": 430917376,
116
+ "bundle/models/target/g256-layer-04.safetensors": 434161416,
117
+ "bundle/models/target/g256-layer-05.safetensors": 434161416,
118
+ "bundle/models/target/g256-layer-06.safetensors": 434161416,
119
+ "bundle/models/target/g256-layer-07.safetensors": 430917376,
120
+ "bundle/models/target/g256-layer-08.safetensors": 434161416,
121
+ "bundle/models/target/g256-layer-09.safetensors": 434161416,
122
+ "bundle/models/target/g256-layer-10.safetensors": 434161432,
123
+ "bundle/models/target/g256-layer-11.safetensors": 430917392,
124
+ "bundle/models/target/g256-layer-12.safetensors": 434161432,
125
+ "bundle/models/target/g256-layer-13.safetensors": 434161432,
126
+ "bundle/models/target/g256-layer-14.safetensors": 434161432,
127
+ "bundle/models/target/g256-layer-15.safetensors": 430917392,
128
+ "bundle/models/target/g256-layer-16.safetensors": 434161432,
129
+ "bundle/models/target/g256-layer-17.safetensors": 434161432,
130
+ "bundle/models/target/g256-layer-18.safetensors": 434161432,
131
+ "bundle/models/target/g256-layer-19.safetensors": 430917392,
132
+ "bundle/models/target/g256-layer-20.safetensors": 434161432,
133
+ "bundle/models/target/g256-layer-21.safetensors": 434161432,
134
+ "bundle/models/target/g256-layer-22.safetensors": 434161432,
135
+ "bundle/models/target/g256-layer-23.safetensors": 430917392,
136
+ "bundle/models/target/g256-layer-24.safetensors": 434161432,
137
+ "bundle/models/target/g256-layer-25.safetensors": 434161432,
138
+ "bundle/models/target/g256-layer-26.safetensors": 434161432,
139
+ "bundle/models/target/g256-layer-27.safetensors": 430917392,
140
+ "bundle/models/target/g256-layer-28.safetensors": 434161432,
141
+ "bundle/models/target/g256-layer-29.safetensors": 434161432,
142
+ "bundle/models/target/g256-layer-30.safetensors": 434161432,
143
+ "bundle/models/target/g256-layer-31.safetensors": 430917392,
144
+ "bundle/models/target/g256-layer-32.safetensors": 434161432,
145
+ "bundle/models/target/g256-layer-33.safetensors": 434161432,
146
+ "bundle/models/target/g256-layer-34.safetensors": 434161432,
147
+ "bundle/models/target/g256-layer-35.safetensors": 430917392,
148
+ "bundle/models/target/g256-layer-36.safetensors": 434161432,
149
+ "bundle/models/target/g256-layer-37.safetensors": 434161432,
150
+ "bundle/models/target/g256-layer-38.safetensors": 434161432,
151
+ "bundle/models/target/g256-layer-39.safetensors": 430917392,
152
+ "bundle/models/target/generation_config.json": 202,
153
+ "bundle/models/target/head-w8.safetensors": 516505840,
154
+ "bundle/models/target/merges.txt": 3353259,
155
+ "bundle/models/target/model.safetensors.index.json": 171704,
156
+ "bundle/models/target/preprocessor_config.json": 390,
157
+ "bundle/models/target/processor_config.json": 1191,
158
+ "bundle/models/target/protected-00.safetensors": 1913075328,
159
+ "bundle/models/target/protected-01.safetensors": 3842944,
160
+ "bundle/models/target/protected-02.safetensors": 2784544,
161
+ "bundle/models/target/protected-03.safetensors": 3838744,
162
+ "bundle/models/target/protected-04.safetensors": 3842968,
163
+ "bundle/models/target/protected-05.safetensors": 2784560,
164
+ "bundle/models/target/protected-06.safetensors": 3838768,
165
+ "bundle/models/target/protected-07.safetensors": 3842968,
166
+ "bundle/models/target/protected-08.safetensors": 2784560,
167
+ "bundle/models/target/protected-09.safetensors": 3838768,
168
+ "bundle/models/target/protected-10.safetensors": 3842968,
169
+ "bundle/models/target/protected-11.safetensors": 2784560,
170
+ "bundle/models/target/protected-12.safetensors": 3838768,
171
+ "bundle/models/target/protected-13.safetensors": 3842968,
172
+ "bundle/models/target/protected-14.safetensors": 2784560,
173
+ "bundle/models/target/protected-15.safetensors": 1690442880,
174
+ "bundle/models/target/quantize_config.json": 107,
175
+ "bundle/models/target/tokenizer.json": 12807982,
176
+ "bundle/models/target/tokenizer_config.json": 16718,
177
+ "bundle/models/target/video_preprocessor_config.json": 385,
178
+ "bundle/models/target/vocab.json": 6722759
179
+ },
180
+ "native_sha256": {
181
+ "libornith_attention_iu4.so": "2905806824bece62ce9d9140608859df869f3e3d3663c67bf79ad4ea495cd61f",
182
+ "libornith_dense_g256.so": "855838687084170807c5ba4556e9771f9b1b26f3556f48c0a16dbd8bbee41c9c",
183
+ "libornith_dense_g256_n32.so": "24dbf9b1eaff06ff6530e4f37292347bcf073b3c07f7e16ea6ab111711162a40",
184
+ "libornith_head_i8_tile.so": "2c03de5ed015a052b407436c7e42b50fa33ef76cb46dccab9b226546ca1d1e09",
185
+ "libornith_persistent_iu4.so": "40e5cf35157c3e716de8067f7eef1312a3b9e787dd52a6f2e232ccd2d07fa68c",
186
+ "libornith_routed_direct.so": "5b3ca6826547e0ff1c417e733229e104721cec403ccd8f88f7fcdb1726d6f4ed",
187
+ "libornith_routed_n32.so": "48415e71f6c85e3aefcecf99d72607bb05900244b4aaa9a7ba2c58378d92f5fb",
188
+ "libornith_routed_storage_n32.so": "3ea288cd0e37a4c373038744c3cc4cd4eac09675ac137e953d5ae7a6cd43dd3d"
189
+ },
190
+ "checks": {
191
+ "clean_runtime_install": "passed on Ciru",
192
+ "release_launcher_dry_run": "passed using new runtime",
193
+ "native_source_build": "8/8 compiled; distributed measured libraries unchanged",
194
+ "new_gpu_inference_run": false
195
+ }
196
+ }
runtime/README.md CHANGED
@@ -1,26 +1,13 @@
1
- # Ornith native runtime package
2
 
3
- This package reuses the retained GLM runtime engine installer and exact local
4
- vLLM/AITER wheels. It includes their source archives and retained licenses;
5
- it contains no GLM or Ornith model weights, NHI services or model selectors.
6
 
7
- On a compatible Linux host with uv, GCC/G++, git, pkg-config and xxd installed:
8
 
9
- bash INSTALL-ORNITH-RUNTIME.sh /path/to/new/ornith-runtime
10
 
11
- The installer downloads pinned Python/AMD/runtime dependencies. No installation
12
- or download occurs while exporting this package. The existing wheel package
13
- documents Ubuntu24.04+ or an equivalent ABI; other distributions remain subject
14
- to actual installation validation. On NixOS, use the included shell.nix and
15
- nixos-module.nix prerequisites to supply nix-ld and the host library path.
16
 
17
- The wrapper adapts the existing install to ORNITH_RUNTIME_ROOT. It never starts
18
- a model or changes services. Point the Ornith model bundle at that runtime root.
19
- The Ornith plugin, weights, draft and seven model-specific native libraries are
20
- separate release assets. Existing native RUNPATHs are resolved through the
21
- runtime's LD_LIBRARY_PATH; their presence alone is not a deployment failure.
22
-
23
- UPSTREAM-RUNTIME.md preserves the runtime's source identities, package contract
24
- and license provenance. Its GLM model/workload instructions are historical
25
- context and do not configure Ornith. The source archives retain vLLM Apache-2.0,
26
- AITER MIT and Composable Kernel MIT notices. Retain downloaded component notices.
 
1
+ # Ciru Halo Agent pinned runtime
2
 
3
+ Install from the release root using the instructions in [INSTALL.md](../INSTALL.md).
 
 
4
 
5
+ This directory supplies the exact vLLM and AITER wheels, their matching source archives, dependency lockfile, runtime environment setup, and installer used for Ornith1.5 Ciru Halo Agent. Stock vLLM is not a compatible substitute for this custom quantization path.
6
 
7
+ The installer creates a new isolated runtime and refuses to overwrite an existing one. It downloads pinned Python, PyTorch and ROCm dependencies. `INSTALL-ORNITH-RUNTIME.sh` supplies the bundle's expected runtime layout; `INSTALL-RUNTIME.sh` installs the pinned engine packages.
8
 
9
+ - vLLM: `0.1.0rc2.dev9+g9255fd9fb9.rocm100`, base `9255fd9fb9fedf4b29d574a8d8bb21d93892cc98` with included cache overlay notes.
10
+ - AITER: `0.1.0rc1`; source archive preserves its release modifications and Composable Kernel submodule contents.
11
+ - Python: 3.14.3; ROCm SDK 10.0.0; PyTorch `2.13.0+rocm10.0.0`.
 
 
12
 
13
+ Archive directories and upstream package identifiers retain their compatibility names. They do not name a different model. Licenses and preserved notices are included inside the source archives.