CLaMP3 SAAS — unofficial native GGUF conversion
Unofficial GGUF conversion, published by gorse-io. This is not an official CLaMP3 release.
Converted from the official sander-wood/clamp3 SAAS checkpoint at revision
355625cc1c6f73726bbcd0eb9276ac7152d56426. Original checkpoint SHA-256:
5033f868e3977be3945ee416b5a1718d5589a173c7ba8982231d8c94a6441d80.
The already-cached checkpoint was hard-linked locally and its complete content
hash verified against Hugging Face's LFS SHA-256. No synthetic model weights were used.
The XLM-R base config/tokenizer came from FacebookAI/xlm-roberta-base revision
e73636d4f797dec63c3081bb6ed5c7b0bb3f2089. Both tokenizer and architecture
config are embedded in GGUF. Full provenance is in sources.json and
provenance.json. No model/tokenizer network access is needed at native inference.
Files and measured agreement
Each format contains 397 tensors and produces 768-dimensional, not L2-normalized, projections. Byte sizes are exact. Similarities below are minima over this small deterministic test set, against the original F32 checkpoint's independent Transformers reference; they are not retrieval scores.
| File | Bytes | Minimum text cosine | Minimum feature-input cosine |
|---|---|---|---|
clamp3-saas-f32.gguf |
1,464,290,528 | 1.0000000000 | 1.0000000000 |
clamp3-saas-f16.gguf |
737,198,816 | 0.9999996841 | 0.9999998536 |
clamp3-saas-q8_0.gguf |
396,376,928 | 0.9992065834 | 0.9999093049 |
clamp3-saas-q4_k_m.gguf |
233,156,288 | 0.9692604337 | 0.9950416007 |
- F32: all 397 tensors F32.
- F16: 151 matrix tensors F16; 246 vector tensors remain F32.
- Q8_0: 150 compatible matrices Q8_0; 247 tensors remain F32.
- Q4_K_M: 100 Q4_K, 50 Q6_K, 247 F32 tensors. This is clap.cpp's
encoder-specific mixed policy
q4_k_m-v1-all-v-ffn-down-projection-q6_k, not llama.cpp's decoder layer-index schedule. All compatible attention-V, FFN-down and final-projection matrices are protected with Q6_K. No importance matrix or calibration corpus was used. Ineligible tensors stay unchanged. - Both quantized formats were made directly from F32, not requantized from Q8.
Q4_K_M shows substantial text drift on these probes (minimum cosine about 0.9693 and worst relative L2 error about 24.7%). Do not advertise it as equivalent to F32/F16 or assume downstream retrieval accuracy is preserved. Q8_0's tested text minimum is about 0.9992, but this is also not a retrieval evaluation. Prefer F32/F16 as fidelity baselines; benchmark quantized files on your own task.
manifest.json and SHA256SUMS contain complete checksums. validation.json
contains all per-case max-absolute, RMSE, relative-L2, cosine and norm measurements.
F16 additionally reports comparison against identically F16-storage-rounded
reference weights, separately from its error versus original F32 weights.
source-tensor-audit.json confirms exact agreement of all 397 F32 tensors and
all 397 F16-stored tensors with the source at their advertised storage precision;
it also lists every omitted source tensor.
Runtime and inputs
Use the native clap-model executable from gorse-io/clap.cpp, tested revision
e5221ec109920d942263b353e8d83f02daacd2c3 (ggml a05c9922613c6a2230dbb1d0de679519ecafb4f0).
This is a custom general.architecture=clamp3 runtime, not a llama.cpp,
Transformers, Ollama, or generic GGUF-loadable language model. No such integration
or Hub hosted-inference support is claimed. This validation used CPU and system ICU.
./build/clap-model --model clamp3-saas-f16.gguf --threads 2 \
--text 'A calm acoustic guitar melody.'
./build/clap-model --model clamp3-saas-f16.gguf --threads 2 \
--audio-features mert.npy
sha256sum -c SHA256SUMS
mert.npy must contain precomputed MERT-v1-95M features as C-contiguous,
little-endian float32 with shape [T,768] or [1,T,768].
Raw waveform input is unsupported. The native runtime does not contain MERT.
Use upstream preprocessing/audio/extract_mert.py with
--model_path m-a-p/MERT-v1-95M and --mean_features in its own supported
preprocessing environment. Feature preprocessing is external; MERT weights are
not bundled, and their licensing/dependencies must be reviewed separately.
The native audio encoder adds a leading/trailing zero vector, uses 128-frame chunks, replaces a final partial chunk with an overlapping final full window, pads short sequences, masks padding, applies masked mean pooling and learned projection, then aggregates with full-chunk/remainder weights. Text uses the embedded XLM-R Unigram/Precompiled tokenizer and the same chunk aggregation, without an implicit 512-token truncation. Outputs are not cosine-normalized. Upstream text-file line deduplication/reordering is an external file-extraction step and is not claimed for the native direct-string API.
The original checkpoint contains symbolic components; symbolic encoders, ABC/MTF/MusicXML/image input, and unused text/audio pooler and audio word-embedding weights are omitted from this text/MERT-feature-only conversion. This is not the complete original multimodal checkpoint or a raw-audio model.
What was actually validated
- Independent CPU float32 Hugging Face
XLMRobertaModelandBertModelloaded actual nestedcheckpoint['model']weights with safe mmap loading, strict state checks and explicitly materialized nonpersistent position/token-type buffers. Forward/pooling/chunking follows pinned official upstream code saved inupstream/. - Four text inputs: English, Chinese, Unicode/normalization/control/emoji, and a 722-token overlapping-long input. Full UTF-8 API output equals output from the full token-ID list; long strings were not silently truncated to 512 tokens.
- Seven standalone exact-tokenizer probes plus each embedding input, across
multilingual text, combining marks, Hangul, controls, unknown emoji and
<mask>. - Three feature-domain probes of 5, 131 and 126 frames. Adding the official two boundary frames tests short padding, final overlap, and an exact 128-frame case. These are synthetic MERT-shaped feature values passed to real pretrained weights, not extracted features from recorded audio.
- All four formats: finite 768-dimensional outputs, text and feature inference; raw-waveform rejection, bad shape rejection and NaN-feature rejection.
- CLI text and both
[1,T,768]/[T,768]feature paths matched the native API in all four formats. Invalid dtype/width/nonfinite and waveform CLI inputs were rejected; seecli-validation.json.
Passing the chosen deterministic conformance thresholds does not establish
retrieval quality, music understanding quality, broad quantization accuracy,
GPU parity, end-to-end real-audio/MERT extraction, or third-party runtime support.
No retrieval corpus, real audio extraction, GPU, or symbolic inference was tested.
The evidence scripts and actual stdout/stderr, reference/native vectors, fixtures,
and per-tensor type inventories are in evidence/.
Reproduction
Build the pinned clap.cpp checkout with CMake Release,
-DCLAMP3_MODEL_PARITY=ON -DCLAP_USE_SYSTEM_ICU=ON, then build clap-cli,
clap-model, clamp3-model-test, and clap-unigram-test with -j2.
Use the recorded Python package versions from provenance.json. The evidence
scripts record the actual local workspace paths; adapt those paths when running
on another machine. The C++ evidence driver is a test harness, not an alternate
implementation of the encoders.
Conversion commands (source directory must also contain pinned config/tokenizer):
python convert_hf_to_gguf.py source/weights_clamp3_saas_h_size_768_t_model_FacebookAI_xlm-roberta-base_t_length_128_a_size_768_a_layers_12_a_length_128_s_size_768_s_layers_12_p_size_64_p_length_512.pth clamp3-saas-f32.gguf --dtype f32
python convert_hf_to_gguf.py source/weights_clamp3_saas_h_size_768_t_model_FacebookAI_xlm-roberta-base_t_length_128_a_size_768_a_layers_12_a_length_128_s_size_768_s_layers_12_p_size_64_p_length_512.pth clamp3-saas-f16.gguf --dtype f16
./build/clap quantize clamp3-saas-f32.gguf clamp3-saas-q8_0.gguf --type Q8_0
./build/clap quantize clamp3-saas-f32.gguf clamp3-saas-q4_k_m.gguf --type Q4_K_M
The converters/quantizer write atomically; temporary interrupted files are not
publication artifacts. Quantizer output paths must not already exist.
See REPRODUCE.md for the evidence-driver build and validation commands.
Attribution and license
Original CLaMP3: Sander Wood and contributors; upstream project
sanderwood/clamp3, official model sander-wood/clamp3.
The official model card declares MIT; upstream MIT copyright/license is included
in LICENSE. Original checkpoint and tokenizer source identities are retained in
provenance.json. This conversion does not assert new ownership or change the
source license. Respect upstream model, tokenizer and external preprocessing
requirements. The original staging provenance and validation evidence are retained; see the repository commit history for publication revisions.
- Downloads last month
- -
4-bit
8-bit
16-bit
32-bit