cross-posted from: https://reddthat.com/post/74093908

Ollama quietly shipped v0.35 with a new class of models they’re calling “decision models,” and the first one is worth a look. It’s called Nimble, it’s a 9B model from Bespoke Labs, and it works completely differently from the chat models you’re used to.

What it actually does

Instead of generating text, you give Nimble some input text (a support ticket, a document, whatever) and a set of questions. It picks answers and returns probabilities for each option. No reasoning step, no generated prose — just typed classifications and scores.

Three question types are supported:

  • Choice: pick from a list of 2–26 options
  • Yes/No: true/false with a probability score
  • Score/Rubric: place something on an ordered scale (lowest to highest)

You can ask up to 64 questions per request about the same input, and it supports a 256K context window. According to Ollama’s benchmarks, it averages around 91ms per decision on an M5 Max MacBook Pro.

How it compares to other decision models

Ollama’s comparison table:

Model From Accuracy
Tev1 4B Together AI 73.3%
Tev1 0.8B Together AI 63.5%
Nimble 9B Bespoke Labs 75.7%
Jev 1.13 TypeSafe 76.0%

What you’d use it for

This isn’t a replacement for your chat model. It’s for the stuff you’d otherwise hack together with brittle JSON-mode prompting:

  • Ticket triage and routing (e.g., “which team should handle this?”)
  • Content moderation decisions
  • Model routing (deciding which model gets the expensive work)
  • Policy checks and rubric-based scoring

How to try it

ollama pull nimble

Then you hit the /v1/systemone endpoint instead of /v1/chat/completions. Example:

curl http://localhost:11434/v1/systemone \
  -d '{
    "model": "nimble",
    "state": "I was charged twice. Please refund the extra payment.",
    "questions": {
      "team": {
        "type": "choice",
        "instructions": "Which team should handle this ticket?",
        "criteria": {
          "billing": "Payments and refunds",
          "technical": "Bugs and integrations",
          "other": "None of the above"
        }
      },
      "refund": {
        "type": "yes_no",
        "instructions": "Does the customer explicitly ask for a refund?"
      }
    }
  }'

You get back probabilities, not vibes. Apache 2.0 license, fine-tuned from Qwen3.5.

Things worth knowing

One thing I noticed digging into the docs: Nimble reads the prompt once per question. So a single request with 64 questions on a 4K-token prompt is doing 256K token positions of work internally. If you’re budgeting by HTTP request count, that’s a monitoring blind spot. Not necessarily a dealbreaker, but worth instrumenting if you plan to scale it.

Also, it’s a decision model — no streaming, no tools, no images. Text in, structured answers out. Requests cap at 64 KiB.

Has anyone here tried it for routing or triage yet? Curious how the probabilities look in practice vs. just fine-tuning a small classifier.

    • vas@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      13 days ago

      I know nothing of this particular model, but I see “Ollama”. And knowing them, it’s 99% stolen from somebody and now being deceptively presented as something of their own or somehow related to them.

    • hendrik@palaver.p3x.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      13 days ago

      I guess you can do a lot of things with LLMs these days. It just might be way slower /more expensive , and less accurate. I think that’s the main point why we use specialized models and classifiers. They’re just better at specific tasks and do it in a fraction of the time.

      I think this one might be kind of a special form of an LLM, though…

      • BeefAndPoultry@lemmus.org
        link
        fedilink
        English
        arrow-up
        0
        ·
        10 days ago

        it wouldn’t be that slow since you’d just need to output a few tokens, or even just 1 token if you label the choices as A, B, C, D…

        • hendrik@palaver.p3x.de
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          10 days ago

          Does that come with good performance / accuracy? What I’ve seen is people restrict grammar of output. But usually the do some JSON and what they usually also do is make it output a short reason before the final verdict. I’m not sure if that’s for a reason. I mean maybe somehow the B token has some higher likelihood despite the model “wanting” to answer with A?! I’m not an expert on this. Maybe I’m wrong and this is a valid option. But it doesn’t sound quite right to me.

          • BeefAndPoultry@lemmus.org
            link
            fedilink
            English
            arrow-up
            0
            ·
            10 days ago

            I would guess writing the reason is the same thing as a model’s internal reasoning, it just increases accuracy of responses. Not sure about your other questions, that would need some specific tests