Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services

Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services

I dag er vi glade for å kunngjøre at OpenAI Whisper-fundamentmodellen er tilgjengelig for kunder som bruker Amazon SageMaker JumpStart. Whisper er en ferdigtrent modell for automatisk talegjenkjenning (ASR) og taleoversettelse. Opplært på 680 tusen timer med merkede data, viser Whisper-modeller en sterk evne til å generalisere til mange datasett og domener uten behov for finjustering. Sagemaker JumpStart er maskinlæringssenteret (ML) til SageMaker som gir tilgang til grunnmodeller i tillegg til innebygde algoritmer og ende-til-ende løsningsmaler for å hjelpe deg raskt å komme i gang med ML.

Du kan også gjøre ASR ved hjelp av Amazon Transcribe ,en fullt administrert og kontinuerlig trent automatisk talegjenkjenningstjeneste.

I dette innlegget viser vi deg hvordan du distribuerer OpenAI Whisper modellere og påkalle modellen for å transkribere og oversette lyd.

OpenAI Whisper-modellen bruker huggingface-pytorch-inference container. Som kunde for en SageMaker JumpStart modellhub kan du bruke ASR uten å måtte vedlikeholde modellskriptet utenfor SageMaker SDK. SageMaker JumpStart-modeller forbedrer også sikkerhetsposisjonen med endepunkter som muliggjør nettverksisolasjon.

Fundamentmodeller i SageMaker

SageMaker JumpStart gir tilgang til en rekke modeller fra populære modellhuber, inkludert Hugging Face, PyTorch Hub og TensorFlow Hub, som du kan bruke i ML-utviklingsarbeidsflyten din i SageMaker. Nylige fremskritt innen ML har gitt opphav til en ny klasse modeller kjent som grunnmodeller, som vanligvis er trent på milliarder av parametere og kan tilpasses en bred kategori av brukstilfeller, for eksempel tekstoppsummering, generering av digital kunst og språkoversettelse. Fordi disse modellene er dyre å trene, ønsker kundene å bruke eksisterende forhåndstrente fundamentmodeller og finjustere dem etter behov, i stedet for å trene disse modellene selv. SageMaker gir en kurert liste over modeller som du kan velge mellom på SageMaker-konsollen.

Du kan nå finne fundamentmodeller fra forskjellige modellleverandører i SageMaker JumpStart, slik at du raskt kan komme i gang med fundamentmodeller. SageMaker JumpStart tilbyr grunnmodeller basert på ulike oppgaver eller modellleverandører, og du kan enkelt se gjennom modellens egenskaper og bruksvilkår. Du kan også prøve disse modellene ved å bruke en test UI-widget. Når du vil bruke en grunnmodell i stor skala, kan du gjøre det uten å forlate SageMaker ved å bruke forhåndsbygde notatbøker fra modellleverandører. Fordi modellene er vert for og distribuert på AWS, stoler du på at dataene dine, enten de brukes til å evaluere eller bruke modellen i stor skala, ikke vil bli delt med tredjeparter.

OpenAI Whisper foundation-modeller

Whisper er en forhåndstrent modell for ASR og taleoversettelse. Hvisken ble foreslått i avisen Robust talegjenkjenning via svak overvåking i stor skala av Alec Radford, og andre, fra OpenAI. Den originale koden kan bli funnet i dette GitHub-depotet.

Whisper er en transformatorbasert koder-dekodermodell, også referert til som en sekvens-til-sekvens modell. Den ble trent på 680 tusen timer med merkede taledata annotert ved bruk av storstilt svak tilsyn. Whisper-modeller viser en sterk evne til å generalisere til mange datasett og domener uten behov for finjustering.

Modellene ble trent på enten engelsk-bare data eller flerspråklige data. De engelske modellene ble opplært i oppgaven med talegjenkjenning. De flerspråklige modellene ble trent på talegjenkjenning og taleoversettelse. For talegjenkjenning forutsier modellen transkripsjoner i samme språk som lyd. For taleoversettelse forutsier modellen transkripsjoner til a forskjellig språk til lyden.

Whisper-sjekkpunkter kommer i fem konfigurasjoner av varierende modellstørrelser. De fire minste er trent på enten kun engelsk eller flerspråklig data. De største sjekkpunktene er kun flerspråklige. Alle de ti forhåndstrente sjekkpunktene er tilgjengelige på Hugging Face hub. Sjekkpunktene er oppsummert i følgende tabell med lenker til modellene på navet:

Modellnavn Antall parametere Flerspråklig
hviske-liten 39 M Ja
hviske-base 74 M Ja
hviske-liten 244 M Ja
hviske-medium 769 M Ja
hviske-stor 1550 M Ja
hviske-stor-v2 1550 M Ja

La oss utforske hvordan du kan bruke Whisper-modeller i SageMaker JumpStart.

OpenAI Whisper foundation-modeller WER og latenssammenligning

Ordfeilfrekvensen (WER) for forskjellige OpenAI Whisper-modeller basert på LibriSpeech test-ren er vist i følgende tabell. WER er en vanlig beregning for ytelsen til et talegjenkjennings- eller maskinoversettelsessystem. Den måler forskjellen mellom referanseteksten (grunnsannheten eller riktig transkripsjon) og utdataene til et ASR-system når det gjelder antall feil, inkludert erstatninger, innsettinger og slettinger som er nødvendige for å transformere ASR-utdataene til referansen tekst. Disse tallene er hentet fra Klemme ansiktet nettside.

Modell WER (prosent)
hviske-liten 7.54
hviske-base 5.08
hviske-liten 3.43
hviske-medium 2.9
hviske-stor 3
hviske-stor-v2 3

For denne bloggen tok vi lydfilen nedenfor og sammenlignet ventetiden for talegjenkjenning på tvers av forskjellige hviskemodeller. Latens er hvor lang tid fra det øyeblikket en bruker sender en forespørsel til det tidspunktet applikasjonen din indikerer at forespørselen er fullført. Tallene i tabellen nedenfor representerer gjennomsnittlig ventetid for totalt 100 forespørsler som bruker den samme lydfilen med modellen som er vert for ml.g5.2xlarge-forekomsten.

Modell Gjennomsnittlig ventetid(er) Modellutgang
hviske-liten 0.43 Vi lever i veldig spennende tider med maskinbelysning. Hastigheten på ML-modellutvikling vil faktisk øke. Men du kommer ikke til den sluttstaten vi vant de neste årene. Med mindre vi faktisk gjør disse modellene mer tilgjengelige for alle.
hviske-base 0.49 Vi lever i veldig spennende tider med maskinlæring. Hastigheten på ML-modellutvikling vil faktisk øke. Men du kommer ikke til den sluttstaten vi vant de neste årene. Med mindre vi faktisk gjør disse modellene mer tilgjengelige for alle.
hviske-liten 0.84 Vi lever i veldig spennende tider med maskinlæring. Hastigheten på ML-modellutvikling vil faktisk øke. Men du kommer ikke til den slutttilstanden vi ønsker i de neste årene med mindre vi faktisk gjør disse modellene mer tilgjengelige for alle.
hviske-medium 1.5 Vi lever i veldig spennende tider med maskinlæring. Hastigheten på ML-modellutvikling vil faktisk øke. Men du kommer ikke til den slutttilstanden vi ønsker i de neste årene med mindre vi faktisk gjør disse modellene mer tilgjengelige for alle.
hviske-stor 1.96 Vi lever i veldig spennende tider med maskinlæring. Hastigheten på ML-modellutvikling vil faktisk øke. Men du kommer ikke til den slutttilstanden vi ønsker i de neste årene med mindre vi faktisk gjør disse modellene mer tilgjengelige for alle.
hviske-stor-v2 1.98 Vi lever i veldig spennende tider med maskinlæring. Hastigheten på ML-modellutvikling vil faktisk øke. Men du kommer ikke til den slutttilstanden vi ønsker i de neste årene med mindre vi faktisk gjør disse modellene mer tilgjengelige for alle.

Gjennomgang av løsningen

Du kan distribuere Whisper-modeller ved å bruke Amazon SageMaker-konsollen eller ved å bruke en Amazon SageMaker Notebook. I dette innlegget demonstrerer vi hvordan du distribuerer Whisper API ved hjelp av SageMaker Studio-konsollen eller en SageMaker Notebook og deretter bruker den utplasserte modellen for talegjenkjenning og språkoversettelse. Koden som brukes i dette innlegget finner du i denne GitHub-notatboken.

La oss utvide hvert trinn i detalj.

Distribuer Whisper fra konsollen

  1. For å komme i gang med SageMaker JumpStart, åpne Amazon SageMaker Studio-konsollen og gå til lanseringssiden til SageMaker JumpStart og velg Kom i gang med JumpStart.
  2. For å velge en Whisper-modell kan du enten bruke fanene øverst eller bruke søkeboksen øverst til høyre som vist i følgende skjermbilde. For dette eksemplet, bruk søkeboksen øverst til høyre og skriv inn Whisper, og velg deretter den aktuelle Whisper-modellen fra rullegardinmenyen.
    Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  3. Etter at du har valgt Whisper-modellen, kan du bruke konsollen til å distribuere modellen. Du kan velge en forekomst for distribusjon eller bruke standarden.
    Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Distribuer grunnmodellen fra en Sagemaker Notebook

Trinnene for å først distribuere og deretter bruke den distribuerte modellen til å løse forskjellige oppgaver er:

  1. Sett opp
  2. Velg en modell
  3. Hent artefakter og distribuer et endepunkt
  4. Bruk utplassert modell for ASR
  5. Bruk utplassert modell for språkoversettelse
  6. Rydd opp i endepunktet

Sett opp

Denne notatboken ble testet på en ml.t3.medium-forekomst i SageMaker Studio med Python 3 (data science)-kjernen og i en Amazon SageMaker Notebook-forekomst med conda_python3 kjernen.

%pip install --upgrade sagemaker --quiet

Velg en forhåndsopplært modell

Sett opp en SageMaker-økt med Boto3, og velg deretter modell-ID-en du vil distribuere.

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

Hent artefakter og distribuer et endepunkt

Ved å bruke SageMaker kan du utføre slutninger på den forhåndstrente modellen, selv uten å finjustere den først på et nytt datasett. For å være vert for den forhåndstrente modellen, opprett en forekomst av sagemaker.modell.Modell og distribuere den. Følgende kode bruker standardforekomsten ml.g5.2xlarge for slutningsendepunktet til en whisper-large-v2-modell. Du kan distribuere modellen på andre forekomsttyper ved å sende den instance_typeJumpStartModel klasse. Utrullingen kan ta noen 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 talegjenkjenning

Deretter leser du prøvelydfilen, sample1.wav, fra en SageMaker Jumpstart-publikum Amazon Simple Storage Service (Amazon S3) plassering og gi den til prediktor for talegjenkjenning. Du kan erstatte denne eksempelfilen med en hvilken som helst annen lydfil, men sørg for at .wav-filen er samplet ved 16 kHz fordi den kreves av modellene for automatisk talegjenkjenning. Inngangslydfilen må være mindre enn 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 modellen støtter mange parametere når du utfører inferens. De inkluderer:

  • max_length: Modellen genererer tekst til utdatalengden. Hvis det er spesifisert, må det være et positivt heltall.
  • språk og oppgave: Spesifiser utdataspråket og oppgaven her. Modellen støtter oppgaven med transkripsjon eller oversettelse.
  • max_new_tokens: Maksimalt antall tokens som skal genereres.
  • num_return_sequences: Antall utgangssekvenser som returneres. Hvis det er spesifisert, må det være et positivt heltall.
  • num_beams: Antall stråler brukt i det grådige søket. Hvis spesifisert, må det være et heltall større enn eller lik num_return_sequences.
  • no_repeat_ngram_size: Modellen sikrer at en sekvens av ord av no_repeat_ngram_size gjentas ikke i utdatasekvensen. Hvis det er spesifisert, må det være et positivt heltall større enn 1.
  • temperatur: Dette styrer tilfeldigheten i utgangen. Høyere temperatur gir en utgangssekvens med ord med lav sannsynlighet og lavere temperatur gir en utgangssekvens med ord med høy sannsynlighet. Hvis temperaturen nærmer seg 0, resulterer det i grådig dekoding. Hvis spesifisert, må det være en positiv flyte.
  • early_stopping: Hvis True, tekstgenerering er fullført når alle strålehypoteser når slutten av setningstoken. Hvis det er spesifisert, må det være boolsk.
  • do_sample: Hvis True, prøv neste ord for sannsynligheten. Hvis det er spesifisert, må det være boolsk.
  • top_k: I hvert trinn av tekstgenerering kan du prøve fra bare top_k mest sannsynlige ord. Hvis det er spesifisert, må det være et positivt heltall.
  • top_p: I hvert trinn av tekstgenerering, sample fra det minste mulige settet med ord med kumulativ sannsynlighet top_p. Hvis det er spesifisert, må det være en flyte mellom 0 og 1.

Du kan spesifisere et hvilket som helst delsett av de foregående parameterne når du påkaller et endepunkt. Deretter viser vi deg et eksempel på hvordan du kan påkalle et endepunkt med disse argumentene.

Språkoversettelse

For å vise frem språkoversettelse med Whisper-modeller, bruk følgende lydfil på fransk og oversett den til engelsk. Filen må samples ved 16 kHz (som kreves av ASR-modellene), så sørg for å resample filer om nødvendig, og sørg for at prøvene dine ikke overskrider 30 sekunder.

  1. Last ned sample_french1.wav fra SageMaker JumpStart fra det offentlige S3-stedet slik at det kan overføres i nyttelast for oversettelse av 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. Sett oppgaveparameteren som translate og språk som French å tvinge Whisper-modellen til å utføre taleoversettelse.
    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. Bruk prediktor å forutsi oversettelsen av språket. Hvis du mottar klientfeil (feil 413), kontroller nyttelaststørrelsen til endepunktet. Nyttelaster for SageMaker påkalling av endepunktforespørsler er begrenset til omtrent 5 MB.
    response = predictor.predict(payload)
    print(response["text"])

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

Rydd opp

Etter at du har testet endepunktet, slett SageMaker-slutningsendepunktet og slett modellen for å unngå kostnader.

konklusjonen

I dette innlegget viste vi deg hvordan du kan teste og bruke OpenAI Whisper-modeller for å bygge interessante applikasjoner ved hjelp av Amazon SageMaker. Prøv grunnmodellen i SageMaker i dag og gi oss tilbakemelding!

Denne veiledningen er kun til informasjonsformål. Du bør fortsatt utføre din egen uavhengige vurdering og iverksette tiltak for å sikre at du overholder dine egne spesifikke praksiser og standarder for kvalitetskontroll, og de lokale reglene, lovene, forskriftene, lisensene og bruksvilkårene som gjelder for deg, innholdet ditt og tredjepartsmodell referert til i denne veiledningen. AWS har ingen kontroll eller autoritet over tredjepartsmodellen det refereres til i denne veiledningen og gir ingen representasjoner eller garantier for at tredjepartsmodellen er sikker, virusfri, operativ eller kompatibel med ditt produksjonsmiljø og standarder. AWS gir ingen representasjoner, garantier eller garanterer at informasjon i denne veiledningen vil resultere i et bestemt resultat eller resultat.


Om forfatterne

Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Hemant Singh er en Applied Scientist med erfaring i Amazon SageMaker JumpStart. Han fikk sin master fra Courant Institute of Mathematical Sciences og B.Tech fra IIT Delhi. Han har erfaring med å jobbe med et mangfold av maskinlæringsproblemer innenfor domenet naturlig språkbehandling, datasyn og tidsserieanalyse.

Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Rachna Chadha er en hovedløsningsarkitekt AI/ML i strategiske kontoer hos AWS. Rachna er en optimist som tror at etisk og ansvarlig bruk av AI kan forbedre samfunnet i fremtiden og gi økonomisk og sosial velstand. På fritiden liker Rachna å tilbringe tid med familien, gå tur og høre på musikk.

Whisper-modeller for automatisk talegjenkjenning er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dr. Ashish Khetan er en Senior Applied Scientist med Amazon SageMaker innebygde algoritmer og hjelper til med å utvikle maskinlæringsalgoritmer. Han fikk sin doktorgrad fra University of Illinois Urbana-Champaign. Han er en aktiv forsker innen maskinlæring og statistisk inferens, og har publisert mange artikler på NeurIPS, ICML, ICLR, JMLR, ACL og EMNLP-konferanser.

Tidstempel:

Mer fra AWS maskinlæring