Publish model card, benchmarks, installation guide and upstream credits
Browse files- .gitattributes +4 -45
- BUILD.md +162 -0
- CREDITS.md +48 -0
- LICENSES/Apache-2.0.txt +202 -0
- LICENSES/dflash2-9b4852c05fd0-LICENSE +202 -0
- LICENSES/dflash2-main-LICENSE +202 -0
- LICENSES/dflash2-upstream-model-card.md +159 -0
- LICENSES/flash-linear-attention-MIT.txt +21 -0
- LICENSES/ornith-upstream-model-card.md +463 -0
- LICENSES/sources.json +44 -0
- NATIVE-BUILD-CHECK.json +41 -0
- NOTICE +20 -0
- README.md +169 -0
- RELEASE.json +196 -0
- runtime/README.md +8 -21
.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 |
-
|
| 27 |
-
*.tar.
|
| 28 |
-
*.
|
| 29 |
-
*.
|
| 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 |
+

|
| 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 |
+
[](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"><think> … </think></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"><tool_call></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 |
+

|
| 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 |
-
#
|
| 2 |
|
| 3 |
-
|
| 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 |
-
|
| 8 |
|
| 9 |
-
|
| 10 |
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 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 |
-
|
| 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|