Экспорт и развёртывание для Axelera AI#
Ultralytics сотрудничает с Axelera AI, чтобы обеспечить высокопроизводительный и энергоэффективный инференс на устройствах периферийного ИИ. Экспортируй и развёртывай модели Ultralytics YOLO напрямую на Metis® AIPU с помощью Voyager SDK.
Axelera AI предоставляет специализированное аппаратное ускорение для компьютерного зрения на периферии, используя проприетарную архитектуру потоков данных и вычисления в памяти, чтобы обеспечивать производительность до 856 TOPS при низком энергопотреблении.
Выбор подходящего оборудования#
Axelera AI предлагает различные форм-факторы для разных условий развёртывания. Диаграмма ниже поможет выбрать оптимальное оборудование для развёртывания Ultralytics YOLO.
Линейка оборудования#
Линейка оборудования Axelera оптимизирована для запуска Ultralytics YOLO26 и более ранних версий с высокой эффективностью по FPS на ватт.
Карты-ускорители#
Эти карты обеспечивают аппаратное ускорение ИИ на существующих хост-устройствах, упрощая развёртывание в существующей инфраструктуре.
| Продукт | Форм-фактор | Вычислительная мощность | Производительность (INT8) | Целевое применение |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPU | 856 TOPS | Видеoаналитика с высокой плотностью потоков, умные города |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | Промышленные ПК, управление очередями в розничной торговле |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | Дроны, робототехника, портативные медицинские устройства |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | Среды, требующие усовершенствованного отвода тепла |
Интегрированные системы#
Для готовых решений Axelera сотрудничает с производителями, предлагая системы, предварительно проверенные на совместимость с Metis AIPU.
- Вычислительная плата Metis: автономное периферийное устройство, объединяющее Metis AIPU и ARM CPU Rockchip RK3588.
- Рабочие станции: корпоративные башенные системы Dell (Precision 3460XE) и Lenovo (ThinkStation P360 Ultra).
- Промышленные ПК: защищённые системы от Advantech и Aetina, предназначенные для автоматизации производства.
Поддерживаемые задачи#
Экспорт Axelera поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе с такими головами.
Модели YOLO26 для обнаружения объектов, сегментации экземпляров, оценки позы и OBB по умолчанию экспортируют свою голову one-to-one без NMS, а среда выполнения Axelera декодирует её на хосте. Передача nms=True приводит к экспорту головы one-to-many, которая показывает более низкие результаты на Metis: таким образом, YOLO26n для обнаружения объектов достигает mAP50-95 0.212 на COCO128 против 0.453 с головой без NMS.
| Задача | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Обнаружение | ✅ | ✅ | ✅ |
| Сегментация | ✅ | ✅ | ✅ |
| Семантическая сегментация | ❌ | ❌ | ✅ |
| Глубина | ❌ | ❌ | ✅ |
| Классификация | ✅ | ✅ | ✅ |
| Оценка позы | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Диапазоны квантования определяются по калибровочным изображениям, а набор по умолчанию для глубины, depth8.yaml, содержит четыре кадра из помещений. На валидационной выборке из 654 изображений NYU Depth V2 YOLO26n для оценки глубины, откалиброванная на этом наборе по умолчанию, показывает delta1 0.742 на Metis против 0.783 у модели PyTorch, а при использовании 100 обучающих кадров NYU результат составляет 0.780. Передай data= вместе с YAML-файлом набора данных, в котором раздел val содержит не менее 100 изображений из сцен, с которыми будет работать модель; для калибровки считывается раздел val.
Установка#
Для экспорта в формат Axelera требуется:
- Операционная система: только Linux (рекомендуется Ubuntu 22.04/24.04)
- Оборудование: ускоритель Axelera AI (устройства Metis)
- Python: версии 3.10, 3.11, 3.12 и 3.13
- PyTorch:
torch>=2.8,<2.15 - Voyager SDK: 1.9.0; при экспорте устанавливается эта версия devkit, а при инференсе — эта версия среды выполнения
- Драйвер ядра Metis:
metis-dkmsверсии 1.7.0 или новее; устанавливается отдельно отpip - Системная зависимость:
sudo apt install libgl1(требуется OpenCV, не входит вpip)
Установка Ultralytics#
pip install ultralyticsПодробные инструкции смотри в нашем руководстве по установке Ultralytics. Если возникнут трудности, обратись к нашему руководству по распространённым проблемам.
Установка драйвера Axelera#
-
Добавь ключ репозитория Axelera:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Добавь репозиторий в apt:
Выбери подходящий фрагмент ниже в соответствии с используемой операционной системой.
# Ubuntu 22.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"# Ubuntu 24.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list" -
Установи драйвер и загрузи его. Для SDK 1.9 требуется
metis-dkmsверсии 1.7.0 или новее, поэтому здесь устанавливается последняя версия:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Драйвер ядра устанавливается отдельно от пакетов Python SDK, поэтому после обновления SDK необходимо также обновить драйвер как минимум до требуемой этой версией SDK — до 1.7.0 для SDK 1.9. Во время установки это никак не проверяется, а если версия драйвера ниже минимальной, устройство становится недоступным: axdevice сообщает требуемую версию и не может открыть устройство.
[libaxldev.c:285] Found kernel driver version 1.6.2, but at least version 1.7.0 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0См. также Шаг 3: установка драйвера ядра Metis. Если на Ubuntu у тебя уже установлена более ранняя версия SDK, обнови драйвер и перезагрузи модуль ядра (перезагрузка системы не требуется):
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisЗатем снова запусти axdevice, чтобы убедиться, что устройство обнаружено.
При первом запуске yolo export format=axelera или yolo predict с моделью Axelera пакеты SDK Axelera будут автоматически загружены и установлены. В зависимости от скорости соединения это может занять несколько минут; ход загрузки не отображается. Чтобы установить пакеты заранее вручную:
pip install axelera-devkit==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.9 не меняет формат скомпилированной модели .axm, поэтому каталог _axelera_model, экспортированный с версией 1.8, загружается и работает без изменений. Повторно экспортируй модель только для использования улучшений компилятора.
SDK, который меняет формат, отклоняет старые каталоги при загрузке; именно это происходит при обновлении с версии 1.7 или более ранней:
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.Экспорт моделей YOLO в Axelera#
Формат Axelera поддерживает режимы Экспорт, Предсказание и Валидация. Инференс и валидация выполняются на оборудовании Axelera Metis AIPU. Экспортируй модель, затем загрузи её, чтобы запустить инференс или проверить точность.
from ultralytics import YOLO
# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")
# Экспортировать модель в формат Axelera
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# Загрузить экспортированную модель Axelera
model = YOLO("yolo26n_axelera_model")
# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Загрузить экспортированную модель Axelera
model = YOLO("yolo26n_axelera_model")
# Проверить точность на наборе данных COCO8
metrics = model.val(data="coco8.yaml")Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'axelera' | Целевой формат для оборудования Axelera Metis AIPU. |
imgsz | int или tuple | 640 | Размер входного изображения модели. |
batch* | int | 1 | Размер пакета для калибровки. Скомпилированная модель обрабатывает по одному изображению за раз. |
quantize | int или str | 8/авто | Точность квантования. Для Axelera AIPU требуется 8 (INT8), и она включается автоматически. Заменяет устаревшие флаги half/int8. См. раздел Квантование INT8. |
data | str | None | YAML-файл набора данных для калибровки; для классификации вместо него укажи каталог набора данных или встроенное название набора данных. Если параметр не задан, Ultralytics выбирает набор данных для калибровки в соответствии с задачей. |
fraction | float, int или list | 1.0 | Подмножество калибровочных данных, заданное коэффициентом, количеством изображений либо коэффициентами/количеством [train, val, test]. В списках из двух элементов test остаётся без изменений, а 0 пропускается (рекомендуется 100–400 изображений). |
device | str | None | Устройство для экспорта: GPU (device=0) или CPU (device=cpu). |
* Модели компилируются для обработки одного изображения, поэтому параметр экспорта batch задаёт только размер пакета для калибровки. Вместо этого передай batch в predict, чтобы передавать планировщику Axelera сразу несколько изображений (Voyager SDK 1.8.0 или новее): см. Максимальная производительность.
Все параметры экспорта смотри в документации по режиму экспорта.
Структура вывода#
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
├── compiler_config_final.toml # Compiler configuration used for the build
└── metadata.yaml # Model metadata (classes, image size, etc.)Бенчмарки Axelera AI#
AIPU Metis обеспечивает максимальную пропускную способность при минимальном энергопотреблении.
| Модель | FPS Metis PCIe (кадров в секунду) | FPS Metis M.2 (кадров в секунду) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Бенчмарки основаны на данных Axelera AI. Фактический FPS зависит от размера модели, пакетной обработки и разрешения входных данных.
Это показатели пропускной способности хоста, измеренные с помощью зоопарка моделей и потокового конвейера Voyager SDK на видеофайле с разрешением 720p. Один вызов predict показывает задержку обработки одного изображения — это другая величина.
Применение в реальных условиях#
Ultralytics YOLO на оборудовании Axelera позволяет создавать передовые решения для периферийных вычислений:
- Умная розница: подсчёт объектов в реальном времени и аналитика тепловых карт для оптимизации работы магазинов.
- Промышленная безопасность: обнаружение средств индивидуальной защиты с низкой задержкой на производстве.
- Аналитика с дронов: высокоскоростное обнаружение объектов на БПЛА для сельского хозяйства и поисково-спасательных операций.
- Транспортные системы: распознавание государственных регистрационных знаков и оценка скорости на периферийных устройствах.
Рекомендуемый рабочий процесс#
- Обучи модель с помощью режима Train Ultralytics
- Экспортируй модель в формат Axelera с помощью
model.export(format="axelera") - Проверь точность с помощью
yolo val, чтобы убедиться, что потери при квантовании минимальны - Выполни предсказание с помощью
yolo predictдля качественной проверки - Разверни модель в высокопроизводительном сквозном конвейере без зависимости от PyTorch — смотри примеры YOLO для Voyager SDK, где показаны компонуемые конвейеры Python с использованием
axelera-rt
Проверка состояния устройства#
Убедись, что устройство Axelera работает правильно:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdeviceПодробную диагностику смотри в документации AxDevice.
Максимальная производительность#
Модели компилируются для обработки одного изображения, и одно изображение обрабатывается на одном ядре AIPU. Передача нескольких изображений в предсказание позволяет передать их планировщику Axelera одновременно, чтобы он распределил их по ядрам устройства:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=32yolo26n при imgsz=640 на 128 изображениях COCO128 в каталоге, Metis PCIe, медиана трёх запусков:
| Voyager SDK | Устройства | batch=1 | batch=8 | batch=32 |
|---|---|---|---|---|
| 1.8.0 | 1 | 36 изобр./с | 45 изобр./с | 40 изобр./с |
| 1.8.0 | 2 | 39 изобр./с | 41 изобр./с | 41 изобр./с |
| 1.9.0 | 1 | 41 изобр./с | 85 изобр./с | 109 изобр./с |
| 1.9.0 | 2 | 35 изобр./с | 83 изобр./с | 113 изобр./с |
В SDK 1.9 пропускную способность увеличивает пакетная обработка: в 2,7 раза при batch=32, тогда как в версии 1.8 она остаётся около 40 изобр./с при любом размере пакета. Для максимальной пропускной способности при офлайн-обработке используй большой пакет, а когда важна задержка на одно изображение — batch=1. Второе устройство почти не увеличивает predict: при batch=32 предварительная обработка на хосте уже занимает около 4 мс на изображение — столько же, сколько и обработка на устройстве.
За пределами predict#
Для производственных систем, которым нужна максимальная пропускная способность, Axelera Voyager SDK предлагает:
- Потоковые конвейеры инференса, позволяющие одновременно обрабатывать несколько кадров
- Компиляцию одной модели для нескольких ядер
- Тайловый инференс для камер с более высоким разрешением
Эти варианты пропускают предварительную и последующую обработку PyTorch, которую predict выполняет на хосте. См. каталог моделей с тестами FPS или свяжись с Axelera по вопросам поддержки при внедрении в производство.
Известные проблемы#
- Ограничения по питанию M.2: на ускорителях M.2 при запуске крупных и очень крупных моделей могут возникать ошибки из-за ограничений источника питания.
Чтобы получить поддержку, посети сообщество Axelera.
Часто задаваемые вопросы#
Voyager SDK поддерживает экспорт моделей YOLOv8, YOLO11 и YOLO26. Список задач, доступных для каждой модели, смотри в разделе «Поддерживаемые задачи».
Да. Любую модель, обученную с помощью режима Train Ultralytics, можно экспортировать в формат Axelera, если в ней используются поддерживаемые слои и операции.
Voyager SDK от Axelera автоматически квантирует модели для архитектуры AIPU со смешанной точностью. В большинстве задач обнаружения объектов прирост производительности (более высокий FPS и меньшее энергопотребление) значительно перевешивает минимальное влияние на mAP. Квантование занимает от нескольких секунд до нескольких часов в зависимости от размера модели. После экспорта запусти
yolo val, чтобы проверить точность.Мы рекомендуем использовать от 100 до 400 изображений. Больше 400 изображений не принесёт дополнительной пользы и увеличит время квантования. Попробуй использовать 100, 200 и 400 изображений, чтобы найти оптимальный баланс.
SDK, драйверы и инструменты компилятора доступны на портале разработчиков Axelera.