MLX 4-bit quantized version of Haize Labs' j1-micro, a 1.7B judge/reward model that matches Claude-3-Opus and GPT-4o-mini on RewardBench (80.7%) despite being 100x smaller.
This repo contains the MLX 4-bit quantized weights for fast inference on Apple Silicon Macs, plus the original LoRA adapter for GPU inference via vLLM.
What This Model Does
j1-micro is a pairwise preference judge: given two responses, it generates a structured rubric, reasons through it, and scores each response. Trained with GRPO (Group Relative Policy Optimization) + SPCT (Self-Principled Critique Tuning) on Skywork Preference 80K.
The model invents its own evaluation criteria per query, then scores against them. This structured reasoning is why 1.7B beats 400B+ models.
Performance
Model
Params
RewardBench
Tulu-2-70b
70B
77.2%
Llama-3-70B-Instruct
70B
77.0%
Claude-3-Opus
200B+
80.1%
GPT-4o-mini
~8B
80.1%
j1-micro (LoRA, FP16)
1.7B
80.7%
j1-micro (MLX 4-bit)
1.7B
75.0%
MLX 4-bit quantized performance on 100-sample RewardBench subset:
1from mlx_lm import load, generate
23model, tokenizer = load("rachittshah/j1-micro", model_config={"subfolder":"mlx"})45SYSTEM ="""You are an expert XML wrangler. You must respond in the following format:
6<specific_criteria>...</specific_criteria>
7<analysis>...</analysis>
8<scores>\\boxed{..., ...}</scores>
9Please only respond in English."""1011prompt ="""You are a skilled little expert at scoring responses...
12#### Conversation Context ####
13What is the capital of France?
14#### Responses to be Scored ####
15[The Begin of Response A]
16The capital of France is Paris, located in northern France along the Seine River.
17[The End of Response A]
18[The Begin of Response B]
19France's capital is Lyon, a major city in southeastern France.
20[The End of Response B]"""2122messages =[23{"role":"system","content": SYSTEM},24{"role":"user","content": prompt},25]26formatted = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)27response = generate(model, tokenizer, prompt=formatted, max_tokens=2048)28print(response)
Quick Start (vLLM with LoRA)
bash
1# Download and serve with vLLM2vllm serve Qwen/Qwen3-1.7B \3 --enable-lora \4 --lora-modules j1-micro=rachittshah/j1-micro/lora
56# Or load adapter with PEFT7from peft import PeftModel
8from transformers import AutoModelForCausalLM
9model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-1.7B")10model = PeftModel.from_pretrained(model, "rachittshah/j1-micro", subfolder="lora")