Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon

Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon

Сегодня мы рады сообщить, что базовая модель OpenAI Whisper доступна для клиентов, использующих Amazon SageMaker JumpStart. Whisper — это предварительно обученная модель автоматического распознавания речи (ASR) и перевода речи. Модели Whisper, обученные на 680 тысячах часов размеченных данных, демонстрируют сильную способность обобщать множество наборов данных и областей без необходимости тонкой настройки. Sagemaker JumpStart — это центр машинного обучения (ML) SageMaker, который предоставляет доступ к базовым моделям в дополнение к встроенным алгоритмам и шаблонам комплексных решений, которые помогут вам быстро приступить к работе с ML.

Вы также можете сделать ASR, используя Amazon транскрибировать , полностью управляемая и постоянно обучаемая служба автоматического распознавания речи.

В этом посте мы покажем вам, как развернуть OpenAI шепот model и вызывайте ее для расшифровки и перевода аудио.

Модель OpenAI Whisper использует обнимающее лицо-pytorch-вывод контейнер. Будучи пользователем концентратора моделей SageMaker JumpStart, вы можете использовать ASR без необходимости поддерживать сценарий модели вне SageMaker SDK. Модели SageMaker JumpStart также повышают уровень безопасности благодаря конечным точкам, обеспечивающим сетевую изоляцию.

Базовые модели в SageMaker

SageMaker JumpStart предоставляет доступ к ряду моделей из популярных центров моделей, включая Hugging Face, PyTorch Hub и TensorFlow Hub, которые вы можете использовать в рабочем процессе разработки машинного обучения в SageMaker. Недавние достижения в области машинного обучения привели к появлению нового класса моделей, известных как модели фундамента, которые обычно обучаются на миллиардах параметров и могут быть адаптированы к широкой категории случаев использования, таких как обобщение текста, создание цифровых изображений и языковой перевод. Поскольку обучение этих моделей обходится дорого, клиенты хотят использовать существующие предварительно обученные базовые модели и настраивать их по мере необходимости, а не обучать эти модели самостоятельно. SageMaker предоставляет тщательно подобранный список моделей, из которых вы можете выбирать на консоли SageMaker.

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

Фундаментальные модели OpenAI Whisper

Whisper — это предварительно обученная модель для ASR и перевода речи. Шепот был предложен в статье Надежное распознавание речи посредством крупномасштабного слабого контроля Алек Рэдфорд и другие из OpenAI. Оригинальный код можно найти в этом репозитории GitHub.

Whisper — это модель кодера-декодера на основе трансформатора, также называемая последовательность к последовательности модель. Он был обучен на 680 тысячах часов размеченных речевых данных, аннотированных с использованием крупномасштабного слабого контроля. Модели Whisper демонстрируют сильную способность обобщать множество наборов данных и областей без необходимости тонкой настройки.

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

Контрольно-пропускные пункты Whisper выпускаются в пяти конфигурациях различных размеров. Четверо самых маленьких обучаются либо на англоязычных, либо на многоязычных данных. Крупнейшие контрольно-пропускные пункты являются только многоязычными. Все десять предварительно обученных контрольных точек доступны на Концентратор для объятий. Контрольные точки сведены в следующую таблицу со ссылками на модели в хабе:

Название модели Количество параметров Многоязычный
тихий шепот 39 M Да
шепот 74 M Да
шепотом 244 M Да
шепот-средний 769 M Да
шепот большой 1550 M Да
шепот-большой-v2 1550 M Да

Давайте рассмотрим, как можно использовать модели Whisper в SageMaker JumpStart.

OpenAI Whisper Foundation моделирует WER и сравнение задержек

Коэффициент ошибок в словах (WER) для различных моделей OpenAI Whisper на основе LibriSpeech тест-чистка показано в следующей таблице. WER — это общий показатель производительности системы распознавания речи или машинного перевода. Он измеряет разницу между текстом ссылки (истинная истина или правильная транскрипция) и выходными данными системы ASR с точки зрения количества ошибок, включая замены, вставки и удаления, которые необходимы для преобразования выходных данных ASR в справочные данные. текст. Эти цифры взяты из Обнимая лицо Веб-сайт.

Модель WER (в процентах)
тихий шепот 7.54
шепот 5.08
шепотом 3.43
шепот-средний 2.9
шепот большой 3
шепот-большой-v2 3

Для этого блога мы взяли приведенный ниже аудиофайл и сравнили задержку распознавания речи в различных моделях шепота. Задержка — это промежуток времени с момента отправки пользователем запроса до момента, когда ваше приложение укажет, что запрос выполнен. Числа в следующей таблице представляют собой среднюю задержку для 100 запросов с использованием одного и того же аудиофайла с моделью, размещенной в экземпляре ml.g5.2xlarge.

Модель Средняя задержка(и) Выход модели
тихий шепот 0.43 Мы живем в очень захватывающие времена машинного освещения. Скорость разработки модели ML действительно увеличится. Но вы не доберетесь до того конечного состояния, которое мы выиграли в ближайшие годы. Если только мы на самом деле не сделаем эти модели более доступными для всех.
шепот 0.49 Мы живем в очень захватывающие времена машинного обучения. Скорость разработки модели ML действительно увеличится. Но вы не доберетесь до того конечного состояния, которое мы выиграли в ближайшие годы. Если только мы на самом деле не сделаем эти модели более доступными для всех.
шепотом 0.84 Мы живем в очень захватывающие времена машинного обучения. Скорость разработки модели ML действительно увеличится. Но вы не достигнете того конечного состояния, которого мы хотим в ближайшие годы, если мы действительно не сделаем эти модели более доступными для всех.
шепот-средний 1.5 Мы живем в очень захватывающие времена машинного обучения. Скорость разработки модели ML действительно увеличится. Но вы не достигнете того конечного состояния, которого мы хотим в ближайшие годы, если мы действительно не сделаем эти модели более доступными для всех.
шепот большой 1.96 Мы живем в очень захватывающие времена машинного обучения. Скорость разработки модели ML действительно увеличится. Но вы не достигнете того конечного состояния, которого мы хотим в ближайшие годы, если мы действительно не сделаем эти модели более доступными для всех.
шепот-большой-v2 1.98 Мы живем в очень захватывающие времена машинного обучения. Скорость разработки модели ML действительно увеличится. Но вы не достигнете того конечного состояния, которого мы хотим в ближайшие годы, если мы действительно не сделаем эти модели более доступными для всех.

Пошаговое руководство по решению

Вы можете развернуть модели Whisper с помощью консоли Amazon SageMaker или с помощью Amazon SageMaker Notebook. В этом посте мы покажем, как развернуть Whisper API с помощью консоли SageMaker Studio или SageMaker Notebook, а затем использовать развернутую модель для распознавания речи и языкового перевода. Код, использованный в этом посте, можно найти в этот блокнот GitHub.

Давайте подробно разберем каждый шаг.

Развертывание Whisper с консоли

  1. Чтобы начать работу с SageMaker JumpStart, откройте консоль Amazon SageMaker Studio, перейдите на страницу запуска SageMaker JumpStart и выберите Начните работу с JumpStart.
  2. Чтобы выбрать модель Whisper, вы можете использовать вкладки вверху или использовать поле поиска в правом верхнем углу, как показано на следующем снимке экрана. В этом примере используйте поле поиска в правом верхнем углу и введите Whisper, а затем выберите подходящую модель Whisper из раскрывающегося меню.
    Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  3. После выбора модели Whisper вы можете использовать консоль для развертывания модели. Вы можете выбрать экземпляр для развертывания или использовать экземпляр по умолчанию.
    Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Развертывание базовой модели из блокнота Sagemaker.

Шаги по первому развертыванию, а затем использованию развернутой модели для решения различных задач:

  1. Создавать
  2. Выберите модель
  3. Извлечение артефактов и развертывание конечной точки
  4. Использовать развернутую модель для ASR
  5. Использовать развернутую модель для языкового перевода
  6. Очистите конечную точку

Создавать

Этот блокнот был протестирован на экземпляре ml.t3.medium в SageMaker Studio с ядром Python 3 (обработка данных) и на экземпляре Amazon SageMaker Notebook с ядром Python XNUMX (обработка данных). conda_python3 ядро.

%pip install --upgrade sagemaker --quiet

Выберите предварительно обученную модель

Настройте сеанс SageMaker с помощью Boto3, а затем выберите идентификатор модели, которую вы хотите развернуть.

model_id = "huggingface-asr-whisper-large-v2"

Извлечение артефактов и развертывание конечной точки

Используя SageMaker, вы можете выполнять логические выводы на основе предварительно обученной модели, даже без предварительной ее точной настройки на новом наборе данных. Чтобы разместить предварительно обученную модель, создайте экземпляр sagemaker.model.Model и развернуть его. Следующий код использует экземпляр по умолчанию ml.g5.2xlarge для конечной точки вывода модели «шепот-большой-v2». Вы можете развернуть модель на других типах экземпляров, передав instance_type в JumpStartModel сорт. Развертывание может занять несколько минут.

#Deploying the model from sagemaker.jumpstart.model import JumpStartModel
from sagemaker.serializers import JSONSerializer my_model = JumpStartModel(model_id=dropdown.value)
predictor = my_model.deploy()

Автоматическое распознавание речи

Затем вы читаете образец аудиофайла sample1.wav из публичного доступа SageMaker Jumpstart. Сервис Amazon Simple Storage (Amazon S3) местоположение и передать его в предсказатель для распознавания речи. Вы можете заменить этот файл примера любым другим примером аудиофайла, но убедитесь, что файл .wav имеет частоту 16 кГц, поскольку это требуется для моделей автоматического распознавания речи. Входной аудиофайл должен длиться менее 30 секунд.

from scipy.io.wavfile import read
import json
import boto3
from sagemaker.jumpstart import utils # The wav files must be sampled at 16kHz (this is required by the automatic speech recognition models), so make sure to resample them if required. The input audio file must be less than 30 seconds.
s3_bucket = utils.get_jumpstart_content_bucket(boto3.Session().region_name)
key_prefix = "training-datasets/asr_notebook_data"
input_audio_file_name = "sample1.wav" s3_client = boto3.client("s3")
s3_client.download_file(s3_bucket, f"{key_prefix}/{input_audio_file_name }", input_audio_file_name ) with open(input_audio_file_name, "rb") as file: wav_file_read = file.read() # If you receive client error (413) please check the payload size to the endpoint. Payloads for SageMaker invoke endpoint requests are limited to about 5MB
response = predictor.predict(wav_file_read)
print(response["text"])

Эта модель поддерживает множество параметров при выполнении вывода. Они включают:

  • max_length: Модель генерирует текст до выходной длины. Если указано, оно должно быть положительным целым числом.
  • язык и задача: укажите здесь язык вывода и задачу. Модель поддерживает задачу транскрипции или трансляции.
  • max_new_tokens: максимальное количество токенов для генерации.
  • num_return_sequences: количество возвращенных выходных последовательностей. Если указано, оно должно быть положительным целым числом.
  • num_beams: количество лучей, используемых при жадном поиске. Если указано, оно должно быть целым числом, большим или равным num_return_sequences.
  • no_repeat_ngram_size: Модель гарантирует, что последовательность слов no_repeat_ngram_size не повторяется в выходной последовательности. Если указано, оно должно быть положительным целым числом, большим 1.
  • температура: контролирует случайность выходных данных. Более высокая температура приводит к выходной последовательности со словами с низкой вероятностью, а более низкая температура приводит к выходной последовательности со словами с высокой вероятностью. Если температура приближается к 0, это приводит к жадному декодированию. Если указано, это должно быть положительное число с плавающей запятой.
  • early_stopping: Если Trueгенерация текста завершается, когда все гипотезы луча достигают конца токена предложения. Если указано, оно должно быть логическим.
  • do_sample: Если True, попробуйте следующее слово для определения вероятности. Если указано, оно должно быть логическим.
  • top_k: на каждом этапе генерации текста используйте образец только из top_k скорее всего слова. Если указано, это должно быть положительное целое число.
  • top_p: на каждом этапе генерации текста отбирайте образец из наименьшего возможного набора слов с кумулятивной вероятностью. top_p. Если указано, это должно быть число с плавающей точкой от 0 до 1.

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

Языковой перевод

Чтобы продемонстрировать языковой перевод с помощью моделей Whisper, используйте следующий аудиофайл на французском языке и переведите его на английский. Файл должен быть сэмплирован с частотой 16 кГц (как того требуют модели ASR), поэтому обязательно выполните повторную сэмплирование файлов, если это необходимо, и убедитесь, что ваши сэмплы не превышают 30 секунд.

  1. Скачать sample_french1.wav из SageMaker JumpStart из общедоступного местоположения S3, чтобы его можно было передать в полезных данных для перевода с помощью модели Whisper.
    input_audio_file_name = "sample_french1.wav" s3_client.download_file(s3_bucket, f"{key_prefix}/{input_audio_file_name }", input_audio_file_name )

  2. Установите параметр задачи как translate и язык как French чтобы заставить модель Whisper выполнить перевод речи.
    with open(input_audio_file_name, "rb") as file: wav_file_read = file.read() payload = {"audio_input": wav_file_read.hex(), "language": "french", "task": "translate"} predictor.serializer = JSONSerializer()
    predictor.content_type = "application/json"

  3. Используйте предсказатель прогнозировать перевод языка. Если вы получаете сообщение об ошибке клиента (ошибка 413), проверьте размер полезных данных до конечной точки. Полезные данные для запросов на вызов конечной точки SageMaker ограничены примерно 5 МБ.
    response = predictor.predict(payload)
    print(response["text"])

  4. Текстовый вывод, переведенный на английский язык из французского аудиофайла, следующий:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

Убирать

После тестирования конечной точки удалите конечную точку вывода SageMaker и модель, чтобы избежать дополнительных расходов.

Заключение

В этом посте мы показали вам, как тестировать и использовать модели OpenAI Whisper для создания интересных приложений с помощью Amazon SageMaker. Попробуйте модель тонального крема в SageMaker сегодня и поделитесь с нами своим мнением!

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


Об авторах

Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Хемант Сингх — учёный-прикладник с опытом работы в Amazon SageMaker JumpStart. Он получил степень магистра в Институте математических наук Куранта и степень бакалавра технических наук в ИИТ Дели. У него есть опыт работы над широким спектром задач машинного обучения в области обработки естественного языка, компьютерного зрения и анализа временных рядов.

Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Рахна Чадха является главным архитектором решений AI/ML в области стратегических счетов в AWS. Рахна — оптимистка, считающая, что этичное и ответственное использование ИИ может улучшить общество в будущем и принести экономическое и социальное процветание. В свободное время Рахна любит проводить время со своей семьей, ходить в походы и слушать музыку.

Модели шепота для автоматического распознавания речи теперь доступны в Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Доктор Ашиш Хетан — старший научный сотрудник, работающий со встроенными алгоритмами Amazon SageMaker и помогающий разрабатывать алгоритмы машинного обучения. Он получил докторскую степень в Университете Иллинойса в Урбана-Шампейн. Он является активным исследователем в области машинного обучения и статистических выводов и опубликовал множество статей на конференциях NeurIPS, ICML, ICLR, JMLR, ACL и EMNLP.

Отметка времени:

Больше от Машинное обучение AWS