msluszniak's picture
Document why Core ML is not shipped
11808f8 verified
|
Raw
History Blame Contribute Delete
1.59 kB
# Core ML is not shipped for this model
The Core ML exporter exists in `export-scripts` and converts successfully, but the
artifact it produces cannot be loaded, so no `.pte` or `config.json` is published
here. Use the XNNPACK or MLX build instead.
## Why
Conversion succeeds (fp16, about 710 MB). Loading it in the ExecuTorch runtime
does not:
```
[tensor_parser_portable.cpp:192] getTensorDataPtr() failed: 0x23
[method.cpp:606] Failed parsing tensor at index 0: 0x23
```
Note what this is **not**. It is not the dynamic-shape crash that disables Core ML
on the other text models in this project (apple/coremltools#2825). That one fails
at execute; this fails at **load**, inside the *portable* tensor parser. Ops the
Core ML partitioner did not claim kept their constants in the ExecuTorch program,
and that data is unreadable. The artifact size or a constant-segment issue is the
plausible cause.
Because it never executed, the dynamic-shape question remains **open** for
LFM2.5-Embedding-350M. It never got far enough to hit it.
Re-tested on 2026-08-20 with the software-mansion-labs fork toolchain, rebuilt and
loaded under the fork runtime: identical `0x23`. So this is not an artifact of the
PyPI wheel, unlike the YOLO fp16 MLX case that the fork did fix.
## Two deliberate differences from the other backends
The Core ML variant loads the model in **float32**, because Core ML has no
bfloat16 input dtype, and does **not** apply `quantize_model_`, which packs
weights for the MLX runtime. So the Core ML build is unquantized, and its size is
not comparable to the MLX one.