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

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

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

Ви також можете виконувати ASR за допомогою Амазонська розшифровка , повністю керована служба автоматичного розпізнавання мовлення з постійним навчанням.

У цій публікації ми покажемо вам, як розгорнути OpenAI Whisper модель і викликати модель для транскрибування та перекладу аудіо.

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

Моделі основи в SageMaker

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

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

Основні моделі OpenAI Whisper

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

Whisper — це модель кодера-декодера на основі Transformer, яку також називають a послідовність до послідовності модель. Він був навчений на 680 тисячах годин мічених мовних даних, анотованих за допомогою широкомасштабного слабкого спостереження. Моделі Whisper демонструють потужну здатність узагальнювати багато наборів даних і доменів без необхідності тонкого налаштування.

Моделі тренувалися на даних лише англійською мовою або на багатомовних даних. Моделі, які володіють лише англійською мовою, навчалися розпізнаванню мовлення. Багатомовні моделі були навчені розпізнаванню мовлення та перекладу мовлення. Для розпізнавання мовлення модель передбачає транскрипції в то ж мова як аудіо. Для перекладу мовлення модель передбачає транскрипцію в a різний мову до аудіо.

Контрольно-пропускні пункти Whisper поставляються в п’яти конфігураціях різних розмірів моделей. Четверо найменших навчаються на даних лише англійською або багатомовними. Найбільші пункти пропуску лише багатомовні. Усі десять попередньо підготовлених контрольно-пропускних пунктів доступні на Hugging Face хаб. Контрольні точки підсумовано в наведеній нижче таблиці з посиланнями на моделі на хабі:

назва моделі Кількість параметрів Багатомовний
шепіт-малесенький 39 M Так
шепіт-основа 74 M Так
шепіт-мал 244 M Так
шепіт-середній 769 M Так
шепіт-великий 1550 M Так
whisper-large-v2 1550 M Так

Давайте дослідимо, як можна використовувати моделі Whisper у SageMaker JumpStart.

Основні моделі OpenAI Whisper WER і порівняння затримок

Частота помилок у словах (WER) для різних моделей OpenAI Whisper на основі LibriSpeech test-clean показано в наступній таблиці. WER — це загальний показник продуктивності системи розпізнавання мовлення або машинного перекладу. Він вимірює різницю між еталонним текстом (основна істина або правильна транскрипція) і виводом системи ASR з точки зору кількості помилок, включаючи заміни, вставки та видалення, які необхідні для перетворення виводу ASR у еталонний текст. Ці цифри були взяті з Обіймати обличчя .

Model WER (відсоток)
шепіт-малесенький 7.54
шепіт-основа 5.08
шепіт-мал 3.43
шепіт-середній 2.9
шепіт-великий 3
whisper-large-v2 3

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

Model Середня затримка Вихід моделі
шепіт-малесенький 0.43 Ми живемо в дуже цікаві часи з машинним освітленням. Швидкість розробки моделі ML дійсно збільшиться. Але ви не дійдете до того стану, що ми виграли, у найближчі роки. Якщо ми не зробимо ці моделі доступнішими для всіх.
шепіт-основа 0.49 Ми живемо в дуже цікаві часи з машинним навчанням. Швидкість розробки моделі ML дійсно збільшиться. Але ви не дійдете до того стану, що ми виграли, у найближчі роки. Якщо ми не зробимо ці моделі доступнішими для всіх.
шепіт-мал 0.84 Ми живемо в дуже цікаві часи з машинним навчанням. Швидкість розробки моделі ML дійсно збільшиться. Але ви не досягнете того кінцевого стану, якого ми хочемо, у найближчі роки, якщо ми не зробимо ці моделі доступнішими для всіх.
шепіт-середній 1.5 Ми живемо в дуже цікаві часи з машинним навчанням. Швидкість розробки моделі ML дійсно збільшиться. Але ви не досягнете того кінцевого стану, якого ми хочемо, у найближчі роки, якщо ми не зробимо ці моделі доступнішими для всіх.
шепіт-великий 1.96 Ми живемо в дуже цікаві часи з машинним навчанням. Швидкість розробки моделі ML дійсно збільшиться. Але ви не досягнете того кінцевого стану, якого ми хочемо, у найближчі роки, якщо ми не зробимо ці моделі доступнішими для всіх.
whisper-large-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 зі спадного меню.
    Моделі Whisper для автоматичного розпізнавання мовлення тепер доступні в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  3. Після вибору моделі Whisper можна використовувати консоль для розгортання моделі. Ви можете вибрати екземпляр для розгортання або використовувати стандартний.
    Моделі Whisper для автоматичного розпізнавання мовлення тепер доступні в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Розгорніть базову модель із ноутбука Sagemaker

Кроки, щоб спочатку розгорнути, а потім використовувати розгорнуту модель для вирішення різних завдань:

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

Створювати

Цей блокнот було протестовано на примірнику ml.t3.medium у SageMaker Studio з ядром Python 3 (наука про дані) та в примірнику Amazon SageMaker Notebook із conda_python3 ядро

%pip install --upgrade sagemaker --quiet

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

Налаштуйте сеанс SageMaker за допомогою Boto3, а потім виберіть ідентифікатор моделі, яку потрібно розгорнути.

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

Отримайте артефакти та розгорніть кінцеву точку

Використовуючи SageMaker, ви можете робити висновок на попередньо навченій моделі, навіть без попереднього тонкого налаштування на новому наборі даних. Щоб розмістити попередньо навчену модель, створіть екземпляр sagemaker.model.Model і розгорнути його. Наступний код використовує екземпляр за замовчуванням ml.g5.2xlarge для кінцевої точки висновку моделі whisper-large-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 (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 не робить жодних заяв, гарантій або гарантій того, що будь-яка інформація в цьому посібнику призведе до певного результату.


Про авторів

Моделі Whisper для автоматичного розпізнавання мовлення тепер доступні в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Гемант Сінгх є прикладним науковцем із досвідом роботи в Amazon SageMaker JumpStart. Він отримав ступінь магістра в Інституті математичних наук ім. Куранта та ступінь бакалавра технічних наук в IIT Делі. Він має досвід роботи над різноманітними проблемами машинного навчання в області обробки природної мови, комп’ютерного зору та аналізу часових рядів.

Моделі Whisper для автоматичного розпізнавання мовлення тепер доступні в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Рачна Чадха є головним архітектором рішень AI/ML у Strategic Accounts в AWS. Рахна — оптиміст, який вірить, що етичне та відповідальне використання ШІ може покращити суспільство в майбутньому та принести економічне та соціальне процвітання. У вільний час Рачна любить проводити час з сім'єю, гуляти в походах і слухати музику.

Моделі Whisper для автоматичного розпізнавання мовлення тепер доступні в Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Доктор Ашиш Хетан є старшим прикладним науковим співробітником із вбудованими алгоритмами Amazon SageMaker і допомагає розробляти алгоритми машинного навчання. Він отримав ступінь доктора філософії в Іллінойському університеті Урбана-Шампейн. Він активно досліджує машинне навчання та статистичні висновки та опублікував багато статей на конференціях NeurIPS, ICML, ICLR, JMLR, ACL та EMNLP.

Часова мітка:

Більше від AWS Машинне навчання