Какой формат весов выбрать: GGML, ONNX или SafeTensors

GGML — нативный формат фреймворка llama.cpp, оптимизированный для инференса на CPU и слабых GPU. Весь код для вычислений написан вручную на C с учётом квантизации, что даёт экономию памяти на 70–90 %. Файлы GGML загружаются быстро и работают даже на ноутбуках без видеокарты.

ONNX — стандарт промышленности для обмена моделями между фреймворками. Поддерживается везде: TensorFlow, PyTorch, TensorRT. Файлы больше, инференс требует быстрого оборудования, но совместимость — высочайшая. ONNX выбирают при интеграции в производственное приложение.

SafeTensors как альтернатива пиклу

SafeTensors — молодой формат от Hugging Face, созданный как безопасная замена пикла PyTorch. Загружается быстрее, весить при этом столько же, и нет угрозы выполнения произвольного кода при распаковке. На Hugging Face уже 80 % весов распространяются в этом формате.

Выбор зависит от сценария: для домашних экспериментов — GGML, для прода на ускорителях — ONNX или SafeTensors с PyTorch, для мобилей и встраиваемых систем — GGML с квантизацией. Многие инструменты поддерживают все три, конвертируя по требованию.

Экосистема быстро созревала: три года назад ковыляли с pickle, теперь есть ясные рекомендации для каждого случая. Дробление форматов раздражает, но каждый решает свою задачу лучше, чем универсальное решение.