Views
No views yet
mlx-lm with
8-bit quantization (group size 64), and runs natively on Apple Silicon. On the
sanity-check prompt it produced output identical to the bf16 model, at roughly
half the memory and ~2x the generation throughput.| Architecture | Qwen3ForCausalLM (4B) |
| Quantization | 8-bit, group size 64, affine (~8.5 bits/weight) |
| Residual dtype | bfloat16 (non-quantized tensors: norms, scales) |
| On-disk size | ~4.3 GB |
| Peak inference memory | ~4.4 GB |
Note:config.jsonlists"dtype": "bfloat16"— that is the type of the non-quantized tensors. The actual 8-bit quantization lives in the"quantization"block ({"bits": 8, "group_size": 64, "mode": "affine"}).
mlx-lm:pip install mlx-lm<your-hf-username> with the
account you upload it to) or from a local path.<think> rationale). Format each evaluation as a
single user message using this template:### Задание для оценки:
{instruction}
### Эталонный ответ:
{reference_answer}
### Ответ для оценки:
{answer}
### Критерий оценки:
{criteria_name}
### Шкала оценивания по критерию:
{criteria_rubrics}### Эталонный ответ: (reference answer) block is optional — drop it when you have
no gold answer.1mlx_lm.generate --model <your-hf-username>/Pollux-4B-Judge-mlx-q8 --temp 0.0 --max-tokens 512 \
2 --prompt $'### Задание для оценки:\nСколько будет 2+2?\n\n### Эталонный ответ:\n4\n\n### Ответ для оценки:\nБудет 4\n\n### Критерий оценки:\nПравильность ответа\n\n### Шкала оценивания по критерию:\n0: Дан неправильный ответ или ответ отсутствует.\n1: Ответ модели неполный.\n2: Ответ модели совпадает с эталонным или эквивалентен ему.'1from mlx_lm import load, generate
2
3model, tokenizer = load("<your-hf-username>/Pollux-4B-Judge-mlx-q8")
4
5PROMPT_TEMPLATE = """### Задание для оценки:
6{instruction}
7
8### Эталонный ответ:
9{reference_answer}
10
11### Ответ для оценки:
12{answer}
13
14### Критерий оценки:
15{criteria_name}
16
17### Шкала оценивания по критерию:
18{criteria_rubrics}
19"""
20
21prompt = PROMPT_TEMPLATE.format(
22 instruction="Сколько будет 2+2?",
23 reference_answer="4",
24 answer="Будет 4",
25 criteria_name="Правильность ответа",
26 criteria_rubrics=(
27 "0: Дан неправильный ответ или ответ отсутствует.\n"
28 "1: Ответ модели неполный.\n"
29 "2: Ответ модели совпадает с эталонным или эквивалентен ему."
30 ),
31)
32
33messages = [{"role": "user", "content": prompt}]
34text = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
35print(generate(model, tokenizer, prompt=text, max_tokens=512, verbose=True))/v1/chat/completions on port 8080):mlx_lm.server --model <your-hf-username>/Pollux-4B-Judge-mlx-q8 --port 80801curl -s http://127.0.0.1:8080/v1/chat/completions \
2 -H "Content-Type: application/json" \
3 -d '{
4 "model": "Pollux-4B-Judge-mlx-q8",
5 "temperature": 0.0,
6 "max_tokens": 512,
7 "messages": [
8 {"role": "user", "content": "### Задание для оценки:\nСколько будет 2+2?\n\n### Эталонный ответ:\n4\n\n### Ответ для оценки:\nБудет 4\n\n### Критерий оценки:\nПравильность ответа\n\n### Шкала оценивания по критерию:\n0: Дан неправильный ответ или ответ отсутствует.\n1: Ответ модели неполный.\n2: Ответ модели совпадает с эталонным или эквивалентен ему."}
9 ]
10 }'<think> rationale followed by the numeric score (2 for
this example; 0 if you swap in a wrong answer).