Argos 2B (DPO-Aligned Merged Model)

Argos 2B is an advanced domain-adapted model for Fabrix.ai / RDAF knowledge retrieval, documentation citation, and hop-closed custom widget dashboard pack generation.

This model combines:

  1. Supervised Fine-Tuning (SFT) on the comprehensive Fabrix / RDAF knowledge base and custom widget recipes.
  2. Direct Preference Optimization (DPO) trained concurrently on:
    • Single-card preference pairs (delta_20260821_dpo.jsonl) to strictly enforce card citations (kb/cards/*.md).
    • Hop-closed custom widget pack preference pairs (pack_custom_widget_dpo.jsonl) to guarantee exact 34-item ordered card dependencies for custom widget dashboards.

📊 Alignment & Benchmark Performance

Evaluation Benchmark Baseline SFT Argos 2B (DPO Aligned)
DPO Training Accuracy 50.0% 100.0%
Card Format Accuracy (kb/cards/*) 40.9% 100.0% (22/22)
Single-Card Preference Citation Accuracy 4.5% 59.1% exact match
Custom Widget Pack Order Accuracy 0.0% 81.2% (13/16)

🚀 Quickstart with transformers

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "Fabrix-AI-Inc/Argos-2B"

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

system_prompt = (
    "You are Fabrix cite-mode retrieval. Reply with repo-relative kb/ paths only, one per line. "
    "Prefer kb/cards/*.md. Cite a topic file (kb/pstreams/, kb/widgets/, kb/dashboards/, kb/ux/, kb/entry/) "
    "only when no card fits. Typically 1-5 paths. No prose, no HTML, no line numbers, no GET/POST examples, "
    "no secrets. Zero paths only if nothing under kb/ applies."
)

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": "Put a group filter on the top so I can pick site type, tier, and primary transport."},
]

prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=64,
        do_sample=False,
    )

response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response.strip())
# Output: kb/cards/widget-filters.md

🏗️ Architecture & Model Specs

  • Base Architecture: Qwen3_5ForConditionalGeneration (2.3B parameters)
  • Format: Standalone Merged 16-bit Float Safetensors
  • Adapter Version: Fabrix-AI-Inc/Argos-2B-LoRA
  • Training Toolkit: Unsloth / Hugging Face Transformers / TRL / PyTorch
Downloads last month
-
Safetensors
Model size
2B params
Tensor type
F32
·
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Fabrix-AI-Inc/Argos-2B

Finetuned
Qwen/Qwen3.5-2B
Finetuned
(172)
this model