Cadence: рабочая среда, где мы дообучаем, оцениваем и пропускаем через шлюз модели Oasis Speech

В Cadence мы дообучаем и оцениваем модели Oasis Speech. Люди и кодовые агенты работают через один API, а каждая модель должна пройти шлюз.

Исследования

MITлицензия публичного репозитория

Cadence — рабочая среда, в которой мы дообучаем и оцениваем модели Oasis Speech. Люди и кодовые агенты работают в ней через один и тот же API, каждое изменение версионируется, и ни одна модель не попадает в продакшен, не пройдя шлюз. Публичный репозиторий, github.com/usunrise88/cadence, является форком системы, которую мы запускаем в продакшене, и распространяется под лицензией MIT.

Эта заметка описывает репозиторий. Это не заметка об измерениях.

Репозиторий вкратце.
Коротко Что это значит
Форк продакшен-системы Публичный репозиторий является форком системы, в которой мы обучаем Oasis Speech
MIT Лицензия публичного репозитория
Один контракт Один файл OpenAPI порождает сервер, веб-клиент, инструменты агента и командную строку
Обучение, оценка, шлюз Модель регистрируется только после того, как пройдёт свой шлюз

Зачем мы его создали

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

Cadence и есть такое место. Мы обучаем и сравниваем в нём Oasis Speech. Он охватывает весь жизненный цикл дообучения: данные, обучение, оценку, экспорт, развёртывание и продакшен-цикл, который возвращает новые данные.

Две идеи

Для работы с агентами

Кодовый агент работает в Cadence через тот же API, что и интерфейс. Его правки приходят черновиками, привязанными к сессии агента. Действия, которые тратят деньги или меняют общий ресурс, ждут одобрения человека. Каждая панель интерфейса обновляется в реальном времени, пока работает агент, поэтому человек, который за этим наблюдает, видит, как меняется смесь наборов данных, пока агент её правит.

Сначала API

Существует один контракт OpenAPI. Из него порождаются сервер на Go, веб-клиент, инструменты агента (MCP) и командная строка, поэтому у действия одно имя везде: mixes.edit — это и операция, и инструмент, и команда интерфейса.

Cadence версионирует всё. Рецепты живут в git. Наборы данных, модели и эталонные оценочные наборы — неизменяемые версии в реестре. У каждого изменения есть исполнитель, ключ идемпотентности и строка аудита.

Что он делает

Обучение

  • Воркеры. Воркеры на GPU регистрируют, что они умеют запускать, берут задания по HTTP, отправляют сигналы активности, передают логи и метрики и публикуют контрольные точки по ходу обучения.
  • Пайплайны. Пайплайны описываются в YAML в git-репозитории проекта, привязаны к версиям шагов и проверяются до запуска. Cadence переиспользует результаты по хешу входных данных, поэтому неизменившийся шаг не выполняется дважды.
  • Запуски. Запуск — это этап обучения поверх пайплайна, с калиброванными оценками времени, лучшими k контрольными точками, метриками в реальном времени, паузой и возобновлением.
  • Бюджеты. У каждого проекта и каждой сессии агента есть бюджет GPU. Действие сверх бюджета ждёт одобрения в панели «Одобрения» или в Telegram. При сбое бюджет блокирует запуск и учитывает очередь задач, поэтому очередь дешёвых заданий не выйдет за лимит.
  • Эксплуатация. Хранилище контента с индикатором диска и вытеснением, ночные резервные копии с еженедельной проверкой восстановления, уведомления и ежедневная сводка.

Оценка

  • Эталонные наборы. Cadence замораживает эталонные наборы из датасетов, помеченных «только для оценки», с одобрением и привязывает каждый к нормализатору подсчёта оценки. Он сверяет каждый обучающий вход с аудио каждого эталонного набора, поэтому оценочный клип не может попасть в обучение.
  • Оценки. Оценка прогоняет контрольную точку и базовую модель через настоящий потоковый декодер при каждом профиле задержки. Она считает доли ошибок, замены, пропуски и вставки, поведение в потоке и метрики по сущностям. Ячейки кэшируются между проектами, а к различиям прилагаются парные бутстреп-интервалы.
  • Шлюзы. Шлюз превращает всю матрицу в один вердикт. Модель, прошедшую шлюз, можно зарегистрировать. Не прошедшая остаётся за его пределами.
  • Панели. Отчёт с графиками, сравнение запусков, аудиопросмотр (форма волны, спектрограмма, слова), живые ручные тесты транскрибации с одновременным показом до трёх моделей (микрофон, файл или фрагмент файла; Cadence ничего из них не сохраняет), эксперименты и перебор параметров, языковые пакеты со списками усиления и происхождение (lineage).

Что дальше

В планах: монтирование, приём данных, заморозка и разметка. После них придут экспорт, теневое и канареечное развёртывание, разбор и расписания, которые замкнут цикл от продакшен-звонков обратно к обучающим данным. Дорожная карта лежит в репозитории.

Где он находится в стеке

Cadence — обучающая часть стека. Oasis Speech — сервис распознавания, работающий на моделях, которые выдаёт Cadence, Polygon оценивает агентов, использующих эти модели, а нагрузочный тест измеряет серверы, на которых они запущены.

Читайте дальше

Следующий шаг

Получите ранний доступ к голосовым агентам Dialogist: мы приглашаем команды из листа ожидания по мере освобождения мощностей.

Лист ожидания

Мы подключаем команды постепенно. Напишем вам, когда подойдёт ваша очередь.