Instructions to use misa-jsc/misa-ai-2.0-decision-plus with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use misa-jsc/misa-ai-2.0-decision-plus with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="misa-jsc/misa-ai-2.0-decision-plus") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("misa-jsc/misa-ai-2.0-decision-plus") model = AutoModelForMultimodalLM.from_pretrained("misa-jsc/misa-ai-2.0-decision-plus", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use misa-jsc/misa-ai-2.0-decision-plus with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "misa-jsc/misa-ai-2.0-decision-plus" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "misa-jsc/misa-ai-2.0-decision-plus", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/misa-jsc/misa-ai-2.0-decision-plus
- SGLang
How to use misa-jsc/misa-ai-2.0-decision-plus with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "misa-jsc/misa-ai-2.0-decision-plus" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "misa-jsc/misa-ai-2.0-decision-plus", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "misa-jsc/misa-ai-2.0-decision-plus" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "misa-jsc/misa-ai-2.0-decision-plus", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use misa-jsc/misa-ai-2.0-decision-plus with Docker Model Runner:
docker model run hf.co/misa-jsc/misa-ai-2.0-decision-plus
MISA AI 2.0 Decision Plus
MISA AI 2.0 Decision Plus is a decision model from MISA JSC. It is fine-tuned from Gemma 4 31B. It answers structured questions about a piece of text or an image with calibrated probabilities, rather than generating free text. Use it when you need a fast, reliable decision, such as:
- Classifying intent, topic, or sentiment.
- Flagging policy or safety violations.
- Routing a message to the right agent or tool.
- Scoring a severity or urgency level.
Model details
| Developer | MISA JSC |
| Architecture | Gemma4ForConditionalGeneration, dense, 60 layers, hidden size 5376 |
| Parameters | ~31B |
| Context length | 256K tokens |
| Vocabulary | 262K |
| Inputs | Text, images |
| Output | Probabilities over answer labels (the model generates no tokens) |
| Precision | bf16 safetensors, 2 shards, ~62.6 GB |
How it works
Each request has a state (the text to judge, plus optional images) and one or more questions. The model reads the state once in a single prefill pass. It then returns a probability distribution over each question's answer labels. No tokens are sampled, so results are deterministic and latency is close to prefill time.
Three question types are supported:
| Type | Answer |
|---|---|
noul (yes/no) |
Probability that the statement is true |
choice |
One label out of a set of named options, with per-option probabilities and a confidence |
score |
An ordinal level from an ordered list (e.g. none / mild / severe), with per-level probabilities |
Each answer also returns a label mass (x_label_mass / label_mass). This is the share of the model's probability
that fell on the valid labels. A low label mass means the question did not fit the state well, so treat that answer as
low-confidence.
Usage
Serving with SGLang
Recent SGLang releases serve /v1/systemone and /v1/decisions out of the box:
python3 -m sglang.launch_server \
--model-path misa-jsc/misa-ai-2.0-decision-plus \
--default-chat-template-kwargs '{"enable_thinking": false}' \
--port 30000
curl -X POST http://localhost:30000/v1/systemone \
-H "Content-Type: application/json" \
-d '{
"model": "misa-jsc/misa-ai-2.0-decision-plus",
"state": "Customer: I paid 3 days ago and still have not received my invoice. This is frustrating!",
"questions": {
"complaint": {"type": "noul", "instructions": "The customer is complaining"},
"intent": {"type": "choice", "instructions": "Main purpose of the message",
"criteria": {"question": "Asking for information", "complaint": "Complaint", "order": "Placing an order"}}
}
}'
To pass images, add an images array of base64 data URLs or {"url": ...} objects.
Tips
- Prefer one
choicequestion over many yes/no questions when the answers are mutually exclusive (e.g. which tool to call). It is faster and better calibrated. - Keep
instructionsshort and concrete. Name the subject explicitly ("The customer …", "The image …"). - Thinking mode is not used. Decisions are read directly from the first answer token.
Limitations
- The model is built for decisions over a given state. It is not a knowledge base or a chat assistant.
- Probabilities are calibrated on the training distribution. On very different domains, check calibration before relying on thresholds.
- For safety and moderation use, set thresholds per category on your own traffic. Review false positives on domain jargon (e.g. accounting or retail terms) before blocking users automatically.
License
The weights are released under the Gemma 4 license (Apache 2.0), inherited from the base model.
- Downloads last month
- -