Зачем конвертировать GGUF в ONNX?
Пользователям нужен GGUF в формате .onnx для запуска модели в ONNX Runtime, DirectML или других кроссплатформенных ускорителях, которые не читают GGUF. Поскольку ONNX требует стандартный граф вычислений, а GGUF - это специфичный для llama.cpp квантованный контейнер, сначала нужно восстановить обычную модель PyTorch.
Способы конвертации GGUF в ONNX
Деквантование GGUF в safetensors OPEN-SOURCE
Используйте конвертер, такой как инструмент ungguf или скрипт чтения gguf, чтобы превратить .gguf обратно в safetensors полной точности, которые может загрузить Transformers.
Экспорт в ONNX с помощью Optimum FREE
Укажите Optimum на восстановленную модель: команда optimum-cli export onnx --model ./model-dir onnx-out/ запишет файл .onnx.
Ручной экспорт через PyTorch OPEN-SOURCE
Для неподдерживаемых архитектур загрузите модель в PyTorch и вызовите torch.onnx.export(model, dummy_input, "model.onnx") самостоятельно.
Об этих форматах
Файл .gguf - это файл формата GGML Universal Format, бинарный контейнер, используемый llama.cpp и сопутствующими инструментами для хранения больших языковых моделей в виде одного файла. Он…
Открыть детали .GGUF →Файл .ONNX - это файл данных, используемый специальным программным обеспечением.
Открыть детали .ONNX →Качество и на что обратить внимание
- Деквантование квантованного GGUF не может восстановить точность, потерянную при квантовании, а сложные типы (например, варианты IQ) могут некорректно преобразовываться обратно.
- Результирующий ONNX имеет полную точность, поэтому он может быть в несколько раз больше, чем компактный исходный GGUF.
- Optimum поддерживает только определенные архитектуры «из коробки»; нишевые или кастомные модели могут потребовать ручной настройки экспорта или выдать ошибку.