Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Tren automatisk om nevrale nettverk med Renate

I dag kunngjør vi den generelle tilgjengeligheten av Renate, et åpen kildekode Python-bibliotek for automatisk modellopplæring. Biblioteket tilbyr kontinuerlig læringsalgoritmer som kan trene et nevralt nettverk trinnvis etter hvert som mer data blir tilgjengelig.

Ved å åpne Renate, ønsker vi å skape et sted hvor utøvere som jobber med virkelige maskinlæringssystemer og forskere som er interessert i å fremme det nyeste innen automatisk maskinlæring, kontinuerlig læring og livslang læring, kommer sammen. Vi tror at synergier mellom disse to samfunnene vil generere nye ideer i forskningsmiljøet for maskinlæring og gi en konkret positiv innvirkning i virkelige applikasjoner.

Modellomskolering og katastrofal glemsel

Trening av nevrale nettverk trinnvis er ikke en enkel oppgave. I praksis blir data levert på ulike tidspunkt ofte samplet fra ulike distribusjoner. For eksempel kan fordelingen av emnene i spørsmålene i spørsmålssvarssystemer variere betydelig over tid. I klassifikasjonssystemer kan det være nødvendig å legge til nye kategorier når dataene samles inn i ulike deler av verden. Finjustering av de tidligere trente modellene med nye data i disse tilfellene vil føre til et fenomen som kalles "katastrofisk glemsel." Det vil være god ytelse på de siste eksemplene, men kvaliteten på spådommene som er gjort for data samlet inn i fortiden vil forringes betydelig. Dessuten vil ytelsesforringelsen være enda mer alvorlig når omskoleringsoperasjonen skjer regelmessig (f.eks. daglig eller ukentlig).

Når det er mulig å lagre en liten mengde data, kan metoder basert på gjenbruk av gamle data under omskoleringen delvis lindre det katastrofale glemmeproblemet. Flere metoder er utviklet etter denne ideen. Noen av dem lagrer bare rådata, mens mer avanserte også lagrer ekstra metadata (f.eks. mellomrepresentasjonen av datapunktene i minnet). Lagring av en liten mengde data (f.eks. tusenvis av datapunkter) og bruk av dem forsiktig førte til den overlegne ytelsen vist i figuren nedenfor.

Ta med egen modell og datasett

Ved opplæring av nevrale nettverksmodeller kan det være nødvendig å endre nettverksstrukturen, datatransformasjonen og andre viktige detaljer. Mens kodeendringer er begrenset, kan det bli en kompleks oppgave når disse modellene er en del av et stort programvarebibliotek. For å unngå disse ulempene tilbyr Renate kundene muligheten til å definere sine modeller og datasett i forhåndsdefinerte Python-funksjoner som en del av en konfigurasjonsfil. Dette har fordelen av å holde kundenes kode klart atskilt fra resten av biblioteket og tillate kunder uten kunnskap om Renates interne struktur å bruke biblioteket effektivt.

Dessuten er alle funksjoner, inkludert modelldefinisjonen, svært fleksible. Faktisk lar modelldefinisjonsfunksjonen brukere lage nevrale nettverk fra bunnen av etter deres egne behov eller å instansiere kjente modeller fra åpen kildekode-biblioteker som transformers or fakkelsyn. Det krever bare å legge til de nødvendige avhengighetene til kravfilen.

En veiledning om hvordan du skriver konfigurasjonsfilen er tilgjengelig på Hvordan skrive en konfigurasjonsfil.

Fordelen med hyperparameteroptimalisering

Som ofte er tilfellet innen maskinlæring, kommer kontinuerlig læringsalgoritmer med en rekke hyperparametre. Innstillingene kan utgjøre en viktig forskjell i den generelle ytelsen, og nøye justering kan påvirke den prediktive ytelsen positivt. Når du trener en ny modell, kan Renate aktivere hyperparameteroptimalisering (HPO) ved hjelp av toppmoderne algoritmer som ASHA for å utnytte muligheten til å kjøre flere parallelle jobber på Amazon SageMaker. Et eksempel på resultatene er vist i figuren nedenfor.

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

For å aktivere HPO, må brukeren definere søkeområdet eller bruke et av standardsøkeområdene som følger med biblioteket. Se eksempel på Kjør en treningsjobb med HPO. Kunder som er på utkikk etter en raskere retuning kan også utnytte resultatene fra sine tidligere tuningjobber ved å velge algoritmer med overføringslæringsfunksjoner. På denne måten vil optimerere bli informert om hvilke hyperparametere som gir gode resultater på tvers av forskjellige tuningjobber og vil kunne fokusere på disse, noe som reduserer tuningtiden.

Kjør den i skyen

Renate lar brukere raskt gå over fra treningsmodeller på en lokal maskin for eksperimentering til å trene nevrale nettverk i stor skala ved hjelp av SageMaker. Faktisk er det ganske uvanlig å kjøre treningsjobber på en lokal maskin, spesielt når du trener store modeller. Samtidig kan det være svært nyttig å kunne verifisere detaljer og teste koden lokalt. For å svare på dette behovet tillater Renate raskt å bytte mellom den lokale maskinen og SageMaker-tjenesten bare ved å endre et enkelt flagg i konfigurasjonsfilen.

For eksempel ved lansering av en tuning-jobb er det mulig å kjøre lokalt execute_tuning_job(..., backend='local') og bytt raskt til SageMaker, endre koden som følger:

execute_tuning_job(
...,
backend="sagemaker",
role=get_execution_role(),      # requires importing the function from Syne Tune
instance_type="ml.g4dn.2xlarge" # the desired instance type
job_name="name_prefix_",             # a prefix to be used to identify the job
...
)

Etter å ha kjørt skriptet, vil det være mulig å se jobben kjøre fra SageMaker-nettgrensesnittet:

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Det vil også være mulig å overvåke treningsjobben og lese loggene i CloudWatch:

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Alt dette uten ekstra kode eller innsats.

Et fullstendig eksempel på kjøretreningsjobber i skyen er tilgjengelig på Hvordan kjøre en treningsjobb.

konklusjonen

I dette innlegget beskrev vi problemene knyttet til omskolering av nevrale nettverk og de viktigste fordelene med Renate-biblioteket i prosessen. For å lære mer om biblioteket, sjekk ut GitHub repository, hvor du finner en oversikt på høyt nivå over bibliotek og dens algoritmer, instruksjoner for installasjonog eksempler som kan hjelpe deg å komme i gang.

Vi ser frem til din bidragene, tilbakemelding og diskutere dette videre med alle interesserte, og å se biblioteket integrert i reelle omskoleringsrørledninger.


Om forfatterne

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Giovanni Zappella er en Sr. Applied Scientist som jobber med langsiktig vitenskap ved AWS Sagemaker. Han jobber for tiden med kontinuerlig læring, modellovervåking og AutoML. Før det jobbet han med applikasjoner av flerarmede banditter for storskala anbefalingssystemer hos Amazon Music.

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Martin Wistuba er en Applied Scientist i det langsiktige vitenskapsteamet ved AWS Sagemaker. Forskningen hans fokuserer på automatisk maskinlæring.

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.  Lukas Balles er en Applied Scientist ved AWS. Han jobber med kontinuerlig læring og temaer knyttet til modellovervåking.

Tren automatisk om nevrale nettverk med Renate PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Cedric Archambeau er hovedforsker ved AWS og stipendiat ved European Lab for Learning and Intelligent Systems.

Tidstempel:

Mer fra AWS maskinlæring