Quantization Details
Quantization was performed using llmcompressor with the following recipe:
default_stage:
default_modifiers:
QuantizationModifier:
targets: [Linear]
ignore: ['re:.*lm_head', 're:.*embed_tokens$', 're:.*visual.*', 're:.*model.visual.*',
're:.*linear_attn.*']
scheme: FP8_DYNAMIC
bypass_divisibility_checks: false
Linear layers are quantized to FP8 with dynamic per-tensor activation scaling. The lm_head, embedding table, all vision-tower (visual) components, and linear_attn layers are excluded from quantization and remain at full precision to preserve grounding accuracy and multimodal fidelity.
Table | |
|---|
| Base model | microsoft/Fara1.5-9B |
| Quantization scheme | FP8_DYNAMIC (Linear layers only) |
| Format | compressed-tensors |
| Original model size | ~18.8 GB |
| Compressed model size | ~13.5 GB |
| Size reduction | ~28% |
| Excluded from quantization | lm_head, embed_tokens, visual encoder, linear_attn |
Model Details
Table | |
|---|
| Developer (base model) | Microsoft Research AI Frontiers |
| Quantized by | prithivMLmods |
| Architecture | Multimodal decoder-only LM (image + text to text) |
| Parameters | 9B |
| Context length | 262,144 tokens |
| Inputs | User goal (text), current screenshot(s), prior agent thoughts and actions |
| Outputs | Chain-of-thought block followed by a tool-call block (XML-tagged) |
| License | MIT |
Use with vLLM
Fara1.5-9B-FP8 is served through vLLM with native support for compressed-tensors FP8 checkpoints.
Requirements
torch >= 2.11.0
vllm >= 0.19.1
- A GPU with FP8 support recommended (Hopper or Blackwell class) for best throughput; also runs on Ampere with FP8 dequantized on the fly.
Serve
vllm serve prithivMLmods/Fara1.5-9B-FP8 \
--max-model-len 262144 \
--limit-mm-per-prompt image=10
Client request
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
screenshot_b64 = capture_browser_screenshot()
messages = [
{"role": "system", "content": FARA_SYSTEM_PROMPT},
{"role": "user", "content": [
{"type": "text", "text": "Book a table for 2 at a sushi place in Sunnyvale for Friday 7pm."},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{screenshot_b64}"}},
]},
]
response = client.chat.completions.create(
model="prithivMLmods/Fara1.5-9B-FP8",
messages=messages,
temperature=0.0,
max_tokens=2048,
)
print(response.choices[0].message.content)
The assistant reply contains chain-of-thought text followed by a <tool_call>{"name": "computer_use", "arguments": {...}}</tool_call> block. Execute the action in a sandboxed browser, capture the new screenshot, append the assistant turn and a tool/observation turn, and loop until the model emits action="terminate". Keep only the most recent 3 screenshots in the chat history. The screen resolution Fara is most commonly trained with is 1440x900; match this in your sandbox for the most reliable grounding.
System prompt
Use the original Fara system prompt verbatim for best results, as documented in the base model card.
Recommended deployment
As with the base model, the safest way to run Fara1.5-9B-FP8 is inside a sandboxed environment such as MagenticLite, with Docker isolation, domain allow-lists, watch-mode monitoring, and an immediate pause control. Do not run this model with unrestricted browser access on a machine holding sensitive credentials or files.
Intended Use and Limitations
Intended use, known limitations, safety considerations, and responsible AI guidance are unchanged from the base model. See the Fara1.5-9B model card for full details on critical-points safety design, evaluation results, training data, out-of-scope use, and responsible AI considerations. Quantization to FP8 may introduce minor numerical differences relative to the bf16 base model; downstream accuracy should be validated for production use cases.
License
Released under the MIT License, consistent with the base model.
Papers
Fara-1.5: Scalable Learning Environments for Computer Use Agents — Hugging Face Papers