Две Nemotron: состояние реализации и проверки
Поставка завершена 8 ноября. Обе Nemotron выбираются и выполняются в production Monitor и Compare. Все пять прежних backend завершили контрольное распознавание в обновлённом Compare.
Исходники
- Chat Agent: MR !67, доставка через MR !68, main
430dcb8d. - ASR: MR !10, main
54a49e78. - Rag Stack: адресный ASR в MR !2, закреплённый Docker CLI в !3, явный тег в !4, main
2dc32e03. - Расширение, GPU/MIG и модель голосового чата GigaAM Large не менялись.
Добавлены два адаптера в существующий worker, пункты Compare/Monitor, проверка фактической модели, диагностический срок 120 секунд и отдельное время загрузки/прогрева. Сохраняются NATS subjects, очередь, приоритет живой речи, контроль входа и защита от повторного вызова.
Lite использует извлечённые encoder/CTC, без 30B LLM и Core ML. Ревизии, хеши и лицензии закреплены; runtime не скачивает веса. Для NVIDIA 0.6B фактическая закреплённая конфигурация поддерживает [56,13], а не исходно предложенные [70,13]. Язык — ru-RU.
С разрешения владельца обновлены Torch/torchaudio 2.10.0+cu126, Triton 3.6, NCCL 2.27.5, NVSHMEM 3.4.5 и связанный TorchCodec 0.10.0. Исправлены блокеры apt/Lightning/fsspec/PyArrow. Проверки безопасности не ослаблялись.
Дополнительно исправлены:
- необратимое округление mel-коэффициентов при общем переводе модели в FP16; preprocessor сохраняет FP32;
- ложный WER 100% до завершения распознавания и после ошибки/отмены;
- смешение неподдерживаемых и несохранённых confidence-оценок;
- устаревшее указание Core вместо фактического Audio Ingress в наблюдении результата bridge.
Проверки
- 606 frontend-тестов и типизация — CI 5807; остальные четыре группы в этом точечном прогоне штатно пропущены как незатронутые. Базовый набор пяти групп выполнен ранее на общей реализации в CI 5789.
- 59 адресных тестов сравнения/повтора. На итоговом main пять групп CI прошли; опубликованы образы Gateway, Audio Ingress и Front.
- ASR: 49 bridge/NATS и 13 worker/adapter checks в полном кандидате; отдельные настоящие NATS-сценарии проверяют очередь, приоритет, отмену во время загрузки, недоступность и потерю ответа без повторного вызова.
- Полный кандидат 65f82dad ранее прошёл Trivy для восьми образов. Повтор 7 ноября с новой базой уязвимостей нашёл две исправляемые HIGH в zlib1g; исправление 8630eeca прошло штатный CI 5808: шесть затронутых образов проверены Trivy и опубликованы. Использован прежний порог HIGH/CRITICAL с ignore-unfixed; проверки не ослаблялись.
- Обе Nemotron и обе GigaAM распознали по 50 записей на Torch 2.8 и 2.10: тексты и входные хеши совпали. CPU GigaAM явно использовал FP32 только в одноразовом тесте; GPU-адаптер не менялся.
- Pyannote/TorchCodec прочитал контрольный WAV; образы диаризации прошли свои проверки импортов. Их новое GPU-поведение пока не подтверждено.
Предварительное сравнение CPU
Фиксированная выборка Fleurs: 40 RU / 10 EN, одинаковые PCM16 и float32 SHA-256 для всех пяти моделей. Это небольшая выборка, не полноценный benchmark. CPU INT8 Whisper и FP32 остальных нельзя использовать для вывода о сравнительной скорости на H100.
| Модель | CPU precision | WER RU | CER RU | Среднее распознавание RU, мс |
|---|---|---|---|---|
| Whisper Turbo | int8 | 5.80% | 1.42% | 7876.1 |
| GigaAM RNNT | float32 | 5.43% | 1.52% | 533.3 |
| GigaAM Large | float32 | 7.53% | 3.45% | 1058.4 |
| Nemotron ASR 0.6B | float32 | 12.72% | 4.45% | 1734.0 |
| Nemotron Transcribe Lite | float32 | 26.67% | 8.01% | 1007.8 |
На этих русских примерах новые модели уступили действующим. Lite остаётся экспериментальной. Модель чата по умолчанию сохраняется.
Английские результаты лежат в JSON, но Turbo и официальная Nemotron также на EN использовали принудительный русский; эти цифры не оценивают их английский режим. Полные записи/тексты/времена — в benchmark-*.json; сводка — benchmark-summary.json.
На максимальном CPU-входе 33 секунды обе модели обработали тишину, шум и повторённую речь без исключений. Lite успешно прошёл границу 30-секундных блоков, но на шуме вернул ложный текст «Сем. С.»; официальный ASR вернул пустую строку. GPU/FP16 этим тестом не подтверждены.
Реальный production baseline до обновления
Все пять прежних backend завершили одну публичную фразу в HTTPS Compare: текст совпал с эталоном, WER/CER 0, по одному вызову. Вход модели совпал по SHA-256 у четырёх H100 backend; LinTO этот хеш не сообщает, для него подтверждены исходная запись и диапазон.
| Backend | Чистое распознавание, мс |
|---|---|
| Whisper Turbo | 174.46 |
| GigaAM Large | 195.26 |
| Whisper Russian | 370.53 |
| GigaAM RNNT | 206.98 |
| LinTO | 184.27 |
Это единичные вызовы, не p95 и не приёмка нового runtime. Физический микрофон не использовался. Временная подстановка публичного звука в тестовой вкладке удалена, настройки восстановлены.
Поставка 8 ноября
- ASR pipeline 5817: 49 bridge/NATS и 13 worker-тестов, Trivy, публикация worker и bridge 3.2.379. Registry Explorer подтвердил worker
f9d8d321…, bridgeceeb2cfe…. - Chat pipeline 5818: пять проверок, сборка и preflight. Registry Explorer подтвердил три образа версии 1.0.1203 для точного SHA.
- Rag Stack pipeline 5825 применил только ASR-композицию без prune. Фактический контейнер на H100 запустился с
f9d8d321…, источник54a49e78. Спецификация используетmain:latest. - Worker здоров:
ready=true,accepts_requests=true,nemotron_residency=resident. Подтверждены обе Nemotron и четыре прежних H100 backend. Listener проверилmain:latestи получил тот жеf9d8d321…; образы всех 23 соседних GPU-сервисов совпадают с исходными. - Bridge pipeline 5826 применил подготовленный образ и подтвердил readiness на
54a49e78/ceeb2cfe…. - Chat backend job 30661 прошла. Фактические digest: Gateway
f8be1acc…, Audio Ingressc3c92c1d…. - Chat Front job 30662 завершилась в 12:47:09 МСК, приём возобновлён. Фактический digest Front
6b61519fa1605de4dae2a221c2eeecee9a7f1589f32526d83b0f541a294d92c8. - В промежуточной проверке listener получал старую ссылку с digest и не мог видеть новый тег. Dry Stack нормализует
:latest, Docker сохраняет прежний digest при совпадении исходного имени. Адресное дополнение Compose позволило заменить эту ссылку. Для новой публикации по этому тегу повторять миграцию не требуется. - GPU-проверка на изолированном worker: одновременно обе Nemotron и действующие модели, минимально 6,0 ГиБ свободно. Тесты на 90 мс, 1 с и до 33 с, включая тишину, шум и речь. На одном коротком публичном отрывке FP16 и FP32 вернули одинаковый текст; прогретое распознавание 29,24/92,07 мс (0.6B/Lite). Полная выборка сравнения проверялась на CPU.
Проверка production после поставки
| Где | Вход | Nemotron 0.6B | Nemotron Lite |
|---|---|---|---|
| Monitor | Одна сохранённая фраза; оба повтора совпали с исходным входом по SHA-256 | 197,87 мс | 109,47 мс |
| Compare | Один публичный отрывок, те же пакеты и границы; входы A/B совпали по хешам | 175,3 мс | 106,9 мс |
Таблица показывает время работы модели. В Compare — по одной фразе, по одному вызову и 0 мс загрузки обеих моделей. Первый запуск ждал браузерную подготовку Silero 68,26 с; следующий переиспользовал готовые границы и Opus-пакеты. От границы до показа прошло 333/244 мс. Это один прогон, не оценка p95.
Monitor завершил оба повтора с подтверждением «Команда чата не создавалась», сохранив исходный столбец GigaAM Large. Список проверен в светлой и тёмной темах, исходная тема восстановлена. В Compare Whisper Turbo, Whisper Russian, GigaAM RNNT, GigaAM Large и LinTO также вернули по одному результату без ошибки. Физический микрофон не использовался; тестовая вкладка с публичным звуком закрыта.
История попыток 7 ноября (до восстановления доступа)
ASR pipeline 5808, SHA 8630eeca: SUCCESS. Build job 30551 завершилась 7 ноября в 19:26:41 МСК за 29 минут 53 секунды. Существующий отбор влияния собрал шесть затронутых образов; 49 bridge/NATS-тестов, проверки импортов Pyannote/Sortformer и Trivy прошли. Все шесть образов опубликованы под 3.2-deploy и latest-deploy; проверенные config digest и refs сохранены в ci-5808-build-summary.json. ASR worker и LinTO этой трёхстрочной правкой не затронуты и повторно не собирались.
Deploy job 30552 также SUCCESS, завершение 19:27:46 МСК. Её точный результат: [deploy] skipped outside the default branch. 32 теста deployment-образа (100 assertions) прошли, но runtime не изменялся; это успешная проверка кандидата, а не production-поставка.
Предыдущий полный pipeline 5805 не был успешен: job 30533 и первый повтор 30542 завершились часовым тайм-аутом при публикации. Второй повтор 30550 завершился 7 ноября 15:55 UTC с Trivy exit 1: новые CVE-2026-76844/CVE-2026-85091 в zlib1g. Commit 8630eeca обновляет zlib1g штатным APT в трёх Dockerfile. Исправленная версия Debian Trixie — 1:1.3.dfsg+really1.3.1-1+deb13u1; установка подтверждена trace нового CI. Root CI не изменён.
Registry уже отдал manifest полного кандидата:
sha256:9e7bbdc192f9dd55c6a74f596e234e4ca6455cab8c915251d97e040f1889f4da
35 layers, linux/amd64; config sha256:e1ca893412045feb3c589a2afa2e1ad6c85943cdeb57501c94dec5cad1a3fa19. Config digest совпадает с image ID, экспортированным и проверенным Trivy в job 30542; build labels этого образа содержат revision 65f82dad50233b7dfc6a632001595f28158323cf. Runtime ещё не запускался.
H100 не смог скачать этот digest: proxyconnect tcp: dial tcp 72.56.73.217:1195: i/o timeout. Свежая проверка 7 ноября 19:12 МСК снова дала TCP timeout и к настроенному proxy, и к registry:443. Требуется восстановление штатного доступа Docker к registry; сеть, proxy и daemon не изменялись. Тестовый GPU-контейнер не создан.
Предыдущий рабочий digest, сохранённый для отката:
sha256:d2718c893a87add423e68d5e506147cd0f69b27f9173fa4052fe9893cd5697ed
Размер первоначальных изменений
| Группа | Chat Agent | ASR | Всего |
|---|---|---|---|
| Рабочий код и конфигурация, net | +43 | +372 | +415 |
| Тесты, net | +66 | +197 | +263 |
| Документация и лицензии, net | +12 | +96 | +108 |
Подробный журнал проверки — verification-progress.md; точные added/removed — source-line-counts.json.
Итоговые diff относительно исходных main, включая исправления поставки: Chat Agent +174/−51, ASR +730/−42, Rag Stack +25/−4.