botp
/

Solomon / mlx /bf16 /README.md
orz99's picture ArcherHume's picture
Duplicate from DoccyHealth/Solomon
1d2de8a
|
Raw History Blame Contribute Delete
3.06 kB

Solomon BF16 conversion provenance

This directory retains metadata for the unquantized BF16 conversion. Backbone weights are downloaded separately from Qwen; adapter and head weights live at adapter/adapter.safetensors and adapter/heads.npz in the repository root. This directory is no longer a self-contained loadable model.

Install the source package in ../ and follow its README. From that package directory:

uv sync --frozen --extra dev
SOLOMON_COMMIT=$(uv run python -c 'from huggingface_hub import HfApi; print(HfApi().model_info("DoccyHealth/Solomon").sha)')
uv run solomon-mlx-hub prepare --revision "$SOLOMON_COMMIT" --output models/quality

The loader fetches adapter/** plus MLX licensing metadata at the pinned Solomon commit. It obtains the original base from Qwen/Qwen3.8-27B at 1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0, verifies every base file, and invokes the included exact converter. Existing original weights can be supplied with --base. Existing valid converted outputs are verified and reused.

The original converter source is ../src/solomon_mlx/prepare.py. The runtime source hash recorded in conversion.json for this historical conversion is 648e440cface0838f2dcc8d89b3ab172d97f4ffc1f88fe0b7cbbe3ca73b8a575. The current runtime source hash is bbcae17fc1c35db80a79d5865133a42ef9a1b0cf342fff71949972e69cce43ec; the two differ only by the release documentation edits described in ../README.md, which changed no converter behaviour. The new Hub loader is packaged separately so the original converter remains reproducible. Dependency versions are locked in ../uv.lock. Large matrices stay BF16; normalization parameters, A_log, and dt_bias stay FP32, with normalization offsets applied after promotion. LoRA is never merged.

conversion.json and binding.json retain the historical output checksums and paths, including removed backbone and duplicate adapter paths. The root adapter and heads are byte-identical to those historical records. The old binding SHA-256 is 6d45715aa040fad98b061ff2cbafb35b047143ef2475646cee3df7a334f4d530. New local conversions receive a fresh binding with actual output checksums; safetensors serialization may differ across CPU and Metal. The historical source revision 2ec506902269e4636285c8811f6c0f52c9300c0c is provenance, not a required future download URL. After a history rewrite, pin the new repository commit.

Experimental: complete CUDA parity remains pending. Focused text/image fixtures and a partial text panel match CUDA decisions. See the dated results in ../docs/VALIDATION-20260921.md. No new calibration or temperature fitting is required or performed. Existing CUDA temperatures are applied identically to both backends for comparison; CUDA qualification is not inherited.

The historical conversion produced 55,610,774,146 bytes. Focused inference used about 59.9 GB peak Metal allocation on an M5 Max / 128 GB Mac; larger inputs need more memory. This is full BF16, without quantization, and does not fit 24–32 GB Macs.