Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services

Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services

Wir freuen uns, heute bekannt geben zu können, dass das OpenAI Whisper Foundation-Modell für Kunden verfügbar ist Amazon SageMaker-JumpStart. Whisper ist ein vorab trainiertes Modell für die automatische Spracherkennung (ASR) und Sprachübersetzung. Whisper-Modelle wurden anhand von 680 Stunden gekennzeichneter Daten trainiert und zeigen eine starke Fähigkeit zur Verallgemeinerung auf viele Datensätze und Domänen, ohne dass eine Feinabstimmung erforderlich ist. Sagemaker JumpStart ist der Hub für maschinelles Lernen (ML) von SageMaker, der zusätzlich zu integrierten Algorithmen und End-to-End-Lösungsvorlagen Zugriff auf Basismodelle bietet, um Ihnen den schnellen Einstieg in ML zu erleichtern.

Sie können ASR auch mit verwenden Amazon Transcribe , ein vollständig verwalteter und kontinuierlich geschulter automatischer Spracherkennungsdienst.

In diesem Beitrag zeigen wir Ihnen, wie Sie das bereitstellen OpenAI-Flüstern Modell und rufen Sie das Modell auf, um Audio zu transkribieren und zu übersetzen.

Das OpenAI Whisper-Modell verwendet die Huggingface-Pytorch-Inferenz Container. Als SageMaker JumpStart Model Hub-Kunde können Sie ASR verwenden, ohne das Modellskript außerhalb des SageMaker SDK verwalten zu müssen. SageMaker JumpStart-Modelle verbessern außerdem die Sicherheitslage mit Endpunkten, die eine Netzwerkisolation ermöglichen.

Foundation-Modelle in SageMaker

SageMaker JumpStart bietet Zugriff auf eine Reihe von Modellen beliebter Modell-Hubs, darunter Hugging Face, PyTorch Hub und TensorFlow Hub, die Sie in Ihrem ML-Entwicklungsworkflow in SageMaker verwenden können. Die jüngsten Fortschritte im ML haben zu einer neuen Klasse von Modellen geführt, die als bekannt ist Gründungsmodelle, die typischerweise auf Milliarden von Parametern trainiert werden und an eine breite Kategorie von Anwendungsfällen angepasst werden können, wie z. B. Textzusammenfassung, Generierung digitaler Kunst und Sprachübersetzung. Da das Trainieren dieser Modelle teuer ist, möchten Kunden vorhandene vorab trainierte Basismodelle verwenden und diese nach Bedarf verfeinern, anstatt diese Modelle selbst zu trainieren. SageMaker bietet eine kuratierte Liste von Modellen, aus denen Sie auf der SageMaker-Konsole auswählen können.

Sie können jetzt in SageMaker JumpStart Grundlagenmodelle von verschiedenen Modellanbietern finden, sodass Sie schnell mit Grundlagenmodellen beginnen können. SageMaker JumpStart bietet Basismodelle basierend auf verschiedenen Aufgaben oder Modellanbietern, und Sie können Modelleigenschaften und Nutzungsbedingungen einfach überprüfen. Sie können diese Modelle auch mit einem Test-UI-Widget ausprobieren. Wenn Sie ein Grundmodell im großen Maßstab verwenden möchten, können Sie dies tun, ohne SageMaker zu verlassen, indem Sie vorgefertigte Notebooks von Modellanbietern verwenden. Da die Modelle auf AWS gehostet und bereitgestellt werden, können Sie darauf vertrauen, dass Ihre Daten, unabhängig davon, ob sie zur Bewertung oder Verwendung des Modells im großen Maßstab verwendet werden, nicht an Dritte weitergegeben werden.

OpenAI Whisper-Grundlagenmodelle

Whisper ist ein vorab trainiertes Modell für ASR und Sprachübersetzung. Whisper wurde in dem Papier vorgeschlagen Robuste Spracherkennung durch groß angelegte schwache Überwachung von Alec Radford und anderen von OpenAI. Der Originalcode ist zu finden in diesem GitHub-Repository.

Whisper ist ein Transformer-basiertes Encoder-Decoder-Modell, auch als a bezeichnet Folge zu Folge Modell. Es wurde anhand von 680 Stunden beschrifteter Sprachdaten trainiert, die mithilfe einer groß angelegten schwachen Überwachung annotiert wurden. Whisper-Modelle zeigen eine starke Fähigkeit zur Verallgemeinerung auf viele Datensätze und Domänen, ohne dass eine Feinabstimmung erforderlich ist.

Die Modelle wurden entweder auf rein englischsprachigen Daten oder auf mehrsprachigen Daten trainiert. Die rein englischsprachigen Modelle wurden auf die Aufgabe der Spracherkennung trainiert. Die mehrsprachigen Modelle wurden auf Spracherkennung und Sprachübersetzung trainiert. Für die Spracherkennung sagt das Modell Transkriptionen im voraus gleich Sprache als Audio. Für die Sprachübersetzung sagt das Modell Transkriptionen zu a voraus anders Sprache zum Audio.

Whisper-Kontrollpunkte gibt es in fünf Konfigurationen unterschiedlicher Modellgrößen. Die kleinsten vier werden entweder mit rein englischsprachigen oder mehrsprachigen Daten trainiert. Die größten Kontrollpunkte sind nur mehrsprachig. Alle zehn vorab trainierten Kontrollpunkte sind auf der verfügbar Hugging Face-Nabe. Die Prüfpunkte sind in der folgenden Tabelle mit Links zu den Modellen auf dem Hub zusammengefasst:

Modellbezeichnung Anzahl Parameter Mehrsprachigkeit
flüsterwinzig 39 M Ja
Flüsterbasis 74 M Ja
flüsterklein 244 M Ja
Flüstermedium 769 M Ja
flüstergroß 1550 M Ja
whisper-large-v2 1550 M Ja

Lassen Sie uns untersuchen, wie Sie Whisper-Modelle in SageMaker JumpStart verwenden können.

OpenAI Whisper Foundation-Modelle, WER- und Latenzvergleich

Die Wortfehlerrate (WER) für verschiedene OpenAI Whisper-Modelle basierend auf LibriSpeech test-sauber ist in der folgenden Tabelle dargestellt. WER ist eine gängige Metrik für die Leistung eines Spracherkennungs- oder maschinellen Übersetzungssystems. Es misst den Unterschied zwischen dem Referenztext (der Grundwahrheit oder der korrekten Transkription) und der Ausgabe eines ASR-Systems im Hinblick auf die Anzahl der Fehler, einschließlich Ersetzungen, Einfügungen und Löschungen, die erforderlich sind, um die ASR-Ausgabe in die Referenz umzuwandeln Text. Diese Zahlen stammen aus der Gesicht umarmen Webseite.

Modell WER (Prozent)
flüsterwinzig 7.54
Flüsterbasis 5.08
flüsterklein 3.43
Flüstermedium 2.9
flüstergroß 3
whisper-large-v2 3

Für diesen Blog haben wir die folgende Audiodatei genommen und die Latenz der Spracherkennung bei verschiedenen Flüstermodellen verglichen. Die Latenz ist die Zeitspanne vom Senden einer Anfrage durch einen Benutzer bis zu dem Zeitpunkt, an dem Ihre Anwendung anzeigt, dass die Anfrage abgeschlossen wurde. Die Zahlen in der folgenden Tabelle stellen die durchschnittliche Latenz für insgesamt 100 Anfragen dar, die dieselbe Audiodatei mit dem auf der ml.g5.2xlarge-Instanz gehosteten Modell verwenden.

Modell Durchschnittliche Latenz(en) Modellausgabe
flüsterwinzig 0.43 Wir leben in sehr spannenden Zeiten, was die Maschinenbeleuchtung angeht. Die Geschwindigkeit der ML-Modellentwicklung wird tatsächlich zunehmen. Aber den Endzustand, den wir gewonnen haben, werden wir in den nächsten Jahren nicht erreichen. Es sei denn, wir machen diese Modelle tatsächlich für alle zugänglicher.
Flüsterbasis 0.49 Wir leben in sehr aufregenden Zeiten mit maschinellem Lernen. Die Geschwindigkeit der ML-Modellentwicklung wird tatsächlich zunehmen. Aber den Endzustand, den wir gewonnen haben, werden wir in den nächsten Jahren nicht erreichen. Es sei denn, wir machen diese Modelle tatsächlich für alle zugänglicher.
flüsterklein 0.84 Wir leben in sehr aufregenden Zeiten mit maschinellem Lernen. Die Geschwindigkeit der ML-Modellentwicklung wird tatsächlich zunehmen. Aber wir werden in den nächsten Jahren nicht den Endzustand erreichen, den wir uns wünschen, wenn wir diese Modelle nicht tatsächlich für jedermann zugänglicher machen.
Flüstermedium 1.5 Wir leben in sehr aufregenden Zeiten mit maschinellem Lernen. Die Geschwindigkeit der ML-Modellentwicklung wird tatsächlich zunehmen. Aber wir werden in den nächsten Jahren nicht den Endzustand erreichen, den wir uns wünschen, wenn wir diese Modelle nicht tatsächlich für jedermann zugänglicher machen.
flüstergroß 1.96 Wir leben in sehr aufregenden Zeiten mit maschinellem Lernen. Die Geschwindigkeit der ML-Modellentwicklung wird tatsächlich zunehmen. Aber wir werden in den nächsten Jahren nicht den Endzustand erreichen, den wir uns wünschen, wenn wir diese Modelle nicht tatsächlich für jedermann zugänglicher machen.
whisper-large-v2 1.98 Wir leben in sehr aufregenden Zeiten mit maschinellem Lernen. Die Geschwindigkeit der ML-Modellentwicklung wird tatsächlich zunehmen. Aber wir werden in den nächsten Jahren nicht den Endzustand erreichen, den wir uns wünschen, wenn wir diese Modelle nicht tatsächlich für jedermann zugänglicher machen.

Lösungsweg

Sie können Whisper-Modelle über die Amazon SageMaker-Konsole oder ein Amazon SageMaker-Notebook bereitstellen. In diesem Beitrag zeigen wir, wie Sie die Whisper-API mithilfe der SageMaker Studio-Konsole oder eines SageMaker-Notebooks bereitstellen und dann das bereitgestellte Modell für die Spracherkennung und Sprachübersetzung verwenden. Der in diesem Beitrag verwendete Code ist in zu finden dieses GitHub-Notizbuch.

Lassen Sie uns jeden Schritt im Detail erweitern.

Stellen Sie Whisper über die Konsole bereit

  1. Um mit SageMaker JumpStart zu beginnen, öffnen Sie die Amazon SageMaker Studio-Konsole, gehen Sie zur Startseite von SageMaker JumpStart und wählen Sie „ Beginnen Sie mit JumpStart.
  2. Um ein Whisper-Modell auszuwählen, können Sie entweder die Registerkarten oben oder das Suchfeld oben rechts verwenden, wie im folgenden Screenshot gezeigt. Verwenden Sie für dieses Beispiel das Suchfeld oben rechts und geben Sie ein Whisperund wählen Sie dann das entsprechende Whisper-Modell aus dem Dropdown-Menü aus.
    Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  3. Nachdem Sie das Whisper-Modell ausgewählt haben, können Sie das Modell über die Konsole bereitstellen. Sie können eine Instanz für die Bereitstellung auswählen oder die Standardinstanz verwenden.
    Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Stellen Sie das Fundamentmodell über ein Sagemaker-Notebook bereit

Die Schritte zum ersten Bereitstellen und anschließenden Verwenden des bereitgestellten Modells zur Lösung verschiedener Aufgaben sind:

  1. Einrichten
  2. Wählen Sie ein Modell aus
  3. Rufen Sie Artefakte ab und stellen Sie einen Endpunkt bereit
  4. Verwenden Sie das bereitgestellte Modell für ASR
  5. Verwenden Sie das bereitgestellte Modell für die Sprachübersetzung
  6. Bereinigen Sie den Endpunkt

Einrichten

Dieses Notebook wurde auf einer ml.t3.medium-Instanz in SageMaker Studio mit dem Python 3-Kernel (Data Science) und in einer Amazon SageMaker Notebook-Instanz mit dem getestet conda_python3 Kernel.

%pip install --upgrade sagemaker --quiet

Wählen Sie ein vorab trainiertes Modell aus

Richten Sie eine SageMaker-Sitzung mit Boto3 ein und wählen Sie dann die Modell-ID aus, die Sie bereitstellen möchten.

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

Rufen Sie Artefakte ab und stellen Sie einen Endpunkt bereit

Mit SageMaker können Sie Rückschlüsse auf das vorab trainierte Modell ziehen, auch ohne es zuerst an einem neuen Datensatz feinabstimmen zu müssen. Erstellen Sie zum Hosten des vorab trainierten Modells eine Instanz von sagemaker.model.Model und stellen Sie es bereit. Der folgende Code verwendet die Standardinstanz ml.g5.2xlarge für den Inferenzendpunkt eines Whisper-Large-v2-Modells. Sie können das Modell durch Übergeben auf anderen Instanztypen bereitstellen instance_type der JumpStartModel Klasse. Die Bereitstellung kann einige Minuten dauern.

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

Automatische Spracherkennung

Als Nächstes lesen Sie die Beispiel-Audiodatei „sample1.wav“ aus einem öffentlichen SageMaker Jumpstart Einfacher Amazon-Speicherdienst (Amazon S3) Standort und übergeben Sie es an den Anzeichen zur Spracherkennung. Sie können diese Beispieldatei durch jede andere Beispiel-Audiodatei ersetzen. Stellen Sie jedoch sicher, dass die WAV-Datei mit 16 kHz abgetastet wird, da dies für die Modelle der automatischen Spracherkennung erforderlich ist. Die eingegebene Audiodatei muss kürzer als 30 Sekunden sein.

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

Dieses Modell unterstützt viele Parameter bei der Durchführung von Inferenzen. Sie beinhalten:

  • max_length: Das Modell generiert Text bis zur Ausgabelänge. Falls angegeben, muss es eine positive Ganzzahl sein.
  • Sprache und Aufgabe: Geben Sie hier die Ausgabesprache und Aufgabe an. Das Modell unterstützt die Aufgabe der Transkription oder Übersetzung.
  • max_new_tokens: Die maximale Anzahl der zu generierenden Token.
  • num_return_sequences: Die Anzahl der zurückgegebenen Ausgabesequenzen. Wenn angegeben, muss es eine positive ganze Zahl sein.
  • num_beams: Die Anzahl der Strahlen, die bei der gierigen Suche verwendet werden. Wenn angegeben, muss es eine Ganzzahl sein, die größer oder gleich ist num_return_sequences.
  • no_repeat_ngram_size: Das Modell stellt sicher, dass eine Wortfolge von no_repeat_ngram_size wird in der Ausgabesequenz nicht wiederholt. Falls angegeben, muss es eine positive Ganzzahl größer als 1 sein.
  • Temperatur: Dies steuert die Zufälligkeit in der Ausgabe. Eine höhere Temperatur führt zu einer Ausgabesequenz mit Wörtern mit geringer Wahrscheinlichkeit, eine niedrigere Temperatur führt zu einer Ausgabesequenz mit Wörtern mit hoher Wahrscheinlichkeit. Wenn die Temperatur 0 erreicht, führt dies zu einer gierigen Dekodierung. Falls angegeben, muss es sich um einen positiven Gleitkommawert handeln.
  • early_stopping: Ob TrueDie Textgenerierung ist abgeschlossen, wenn alle Balkenhypothesen das Satzende-Token erreichen. Falls angegeben, muss es ein boolescher Wert sein.
  • do_sample: Ob True, probieren Sie das nächste Wort für die Wahrscheinlichkeit aus. Falls angegeben, muss es ein boolescher Wert sein.
  • top_k: In jedem Schritt der Textgenerierung nur eine Probe aus dem top_k wahrscheinlichste Worte. Falls angegeben, muss es sich um eine positive Ganzzahl handeln.
  • top_p: In jedem Schritt der Textgenerierung wird eine Stichprobe aus der kleinstmöglichen Menge von Wörtern mit kumulativer Wahrscheinlichkeit entnommen top_p. Falls angegeben, muss es sich um eine Gleitkommazahl zwischen 0 und 1 handeln.

Sie können beim Aufrufen eines Endpunkts eine beliebige Teilmenge der vorstehenden Parameter angeben. Als Nächstes zeigen wir Ihnen ein Beispiel dafür, wie Sie einen Endpunkt mit diesen Argumenten aufrufen.

Sprachübersetzung

Um die Sprachübersetzung mithilfe von Whisper-Modellen zu demonstrieren, verwenden Sie die folgende Audiodatei auf Französisch und übersetzen Sie sie ins Englische. Die Datei muss mit 16 kHz abgetastet werden (wie für die ASR-Modelle erforderlich). Stellen Sie daher sicher, dass Sie die Dateien bei Bedarf erneut abtasten, und stellen Sie sicher, dass Ihre Samples 30 Sekunden nicht überschreiten.

  1. Laden Sie die sample_french1.wav von SageMaker JumpStart vom öffentlichen S3-Speicherort, damit es als Nutzlast zur Übersetzung durch das Whisper-Modell übergeben werden kann.
    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. Legen Sie den Aufgabenparameter fest als translate und Sprache als French um das Whisper-Modell zu zwingen, eine Sprachübersetzung durchzuführen.
    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. Verwenden Sie die Anzeichen um die Übersetzung der Sprache vorherzusagen. Wenn Sie einen Clientfehler (Fehler 413) erhalten, überprüfen Sie die Nutzlastgröße zum Endpunkt. Die Nutzlast für SageMaker-Aufrufendpunktanforderungen ist auf etwa 5 MB begrenzt.
    response = predictor.predict(payload)
    print(response["text"])

  4. Die aus der französischen Audiodatei ins Englische übersetzte Textausgabe folgt:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

Aufräumen

Nachdem Sie den Endpunkt getestet haben, löschen Sie den SageMaker-Inferenzendpunkt und das Modell, um zu vermeiden, dass Gebühren anfallen.

Zusammenfassung

In diesem Beitrag haben wir Ihnen gezeigt, wie Sie OpenAI Whisper-Modelle testen und verwenden, um interessante Anwendungen mit Amazon SageMaker zu erstellen. Probieren Sie noch heute das Foundation-Modell in SageMaker aus und teilen Sie uns Ihr Feedback mit!

Diese Anleitung dient nur zu Informationszwecken. Sie sollten dennoch Ihre eigene unabhängige Bewertung durchführen und Maßnahmen ergreifen, um sicherzustellen, dass Sie Ihre eigenen spezifischen Qualitätskontrollpraktiken und -standards sowie die lokalen Regeln, Gesetze, Vorschriften, Lizenzen und Nutzungsbedingungen einhalten, die für Sie, Ihre Inhalte usw. gelten In dieser Anleitung referenziertes Drittanbietermodell. AWS hat keine Kontrolle oder Autorität über das in dieser Anleitung genannte Drittanbietermodell und gibt keine Zusicherungen oder Gewährleistungen dafür, dass das Drittanbietermodell sicher, virenfrei, betriebsbereit oder mit Ihrer Produktionsumgebung und Ihren Standards kompatibel ist. AWS gibt keine Zusicherungen, Gewährleistungen oder Garantien dafür, dass die Informationen in dieser Anleitung zu einem bestimmten Ergebnis oder Ergebnis führen werden.


Über die Autoren

Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Hemant Singh ist ein angewandter Wissenschaftler mit Erfahrung in Amazon SageMaker JumpStart. Er erhielt seinen Master vom Courant Institute of Mathematical Sciences und seinen B.Tech vom IIT Delhi. Er verfügt über Erfahrung in der Arbeit an einer Vielzahl von Problemen des maschinellen Lernens im Bereich der Verarbeitung natürlicher Sprache, Computer Vision und Zeitreihenanalyse.

Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Rachna Chadha ist Principal Solution Architect AI/ML in Strategic Accounts bei AWS. Rachna ist eine Optimistin, die glaubt, dass ein ethischer und verantwortungsvoller Einsatz von KI die Gesellschaft in Zukunft verbessern und wirtschaftlichen und sozialen Wohlstand bringen kann. In ihrer Freizeit verbringt Rachna gerne Zeit mit ihrer Familie, wandert und hört Musik.

Flüstermodelle für die automatische Spracherkennung sind jetzt in Amazon SageMaker JumpStart | verfügbar Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Dr. Ashish Khetan ist Senior Applied Scientist mit integrierten Amazon SageMaker-Algorithmen und hilft bei der Entwicklung von Algorithmen für maschinelles Lernen. Er promovierte an der University of Illinois Urbana-Champaign. Er ist ein aktiver Forscher auf dem Gebiet des maschinellen Lernens und der statistischen Inferenz und hat viele Artikel auf den Konferenzen NeurIPS, ICML, ICLR, JMLR, ACL und EMNLP veröffentlicht.

Zeitstempel:

Mehr von AWS Maschinelles Lernen