SimoneRizzo commited on
Commit
55633c8
·
verified ·
1 Parent(s): b5d7948

Card: safetensors checkpoint for MLX and transformers

Browse files
Files changed (1) hide show
  1. README.md +20 -1
README.md CHANGED
@@ -31,6 +31,7 @@ This model is not affiliated with TypeSafe, and it is not Jev.
31
 
32
  | File | What it is |
33
  | --- | --- |
 
34
  | `spark-x2.5-4b-rizzo-flow-lora-q8_0.gguf` | Merged model, Q8_0 (4.4 GB): the default for `rizzo serve` |
35
  | `spark-x2.5-4b-rizzo-flow-lora-bf16.gguf` | Merged model, BF16 (8.2 GB) |
36
  | `spark-x2.5-4b-rizzo-flow-lora-q4_k_m.gguf` | Merged model, Q4_K_M (2.6 GB), for GPUs with little memory |
@@ -57,7 +58,25 @@ uv run rizzo serve # → http://127.0.0.1:8017/playground
57
  [`rizzoaiacademy/rizzo-flow-1.7b`](https://huggingface.co/rizzoaiacademy/rizzo-flow-1.7b)), and
58
  `--weights base` the original Spark-X2.5 GGUF files. The server answers as `rizzo-flow-4b-q8_0`.
59
 
60
- The files are plain GGUF (architecture `spark2_5`; Rizzo Flow runs them on llama.cpp release b11081), but the model is
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  meant to be **read, not chatted with**: Rizzo Flow builds the prompt, then reads the logits of the
62
  answer letters. In a chat app it behaves like a lightly changed Spark-X2.5, and the fine-tune
63
  brings nothing there.
 
31
 
32
  | File | What it is |
33
  | --- | --- |
34
+ | `model-0000*-of-00005.safetensors`, `config.json`, tokenizer files | Merged model, BF16 safetensors (8.2 GB): for the MLX backend and transformers. Same weights as the BF16 GGUF, bit for bit |
35
  | `spark-x2.5-4b-rizzo-flow-lora-q8_0.gguf` | Merged model, Q8_0 (4.4 GB): the default for `rizzo serve` |
36
  | `spark-x2.5-4b-rizzo-flow-lora-bf16.gguf` | Merged model, BF16 (8.2 GB) |
37
  | `spark-x2.5-4b-rizzo-flow-lora-q4_k_m.gguf` | Merged model, Q4_K_M (2.6 GB), for GPUs with little memory |
 
58
  [`rizzoaiacademy/rizzo-flow-1.7b`](https://huggingface.co/rizzoaiacademy/rizzo-flow-1.7b)), and
59
  `--weights base` the original Spark-X2.5 GGUF files. The server answers as `rizzo-flow-4b-q8_0`.
60
 
61
+ **MLX** (Apple Silicon, or MLX-CUDA) uses the safetensors checkpoint at the root of this
62
+ repository instead of the GGUF files:
63
+
64
+ ```bash
65
+ uv sync --locked --extra mlx
66
+ uv run --no-sync rizzo download --backend mlx # the safetensors only, 8.2 GB
67
+ uv run --no-sync rizzo serve --backend mlx --bits 8
68
+ ```
69
+
70
+ It answers as `rizzo-flow-4b-bf16` (or `…-q8`/`…-q4` with `--bits`). On an RTX 5060 Ti with MLX-CUDA, BF16, the
71
+ 4B gives the same prompts (same hashes) and the same probabilities as llama.cpp BF16 within 0.001.
72
+
73
+ **transformers** loads the checkpoint with the original Spark code (`trust_remote_code=True`,
74
+ `modeling_spark.py` is XHToken's file, unchanged): `AutoModelForCausalLM.from_pretrained(
75
+ "rizzoaiacademy/rizzo-flow", trust_remote_code=True, dtype="bfloat16")`. Use the prompts of
76
+ Rizzo Flow and read the answer-letter logits at the last position; generating text is not what
77
+ it was trained for.
78
+
79
+ The GGUF files are plain GGUF (architecture `spark2_5`; Rizzo Flow runs them on llama.cpp release b11081), but the model is
80
  meant to be **read, not chatted with**: Rizzo Flow builds the prompt, then reads the logits of the
81
  answer letters. In a chat app it behaves like a lightly changed Spark-X2.5, and the fine-tune
82
  brings nothing there.