GigaAM Large: Trivy, поставка и проверка
Состояние на 31 октября 2026, после адресной поставки и продолжения браузерной приёмки. ASR с Large работает на H100; backend и Front Chat Agent обновлены. Проверка следующей кодовой сборки также прошла. Браузерная приёмка отмечена отдельно ниже.
Почему публикацию блокировал Trivy
Корпоративная сборка проверяет все выбранные образы перед общей публикацией. Блокер был в установленных зависимостях и базах, а не в весах GigaAM. Первая подтверждённая ошибка job 26920 — пять HIGH в pyannote_diarization. После неё обнаруживались следующие уязвимые зависимости в других образах.
Исправлены закреплённые версии: msgpack 1.2.3, setuptools 80.10.2, urllib3 2.8.0, Hydra 1.3.8, Lightning 2.6.6, fsspec 2026.6.0, Transformers 5.10.4, filelock 4.2.4, certifi 2026.10.19, aiohttp 3.14.4. Из LinTO удалён uv после установки зависимостей; из worker — ненужные в runtime установщики. Корректность зависимостей проверена до удаления установщиков. Полный перечень попыток и причин сохранён в progress.json.
В worker Python обновлён до 3.11, как требуется исправленному filelock. Torch 2.8.0/cu126, CTranslate2 4.8.2 и faster-whisper 1.2.1 сохранены. Дублирующая CUDA-база заменена Python slim; используются закреплённые CUDA-библиотеки Torch с зарегистрированными путями ldconfig.
Последний конкретный блокер worker: aiohttp 3.14.3, три HIGH — CVE-2026-111064, CVE-2026-111066 и GHSA-2g87-pp6c-29x5. Установлена 3.14.4. Advisory.
Сканирование большого GPU-образа также превышало стандартные пять минут. В проектном docker/Dockerfile.build установлен TRIVY_TIMEOUT=15m. Политика HIGH/CRITICAL, ignore-unfixed, exit-code 1 сохранена. Исключений CVE и отключения сканирования нет. Корневой .gitlab-ci.yml не изменён. Параметры Trivy.
Исходники и опубликованные образы
- MR ASR !8 слит. Исходник работающего приложения:
8041b370e36cd8e5a9878f072cb264f790973d1d. - Main pipeline 5639, build 27284: SUCCESS, все 8 образов прошли Trivy и опубликованы. Build job 1792,5 с; из них сканирование восьми образов — 805,3 с. Это длительность CI, не скорость распознавания.
- Образы:
linto_stt_whisper_ffmpeg,pyannote_diarization,sherpa_onnx_diarization,sortformer_diarization,stt_whisper_to_nats,voice_status,webrtc_live_bridge,webrtc_streaming_asr. - Кодовая база worker закреплена на digest
5629b619aef9b0e5813afa254a69cc22b508e51f095a4964683311145c17677d; LinTO —b0b756141504c6d5396b19bf117b449d00e43b8f6db478eabae99beb6e3d4e8b. Обе из проверенного main/source 8041b37. - Последующие изменения затрагивают только Docker-рецепты: закрепление этих баз, восстановление исходника LinTO перед повторным применением патча, повторное использование каталога результатов worker tests. Последний SHA:
17f8ae32cc83e891cc6ba39c9b41885d95c0e1c7. - От исходного
ca436b4dдо17f8ae3: 19 файлов, +203 / −67 строк. В том числе добавление Large и устранение блокеров публикации. SHA-256 корневого CI:c32b7c0bfb9da207bd64901dee38fcd53bcfe733152bd26d9fd935b64204a339— неизменён.
Что действительно работает
| Часть | Подтверждённое состояние |
|---|---|
H100 webrtc-asr_streaming |
3.1.344, source 8041b37, точный digest 5629b619… |
| Модели worker | Turbo, Russian, GigaAM v3 RNNT, GigaAM Large CTC; ready=true, accepts_requests=true |
| ASR bridge | Source 8041b37, digest d0da979d7edbb60ee8e4dce5b017ac2b59046eed2771839ac5141b4e29cc9a29; refresh 27289 SUCCESS |
| Gateway, LLM, Agent, Core | Source 6236a3c; refresh 27192 SUCCESS |
| Audio Ingress | Source b11b3dd, OCI version 5.1.1079, digest f9fa7787…; refresh 27397 SUCCESS |
| Front / Compare / Monitor | Source b11b3dd, OCI version 5.1.1079, digest d0aadb6d…; refresh 27396 SUCCESS |
| Приём запросов | Восстановлен: resume 27194 SUCCESS |
H100 обновлён по заранее подготовленному digest. Docker фиксирует завершённый rollout за 32,475 с. Это время обновления worker, не весь интервал закрытого admission. Настройки worker, кроме image, сохранены; конфигурации 52 соседних сервисов не изменены. Штатная поставка bridge проверила область изменений среди 190 сервисов.
LinTO, файловая транскрипция и сервисы диаризации не перезапускались в этом выпуске: их исправленные образы опубликованы, но эти независимые runtime не обновлялись. rag-stack, инфраструктура, GPU-разметка и корневые CI-файлы не изменены.
Полные digest Chat Agent: front-prepared-images.json. Логи и результаты CI лежат рядом с этим отчётом.

Проверки и память Large
- 15 адресных проверок после исправления aiohttp и реальный HTTP
/healthzс корректным освобождением сервера. NATS в этой узкой локальной проверке был подставным; это не проверка транспорта. - В финальном образе: 46 тестов — 41 bridge/контракты и 5 worker. После изменения загрузчика — 8 адресных модельных тестов. Пять обязательных checks Chat Agent реально прошли на
d8f9399, pipeline 5621; пропущенные jobs других pipeline не засчитывались. - GPU: оба GigaAM, Turbo и Russian вернули непустой текст. Исправлена несовместимость RNNT с meta-инициализацией Transformers 5.10.4: модели загружаются напрямую через PyTorch после проверки хешей, с
strict=True. Вендорный код модели не переписывается. - Large ревизии
3905cd51c3ed4e88c8edf33f3302969ba480a327проверена рядом с ранее работающими моделями. Пик зарезервированной PyTorch памяти — 3,38 ГиБ, после контрольного прогона свободно 8,05 ГиБ. После поставки и прогрева четырёх моделей свободно 9,12 ГиБ. Запас выше согласованных 2 ГиБ. Это разные моменты измерения, а не сравнение одной и той же нагрузки. - На одном PCM 3,025 с чистые вызовы Large заняли 194,1 и 15,2 мс; контрольный пример 33 с — 185,3 мс. Загрузка модели — 5595,1 мс. Эти числа не включают браузер/транспорт, не являются p95, WER/CER или сравнительным benchmark. Подробности: gpu-candidate.json.
Ограничение качества: на короткой фразе Large вернула «сколько будет а плюс», пропустив слова. Штатный декодер производителя на том же PCM дал тот же текст после удаления краевого пробела. Сравнение исходных строк отличалось именно завершающим пробелом. Turbo оставлена по умолчанию. Large доступна для отдельного сравнения; превосходство качества не заявляется.
Проверка следующих выпусков
Переиспользование опубликованного digest проверено отдельно: pipeline 5641, build 27286 — 11,512 с и 0 application rebuild, затем адресный preflight того же bridge.
После закрепления баз выявлены и исправлены две ошибки именно повторной кодовой сборки: повторное применение LinTO-патча к уже изменённым файлам и существующий /test-results в worker-базе. Pipeline 5648, build 27294: SUCCESS, 46 тестов и Trivy всех 5 выбранных образов. Build job 442,2 с: до начала Trivy — 28,7 с, сканирование — 411,4 с, завершение job — 2,1 с. Preflight 27295 также SUCCESS. Использован CI_SKIP_PUSH=1: приложения не перепубликовывались и не перезапускались; preflight проверил ранее опубликованный bridge 8041b37 по точному digest. Это контроль будущего кодового выпуска, а не второй runtime rollout.
Что пока не подтверждено
- Файлы расширения 2.2.1 установлены по прежнему пути
локальный источник, ID, permissions и CSP сохранены. Предыдущий пакет сохранён влокальный источник Перезагрузка и активная версия пользовательской панели не проверены. - CI ZIP расширения: jobs 27230 и 27279 собрали пакет, но upload артефакта завершился DNS-ошибкой
gitlabв runner helper. Локальный ZIP готов. Этот отдельный инфраструктурный блокер не менялся и не выдаётся за успех публикации артефакта.
Браузерная приёмка 31 октября
Monitor PASS: исторический request c1715cf4-213d-5b5b-93c2-3e02938585c0, исходный PCM16 48 кГц, диапазон 17.144–20.448 с (3.304 с), без контекста. Large вернула «найди формулу и поставь на нее бэкграундом кота». Чистое время модели 152.86 мс, final виден через 0.91 с, слот освобождён через 1.00 с. Повтор не выполняет команд чата. Подтверждена совместимость чтения старого PCM-архива. Есть ошибка текста «форму» → «формулу»; Turbo остаётся по умолчанию.
Compare до исправления очереди: один синтетический WAV пропущен через браузерный захват, Silero и WebCodecs Opus. Это проверка веб-пути, не физического микрофона. Полученная запись 21.930667 с включает примерно 14.6 с установочной тишины до WAV; речь занимает сохранённую фразу 16.856–19.872 с. Large и Turbo получили один образец (6bb83281613ba55848e05311503deddcfa03c766568624f378a2a9ef9c6f85f8).
| Модель | Текст | Чистое время модели | Полный диагностический запуск, включая подготовку и завершение |
|---|---|---|---|
| GigaAM Large CTC | шла саша по шоссе и сосала чупа чупс | 168.09 мс | 3077.9 мс |
| Whisper Turbo | Шла Саша по шоссе и сосала чупа-чупс. | 160.30 мс | 2002.4 мс |
Один короткий замер не доказывает преимущество модели. Исходный PCM — 2 105 344 байта; переданные Opus-пакеты — 44 264 байта (1097 пакетов). Снижение на 97.90%, в 47.56 раза, относится именно к этому образцу с длинной тишиной. Это экономия трафика, не ускорение модели. Подробные независимые стадии — browser-large-turbo.json.
Обнаруженный дефект: третий запуск, Whisper Russian, прервался после 601 из 1097 пакетов: audio_queue_overflow. Готовая запись передаётся без задержек 1×, а подписка Ingress вмещала 256 пакетов / 32 КиБ, как для микрофона. После закрытия владельца поздний RPC границы вернул audio_upgrade_required, который скрыл первичную ошибку в UI. Исходное доказательство сохранено: browser-large-russian.json.
Адресная правка: MR !28, commit b7923b2eeb5dc534a8cc76b69234f6b3ff85b1fe, main 21d9e3c93cbe284b3bc2e70136cbc20029c2293e. Четыре файла, +65 / −9 строк. Только для готовой Opus-записи Compare очередь ограничена 1600 пакетами / 256 КиБ — достаточно одному образцу до 30 с. Лимиты микрофона сохранены. Compare сохраняет первую ошибку из всех трёх фактических форматов событий. Новых соединений, RPC, задержек или очередей не добавлено.
Локально: 12 тестов Compare и типизация; адресные тесты аудио/Opus; отдельная реальная NATS-проверка полностью поставленного в очередь 30-секундного образца PASS. Новый тест включён в существующий integration suite, чтобы не расширять зависимости отдельного browser-auth образа. В CI 5650 Python: 232 passed / 120 skipped, 10 subtests; реальные NATS/PostgreSQL integration: 87 тестов PASS. Frontend обнаружил сдвиг ссылки схемы на исходник; MR !29 исправил только номер строки 79 → 83. Финальный main b11b3dd18a5fb5c57d8cdc059a1aa8eeae4e715f, суммарно 5 файлов, +66 / −10. В pipeline 5652 повторён только frontend: 480 тестов, типизация, runtime-settings PASS. Python/integration/browser/Ruby jobs 5652 явно пропущены по неизменённым входам; это не повторное выполнение suites. Корневой CI неизменён, индекс Repowise обновлён без генерации документов.
Повтор после исправления Ingress: тот же образец и все 1097 пакетов / 44 264 байта. Russian, RNNT и LinTO успешно завершены, переполнения нет. Везде один вызов модели; слот диагностики освобождён. Модель и границы сохранены в JSON, речь пользователя/физический микрофон не использовались.
| Модель | Чистая модель | От конечной границы до показа текста | Весь запуск с подготовкой и завершением |
|---|---|---|---|
| Large CTC | 168.09 мс | 325.3 мс | 3077.9 мс |
| Turbo | 160.30 мс | 301.9 мс | 2002.4 мс |
| Russian | 290.40 мс | 443.2 мс | 2020.9 мс |
| GigaAM v3 RNNT | 187.80 мс | 334.0 мс | 2059.3 мс |
| LinTO | 171.87 мс | 506.6 мс | 1989.6 мс |
Large/Turbo — успешные запуски до изменения лимита, остальные — после. Подготовка первого запуска включает VAD/Opus, следующие используют их результат. Поэтому полный запуск не является сравнением чистой скорости моделей. Точные результаты и ссылки на JSON.
Сборка 27354: SUCCESS, 71.22 с, только Front и Audio Ingress, один production bundle Front. Preflight 27370: SUCCESS, оба digest подготовлены до обновления. Ingress 27397: SUCCESS, 54.12 с job целиком, подготовленный digest f9fa7787…. Соседние сервисы сохранены штатной проверкой области изменений, приём запросов восстановлен. Полные digest.
Front 27396: SUCCESS, 59.73 с job целиком, digest d0aadb6d…. Оба новых образа имеют source b11b3dd и OCI label version 5.1.1079, сформированные штатным build-labels. В jobs активации повторного chat_pull нет: использованы подготовленные digest. Это не время модели или пользовательской фразы.
Свежая страница после поставки PASS: повторный синтетический захват 7.488 с, 48 кГц, входы Large/Turbo совпали по хешам. Large: «шла саша по шоссе и сосала чупа чупс», 20.10 мс модель / 166.0 мс от границы до показа / 2071.7 мс весь запуск. Turbo: «Шла Саша по шоссе и сосала чипа-чопс.», 159.59 мс модель / 306.8 мс от границы до показа / 1525.2 мс весь запуск. Здесь у Turbo есть ошибка «чупа-чупс» → «чипа-чопс». Это новый захват с другим диапазоном (2.392–5.376 с), не идентичный предыдущим 21.9 с; результаты не объединяются в benchmark или p95. Разброс Large между короткими вызовами 20–168 мс также не превращаем в обещание скорости.
Трафик свежего образца: 718 848 → 29 221 байт, −689 627 байт (−95.94%, 24.60× меньше); 375 Opus-пакетов. Одно кодирование, второй запуск использовал готовые пакеты и границы. JSON итогового Front. После перезагрузки ошибок приложения в console не было; две старые записи о закрытом канале расширения относятся к 21:16 UTC, до поставки. Все временные изменения тестового getUserMedia удалены, тестовые дорожки и AudioContext закрыты. В пользовательские панели и микрофон вмешательства не было.

Финальный статус: блокеры Trivy устранены, ASR с Large опубликован и работает; Compare и Monitor проверены в браузере. Дополнительно исправлен выявленный дефект очереди загрузки готовой записи. Не подтверждена только активация ранее установленного пакета расширения 2.2.1; это не требуется для выполненной проверки веб-пути. CI ZIP остаётся отдельным ранее описанным ограничением загрузки артефактов runner.