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

strands-decider-E2B-gemma4-v1-2610

Date: 2026-11-14Commit: 250d86eSigned: 2DC28CC7B26A283B ✓

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

vision332MBstrands-decider-E2B-gemma4-v1-2610safetensorspermissive
FactsParamsnot statedSize332 MBFormatssafetensorsTasktext classificationLicenseApache-2.0From sourcepermissive
$ fw get amazon/strands-decider-E2B-gemma4-v1-2610
# manifest sha256 11d806b082c1… · 332 MB · 23 files
$ fw verify ./strands-decider-E2B-gemma4-v1-2610 amazon/strands-decider-E2B-gemma4-v1-2610
From sourceHosted (signed)amazon/strands-decider-E2B-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-E2B-it.

Works with

Runs with

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

Overview

Size
332 MB
Weights
299 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-E2B-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 250d86e. Shown as plain text with links; images open at the publisher.

strands-decider-E2B-gemma4-v1-2610#

The main home of this model is StrandsAgents/strands-decider-E2B-gemma4-v1-2610. The same files are also at amazon/strands-decider-E2B-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-E2B-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-E2B-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-E2B-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.863
choice_0 -> billing (confidence 0.903)
    billing                  0.935
    sales                    0.038
    retail                   0.027
score_0 score = 1.01 (confidence 0.521)
    0: calm                                     0.202
    1: frustrated                               0.585
    2: depressed                                0.212

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-E2B-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-E2B-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 4096180/2310.3130.053these files
benchmarkscore
Decision Index 0.2.1, balanced skill (window 32,768)29.78

E2B's Decision Index was measured before the E2B attention fix of the code repository: on requests with several questions its yes/no answers went through a faulty GPU kernel path, so the figure may be off. Single-question results (JevBench and the internal sets) are not affected.

internal setaccuracyn
eval: held-out short tasks0.6526,000
eval: boardgame0.793900
eval: contractnli0.8561,026
eval: hotpotqa (held out)0.734959
eval: musique0.9131,199
eval: musique, answerable0.918599
eval: musique, unanswerable0.908600
eval: [4] adequacy_hs20.739234
eval: [5] gen:adequacy0.785302
eval: [6] code/bug_swapped_operands0.77589
eval: [6] code/bug_variable_misuse0.70889
eval: [6] code/bug_wrong_binary_operator0.67489
eval: [6] code/commit_message0.97889
eval: [6] code/correct_solution0.28189
eval: [6] code/cwe_choice0.89989
eval: [6] code/docstring_match0.96689
eval: [6] code/exception_type0.84389
eval: [6] code/exec_input0.746142
eval: [6] code/exec_output0.716662
eval: [6] code/needle_function0.951391
eval: [6] code/review_needed0.52889

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 · 332 MBWeights 299 MB (safetensors). Sizes and sha256 from the signed manifest.
Show all 23 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
LICENSE.md13.1 KB0a526e4695eb2b9e8cd57655446ed77c3d4a35e55165f434ee5479071ce44ca0
MANIFEST.sha2561.90 KB7ef0e838ae6d8314b887b6cc8e240f1581b3db31b94197b9025a256c5e0b8299
README.md15.6 KB84fd725059fb1cbdbf82a312e8ec7aa6cdf4e9dc75e4c92aa28161055a2a6f29
chat_template.jinja18.6 KB0a2c8073c878ab1da004bee933a998606537bbb62016310352c7285c3f01c5b5
eval/internal/eval.log6.71 KBdf75c3227c3d6b22564a8ed917bd8d1c9ec5a54c69d844e528d00209bc3bc709
eval/internal/recipe_heldout.json2.48 KB9e4396423698050c2aef46b363bf57b58d6fb1fa5a2f210c4b2b738a70071939
eval/jevbench-w4096/health.json266 Bb26679106a0149d058e6ba435c5c261d5962004dffa073725e8dc4249427a53e
eval/jevbench-w4096/manifest.json503 Bcafd0ffbbfb0d0e96350e67557f431bcadf0aeb8f251568d9ef17ee68340bb9a
eval/jevbench-w4096/paired.json2.48 KB081084d7d9ca2803354f14cb4b40727c12063aa739066b46eee4b8313e328b7d
eval/jevbench-w4096/paired.txt2.04 KBdbb367c074214a4efbabc1c5d23be3d1127bb02d21687226296fa46d7a85be02
eval/jevbench-w4096/results.jsonl178 KB7ec5de5ea58a8773bc17955f68214c4905ec2a761b72b433c435762dedb1c9c6
eval/jevbench-w4096/run_meta.json990 B9804c0d8a75d7ed8a0a1fee15c8d41e75284d185ab0df465f1a03452884401a1
eval/jevbench-w4096/summary.json47.1 KB07bb4df41c5c5a8f8542ed21c8195acc905234e57d53cd039baf4e8eb23239cd
eval/summary.json4.54 KB199fac52d8055b719e3b48a63391395a25d83e4182db3b3cfc8dd79cbc0ed324
head.safetensors9.46 MB31220ff165a8bb6e48b87a85de11cbfc8660b7047049ea2f91872e1b6ddb45a9
lora/adapter_config.json1.17 KB0b9bf880b630441245e20eed71afb8a243cee13d7f0b7022c9e0d77bb267b7bc
lora/adapter_model.safetensors290 MBc7786a59354aa190082b1c3aedb7ff3311fe260f070f360c4d3518762691c551
provenance.json994 B214928b49e4ebb43833c345882662ef5c60917c9fafd7e99a1144ee3d9c5582b
strands_decider_config.json739 Bd323b2b07fdbcb911df601cdf50457ba62fc51c7d58538a4c457b34a290efbde
tokenizer.json32.2 MB30383f3ce90a169cbabe9eb3da7bb77988bf906aad2e59184b378f5470ec4dbd
tokenizer_config.json3.73 KB3ab5c7b94dc97d65ca7064496fa69b88ff875378e1cb7ee3e43070c3a8170999
train_config.json1.95 KB06789e5e8ac6f89885489ac82319900f477ec7e392b1a9244f3e8727c71ec636
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
250d86e691 pinned now manifest updated, same commit2026-11-14 21:35 UTC23 files · 332 MB
250d86e6912026-11-14 21:35 UTC23 files · 332 MB

Use it

$ fw get amazon/strands-decider-E2B-gemma4-v1-2610
# manifest sha256 11d806b082c1… · 332 MB · 23 files
$ fw verify ./strands-decider-E2B-gemma4-v1-2610 amazon/strands-decider-E2B-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-E2B-gemma4-v1-2610.json --dir ./strands-decider-E2B-gemma4-v1-2610 $ python3 fw.py verify ./strands-decider-E2B-gemma4-v1-2610 ./amazon__strands-decider-E2B-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-E2B-gemma4-v1-2610 --revision 250d86e6919963ff80144fcbcbc1f63b85904c67 --local-dir ./strands-decider-E2B-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
0a526e4695eb2b9e8cd57655446ed77c3d4a35e55165f434ee5479071ce44ca0
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-E2B-gemma4-v1-2610Date: 2026-11-14Commit: 250d86eSigned: 2DC28CC7B26A283B ✓
Upstream
amazon/strands-decider-E2B-gemma4-v1-2610
Pinned commit
250d86e6919963ff80144fcbcbc1f63b85904c67
Manifest
strands-decider-E2B-gemma4-v1-2610.json · .minisig
Manifest sha256
11d806b082c1351bb69f1c35fd2464dce7ac43ff3a46547dc2331b3ab42bef3f
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-E2B-gemma4-v1-2610.json $ curl -O https://freeweights.allternit.com/manifests/amazon/strands-decider-E2B-gemma4-v1-2610.json.minisig $ minisign -Vm strands-decider-E2B-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-E2B-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-E2B-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-E2B-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