This is Adam Pippert's personal research project. This Hub repository publishes source code and a training recipe, not model weights or a tuned checkpoint. It cannot be loaded directly with frompretrained().
Model Card
By Adam Pippert, published under mit, revision 577b44ee8d2b.
This is Adam Pippert's personal research project. This Hub repository publishes source code and a training recipe, not model weights or a tuned checkpoint. It cannot be loaded directly with frompretrained(). Source commit: 543345ea033370484ca226424afd73164d48ca35. Hub packaging adds this landing page and a copy of the project README; runtime code is unchanged. Fullcollar integration is deferred. This is not an IBM, Red Hat, or TypeSafe release. A local typed-decision runtime and reproducible training recipe around The code supports Choice distributions, ordered Score rubrics, and Boolean Noul probabilities. It downloads official IBM weights; no new pretrained model or production-quality…
Read Adam Pippert's full model card
Granite Decisions training starter
This is Adam Pippert's personal research project. This Hub repository publishes
source code and a training recipe, not model weights or a tuned checkpoint.
It cannot be loaded directly with from_pretrained().
- Source release v0.1.0
- Setup and quickstart
- Training instructions
- Original synthetic fixtures
- Official IBM base weights
Source commit: 543345ea033370484ca226424afd73164d48ca35. Hub packaging adds
this landing page and a copy of the project README; runtime code is unchanged.
Fullcollar integration is deferred. This is not an IBM, Red Hat, or TypeSafe release.
Granite Decisions v0.1.0
What this release is
A local typed-decision runtime and reproducible training recipe around IBM Granite 4.1 3B. The code supports Choice distributions, ordered Score rubrics, and Boolean Noul probabilities. It downloads official IBM weights; no new pretrained model or production-quality fine-tuned checkpoint is included.
The intended audience is developers and researchers adapting local decision models to their own labeled use cases. Decisions remain advisory. The default runtime abstains on uncalibrated output, low probability, ambiguity, and designated unknown labels.
Model and training
- Base:
ibm-granite/granite-4.1-3b, Apache-2.0. - Inference baseline: official Q4_K_M GGUF, pinned download and checksum.
- Fast path: frozen Granite features plus independently fitted linear heads.
- Calibration: temperature fitting on a separate labeled split.
- Optional backbone adaptation: BF16 supervised candidate cross-entropy LoRA.
- Training and evaluation commands: TRAINING.md.
The LoRA implementation is not proprietary RLCD. The reference interface is inspired by Jev; this is not an affiliated product or an exact TypeSafe SDK replacement.
Data provenance
No third-party task dataset has been used to train the bundled smoke artifacts.
The synthetic integration data was constructed with deterministic templates and
labels in scripts/make_smoke_data.py. The 54-row train, 54-row calibration, and
54-row test splits are published under validation/hyde-20260917/synthetic-data.
Templates are split by group, but vocabulary and topics overlap. The generator
and synthetic dataset use this repository's MIT license. No Jev outputs were used
as training labels. Jev was evaluated separately on the same 54 test inputs.
IBM's pretraining and post-training data are outside this project's control; consult the upstream model card. Future open-data experiments must record source URLs, immutable versions or content hashes, applicable licenses, transformations, and split provenance before training.
Measured limitations
On the small synthetic test set, Jev achieved 100% on all three fields. Untuned
Granite scored 98.1% routing, 50.0% Boolean, and 92.6% scope accuracy. Frozen heads
scored 61.1%, 77.8%, and 72.2%, respectively. These are integration examples and
must not be presented as a representative benchmark. Complete evidence is in
validation/hyde-20260917.
The optional three-step LoRA smoke verified GPU gradients, weight updates, saving, and reload. Its validation NLL worsened from 0.0459 to 3.7917. That checkpoint is not included or recommended for use. No tuned adapter-to-GGUF promotion path has yet been validated.
The native baseline evaluates questions sequentially and supports up to 26 options. Fast heads require registered question definitions. Novel-schema calibration, out-of-domain reliability, and adversarial robustness are unproven. Syntax validity is not judgment correctness; confidence is not authority to act.
Hardware and reproducibility
Tested on AMD Radeon 8060S / gfx1151, Fedora Atomic 44 with a dedicated Toolbx. ROCm layer offload was observed for 41/41 layers. Optional PyTorch uses ROCm 7.2. RHEL, OpenShift, CUDA, and other GPUs have not been validated. CPU unit tests do not establish GPU compatibility. See the validation records for exact versions.
Licensing
Project code and original synthetic fixtures: MIT. IBM weights: Apache-2.0. llama.cpp: MIT, with its license included beside the patch. Preserve upstream licenses when redistributing weights or components. No credentials or model weights are committed to this repository.
Identity and Version
- Repository
- adampippert/granite-decisions
- Publisher
- Adam Pippert
- Task
- Not stated by the source
- Modality
- Other
- Library
- Not stated by the source
- Parameters
- Not stated by the source
- Languages
- en
- Revision
- 577b44ee8d2bdaa3f4d5d98eb745d3635e8fa39d
- First published
- 2026-09-18
- Last updated
- 2026-09-18
Files and Weights
70 files, 559.6 KB in total.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| .github/workflows/tests.yml | Configuration | 441 B | — |
| examples/fullcollar_shadow.py | Configuration | 710 B | — |
| examples/questions.json | Configuration | 881 B | — |
| examples/systemone-request.json | Configuration | 1.2 KB | — |
| scripts/benchmark_decisions.py | Configuration | 9.0 KB | — |
| scripts/download_granite.py | Configuration | 1.8 KB | — |
| scripts/finetune_lora.py | Configuration | 7.4 KB | — |
| scripts/make_smoke_data.py | Configuration | 4.0 KB | — |
| scripts/run_training_smoke.py | Configuration | 3.8 KB | — |
| scripts/smoke_native.py | Configuration | 6.2 KB | — |
| src/granite_decisions/__init__.py | Configuration | 192 B | — |
| src/granite_decisions/__main__.py | Configuration | 48 B | — |
| src/granite_decisions/cli.py | Configuration | 8.3 KB | — |
| src/granite_decisions/contracts.py | Configuration | 6.7 KB | — |
| src/granite_decisions/fullcollar.py | Configuration | 1.4 KB | — |
| src/granite_decisions/journal.py | Configuration | 4.1 KB | — |
| src/granite_decisions/llamacpp.py | Configuration | 12.6 KB | — |
| src/granite_decisions/prompting.py | Configuration | 1.0 KB | — |
| src/granite_decisions/runtime.py | Configuration | 3.7 KB | — |
| src/granite_decisions/service.py | Configuration | 2.3 KB | — |
| src/granite_decisions/statistics.py | Configuration | 3.4 KB | — |
| src/granite_decisions/training.py | Configuration | 10.2 KB | — |
| tests/test_benchmark.py | Configuration | 2.7 KB | — |
| tests/test_core.py | Configuration | 12.9 KB | — |
| tests/test_fullcollar.py | Configuration | 1.2 KB | — |
| tests/test_native.py | Configuration | 4.8 KB | — |
| tests/test_service.py | Configuration | 3.2 KB | — |
| validation/hyde-20260917/comparison.json | Configuration | 13.1 KB | — |
| validation/hyde-20260917/head-evaluation.json | Configuration | 8.4 KB | — |
| validation/hyde-20260917/lora-smoke.json | Configuration | 1.3 KB | — |
| validation/hyde-20260917/native-smoke.json | Configuration | 3.2 KB | — |
| validation/hyde-20260917/synthetic-data/questions.json | Configuration | 646 B | — |
| validation/jev-review-release.json | Configuration | 7.3 KB | — |
| validation/native-cpu-smoke.json | Configuration | 2.9 KB | — |
| CONTRIBUTING.md | Documentation | 1.0 KB | — |
| LICENSE | Documentation | 1.1 KB | — |
| MODEL_CARD.md | Documentation | 3.8 KB | — |
| PROJECT_README.md | Documentation | 19.4 KB | — |
| README.md | Documentation | 4.8 KB | — |
| TRAINING.md | Documentation | 10.7 KB | — |
| TYPESAFE-COMPATIBILITY.md | Documentation | 5.4 KB | — |
| VALIDATION.md | Documentation | 7.7 KB | — |
| patches/LLAMA-LICENSE | Documentation | 1.1 KB | — |
| validation/RELEASE-REVIEW.md | Documentation | 1.1 KB | — |
| validation/hyde-20260917/README.md | Documentation | 644 B | — |
| MANIFEST.in | Other | 372 B | — |
| deploy/hyde-native.sh | Other | 3.4 KB | — |
| deploy/run-hyde.sh | Other | 1.5 KB | — |
| deploy/serve-native.sh | Other | 941 B | — |
| deploy/setup-finetune.sh | Other | 971 B | — |
| deploy/setup-toolbox.sh | Other | 634 B | — |
| examples/training-format.jsonl | Other | 656 B | — |
| patches/llama-grammar-probabilities.patch | Other | 1.5 KB | — |
| pyproject.toml | Other | 577 B | — |
| requirements-tested.txt | Other | 203 B | — |
| validation/hyde-20260917/heads.jsonl | Other | 127.8 KB | — |
| validation/hyde-20260917/jev.jsonl | Other | 41.8 KB | — |
| validation/hyde-20260917/requirements-finetune.lock.txt | Other | 519 B | — |
| validation/hyde-20260917/requirements-heads.lock.txt | Other | 315 B | — |
| validation/hyde-20260917/rpm-versions.txt | Other | 186 B | — |
| validation/hyde-20260917/synthetic-data/README.txt | Other | 260 B | — |
| validation/hyde-20260917/synthetic-data/calibration.jsonl | Other | 10.0 KB | — |
| validation/hyde-20260917/synthetic-data/test.jsonl | Other | 9.9 KB | — |
| validation/hyde-20260917/synthetic-data/train.jsonl | Other | 9.0 KB | — |
| validation/hyde-20260917/tests.txt | Other | 6.7 KB | — |
| validation/hyde-20260917/untuned.jsonl | Other | 123.6 KB | — |
| validation/unit-tests-update.txt | Other | 6.2 KB | — |
| validation/unit-tests.txt | Other | 4.9 KB | — |
| .gitattributes | Repository | 95 B | — |
| .gitignore | Repository | 153 B | — |
License and Download
- License
- mit
- Access
- Open weights, no gate
Released by Adam Pippert through its official repository on Hugging Face. Read the license.
Built From
- Derived from ibm-granite/granite-4.1-3b
Questions About granite-decisions
Can I use granite-decisions commercially?
Yes. granite-decisions is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.