VoiVision AI
tech· VoiVision AI Engineering

Запуск частного ASR на Ascend 910B: установка, адаптация оператора и пропускная способность

Полное прохождение посадки китайского движка речевого перевода в текст на NPU Huawei Ascend в закрытой частной среде - матрица версий, преобразование модели ONNX-to-OM, команды развертывания контейнеров, шесть ловушек, попавших в реальные развертывания, и эталонные показатели производительности.Для инженеров, развертывающих ASR в средах Xinchuang.


Внутренний акселератор ИИ On-Prem речевая транскрипция

В этой статье рассказывается о посадке китайского мотора речи в текст на NPU Huawei Ascend в частной среде - версии среды, преобразование моделей, команды развертывания, ошибки и справочные показатели производительности.

О цифрах: цифры, обозначенные "спецификацией", взяты из опубликованного продукта Характеристики.Таблица производительности дает исходные величины в типичных условиях; фактические значения варьируются в зависимости от условий звука, размера модели и стратегии одновременности.Всегда измеряйте свою собственную рабочую нагрузку

Почему он должен работать на домашнем оборудовании

В правительстве, финансах и обороне системы должны быть не только «данными на месте», но и «технологически самодостаточными».«Это означает перенос базовых вычислений с импортированных графических процессоров на отечественные чипы Ascend, Cambricon и Hygon, а ОС на Kylin, UnionTech и другие отечественные системы.

В инженерных терминах это становится тремя жесткими ограничениями:

  • Резиденция данных - аудиозапись заседаний содержит внутренние дискуссии, и многие организации прямо запрещают аудиозапись покидать интранет.
  • Xinchuang procurement - импортированные GPU могут вообще не появиться в одобренном списке покупок
  • Операция с воздушным зазором - некоторые сайты не имеют внешнего подключения, поэтому вес модели должен быть упакован в среду заранее.

Основная идея: локальное развертывание отвечает «где находятся данные»; локализация отвечает «кто контролирует технологию.Вместе "Они сходится на одну задачу - Запустить ASR на отечественных НПУ, и работать достаточно быстро.

Поддерживаемые ускорители

Построенный на основе исследований NEU NLP (Северо-Восточного университета), двигатель VoiVision встроенно поддерживает основные ускорители:

ТипПредставителиИспользовать
NVIDIAT4 / L4 / A10 / A100Общий, высокая производительность
Ascend310P / 910BЛокализированные, домашние серверы
CambriconMLU370 / MLU590Локализированные, домашние серверы
Hygon DCUСерия DCUДомашний путь x86
Только CPUx86 / ARMПовторное использование существующих, низкая параллельность

В настоящее время Ascend имеет наиболее полный Экосистема среди отечественных акселераторов (CANN + MindSpore + модельный зоопарк). 910B предназначен для обучения и вывода с высокой пропускной способностью, в то время как 310P предназначен для использования краевых и низких мощностей.Для устойчивой одновременной встречи речевая транскрипция, общим шаблоном является 910B для центрального вывода и 310P для краевых узлов.

Настройка среды: выравнивание версий является самой большой ловушкой

Боль в Ascend Экосистема не вычисляется, это матрица версии.Драйвер, прошивка, CANN, фреймворк и формат модели - любое из пяти, не синхронизируемое, приводит к запутанным сбоям.

Комбинация, которую мы обычно видим стабильной:

КомпонентВерсияПримечание
Драйвер / прошивкаТщательно привязанный к CANNПроверьте официальную таблицу совместимости перед обновлением
CANNСерия 8.xБиблиотека операторов и инструменты преобразования моделей живут здесь
КонтейнерВремя выполнения Ascend DockerНеобходимо - простой Docker не может монтировать NPU
Рамочная основа выводовВремя выполнения ONNX + ACLМодели OM хорошо работают без MindSpore
ОСopenEuler / Kylin V10 / UnionTech UOSОбщие в Xinchuang среды

Первый шаг - это всегда подтверждение того, что NPU виден:

# List NPU devices and status
npu-smi info

# Expect a device list with 910B entries in a healthy state
# If the card is not visible here, nothing downstream matters — fix the driver first

Ловушка: на некоторых системах Kylin V10 npu-smi info сообщает об ошибке демона dmp сразу после установки драйвера.Причиной оказался конфликт между собственной версией системы dkms и установщиком драйверов.Исправление заключается в том, чтобы удалить системный dkms и переустановить его с использованием версии, поставленной с пакетом драйверов.Проблемы адаптации на уровне дистрибуции, подобные этой, редко документируются и относятся к числу наиболее распространенных блокеров на сайте.

Конверсия моделей: ONNX в OM

Модели ASR обычно обучаются в PyTorch, экспортируются в ONNX, а затем преобразуются в формат OM Ascend.

Три вещи, на которые следует обратить внимание при экспорте ONNX

torch.onnx.export(
    model, dummy_input,
    "asr.onnx",
    opset_version=14,          # Ascend supports lower opsets better — avoid the newest
    do_constant_folding=True,
    input_names=["audio", "audio_len"],
    output_names=["logits"],
    dynamic_axes={              # critical: audio length is variable
        "audio": {0: "batch", 1: "time"},
        "logits": {0: "batch", 1: "time"},
    },
)

Три места, где это обычно происходит неправильно:

  1. Версия Opset - новейший не лучше.Версии с высоким опсетом чаще поражают неподдерживаемых операторов во время преобразования; 14 является хорошо проверенным выбором.
  2. Динамические оси - длина аудио по своей природе переменная, поэтому dynamic_axes должна быть объявлена, в противном случае вы ограничены вводом фиксированной длины, и результат непригодный для производства.
  3. Постоянное складывание - do_constant_folding=True заметно уменьшает график и улучшает успешность конверсии.

Преобразование с ATC

atc --model=asr.onnx \
    --framework=5 \
    --output=asr_om \
    --input_format=ND \
    --input_shape="audio:-1,-1;audio_len:-1" \
    --dynamic_dims="1,16000;1,32000;1,48000" \
    --soc_version=Ascend910B \
    --precision_mode=allow_fp16 \
    --log=error

Что на самом деле означают параметры:

  • --soc_version - должно соответствовать физическому оборудованию точно.Указание 910A на 910B неудачно во время загрузки с расплывчатой ошибкой.
  • --dynamic_dims - динамические профили формы.Для аудио, профилирование по продолжительности; слишком много профилей увеличивает время компиляции, слишком мало вызывает частую перекомпиляцию и джиттер задержки.
  • --precision_mode-allow_fp16, как правило, требует ничтожной точности по сравнению с ASR, при этом значительно улучшает пропускную способность.

Нужно ли количественно оценивать?

ТочностьПропускная способностьТочность
FP16Базовый показательБазовый показатель
INT8Явная выгодаЗначительная стоимость

Вердикт: поддерживать FP16, где точность имеет решающее значение (медицинские, юридические встречи); INT8 является лучшей торговлей, где высокая толерантность к ошибкам, например, внутренние стенд-ап и тренировочные записи.

Развертывание: контейнеры - единственный разумный вариант

На площадках Xinchuang голые металлические установки практически не поддаются техническому обслуживанию.Мы поставляем контейнеры:

docker run -it --name asr_server \
  --device /dev/davinci0 \
  --device /dev/davinci_manager \
  --device /dev/devmm_svm \
  --device /dev/hisi_hdc \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
  -v /data/models:/models \
  -p 8000:8000 \
  asr-server:910b \
  ./asr_server --model /models/asr_om --port 8000
  • Работает на bare-metal, правительственных облаках и локализованных средах;
  • Интеграция с OA и системами собраний через стандартные API RESTful / WebSocket;
  • Масштабы эластично по конкуренции.

Обратите внимание на эти записи --device: Отсутствие любого из них приводит к отказу инициализации ACL., и ошибка не сообщит вам, что устройство отсутствует.Это самый распространенный препятствие для новичков.

Также - Не придумайте частный протокол.Использование стандартных REST (файл речевая транскрипция) и WebSocket (поток в режиме реального времени), или интеграция с заказчиком OA и системами собраний становится болезненной.

Если у вас уже есть серверы, развертывайте software-only engine, чтобы получить частный речевая транскрипция на отечественных акселераторах без покупки оборудования.

Базовые характеристики

Условия испытания: Ascend 910B, FP16, китайский аудиоконференции, 16 кГц моно.

MetricСсылкаПримечание
Фактор реального времени (RTF)~0.1 порядка1 час аудиозаписи в нескольких протокол совещания
Одновременные потоки на картуДесятьЧистый речевая транскрипция, устойчивая параллельность встреч
Задержка первого токенаSub-secondРежим потоковой передачи; обычно менее 1 с на практике
Китайская точность речевая транскрипция≥98%Стандартные сценарии проведения совещаний на мандаринском языке (спецификация)
Диалектное покрытие22Автоматическое обнаружение (спецификация)

☑️ Вышеприведенная фигура одновременности - Только речевая транскрипция (одна карта ASR, без разделение по спикерам или минутной структурирования). Добавление разделения спикеров плюс извлечение темы / пункта действия значительно снижает емкость на карту - устройство оценивается на 10 одновременных встреч, который относится к целому трубопроводу (речевая транскрипция + разделение + структурирование); кластерная форма рассчитана на 50+ потоков. Всегда спрашивайте, какой слой поставщик котирует - три различаются множественными.

Шесть ловушек от реальных развертываний

Это самая ценная часть поста.Каждый из них был сбит на месте.

1.Динамические формы, вызывающие постоянную перекомпиляцию Без --dynamic_dims каждая новая длина звука вызывала перекомпиляцию графика, а задержка увеличивалась до секунд.Профилирование по длительности привело его обратно менее чем за секунду.

2.Длинная аудио-исчерпывающая память Запись двухчасовой записи встречи непосредственно в модель OOMs устройство.Вам нужно инкрементальная индукция - сегмент по VAD и декодировать сегмент по сегменту, а не загружать весь файл.

3.Неподдерживаемые операторы тихо отказываются В варианте LayerNorm не было аналога Ascend. ATC не вызывает никаких ошибок во время преобразования, и модель выводит все нули в время выполнения. Всегда запускать проверку эквивалентности после преобразования: запускает один и тот же аудио через ONNX Runtime (CPU) и OM (NPU) и сравнивает выходы.

4.Контекстные утечки при многопоточной параллельности Предыдущая версия создавала отдельный контекст ACL для каждого запроса и исчерпала контексты при загрузке.Контекстный пульсинг исправил это.

5.Модели должны быть переконвертированы после обновления драйверов После крупного обновления CANN, более старые модели OM могут потерять загрузку или потерять производительность.

6.Офлайн упаковка для воздушных узлов В физически изолированных средах зависимости CANN, драйверы, вес модели, шрифты и сертификаты должны быть заранее упакованы.Однажды мы прибыли на сайт, чтобы найти отсутствующий шрифт CJK, и каждая транскрипция возвращалась в коробки тофу.

Когда не выбирать отечественные акселераторы

Быть прямо с вами.Пропускайте его, если:

  • Нет Синьчжуан или мандата на локализацию → GPU Экосистема гораздо более зрелый, не делайте работу для себя
  • Никто в команде не знает, что затраты на эксплуатацию CANN намного превысят все, что сэкономит аппаратное обеспечение.
  • Совпадение однозначно → простого CPU достаточно, пропустите акселератор

Внутренние акселераторы - правильный звонок, когда: есть четкий мандат на соответствие требованиям + постоянное давление на одновременность + инженерные возможности для его поддержания.

Консультирование по размеру

  • Новый локализованный кластер: ускоритель VV05 / VV10+ Ascend или Cambricon;
  • Использование существующего x86: двигатель на CPU или Hygon DCU;
  • Смешанная среда: объединяет NVIDIA и отечественные ускорители, расписание по нагрузке.

Если вы думаете о частном облаке, посмотрите на on-premise ASR selection guide.

Смотрите private deployment guide и MLPS Level 3 compliance.

FAQ

Q: Какие отечественные чипы поддерживает речевая транскрипция?

A: Движок VoiVision встроенно поддерживает Ascend (310P / 910B), Cambricon (MLU370 / MLU590), Hygon DCU и полную линейку NVIDIA; он также работает на CPU в одиночку, охватывая весь локализованный и домашний стек.

Q: Почему ASR должен работать на отечественных ускорителях вообще?

A: Правительственные, финансовые и оборонные программы, как правило, требуют одновременно резиденции данных, соответствия закупкам Xinchuang и эксплуатации с воздушным разрывом.В совокупности, они часто исключают импортные графические процессоры, оставляя отечественные NPU в качестве единственного жизнеспособного пути.

Q: Каковы общие точки отказа при преобразовании ONNX в Ascend OM?

A: Три главных: Версия opset, которая слишком высока, вызывает неподдерживаемые операторы (14 является безопасным выбором), отсутствие деклараций dynamic_axes, ограничивающих вас аудио с фиксированной длиной, и soc_version, которая не соответствует фактическому оборудованию, которая отказывается во время загрузки с смутной ошибкой.После преобразования всегда выполняйте проверку эквивалентности вывода между CPU ONNX Runtime и NPU OM.

Q: Стоит ли квантизация INT8 на Ascend?

A: Это зависит от того, сколько ошибок допускается сценарием. INT8 обеспечивает четкое увеличение пропускной способности, но заметные затраты на точность.Хранить FP16 для чувствительных сценариев точности, таких как медицинские или юридические встречи; INT8 лучше торговать для внутренних стенд-ап и тренировочных записей.

Q: Какие устройства должны быть установлены для запуска Ascend в контейнере?

A: Четыре из них: / dev / davinci0, / dev / davinci_manager, / dev / devmm_svm и / dev /hisi_hdc, плюс каталог драйверов.Отсутствие любого из них приводит к отказу инициализации ACL, и сообщение об ошибке не сообщает вам о том, что устройство отсутствует.

Q: Может ли речевая транскрипция работать только на CPU?

A: Да.Движок оптимизирован для CPU, поэтому он работает на локализованных или общих серверах без дискретного ускорителя - идеально подходит для низкой параллельности или повторного использования существующего оборудования.

Q: Как это развертывается с Docker / K8s?

A: VoiVision поставляется в виде контейнерного образа с развертыванием Docker и Kubernetes с одной командой, работает на bare-metal, правительственных облаках и локализованных средах и интегрируется через стандартные RESTful / WebSocket API.

Q: Снижается ли точность на отечественных ускорителях?

A: Модель построена на исследованиях NEU NLP (Северо-Восточный университет); ускорители влияют только на пропускную способность и задержку.После квантизации и адаптации оператора на Ascend / Cambricon, точность китайского речевая транскрипция остается на том же уровне.

#отечественный ускоритель#Ascend#Cambricon#речь речевая транскрипция#Xinchuang#Модель преобразования

Персонализированная демо-версия

Расскажите нам о вашем сценарии встреч и потребностях в соблюдении стандартов - получите индивидуальный план.

Забронировать
Онлайн-чат