Конвертация модели в Core ML-формат для Apple-устройств
Core ML — нативный ML-фреймворк Apple. Модели в .mlpackage/.mlmodel формате запускаются через Neural Engine (ANE), GPU или CPU — iOS выбирает автоматически. Результат: наилучшая производительность на Apple Silicon с минимальным энергопотреблением.
Инструменты конвертации
coremltools (основной инструмент):
import coremltools as ct
model = ct.convert(pytorch_model, inputs=[ct.TensorType(shape=input_shape)])
model.save("model.mlpackage")
Поддерживает: PyTorch, TensorFlow/Keras, ONNX как промежуточный формат.
Core ML Tools Optimization:
- 8-bit quantization:
ct.optimize.coreml.linear_quantize_weights(model, mode='linear_symmetric') - 4-bit palettization для размера
- Pruning support
Нюансы конвертации
Unsupported ops: не все PyTorch операции имеют Core ML эквивалент. Кастомные операции требуют реализации через ct.CompositeOp или замены на поддерживаемые.
Numerics: float32 → float16 по умолчанию на некоторых аппаратах. Precision проверяется через numeric tolerance tests.
Shape flexibility: статичные vs. динамические размеры. ANE лучше работает со статичными формами.
LLM конвертация
Apple CoreML Tools 8+ поддерживает конвертацию трансформеров с оптимизациями. mlx-lm (Apple MLX framework) — более эффективный путь для LLM на Apple Silicon.
Тестирование после конвертации
Сравнение выходов PyTorch vs Core ML на тестовом наборе. Max absolute error < 1e-4 для float16.







