AWS Strands Labs Releases Strands Decider 2B: An Open Source Decision Model That Picks Options in About 115 ms


AWS Strands Labs releases Strands Decider 2B, an open source decision model. It does not generate text. It reads a state and typed questions, then returns a choice, a yes/no probability, or a score with a calibrated confidence. The model has 1.9 billion parameters and runs locally on a CPU, a consumer GPU, or an Apple silicon Mac.

Is it deployable? Yes, for local and self-hosted use. Weights are on Hugging Face under Apache-2.0, and pip install strands-decider gives a CLI and an HTTP server. The bundled server binds to 127.0.0.1 with no authentication, so production needs your own auth layer. No hosted inference provider serves it yet.

What a decision model does

Decision models, also called System One models, became a category after TypeSafe AI launched Jev last month. An LLM can produce arbitrary output. A decision model only picks between options or rates on a scale.

Strands Decider supports 3 question types:

  • choice: pick 1 of N options.
  • noul: a yes/no probability between 0 and 1.
  • score: a level on an ordered rubric.

Every answer comes from the allowed options and carries a confidence. The team states the model is worse than reasoning models on complex problems. It is unsuited for coding, chat, or summarization.

Architecture: an LLM with its mouth removed

The team starts from Qwen3.5-2B-Base and discards the language-modelling head. A small pointer head of about 1 million parameters replaces it. That head compares the hidden state at the position against the hidden state at each option’s last token. One forward pass yields the result, with no decoding loop.

The torso uses a rank-16 LoRA, and the head runs in fp32. Label sets come from the request, so nothing caps the option count. The released checkpoint is v19.

Asking several questions about one text is cheap. The state is read once, and each extra question adds only its own tokens.

‘});
$(‘bars’).innerHTML=h;
if(!z){d.rows.forEach(function(r,i){$(‘f’+i).style.width=(r[1]*100)+’%’})}
gate();
}
function run(){
draw(true);[‘b1′,’b3’].forEach(function(b){$(b).classList.remove(‘lit’)});
$(‘verdict’).innerHTML=’Reading state and options in one forward pass…’;
var a1=$(‘a1’),a2=$(‘a2’);a1.classList.remove(‘go’);a2.classList.remove(‘go’);void a1.offsetWidth;
$(‘b1’).classList.add(‘lit’);a1.classList.add(‘go’);
setTimeout(function(){a2.classList.add(‘go’);$(‘b3’).classList.add(‘lit’)},700);
setTimeout(function(){var d=D[m];d.rows.forEach(function(r,i){var f=$(‘f’+i);f.style.width=(r[1]*100)+’%’;f.parentNode.nextSibling.textContent=r[1].toFixed(3)});$(‘verdict’).innerHTML=d.out;gate()},1400);
setTimeout(function(){$(‘b1’).classList.remove(‘lit’)},1500);
}
function gate(){
var t=parseFloat($(‘th’).value),c=D[m].conf;$(‘thv’).textContent=t.toFixed(2);
$(‘gate’).innerHTML=’Confidence ‘+c.toFixed(3)+(c>=t?’ ≥ ‘+t.toFixed(2)+’ → act automatically‘:’ < ‘+t.toFixed(2)+’ → confirm with a person or escalate to an LLM‘);
}
function tok(){
var n=+$(‘nq’).value;$(‘nqv’).textContent=n;var h=””;for(var i=0;i<24;i++)h+=”;
for(var j=0;j



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *