Архитектура: разделение экспорта и инференса
Проект Do Inference Now (DIN) Deploy решает проблему портируемости AI-моделей, разделяя процесс на два этапа. Сначала Python-экспортер конвертирует чекпоинты из Hugging Face в формат ONNX. Затем нативное C++ CLI-приложение, построенное на ONNX Runtime (ORT), выполняет инференс. Это позволяет использовать единый API для разных вендоров, оставляя специфичный код (CUDA, TensorRT) только в опциональных ускоренных путях.
Для пред- и постобработки, особенно в генеративных задачах, используется графический интероп ONNX Runtime 1.25 через Vulkan и DirectX. Поддерживаются сборки для Windows, Linux, x86-64 и Arm64.
Производительность на DGX Spark
Ключевое преимущество решения — аппаратное ускорение на GPU. В тестах на платформе DGX Spark показано колоссальное преимущество GPU перед CPU, особенно для задач обработки речи и сегментации.
| Модель | GPU (DGX Spark) | CPU (DGX Spark) |
|---|---|---|
| nvidia/parakeet-tdt-0.6b-v3 | 206.41x (real-time) | 14.44x (real-time) |
| openai/whisper-large-v3-turbo | 58.5x (real-time) | 3.8x (real-time) |
| nvidia/nemotron-3.5-asr-streaming-0.6b | 39.01x (real-time) | 3.24x (real-time) |
| facebook/sam2.1-hiera-base-plus | 38.3 FPS | 0.5 FPS |
Для аудио результаты приведены в кратности к реальному времени (чем выше, тем лучше), для SAM 2.1 — в кадрах в секунду.
Поддерживаемые модели и задачи
Репозиторий покрывает три основных направления:
- Распознавание речи (ASR): OpenAI Whisper (оффлайн), NVIDIA Parakeet TDT и Nemotron ASR Streaming (стриминг).
- Компьютерное зрение: Meta SAM 2.1 для интерактивной сегментации изображений и видео.
- Генерация изображений: FLUX.2-klein-4B. Этот пример демонстрирует интеграцию с графическими API и использование постобучающей квантования (PTQ) через NVIDIA Model Optimizer. Квантованная модель является «drop-in replacement» (прямой заменой) без изменений в коде приложения.
Как начать работу
Разработчикам доступны CMake-пресеты для автоматической загрузки ONNX Runtime и TensorRT RTX. Код позволяет интегрировать пайплайны в собственные приложения, сохраняя совместимость с разными аппаратными платформами. Полные исходные коды и документация доступны в репозитории DIN Deploy.
Источник: NVIDIA dev blog ↗
