Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Servicios web de Amazon

Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Servicios web de Amazon

Hoy, nos complace anunciar que el modelo básico OpenAI Whisper está disponible para los clientes que utilizan JumpStart de Amazon SageMaker. Whisper es un modelo previamente entrenado para el reconocimiento automático de voz (ASR) y la traducción de voz. Entrenados con 680 mil horas de datos etiquetados, los modelos Whisper demuestran una gran capacidad para generalizar a muchos conjuntos de datos y dominios sin necesidad de realizar ajustes. Sagemaker JumpStart es el centro de aprendizaje automático (ML) de SageMaker que brinda acceso a modelos básicos además de algoritmos integrados y plantillas de soluciones de un extremo a otro para ayudarlo a comenzar rápidamente con ML.

También puedes hacer ASR usando Amazon Transcribe , un servicio de reconocimiento automático de voz completamente administrado y capacitado continuamente.

En esta publicación, le mostramos cómo implementar el Susurro de OpenAI modelo e invoca el modelo para transcribir y traducir audio.

El modelo OpenAI Whisper utiliza el abrazando cara-pytorch-inferencia envase. Como cliente del centro de modelos SageMaker JumpStart, puede utilizar ASR sin tener que mantener el script del modelo fuera del SDK de SageMaker. Los modelos SageMaker JumpStart también mejoran la postura de seguridad con puntos finales que permiten el aislamiento de la red.

Modelos de base en SageMaker

SageMaker JumpStart brinda acceso a una variedad de modelos de centros de modelos populares, incluidos Hugging Face, PyTorch Hub y TensorFlow Hub, que puede usar dentro de su flujo de trabajo de desarrollo de aprendizaje automático en SageMaker. Los avances recientes en ML han dado lugar a una nueva clase de modelos conocidos como modelos de cimientos, que normalmente se entrenan en miles de millones de parámetros y se pueden adaptar a una amplia categoría de casos de uso, como resumen de texto, generación de arte digital y traducción de idiomas. Debido a que estos modelos son costosos de entrenar, los clientes prefieren utilizar modelos básicos previamente entrenados y ajustarlos según sea necesario, en lugar de entrenar estos modelos ellos mismos. SageMaker proporciona una lista seleccionada de modelos entre los que puede elegir en la consola de SageMaker.

Ahora puede encontrar modelos de base de diferentes proveedores de modelos dentro de SageMaker JumpStart, lo que le permite comenzar a utilizar modelos de base rápidamente. SageMaker JumpStart ofrece modelos básicos basados ​​en diferentes tareas o proveedores de modelos, y usted puede revisar fácilmente las características del modelo y los términos de uso. También puedes probar estos modelos usando un widget de interfaz de usuario de prueba. Cuando desee utilizar un modelo básico a escala, puede hacerlo sin salir de SageMaker utilizando cuadernos prediseñados de proveedores de modelos. Debido a que los modelos están alojados e implementados en AWS, usted confía en que sus datos, ya sea que se utilicen para evaluar o utilizar el modelo a escala, no se compartirán con terceros.

Modelos básicos de OpenAI Whisper

Whisper es un modelo previamente entrenado para ASR y traducción de voz. Whisper fue propuesto en el periódico. Reconocimiento de voz robusto mediante supervisión débil a gran escala por Alec Radford y otros, de OpenAI. El código original se puede encontrar. en este repositorio de GitHub.

Whisper es un modelo de codificador-decodificador basado en transformador, también conocido como secuencia a secuencia modelo. Fue entrenado con 680 mil horas de datos de voz etiquetados y anotados mediante una supervisión débil a gran escala. Los modelos Whisper demuestran una gran capacidad para generalizar a muchos conjuntos de datos y dominios sin necesidad de realizar ajustes.

Los modelos se entrenaron con datos solo en inglés o con datos multilingües. Los modelos que hablaban únicamente inglés fueron entrenados en la tarea de reconocimiento de voz. Los modelos multilingües fueron entrenados en reconocimiento y traducción de voz. Para el reconocimiento de voz, el modelo predice transcripciones en el mismo idioma como el audio. Para la traducción de voz, el modelo predice las transcripciones a un una experiencia diferente idioma al audio.

Los puntos de control Whisper vienen en cinco configuraciones de diferentes tamaños de modelo. Los cuatro más pequeños están capacitados con datos solo en inglés o multilingües. Los puntos de control más grandes son únicamente multilingües. Los diez puntos de control previamente entrenados están disponibles en el Cubo de cara abrazadora. Los puntos de control se resumen en la siguiente tabla con enlaces a los modelos en el centro:

Nombre del modelo Número de parámetros Multilingüe
susurro diminuto 39 m
base de susurro 74 m
susurro pequeño 244 m
medio susurro 769 m
susurro-grande 1550 m
susurro-grande-v2 1550 m

Exploremos cómo se pueden utilizar los modelos Whisper en SageMaker JumpStart.

Modelos básicos OpenAI Whisper WER y comparación de latencia

La tasa de error de palabras (WER) para diferentes modelos de OpenAI Whisper según el Prueba de limpieza de LibriSpeech se muestra en la siguiente tabla. WER es una métrica común para el rendimiento de un sistema de reconocimiento de voz o traducción automática. Mide la diferencia entre el texto de referencia (la verdad fundamental o la transcripción correcta) y la salida de un sistema ASR en términos de la cantidad de errores, incluidas las sustituciones, inserciones y eliminaciones que se necesitan para transformar la salida ASR en la referencia. texto. Estos números han sido tomados de la Abrazando la cara sitio web.

Modelo WER (porcentaje)
susurro diminuto 7.54
base de susurro 5.08
susurro pequeño 3.43
medio susurro 2.9
susurro-grande 3
susurro-grande-v2 3

Para este blog, tomamos el siguiente archivo de audio y comparamos la latencia del reconocimiento de voz en diferentes modelos de susurros. La latencia es la cantidad de tiempo desde el momento en que un usuario envía una solicitud hasta el momento en que su aplicación indica que la solicitud se ha completado. Los números de la siguiente tabla representan la latencia promedio para un total de 100 solicitudes utilizando el mismo archivo de audio con el modelo alojado en la instancia ml.g5.2xlarge.

Modelo Latencias promedio Salida del modelo
susurro diminuto 0.43 Vivimos tiempos muy apasionantes con la iluminación de las máquinas. La velocidad del desarrollo del modelo ML realmente aumentará. Pero no llegaremos al estado final que logramos en los próximos años. A menos que realmente hagamos que estos modelos sean más accesibles para todos.
base de susurro 0.49 Vivimos tiempos muy emocionantes con el aprendizaje automático. La velocidad del desarrollo del modelo ML realmente aumentará. Pero no llegaremos al estado final que logramos en los próximos años. A menos que realmente hagamos que estos modelos sean más accesibles para todos.
susurro pequeño 0.84 Vivimos tiempos muy emocionantes con el aprendizaje automático. La velocidad del desarrollo del modelo ML realmente aumentará. Pero no llegaremos al estado final que queremos en los próximos años a menos que realmente hagamos que estos modelos sean más accesibles para todos.
medio susurro 1.5 Vivimos tiempos muy emocionantes con el aprendizaje automático. La velocidad del desarrollo del modelo ML realmente aumentará. Pero no llegaremos al estado final que queremos en los próximos años a menos que realmente hagamos que estos modelos sean más accesibles para todos.
susurro-grande 1.96 Vivimos tiempos muy emocionantes con el aprendizaje automático. La velocidad del desarrollo del modelo ML realmente aumentará. Pero no llegaremos al estado final que queremos en los próximos años a menos que realmente hagamos que estos modelos sean más accesibles para todos.
susurro-grande-v2 1.98 Vivimos tiempos muy emocionantes con el aprendizaje automático. La velocidad del desarrollo del modelo ML realmente aumentará. Pero no llegaremos al estado final que queremos en los próximos años a menos que realmente hagamos que estos modelos sean más accesibles para todos.

Tutorial de la solución

Puede implementar modelos de Whisper mediante la consola de Amazon SageMaker o mediante un cuaderno de Amazon SageMaker. En esta publicación, demostramos cómo implementar Whisper API usando la consola SageMaker Studio o un SageMaker Notebook y luego usar el modelo implementado para el reconocimiento de voz y la traducción de idiomas. El código utilizado en esta publicación se puede encontrar en este cuaderno de GitHub.

Ampliemos cada paso en detalle.

Implementar Whisper desde la consola

  1. Para comenzar con SageMaker JumpStart, abra la consola de Amazon SageMaker Studio, vaya a la página de inicio de SageMaker JumpStart y seleccione Comience con JumpStart.
  2. Para elegir un modelo de Whisper, puede usar las pestañas en la parte superior o usar el cuadro de búsqueda en la parte superior derecha como se muestra en la siguiente captura de pantalla. Para este ejemplo, use el cuadro de búsqueda en la parte superior derecha e ingrese Whispery luego seleccione el modelo Whisper apropiado en el menú desplegable.
    Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.
  3. Después de seleccionar el modelo Whisper, puede usar la consola para implementar el modelo. Puede seleccionar una instancia para la implementación o utilizar la predeterminada.
    Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Implementar el modelo básico desde un Sagemaker Notebook

Los pasos para implementar primero y luego usar el modelo implementado para resolver diferentes tareas son:

  1. Preparar
  2. Seleccione un modelo
  3. Recuperar artefactos e implementar un punto final
  4. Utilice el modelo implementado para ASR
  5. Utilice el modelo implementado para la traducción de idiomas
  6. Limpiar el punto final

Preparar

Este cuaderno se probó en una instancia ml.t3.medium en SageMaker Studio con el kernel Python 3 (ciencia de datos) y en una instancia de Amazon SageMaker Notebook con el conda_python3 núcleo.

%pip install --upgrade sagemaker --quiet

Seleccione un modelo pre-entrenado

Configure una sesión de SageMaker usando Boto3 y luego seleccione el ID del modelo que desea implementar.

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

Recuperar artefactos e implementar un punto final

Con SageMaker, puede realizar inferencias en el modelo previamente entrenado, incluso sin ajustarlo primero en un nuevo conjunto de datos. Para alojar el modelo previamente entrenado, cree una instancia de sagemaker.modelo.Modelo y desplegarlo. El siguiente código utiliza la instancia predeterminada. ml.g5.2xlarge para el punto final de inferencia de un modelo susurro grande v2. Puede implementar el modelo en otros tipos de instancias pasando instance_type existentes JumpStartModel clase. La implementación puede tardar unos minutos.

#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()

Reconocimiento de voz automático

A continuación, lee el archivo de audio de muestra, sample1.wav, de un archivo público Jumpstart de SageMaker. Servicio de almacenamiento simple de Amazon (Amazon S3) ubicación y páselo al vaticinador para reconocimiento de voz. Puede reemplazar este archivo de muestra con cualquier otro archivo de audio de muestra, pero asegúrese de que el archivo .wav esté muestreado a 16 kHz porque lo requieren los modelos de reconocimiento automático de voz. El archivo de audio de entrada debe durar menos de 30 segundos.

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"])

Este modelo admite muchos parámetros al realizar inferencias. Incluyen:

  • max_length: El modelo genera texto hasta la longitud de salida. Si se especifica, debe ser un número entero positivo.
  • Idioma y tarea: especifique aquí el idioma de salida y la tarea. El modelo soporta la tarea de transcripción o traducción.
  • max_new_tokens: La cantidad máxima de tokens a generar.
  • num_return_sequences: el número de secuencias de salida devueltas. Si se especifica, debe ser un número entero positivo.
  • num_beams: El número de haces utilizados en la búsqueda codiciosa. Si se especifica, debe ser un número entero mayor o igual a num_return_sequences.
  • no_repeat_ngram_size: El modelo asegura que una secuencia de palabras de no_repeat_ngram_size no se repite en la secuencia de salida. Si se especifica, debe ser un número entero positivo mayor que 1.
  • temperatura: Esto controla la aleatoriedad en la salida. Una temperatura más alta da como resultado una secuencia de salida con palabras de baja probabilidad y una temperatura más baja da como resultado una secuencia de salida con palabras de alta probabilidad. Si la temperatura se acerca a 0, se produce una decodificación codiciosa. Si se especifica, debe ser un valor flotante positivo.
  • early_stopping: Si True, la generación de texto finaliza cuando todas las hipótesis de haz llegan al final del token de oración. Si se especifica, debe ser booleano.
  • do_sample: Si True, pruebe la siguiente palabra para conocer la probabilidad. Si se especifica, debe ser booleano.
  • top_k: En cada paso de la generación de texto, tome muestras solo de top_k palabras más probables. Si se especifica, debe ser un entero positivo.
  • top_p: En cada paso de la generación de texto, tome muestras del conjunto de palabras más pequeño posible con probabilidad acumulativa top_p. Si se especifica, debe ser un valor flotante entre 0 y 1.

Puede especificar cualquier subconjunto de los parámetros anteriores al invocar un punto final. A continuación, te mostramos un ejemplo de cómo invocar un endpoint con estos argumentos.

Traducción de idiomas

Para mostrar la traducción de idiomas utilizando modelos de Whisper, utilice el siguiente archivo de audio en francés y tradúzcalo al inglés. El archivo debe muestrearse a 16 kHz (como lo requieren los modelos ASR), así que asegúrese de volver a muestrear los archivos si es necesario y asegúrese de que sus muestras no excedan los 30 segundos.

  1. Descargue nuestra sample_french1.wav desde SageMaker JumpStart desde la ubicación pública de S3 para que pueda pasarse en la carga útil para su traducción mediante el modelo 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. Establezca el parámetro de tarea como translate y el lenguaje como French para forzar al modelo Whisper a realizar la traducción de voz.
    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. Uso vaticinador predecir la traducción del idioma. Si recibe un error del cliente (error 413), verifique el tamaño de la carga útil hasta el punto final. Las cargas útiles para las solicitudes de punto final de invocación de SageMaker están limitadas a aproximadamente 5 MB.
    response = predictor.predict(payload)
    print(response["text"])

  4. El texto traducido al inglés del archivo de audio francés es el siguiente:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

Limpiar

Después de haber probado el punto final, elimine el punto final de inferencia de SageMaker y elimine el modelo para evitar incurrir en cargos.

Conclusión

En esta publicación, le mostramos cómo probar y utilizar modelos OpenAI Whisper para crear aplicaciones interesantes utilizando Amazon SageMaker. ¡Pruebe el modelo básico en SageMaker hoy y déjenos saber sus comentarios!

Esta guía tiene únicamente fines informativos. Aún así, debe realizar su propia evaluación independiente y tomar medidas para garantizar que cumple con sus propias prácticas y estándares de control de calidad específicos, y con las reglas, leyes, regulaciones, licencias y términos de uso locales que se aplican a usted, su contenido y el modelo de terceros al que se hace referencia en esta guía. AWS no tiene control ni autoridad sobre el modelo de terceros al que se hace referencia en esta guía y no realiza ninguna declaración ni garantía de que el modelo de terceros sea seguro, esté libre de virus, sea operativo o compatible con su entorno y estándares de producción. AWS no realiza ninguna declaración ni garantía de que la información contenida en esta guía produzca un resultado o resultado particular.


Sobre los autores

Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Hemant Singh es un Científico Aplicado con experiencia en Amazon SageMaker JumpStart. Obtuvo su maestría en el Instituto Courant de Ciencias Matemáticas y su B.Tech en el IIT Delhi. Tiene experiencia trabajando en una amplia gama de problemas de aprendizaje automático dentro del dominio del procesamiento del lenguaje natural, la visión por computadora y el análisis de series temporales.

Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Rachna chadha es Arquitecto Principal de Soluciones AI/ML en Cuentas Estratégicas en AWS. Rachna es una optimista que cree que el uso ético y responsable de la IA puede mejorar la sociedad en el futuro y generar prosperidad económica y social. En su tiempo libre, a Rachna le gusta pasar tiempo con su familia, hacer caminatas y escuchar música.

Modelos Whisper para reconocimiento automático de voz ahora disponibles en Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Dr. Ashish Khetan es científico senior aplicado con algoritmos integrados de Amazon SageMaker y ayuda a desarrollar algoritmos de aprendizaje automático. Obtuvo su doctorado en la Universidad de Illinois Urbana-Champaign. Es un investigador activo en aprendizaje automático e inferencia estadística, y ha publicado muchos artículos en conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.

Sello de tiempo:

Mas de Aprendizaje automático de AWS