alt.freeweights.vision / strands-decider-26B-A4B-gemma4-v1-2610
From: amazon <huggingface.co/amazon>Newsgroups: alt.freeweights.visionSubject:

strands-decider-26B-A4B-gemma4-v1-2610

Date: 2026-11-14Commit: f08dc85Signed: 2DC28CC7B26A283B ✓

Text classification model. Safetensors weights, 273 MB in all. Published by amazon under Apache-2.0.

vision273MBstrands-decider-26B-A4B-gemma4-v1-2610safetensorspermissive
FactsParamsnot statedSize273 MBFormatssafetensorsTasktext classificationLicenseApache-2.0From sourcepermissive
$ fw get amazon/strands-decider-26B-A4B-gemma4-v1-2610
# manifest sha256 a881b58497d7… · 273 MB · 23 files
$ fw verify ./strands-decider-26B-A4B-gemma4-v1-2610 amazon/strands-decider-26B-A4B-gemma4-v1-2610
From sourceHosted (signed)amazon/strands-decider-26B-A4B-gemma4-v1-2610Last check: 2026-11-14 21:35 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Adapter of gemma-4-26B-A4B-it.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
273 MB
Weights
240 MB (safetensors)
Parameters
not stated
Formats
safetensors
Task
text classification
License
Apache-2.0 (permissive)
Files
23, each with a sha256
Publisher
amazon
Added
2026-11-14
Section
alt.freeweights.vision
Lineage

Original release from the publisher.

Base model: google/gemma-4-26B-A4B-it

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-14 21:35 UTCpassed

Model card

From the publisher at commit f08dc85. Shown as plain text with links; images open at the publisher.

strands-decider-26B-A4B-gemma4-v1-2610#

The main home of this model is StrandsAgents/strands-decider-26B-A4B-gemma4-v1-2610. The same files are also at amazon/strands-decider-26B-A4B-gemma4-v1-2610.

Strands decider is a small, fast decision model for agentic AI. Unlike an LLM, which can generate arbitrary text, a decision model picks between sets of options and rates things on a scale, and every answer carries a calibrated confidence. It fits the decisions inside an agentic workflow: model routing, tool selection, argument checking, triage, guardrails, evaluations, and the rote decisions of a hybrid agent that leaves the hard ones to an LLM.

This is v1, the first Strands decider on Gemma 4, on google/gemma-4-26B-A4B-it. It trains on hobson-v21's data (123,339 rows) plus 12,263 code-task rows. The teacher is Qwen/Qwen3.5-4B: its output distributions are training targets where its answer agrees with the gold label. A frozen-KL anchor keeps the answers close to those of StrandsAgents/strands-decider-2B-hobson-v19. The checkpoint is a soup of three seeds of this recipe: each layer's LoRA update is the exact mean of the seeds' updates (stored as one rank-48 adapter), and the score of an option is the mean of the three heads' scores. The soup was then calibrated.

Model names: strands-decider-<size>-<base>-v<N>-<YYMM>, that is the base model's size, the base model family, the release on that family (v1 is the first) and the release month (docs/naming.md in the code repository).

This repository holds a LoRA adapter on google/gemma-4-26B-A4B-it plus a small readout head that scores the options of a typed question (noul, a yes/no question; choice, one of N options; score, a level on an ordered scale). The code, the training recipe, the data inventory and the evaluations are at https://github.com/strands-labs/strands-decider, under the same Apache-2.0 license as this model (see LICENSE.md).

Use#

pip install "strands-decider @ git+https://github.com/strands-labs/strands-decider"

This installs the code repository's main, which has Gemma 4 support; the package on PyPI does not have it yet.

Ask one or more questions about a state. Pass --device cuda, mps or cpu; without it, the best available device is used. The base weights download from the Hub at first use.

strands-decider ask StrandsAgents/strands-decider-26B-A4B-gemma4-v1-2610 \
  --state "Help! My payouts have been failing for 3 days! " \
  --choice "Which team should handle this?=billing,sales,retail" \
  --noul "Does this convey urgency?" \
  --score "How frustrated is the writer?=calm,frustrated,depressed"

The output of this checkpoint (--device cpu; other devices differ in the last digits):

noul_0 noul = 0.981
choice_0 -> billing (confidence 0.712)
    billing                  0.808
    sales                    0.127
    retail                   0.065
score_0 score = 1.00 (confidence 0.828)
    0: calm                                     0.094
    1: frustrated                               0.812
    2: depressed                                0.094

Or serve it over HTTP. The server binds to 127.0.0.1 and has no authentication: use it for local experiments.

strands-decider serve StrandsAgents/strands-decider-26B-A4B-gemma4-v1-2610 --port 8000
curl -s localhost:8000/v1/systemone -H 'content-type: application/json' -d '{
  "state": "Help! My payouts have been failing for 3 days!",
  "questions": {"is_urgent": {"type": "noul", "instructions": "Does this convey urgency?"}}
}'

In Python, strands_decider.modeling.StrandsDeciderModel.load("StrandsAgents/strands-decider-26B-A4B-gemma4-v1-2610"). The adapter in lora/ is a standard PEFT adapter on the Gemma 4 text decoder (transformers.Gemma4ForConditionalGeneration(...).model.language_model); the head is head.safetensors.

Results#

evaluationtasks rightBrierECEserved
JevBench public, window 4096207/2310.1620.051these files
benchmarkscore
Decision Index 0.2.1, balanced skill (window 32,768)48.69
internal setaccuracyn
eval: held-out short tasks0.7086,000
eval: boardgame0.869900
eval: contractnli0.8701,026
eval: hotpotqa (held out)0.897959
eval: musique0.9221,199
eval: musique, answerable0.917599
eval: musique, unanswerable0.928600
eval: [4] adequacy_hs20.808234
eval: [5] gen:adequacy0.911302
eval: [6] code/bug_swapped_operands0.92189
eval: [6] code/bug_variable_misuse0.85489
eval: [6] code/bug_wrong_binary_operator0.77589
eval: [6] code/commit_message0.98989
eval: [6] code/correct_solution0.56289
eval: [6] code/cwe_choice0.93389
eval: [6] code/docstring_match0.95589
eval: [6] code/exception_type0.89989
eval: [6] code/exec_input0.796142
eval: [6] code/exec_output0.834662
eval: [6] code/needle_function0.980391
eval: [6] code/review_needed0.60789

JevBench is the external benchmark (231 public tasks); the Decision Index is the decision-model index of the decision-index kit. The internal sets are this recipe's held-out short tasks, multi-step documents, answer-adequacy judgements and code tasks. evaluation/README.md in the code repository describes each set. Per-skill results and the raw reports and logs are in eval/summary.json and eval/internal/.

Limitations#

  • Questions are read less than documents. With the state and options fixed, a changed question often gets the same answer. Phrase a question so the obvious reading is the intended one.
  • Long, multi-step documents are the weak spot: JevBench's hard tier scores far below its easy tier.
  • score and noul transfer poorly to rubrics and yes/no tasks unlike the training mix. Train on a rubric resembling yours.
  • Calibration is one temperature per primitive, fitted on held-out short classification. The confidence bands are established there only: measure on your own traffic before you trust a threshold.
  • Trained on public datasets, so it inherits their domains and their label noise.

evaluation/README.md, section "Limitations", has the measured figures behind each point.

Training data#

The datasets list in the metadata holds the 25 Hub datasets that the training rows come from: 18 short-task classification datasets, tasksource/Boardgame-QA, nvidia/HelpSteer2, and five code datasets. The other sources are:

  • ContractNLI and MuSiQue, from their authors' releases (not from the Hub).
  • Synthetic rows that open-weight language models generated and checked.
  • Code-task rows built here: generated programs with execution-checked answers, and functions from permissively licensed GitHub repositories. The five code datasets give the other code tasks (CuBERT ETH Py150 Open, CommitPackFT, CodeReviewer, Juliet C/C++ 1.3, CodeContests). Code rows carry gold labels only.
  • The output distributions of the frozen teacher model Qwen/Qwen3.5-4B. They are training targets, next to an anchor toward the distributions of StrandsAgents/strands-decider-2B-hobson-v19.

These Hub datasets are for calibration and evaluation only, not training: dair-ai/emotion, mteb/amazon_massive_intent, raquiba/Sarcasm_News_Headline, ucberkeley-dlab/measuring-hate-speech and hotpotqa/hotpot_qa.

In the code repository, data/sources.md lists every source with its revision, role, license and attribution. data/README.md states what is committed, what is downloaded and the reproduction contract. Read a source's own terms before you redistribute data built from it.

Training#

Three seeds (0, 1, 2) of one config (train_config.json; the seeds differ only in seed), each trained by training/recipe.sh train on one host with 8 NVIDIA H100 80GB GPUs (NGPU=8), one epoch of 4,109 steps. The soup was made by strands-decider soup and calibrated and evaluated by training/recipe.sh calibrate eval. training/README.md has the setup, the stages and the hardware notes.

Provenance#

provenance.json: base model and revision (inferred: the hosts did not pin one), and the sha256 of the config, adapter, head and source pickle. MANIFEST.sha256 lists every file; python -m strands_decider.hf_export verify <folder> checks them. The run records keep their timings and results; host paths, cloud identifiers and cost fields are removed.

Changelog#

  • 2026-10-09 (Hub tag 261009): first release.
  • 2026-10-09: card corrected (the recipe, the install line, the dataset list). The weights did not change.

Files

23 files · 273 MBWeights 240 MB (safetensors). Sizes and sha256 from the signed manifest.
Show all 23 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
LICENSE.md13.2 KBa3e216079985384aa131cb36248cbbd95862984670d725713486e2605481b30b
MANIFEST.sha2561.90 KB573ec4ec3d996a7b8b347dedde19af2718a2d0492c26fa5a0c23430dca56ace9
README.md15.4 KB1ff64294d8e3a8855c07ddb0b2fa38d7ad4203149388cc817f346da0ccfec3aa
chat_template.jinja18.7 KBae53464bf3be25802b3a5b37def7fd89667067d7577049b3b2d74c4d8de4c6d4
eval/internal/eval.log6.86 KB98f45a6c0b65025e715465eb919920e5e0d7d55c7339d17a6ce793538b5a1699
eval/internal/recipe_heldout.json2.48 KBb85025420c35e8635a3115601dae96864a04c532df69e041d4972d2b1bb70a42
eval/jevbench-w4096/health.json321 Ba557e4a3384b3bdb20aebfcd1444c3dc4a79f5ffcfc928ac0e2dce8271f675c4
eval/jevbench-w4096/manifest.json581 Bef63a2f0b6cae2b32b74cb57ddf6713da8f2c9ccd2138e51861583e0aec55923
eval/jevbench-w4096/paired.json2.79 KBff345245b450c0e74ba7291b3c3936eb600ccb03d02d672e4a76d53e8f298522
eval/jevbench-w4096/paired.txt2.44 KBd6835e58385f2fa54bfb621a81181d3f0b41dfb0a56600b3312af400e793e547
eval/jevbench-w4096/results.jsonl184 KBaf3d87a5806d5cb49fa89797029db0d0cb7ba02610d3bb475bf7963091d5dfdc
eval/jevbench-w4096/run_meta.json1.01 KBad778be4f1e9439fded7d8b873c66c30f983fd35bf8bf1963ab11956ebb6b044
eval/jevbench-w4096/summary.json46.9 KBb0c629b05bf0767b7f7f43de7f9c40b3cd6baeca157a9020764c58c9822db948
eval/summary.json4.54 KB2c12b9556bf9117ecf31e2f17305c654104113eb10e111a67e9155bbc69c10bc
head.safetensors17.3 MB026c2b5fdc76582470674ed444aa464ab6d963fba40fe72f41055bb09ab4f119
lora/adapter_config.json1.17 KB0b9bf880b630441245e20eed71afb8a243cee13d7f0b7022c9e0d77bb267b7bc
lora/adapter_model.safetensors223 MB814160d81f37058cb414b7290a1facd95617bbb6c8edd939abd7627e8c6dd710
provenance.json1.01 KBbc0d9c2abf8b74e2824b1d693c79958e7cdd88f21b9ccabfc4af5724ab29e044
strands_decider_config.json741 Bc9d2d08ce11ba1e07c33069d1fa4494384797c981f076fc69ba563dfd3ef6dc3
tokenizer.json32.2 MB30383f3ce90a169cbabe9eb3da7bb77988bf906aad2e59184b378f5470ec4dbd
tokenizer_config.json3.73 KB3ab5c7b94dc97d65ca7064496fa69b88ff875378e1cb7ee3e43070c3a8170999
train_config.json1.96 KBc8a04c91dbded4c2ff26b0f4f9f42895b4df9a25782bc0aa15a4a6aaa2c08aeb
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
f08dc85955 pinned now manifest updated, same commit2026-11-14 21:35 UTC23 files · 273 MB
f08dc859552026-11-14 21:35 UTC23 files · 273 MB

Use it

$ fw get amazon/strands-decider-26B-A4B-gemma4-v1-2610
# manifest sha256 a881b58497d7… · 273 MB · 23 files
$ fw verify ./strands-decider-26B-A4B-gemma4-v1-2610 amazon/strands-decider-26B-A4B-gemma4-v1-2610
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/amazon/strands-decider-26B-A4B-gemma4-v1-2610.json --dir ./strands-decider-26B-A4B-gemma4-v1-2610 $ python3 fw.py verify ./strands-decider-26B-A4B-gemma4-v1-2610 ./amazon__strands-decider-26B-A4B-gemma4-v1-2610.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download amazon/strands-decider-26B-A4B-gemma4-v1-2610 --revision f08dc85955d008dc247fae5b4df53bc409704f8a --local-dir ./strands-decider-26B-A4B-gemma4-v1-2610

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-14
Text in
LICENSE.md
Text sha256
a3e216079985384aa131cb36248cbbd95862984670d725713486e2605481b30b
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: amazon <huggingface.co/amazon>Newsgroups: alt.freeweights.visionSubject: strands-decider-26B-A4B-gemma4-v1-2610Date: 2026-11-14Commit: f08dc85Signed: 2DC28CC7B26A283B ✓
Upstream
amazon/strands-decider-26B-A4B-gemma4-v1-2610
Pinned commit
f08dc85955d008dc247fae5b4df53bc409704f8a
Manifest
strands-decider-26B-A4B-gemma4-v1-2610.json · .minisig
Manifest sha256
a881b58497d7bc61f8250c490ee2c260886f27d63cbe2b1ae1df4e271e3eaa2a
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:35 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/amazon/strands-decider-26B-A4B-gemma4-v1-2610.json $ curl -O https://freeweights.allternit.com/manifests/amazon/strands-decider-26B-A4B-gemma4-v1-2610.json.minisig $ minisign -Vm strands-decider-26B-A4B-gemma4-v1-2610.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

google/gemma-4-26B-A4B-it · this model is a adapter of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download amazon/strands-decider-26B-A4B-gemma4-v1-2610
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. strands-decider-26B-A4B-gemma4-v1-2610.json. Provenance. Takedown history: none.
From: dima806 <huggingface.co/dima806>Subject: ai_vs_real_image_detection
From: legekka <huggingface.co/legekka>Subject: AI-Anime-Image-Detector-ViT
From: onnx-community <huggingface.co/onnx-community>Subject: AI-Anime-Image-Detector-ViT-ONNX
From: AICodexLab <huggingface.co/AICodexLab>Subject: answerdotai-ModernBERT-base-ai-detector
From: onnx-community <huggingface.co/onnx-community>Subject: answerdotai-ModernBERT-base-ai-detector-ONNX
From: onnx-community <huggingface.co/onnx-community>Subject: bart-large-cnn-ONNX