Model reference · open weights

Sentiment-Analysis

LLMs microsoft Text gen 1 build Open weights 0 dl/mo

Sentiment-Analysis is an open-weight language model from microsoft. Sentiment-Analysis-7B (BF16) weighs 14.5 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Sentiment-Analysis-7B is a 7.2B parameter language model by Microsoft designed to classify the sentiment of user messages directed at a service, product, or agent.
  • The model outputs a label of Negative, Neutral, or Positive as the first token, followed by a short explanation of the decision.
  • It supports a context length of 32768 tokens, operates in English, and is released under the MIT licence.

Summary of the microsoft/Sentiment-Analysis-7B model card, 2026-10-21

What it is

Released bymicrosoft
Released2026-10-17
Parameters7.2B
VRAM14.5 GB for the weights

What it runs on

Memory and cards for Sentiment-Analysis-7B (BF16)

14.5 GBweights, file size
131 MBcache per 1K tokens
647 MBruntime overhead, at least
32,768 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB11.6 GB
RTX 4060 Ti 16 GB2K15.4 GB
RTX 3090 24 GB71all 32K23.4 GB
RTX 4090 24 GB71all 32K23.4 GB
RTX 5090 32 GB143all 32K31.0 GB
L40S 48 GB266all 32K44.0 GB
A100 80 GB5814all 32K78.2 GB
H100 80 GB5513all 32K78.1 GB
RTX PRO 6000 Blackwell 96 GB7017all 32K93.8 GB
DGX Spark (GB10) 128 GB unified8320all 32K107 GB
H200 141 GB11127all 32K138 GB
B200 180 GB14636all 32K176 GB
2× RTX 3060 12 GB
tensor parallel
61all 32K11.6 GB a card
2× RTX 4060 Ti 16 GB
tensor parallel
143all 32K15.4 GB a card
2× RTX 4090 24 GB
tensor parallel
287all 32K23.4 GB a card
2× RTX 3090 24 GB
tensor parallel
287all 32K23.4 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
116.2 GB19.4 GB
520.5 GB36.6 GB
823.7 GB49.5 GB
1632.3 GB83.8 GB
3249.5 GB153 GB
6483.8 GB290 GB

One card, with vLLM's small-card settings.

From the model card

What microsoft says about Sentiment-Analysis

Read the model card

Sentiment-Analysis-7B

Sentiment-Analysis-7B is a 7B-parameter autoregressive language model fine-tuned for sentiment classification of user messages directed at a service, product, or agent (the "Target"). It is built on top of mistralai/Mistral-7B-Instruct-v0.2 and was fine-tuned with reinforcement learning, using an LLM as a judge, on a small internal training set of ~300 examples. No pre-defined labels were used for training.

Given a user message, the model generates a response in the following format: the first token is the sentiment label (Negative, Neutral, or Positive), followed by a short explanation of the decision. If only the label is needed, set max_new_tokens=3.

Evaluation metrics

The evaluation metric used is accuracy. The following compares the base model with the fine-tuned model.

modelaccuracy
mistralai/Mistral-7B-Instruct-v0.262.0%
Sentiment-Analysis-7B (ours)72.8%

How to use

The model is a causal language model and is loaded with AutoModelForCausalLM. The sentiment label is always the first generated token, so setting max_new_tokens=3 returns the label only. Use the system prompt below, which defines the "Target" and the sentiment rules.

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "microsoft/Sentiment-Analysis-7B"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id, torch_dtype=torch.bfloat16, device_map="auto"
)

system_prompt = """Return sentiment of user message as Positive/Neutral/Negative and explanation. Ex: Negative, the user expresses blame (as "you lie"), which conveys a negative tone.
Definition of "Target": the current service, product, or agent the user is interacting with (including its website, app, API, or support).
Rules of sentiment:
* Questions/statements clearly unrelated to Target → Neutral
* Otherwise, if related to Target:
    * Questions containing complaint/frustration/blame → Negative. Ex, What is the point of writing here if technical support does not respond?
    * Indirect incidents → Neutral. Ex, submit helpdesk ticket: mobile app crashes on startup
    * Statement of any inability/failure → Negative. Ex, I'm having trouble logging in.
    * Failure statement + polite/help request → Neutral. Ex, Login button is not working. Can you help?
"""

sample = "I'm having trouble logging in to my account."

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": sample},
]
inputs = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
    add_generation_prompt=True,
).to(model.device)

# Label only
output = model.generate(**inputs, max_new_tokens=3, do_sample=False)
print(tokenizer.decode(output[0, inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Output:

Negative

To get the explanation as well, increase max_new_tokens:

output = model.generate(**inputs, max_new_tokens=64, do_sample=False)
print(tokenizer.decode(output[0, inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Output:

Negative, the user states an inability to log in, which is a failure related to the Target.

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms