Akselerere NLP med BERT: Resultater i verdensklasse med 100 ganger mindre data
Det er to primære vanskeligheter når man bygger klassifiseringsmodeller for dyp læring (Natural Language Processing).
Vår evne til å bygge komplekse dyplæringsmodeller som er i stand til å forstå kompleksiteten i språket, har vanligvis krevd mange års erfaring på tvers av disse domenene. Jo vanskeligere problemet er, desto mer mangfoldig blir produksjonen din, jo mer tid trenger du å bruke på hvert av disse trinnene.
Datainnsamling er belastende, tidkrevende, kostbart og er den viktigste begrensende faktoren for vellykkede NLP-prosjekter. Forberedelse av data, bygging av elastiske rørledninger, valg blant hundrevis av potensielle forberedelsesalternativer, og å bli 'modellklar' kan lett ta flere måneder med innsats, selv med talentfulle maskinlæringsingeniører . Til slutt krever opplæring og optimalisering av dype læringsmodeller en kombinasjon av intuitiv forståelse, teknisk kompetanse og evne til å holde fast ved et problem.
I denne artikkelen vil vi dekke
Optimaliseringen av denne prosessen startet naturligvis med økende nøyaktighet. LSTM-nettverk (langtidsminne) -nettverk revolusjonerte mange NLP-oppgaver, men de var (og er) utrolig data-sultne. Optimalisering og opplæring av disse modellene kan ta dager eller uker på store og dyre maskiner. Endelig er det kostbart og tungvint å distribuere de store modellene i produksjonen.
For å redusere disse kompleksitetsdannende faktorene, har feltet for datasyn lenge brukt transfer learning. Overføringslæring er muligheten til å bruke en modell som er trent for en annen, men liknende oppgave for å akselerere løsningen på en ny. Det tar langt mindre innsats å omskole en modell som allerede kan kategorisere trær enn det å trene en ny modell for å gjenkjenne busker fra bunnen av.
Tenk deg et scenario der noen aldri hadde sett en busk, men hadde sett mange trær i livet. Du vil finne det mye lettere å forklare dem hvordan en busk ser ut i forhold til hva de vet om trær i stedet for å beskrive en busk fra bunnen av. Overføring læring er en veldig menneskelig måte å lære, så det gir en intuitiv mening at dette vil fungere i dype læringsoppgaver.
BERT betyr at du trenger mindre data, mindre opplæringstid, og du får mer forretningsverdi. Kvaliteten på NLP-produkter som enhver bedrift kan bygge har blitt verdensklasse.
BERT benytter seg av det som kalles transformatorer og er designet for å produsere setningskodinger. I hovedsak er BERT en språkmodell basert på en spesifikk dyplæringsmodell. Den er spesialbygd for å gi en kontekstuell, numerisk, representasjon av en setning eller en setningsstreng. At digital representasjon er inngangen til en grunne og ukompliserte modell. Ikke bare det, men resultatene er generelt overlegne og krever en brøkdel av inngangsdataene for en oppgave som ennå ikke er løst.
Tenk deg å kunne bruke en dag på å samle inn data i stedet for et år og kunne bygge modeller rundt datasett som du ellers aldri ville ha nok data til å lage en LSTM-modell. Antallet NLP-oppgaver som vil bli åpnet for en virksomhet som tidligere ikke hadde råd til utviklingstid og kompetanse som kreves, er svimlende.
I tradisjonell NLP er utgangspunktet for modellopplæring ordvektorer. Ordvektorer er en liste med tall [0.55, 0.24, 0.90, ...] som prøver å representere det ordet betyr. Med en numerisk representasjon kan vi bruke disse ordene i trening av komplekse modeller, og med store ordvektorer kan vi legge inn informasjon om ord i modellene våre.
BERT gjør noe lignende (faktisk er utgangspunktet ordvektorer), men det skaper en numerisk fremstilling av en hel inngangssetning (eller setninger).
Sammenlignet med LSTM-modeller gjør BERT mange ting annerledes.
Konvergens er treg, og BERT tar lang tid å trene. Imidlertid lærer den kontekstuelle forhold i tekst langt bedre. Ordvektorer er veldig grunne representasjoner som begrenser kompleksiteten de kan modellere - BERT har ikke denne begrensningen.
De fleste bedrifter kan benytte seg av de pre-trente modellene som benyttet flere GPUer og det tok dager å trene for applikasjonen. Det er få tilfeller der eksisterende BERT-modeller ikke kan brukes på plass eller tilpasses til en bestemt brukssak. BERT lar et team akselerere løsninger ti ganger. Man kan bevege seg for å identifisere en forretningsløsning, for å bygge et bevis på konseptet, og til slutt flytte det konseptet i produksjon i en brøkdel av tiden.
Siden denne artikkelen fokuserer på forretnings- og teknisk anvendelse av å bygge et reelt produkt, vil vi lage og trene to modeller for bedre å forstå komparativ verdi.
Oppgaven? Forutsi opprinnelsen til filmer basert på deres plot fra IMDB. Datasettet vårt dekker filmer fra amerikanske, australske, britiske, kanadiske, japanske, kinesiske, sørkoreanske og russiske i tillegg til seksten andre filmer for totalt 24 opprinnelser. Vi har i underkant av 35 000 samlede treningseksempler.
Her er et eksempel på et stykke fra et plott.
For tusenvis av år siden prøver Steppenwolf og hans legioner av Parademons å overta Jorden med de kombinerte energiene til tre Mother Boxes. De blir forpurret av en samlet hær som inkluderer de olympiske gudene, Amazons, Atlanteans, menneskeheten og Green Lantern Corps. Etter å ha frastøtt Steppenwolfs hær, skilles moderboksene og skjules på steder på planeten. For tiden er mennesket i sorg over Superman, hvis død utløser morboksene til å reaktivere og Steppenwolfs retur til jorden i et forsøk på å gjenvinne gunst hos sin herre, Darkseid. Steppenwolf har som mål å samle gjenstandene for å danne 'Enheten', som vil ødelegge jordens økologi og terraformere den i bildet av ...
Hvis du ikke hadde gjettet, er dette handlingen i Justice League - en amerikansk film.
Vi trente et variert sett med parametere for å forstå hvordan resultatene reagerte på forskjellige datamengder og modellstørrelser. Som vi sa, er den viktigste verdien fra BERT behovet for langt færre data.
For LSTM-modellen trente vi den største modellen vi kunne på GPU-en vår og varierte størrelsen på ordforrådet og ordlengden for å finne den modellen som gir best resultater. For BERT-modellen hadde vi ikke mer enn et enkelt lag.
Vi fikset testsettet vårt på tvers av alle disse prøvene, så vi scorer konsekvent det samme treningssettet.
På denne oppgaven når modellen trent med bruk av BERT-setningskodinger en imponerende F1-score på 0,84 etter bare 1000 prøver. LSTM-nettverket overstiger aldri 0,60. Enda mer imponerende, trening av BERT-modellene tok i gjennomsnitt 1/20 av tiden enn å forberede LSTM-modellene.
Etter en hvilken som helst beregning, peker disse resultatene på en revolusjon i NLP. Ved å bruke 100 ganger mindre data og 20 ganger mindre treningstid oppnådde vi resultater i verdensklasse. Evnen til å trene modeller av høy kvalitet på sekunder eller minutter i stedet for timer eller dager åpner for NLP i områder der det ikke tidligere var mulig å tilby.
BERT har mange flere bruksområder enn den i dette innlegget. Det er flerspråklige modeller. Den kan brukes til å løse mange forskjellige NLP-oppgaver, enten individuelt som i dette innlegget eller samtidig ved å bruke flere utganger. BERT-setningskodinger vil bli en hjørnestein i mange NLP-prosjekter fremover.
Koden bak dette innlegget er tilgjengelig på Github . Jeg oppfordrer også leserne til å sjekke ut Bert-as-a-service , som var en hjørnestein i å bygge BERT-setningskodingene for dette innlegget.
I slekt: Få mest mulig ut av ferdig trente modellerTransfer learning er en metode i maskinlæring der en modell er bygget og trent på en oppgave blir brukt som start. Det er en maskinlæringsmetode der en modell utviklet for en oppgave brukes som utgangspunkt for et lignende, relatert problem (f.eks. NLP-klassifisering til navngitt enhetsgjenkjenning).
BERT er en kraftig dyplæringsmodell utviklet av Google basert på transformatorarkitekturen. BERT har vist moderne resultater og en rekke av de vanligste NLP-oppgavene og kan brukes som utgangspunkt for å bygge NLP-modeller på mange domener.
BERT trekker bort noen av de mest kompliserte og tidkrevende aspektene ved å bygge en NLP, og bevis har vist at BERT kan brukes til å redusere mengden data som kreves for å trene en modell med høy ytelse med over 90%. BERT reduserer også produksjonskompleksitet, utviklingstid og øker nøyaktigheten.
Det beste stedet å komme i gang med BERT er å bli kjent med Bert-as-a-service. Koden bak dette innlegget er tilgjengelig på Github og kan også brukes til å starte et nytt NLP-prosjekt.