CI/CD для пользовательской речи

Реализуйте автоматизированное обучение, тестирование и управление выпусками, чтобы обеспечить непрерывное улучшение пользовательских моделей речи при применении обновлений к данным обучения и тестирования. Благодаря эффективной реализации рабочих процессов CI/CD можно убедиться, что конечная точка для оптимальной пользовательской модели речи всегда доступна.

Непрерывная интеграция (CI) — это методика проектирования, которая предполагает регулярную фиксацию изменений в общем репозитории и выполнение для него автоматизированной сборки. Рабочие процессы CI для пользовательской службы распознавания речи обучают новую модель из источников данных и выполняют автоматическое тестирование новой модели, чтобы обеспечить лучшую работу, чем предыдущая модель.

Непрерывная доставка (CD) принимает модели из процесса CI и создает конечную точку для каждой улучшенной пользовательской модели речи. С помощью CD конечные точки можно легко интегрировать в решения.

Можно применять и пользовательские решения CI/CD, но для надежного результата лучше использовать репозиторий шаблонов DevOps для службы "Речь", который выполняет рабочие процессы CI/CD с помощью GitHub Actions.

Рабочие процессы CI/CD для пользовательской речи

Цель этих рабочих процессов — обеспечить лучшую точность распознавания каждой пользовательской модели распознавания речи, чем предыдущая сборка. Если обновления тестов и (или) обучающих данных повышают точность, эти рабочие процессы создают новую пользовательскую конечную точку речи.

Такие серверы GIT, как GitHub и Azure DevOps, могут выполнять автоматические рабочие процессы при наступлении определенных событий в GIT, например слияний или запросов на вытягивание. Например, рабочий процесс CI может запускаться при отправке обновлений данных для тестирования в главную ветвь. Разные серверы Git Имеют разные средства, но разрешают команды интерфейса командной строки (CLI), чтобы они могли выполняться на сервере сборки.

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

Рабочий процесс CI для тестирования обновлений данных

Основной целью рабочих процессов CI/CD является создание новой модели с использованием обучающих данных, а также тестирование этой модели с использованием данных тестирования для определения того, улучшена ли скорость ошибок Word (WER) по сравнению с предыдущей моделью лучшей производительности ("эталонная модель"). Если новая модель работает лучше, она становится новой эталонной моделью, с которой будут сравниваться будущие модели.

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

Этот рабочий процесс должен активироваться при обновлении тестовых данных и выполнять следующие действия:

  • тестировать эталонную модель на основе обновленных тестовых данных;
  • сохранять результаты тестирования, содержащие показатель WER эталонной модели для обновленных данных.
  • Значение WER, полученное в результате этого тестирования, становится новым эталонным показателем WER и должно быть превышено будущими моделями.
  • Рабочий процесс CD не выполняется для обновлений для тестирования данных.

Рабочий процесс CI при обновлении обучающих данных

Обновление обучающих данных означает обновление пользовательской модели.

Этот рабочий процесс должен активироваться при обновлении обучающих данных и выполнять следующие действия:

  • обучать новую модель на основе обновленных обучающих данных;
  • тестировать новую модель на основе тестовых данных;
  • сохранять результат тестирования, содержащий WER;
  • сравнивать показатель WER новой модели с WER эталонной модели.
  • Если WER не улучшается, остановите рабочий процесс.
  • Если WER улучшается, выполните рабочий процесс CD, чтобы создать пользовательскую конечную точку речи.

Рабочий процесс CD

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

Управление выпуском

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

Средства для пользовательских рабочих процессов распознавания речи

Используйте следующие средства для рабочих процессов автоматизации CI/CD для пользовательской речи:

  • Azure CLI позволяет организовать проверку подлинности субъекта-службы Azure, запросить подписки Azure и сохранить результаты тестов в большом двоичном объекте Azure.
  • Azure AI Speech CLI для взаимодействия со службой "Речь" из командной строки или автоматизированного рабочего процесса.

Решение DevOps для пользовательской речи с помощью GitHub Actions

Для уже реализованного решения DevOps для пользовательской речи перейдите в репозиторий шаблона Speech DevOps. Создайте копию шаблона и начните разработку пользовательских моделей с надежной системой DevOps, которая включает возможности тестирования, обучения и управления версиями на основе GitHub Actions. Репозиторий содержит образцы данных для тестирования и обучения, которые помогут в настройке рабочего процесса. После начальной настройки замените образцы данных данными проекта.

Репозиторий шаблонов DevOps для службы "Речь" предоставляет инфраструктуру и подробные указания по выполнению следующих действий:

  • копирование репозитория шаблонов в учетную запись GitHub и создание ресурсов Azure и субъекта-службы для рабочих процессов CI/CD на основе GitHub Actions;
  • пошаговое руководство по внутреннему циклу разработки; обновление обучающих и тестовых данных из ветви компонентов, проверка изменений с помощью временной модели разработки и выполнение запроса на вытягивание для предложения и утверждения изменений;
  • обучение моделей с помощью рабочего процесса CI на основе GitHub Actions при обновлении обучающих данных посредством запроса на вытягивание к главной ветви;
  • автоматическая проверка точности модели для определения процента неправильно распознанных слов (WER); сохранение результатов теста в большом двоичном объекте Azure;
  • выполнение рабочего процесса CD с целью создать конечную точку в случае улучшения показателя WER.

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

  • Используйте репозиторий шаблона Speech DevOps для реализации DevOps для пользовательской речи с помощью GitHub Actions.