Whisper-modeller til automatisk talegenkendelse er nu tilgængelige i Amazon SageMaker JumpStart | Amazon Web Services

Whisper-modeller til automatisk talegenkendelse er nu tilgængelige i Amazon SageMaker JumpStart | Amazon Web Services

I dag er vi glade for at kunne meddele, at OpenAI Whisper-fundamentmodellen er tilgængelig for kunder, der bruger Amazon SageMaker JumpStart. Whisper er en præ-trænet model til automatisk talegenkendelse (ASR) og taleoversættelse. Trænet på 680 tusinde timers mærkede data demonstrerer Whisper-modeller en stærk evne til at generalisere til mange datasæt og domæner uden behov for finjustering. Sagemaker JumpStart er maskinlæring (ML) hub af SageMaker, der giver adgang til fundamentmodeller ud over indbyggede algoritmer og end-to-end løsningsskabeloner for at hjælpe dig hurtigt i gang med ML.

Du kan også lave ASR vha Amazon Transcrib ,en fuldt administreret og kontinuerligt trænet automatisk talegenkendelsestjeneste.

I dette indlæg viser vi dig, hvordan du implementerer OpenAI Whisper modellere og påberåbe modellen for at transskribere og oversætte lyd.

OpenAI Whisper-modellen bruger huggingface-pytorch-inference beholder. Som SageMaker JumpStart-modelhubkunde kan du bruge ASR uden at skulle vedligeholde modelscriptet uden for SageMaker SDK. SageMaker JumpStart-modeller forbedrer også sikkerhedspositionen med endepunkter, der muliggør netværksisolering.

Fundamentmodeller i SageMaker

SageMaker JumpStart giver adgang til en række modeller fra populære modelhubs, herunder Hugging Face, PyTorch Hub og TensorFlow Hub, som du kan bruge i din ML-udviklingsworkflow i SageMaker. De seneste fremskridt inden for ML har givet anledning til en ny klasse af modeller kendt som fundament modeller, som typisk trænes på milliarder af parametre og kan tilpasses til en bred kategori af use cases, såsom tekstresumé, generering af digital kunst og sprogoversættelse. Fordi disse modeller er dyre at træne, ønsker kunder at bruge eksisterende præ-trænede foundation-modeller og finjustere dem efter behov, i stedet for at træne disse modeller selv. SageMaker giver en udvalgt liste over modeller, som du kan vælge imellem på SageMaker-konsollen.

Du kan nu finde fundamentmodeller fra forskellige modeludbydere i SageMaker JumpStart, så du hurtigt kan komme i gang med fundamentmodeller. SageMaker JumpStart tilbyder fundamentmodeller baseret på forskellige opgaver eller modeludbydere, og du kan nemt gennemgå modellens karakteristika og brugsbetingelser. Du kan også prøve disse modeller ved hjælp af en test-UI-widget. Når du vil bruge en fundamentmodel i stor skala, kan du gøre det uden at forlade SageMaker ved at bruge forudbyggede notesbøger fra modeludbydere. Fordi modellerne er hostet og implementeret på AWS, stoler du på, at dine data, uanset om de bruges til at evaluere eller bruge modellen i stor skala, ikke vil blive delt med tredjeparter.

OpenAI Whisper foundation modeller

Whisper er en præ-trænet model til ASR og taleoversættelse. Hvisken blev foreslået i avisen Robust talegenkendelse via Svag Supervision i stor skala af Alec Radford og andre fra OpenAI. Den originale kode kan findes i dette GitHub-lager.

Whisper er en transformer-baseret encoder-decoder-model, også kaldet en sekvens til sekvens model. Det blev trænet på 680 tusind timers mærkede taledata kommenteret ved hjælp af storstilet svag overvågning. Whisper-modeller viser en stærk evne til at generalisere til mange datasæt og domæner uden behov for finjustering.

Modellerne blev trænet på enten engelsk-kun data eller flersprogede data. De engelske modeller blev trænet i opgaven med talegenkendelse. De flersprogede modeller blev trænet i talegenkendelse og taleoversættelse. Til talegenkendelse forudsiger modellen transskriptioner i samme sprog som lyd. Til taleoversættelse forudsiger modellen transskriptioner til en forskellige sprog til lyden.

Whisper checkpoints kommer i fem konfigurationer af forskellige modelstørrelser. De mindste fire er trænet på enten kun engelsk eller flersprogede data. De største kontrolpunkter er kun flersprogede. Alle ti forudtrænede checkpoints er tilgængelige på Knusende ansigtshub. Kontrolpunkterne er opsummeret i følgende tabel med links til modellerne på hubben:

Modelnavn Antal parametre Flersproget
hviske-lille 39 M Ja
hviske-base 74 M Ja
hviske-lille 244 M Ja
hviske-medium 769 M Ja
hviske-stor 1550 M Ja
hviske-stor-v2 1550 M Ja

Lad os undersøge, hvordan du kan bruge Whisper-modeller i SageMaker JumpStart.

OpenAI Whisper foundation modeller WER og latency sammenligning

Ordfejlfrekvensen (WER) for forskellige OpenAI Whisper-modeller baseret på LibriSpeech test-ren er vist i følgende tabel. WER er en fælles målestok for udførelsen af ​​et talegenkendelses- eller maskinoversættelsessystem. Den måler forskellen mellem referenceteksten (grundsandheden eller den korrekte transskription) og outputtet af et ASR-system i form af antallet af fejl, inklusive substitutioner, indsættelser og sletninger, der er nødvendige for at transformere ASR-outputtet til referencen tekst. Disse tal er taget fra Knusende ansigt internet side.

Model WER (procent)
hviske-lille 7.54
hviske-base 5.08
hviske-lille 3.43
hviske-medium 2.9
hviske-stor 3
hviske-stor-v2 3

Til denne blog tog vi nedenstående lydfil og sammenlignede latensen af ​​talegenkendelse på tværs af forskellige hviskemodeller. Latency er den tid, der går fra det øjeblik, en bruger sender en anmodning, til det tidspunkt, hvor din ansøgning angiver, at anmodningen er blevet gennemført. Tallene i følgende tabel repræsenterer den gennemsnitlige latenstid for i alt 100 anmodninger, der bruger den samme lydfil med modellen hostet på ml.g5.2xlarge-instansen.

Model Gennemsnitlig latenstid(er) Model output
hviske-lille 0.43 Vi lever i meget spændende tider med maskinbelysning. Hastigheden af ​​ML-modeludvikling vil virkelig stige. Men du når ikke til den slutstat, som vi vandt i de næste kommende år. Medmindre vi rent faktisk gør disse modeller mere tilgængelige for alle.
hviske-base 0.49 Vi lever i meget spændende tider med maskinlæring. Hastigheden af ​​ML-modeludvikling vil virkelig stige. Men du når ikke til den slutstat, som vi vandt i de næste kommende år. Medmindre vi rent faktisk gør disse modeller mere tilgængelige for alle.
hviske-lille 0.84 Vi lever i meget spændende tider med maskinlæring. Hastigheden af ​​ML-modeludvikling vil virkelig stige. Men du når ikke til den sluttilstand, som vi ønsker i de næste kommende år, medmindre vi rent faktisk gør disse modeller mere tilgængelige for alle.
hviske-medium 1.5 Vi lever i meget spændende tider med maskinlæring. Hastigheden af ​​ML-modeludvikling vil virkelig stige. Men du når ikke til den sluttilstand, som vi ønsker i de næste kommende år, medmindre vi rent faktisk gør disse modeller mere tilgængelige for alle.
hviske-stor 1.96 Vi lever i meget spændende tider med maskinlæring. Hastigheden af ​​ML-modeludvikling vil virkelig stige. Men du når ikke til den sluttilstand, som vi ønsker i de næste kommende år, medmindre vi rent faktisk gør disse modeller mere tilgængelige for alle.
hviske-stor-v2 1.98 Vi lever i meget spændende tider med maskinlæring. Hastigheden af ​​ML-modeludvikling vil virkelig stige. Men du når ikke til den sluttilstand, som vi ønsker i de næste kommende år, medmindre vi rent faktisk gør disse modeller mere tilgængelige for alle.

Gennemgang af løsning

Du kan implementere Whisper-modeller ved hjælp af Amazon SageMaker-konsollen eller ved at bruge en Amazon SageMaker Notebook. I dette indlæg demonstrerer vi, hvordan man implementerer Whisper API ved hjælp af SageMaker Studio-konsollen eller en SageMaker Notebook og derefter bruger den implementerede model til talegenkendelse og sprogoversættelse. Koden brugt i dette indlæg kan findes i denne GitHub notesbog.

Lad os udvide hvert trin i detaljer.

Implementer Whisper fra konsollen

  1. For at komme i gang med SageMaker JumpStart skal du åbne Amazon SageMaker Studio-konsollen og gå til startsiden for SageMaker JumpStart og vælge Kom godt i gang med JumpStart.
  2. For at vælge en Whisper-model kan du enten bruge fanerne øverst eller bruge søgefeltet øverst til højre som vist på det følgende skærmbillede. For dette eksempel skal du bruge søgefeltet øverst til højre og indtaste Whisper, og vælg derefter den relevante Whisper-model fra rullemenuen.
    Whisper models for automatic speech recognition now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  3. Når du har valgt Whisper-modellen, kan du bruge konsollen til at implementere modellen. Du kan vælge en instans til implementering eller bruge standarden.
    Whisper models for automatic speech recognition now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Implementer fundamentmodellen fra en Sagemaker Notebook

Trinene til først at implementere og derefter bruge den implementerede model til at løse forskellige opgaver er:

  1. Opsætning
  2. Vælg en model
  3. Hent artefakter og implementer et slutpunkt
  4. Brug implementeret model til ASR
  5. Brug implementeret model til sprogoversættelse
  6. Ryd op i endepunktet

Opsætning

Denne notesbog blev testet på en ml.t3.medium-instans i SageMaker Studio med Python 3 (data science)-kernen og i en Amazon SageMaker Notebook-instans med conda_python3 kerne.

%pip install --upgrade sagemaker --quiet

Vælg en præ-trænet model

Konfigurer en SageMaker-session ved hjælp af Boto3, og vælg derefter det model-id, du vil implementere.

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

Hent artefakter og implementer et slutpunkt

Ved at bruge SageMaker kan du udføre inferens på den forudtrænede model, selv uden at finjustere den først på et nyt datasæt. For at være vært for den forudtrænede model skal du oprette en forekomst af sagemaker.model.Model og implementere det. Følgende kode bruger standardforekomsten ml.g5.2xlarge for inferens-endepunktet for en whisper-large-v2-model. Du kan implementere modellen på andre instanstyper ved at bestå instance_typeJumpStartModel klasse. Implementeringen kan tage et par minutter.

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

Automatisk talegenkendelse

Dernæst læser du prøvelydfilen sample1.wav fra en SageMaker Jumpstart public Amazon Simple Storage Service (Amazon S3) placering og videregive den til forudsigelse til talegenkendelse. Du kan erstatte denne eksempelfil med en hvilken som helst anden prøvelydfil, men sørg for, at .wav-filen er samplet ved 16 kHz, da den kræves af modellerne for automatisk talegenkendelse. Indgangslydfilen skal være mindre end 30 sekunder.

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

Denne model understøtter mange parametre, når der udføres inferens. De omfatter:

  • max_length: Modellen genererer tekst indtil outputlængden. Hvis det er angivet, skal det være et positivt heltal.
  • sprog og opgave: Angiv outputsprog og opgave her. Modellen understøtter opgaven med transskription eller oversættelse.
  • max_new_tokens: Det maksimale antal tokens, der skal genereres.
  • num_return_sequences: Antallet af returnerede outputsekvenser. Hvis det er angivet, skal det være et positivt heltal.
  • num_beams: Antallet af bjælker brugt i den grådige søgning. Hvis det er angivet, skal det være heltal større end eller lig med num_return_sequences.
  • no_repeat_ngram_size: Modellen sikrer, at en række af ord af no_repeat_ngram_size gentages ikke i outputsekvensen. Hvis det er angivet, skal det være et positivt heltal større end 1.
  • temperatur: Dette styrer tilfældigheden i outputtet. Højere temperatur resulterer i en udgangssekvens med ord med lav sandsynlighed, og lavere temperatur resulterer i en udgangssekvens med ord med høj sandsynlighed. Hvis temperaturen nærmer sig 0, resulterer det i grådig afkodning. Hvis det er angivet, skal det være en positiv flyder.
  • early_stopping: Hvis True, er tekstgenerering afsluttet, når alle strålehypoteser når slutningen af ​​sætningstoken. Hvis det er angivet, skal det være boolesk.
  • do_sample: Hvis True, prøve det næste ord for sandsynligheden. Hvis det er angivet, skal det være boolesk.
  • top_k: I hvert trin af tekstgenerering skal du kun prøve fra top_k højst sandsynlige ord. Hvis det er angivet, skal det være et positivt heltal.
  • top_p: I hvert trin af tekstgenerering skal du prøve fra det mindst mulige sæt ord med kumulativ sandsynlighed top_p. Hvis det er angivet, skal det være en flyder mellem 0 og 1.

Du kan angive et hvilket som helst undersæt af de foregående parametre, når du kalder et slutpunkt. Dernæst viser vi dig et eksempel på, hvordan man påberåber sig et slutpunkt med disse argumenter.

Sprog oversættelse

For at vise sprogoversættelse ved hjælp af Whisper-modeller skal du bruge følgende lydfil på fransk og oversætte den til engelsk. Filen skal samples ved 16 kHz (som krævet af ASR-modellerne), så sørg for at gensample filer, hvis det kræves, og sørg for, at dine samples ikke overstiger 30 sekunder.

  1. Download sample_french1.wav fra SageMaker JumpStart fra det offentlige S3-sted, så det kan overføres i nyttelast til oversættelse af Whisper-modellen.
    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. Indstil opgaveparameteren som translate og sprog som French at tvinge Whisper-modellen til at udføre taleoversættelse.
    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. Brug forudsigelse at forudsige oversættelsen af ​​sproget. Hvis du modtager klientfejl (fejl 413), skal du kontrollere nyttelaststørrelsen til slutpunktet. Nyttelaster for SageMaker-anmodninger om slutpunktsanmodninger er begrænset til omkring 5 MB.
    response = predictor.predict(payload)
    print(response["text"])

  4. Tekstoutputtet oversat til engelsk fra den franske lydfil følger:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

Ryd op

Når du har testet slutpunktet, skal du slette SageMaker-slutpunktet og slette modellen for at undgå at pådrage dig gebyrer.

Konklusion

I dette indlæg viste vi dig, hvordan du tester og bruger OpenAI Whisper-modeller til at bygge interessante applikationer ved hjælp af Amazon SageMaker. Prøv fundamentmodellen i SageMaker i dag, og fortæl os din feedback!

Denne vejledning er kun til informationsformål. Du bør stadig udføre din egen uafhængige vurdering og træffe foranstaltninger for at sikre, at du overholder dine egne specifikke kvalitetskontrolpraksisser og standarder og de lokale regler, love, regler, licenser og brugsbetingelser, der gælder for dig, dit indhold og tredjepartsmodel, der henvises til i denne vejledning. AWS har ingen kontrol eller autoritet over den tredjepartsmodel, der henvises til i denne vejledning, og giver ingen erklæringer eller garantier for, at tredjepartsmodellen er sikker, virusfri, operationel eller kompatibel med dit produktionsmiljø og -standarder. AWS giver ikke nogen erklæringer, garantier eller garantier for, at nogen information i denne vejledning vil resultere i et bestemt resultat eller resultat.


Om forfatterne

Whisper models for automatic speech recognition now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Hemant Singh er en anvendt videnskabsmand med erfaring i Amazon SageMaker JumpStart. Han fik sin master fra Courant Institute of Mathematical Sciences og B.Tech fra IIT Delhi. Han har erfaring med at arbejde med en bred vifte af maskinlæringsproblemer inden for området naturlig sprogbehandling, computersyn og tidsserieanalyse.

Whisper models for automatic speech recognition now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Rachna Chadha er Principal Solution Architect AI/ML i Strategic Accounts hos AWS. Rachna er en optimist, der mener, at etisk og ansvarlig brug af kunstig intelligens kan forbedre samfundet i fremtiden og bringe økonomisk og social velstand. I sin fritid kan Rachna godt lide at bruge tid med sin familie, vandreture og lytte til musik.

Whisper models for automatic speech recognition now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Ashish Khetan er en Senior Applied Scientist med Amazon SageMaker indbyggede algoritmer og hjælper med at udvikle machine learning algoritmer. Han fik sin ph.d. fra University of Illinois Urbana-Champaign. Han er en aktiv forsker i maskinlæring og statistisk inferens og har publiceret mange artikler i NeurIPS, ICML, ICLR, JMLR, ACL og EMNLP konferencer.

Tidsstempel:

Mere fra AWS maskinindlæring