Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Träna om neurala nätverk automatiskt med Renate

Idag tillkännager vi den allmänna tillgängligheten för Renate, ett Python-bibliotek med öppen källkod för automatisk modellomskolning. Biblioteket tillhandahåller kontinuerliga inlärningsalgoritmer som kan inkrementellt träna ett neuralt nätverk när mer data blir tillgänglig.

Genom att öppna Renate vill vi skapa en plats där praktiker som arbetar med verkliga maskininlärningssystem och forskare som är intresserade av att utveckla det senaste inom automatisk maskininlärning, kontinuerligt lärande och livslångt lärande möts. Vi tror att synergier mellan dessa två gemenskaper kommer att generera nya idéer inom forskarsamhället för maskininlärning och ge en påtaglig positiv inverkan i verkliga tillämpningar.

Modellomskolning och katastrofal glömska

Att träna neurala nätverk stegvis är inte en enkel uppgift. I praktiken tas data som tillhandahålls vid olika tidpunkter ofta från olika distributioner. Till exempel i frågesvarssystem kan fördelningen av ämnena i frågorna variera avsevärt över tiden. I klassificeringssystem kan tillägg av nya kategorier krävas när uppgifterna samlas in i olika delar av världen. Att finjustera de tidigare tränade modellerna med ny data i dessa fall kommer att leda till ett fenomen som kallas "katastrofiskt glömma." Det kommer att bli bra prestanda på de senaste exemplen, men kvaliteten på de förutsägelser som gjorts för data som samlats in i det förflutna kommer att försämras avsevärt. Dessutom kommer prestationsförsämringen att bli ännu allvarligare när omskolningsoperationen sker regelbundet (t.ex. dagligen eller veckovis).

När det är möjligt att lagra en liten bit data, kan metoder baserade på återanvändning av gammal data under omskolningen delvis lindra det katastrofala glömska problemet. Flera metoder har utvecklats efter denna idé. Vissa av dem lagrar bara rådata, medan mer avancerade även sparar ytterligare metadata (t.ex. den mellanliggande representationen av datapunkterna i minnet). Att lagra en liten mängd data (t.ex. tusentals datapunkter) och använda dem försiktigt ledde till den överlägsna prestandan som visas i figuren nedan.

Ta med egen modell och datauppsättning

När man tränar neurala nätverksmodeller kan det vara nödvändigt att ändra nätverksstrukturen, datatransformationen och andra viktiga detaljer. Även om kodändringar är begränsade kan det bli en komplex uppgift när dessa modeller är en del av ett stort programvarubibliotek. För att undvika dessa olägenheter erbjuder Renate kunder möjligheten att definiera sina modeller och datauppsättningar i fördefinierade Python-funktioner som en del av en konfigurationsfil. Detta har fördelen av att hålla kundernas kod tydligt åtskild från resten av biblioteket och tillåta kunder utan någon som helst kunskap om Renates interna struktur att använda biblioteket effektivt.

Dessutom är alla funktioner, inklusive modelldefinitionen, mycket flexibla. Faktum är att modelldefinitionsfunktionen tillåter användare att skapa neurala nätverk från grunden efter sina egna behov eller att instansiera välkända modeller från öppen källkodsbibliotek som transformatorer or fackelvision. Det kräver bara att de nödvändiga beroenden läggs till i kravfilen.

En handledning om hur man skriver konfigurationsfilen finns på Hur man skriver en konfigurationsfil.

Fördelen med hyperparameteroptimering

Som ofta är fallet inom maskininlärning kommer algoritmer för kontinuerlig inlärning med ett antal hyperparametrar. Dess inställningar kan göra en viktig skillnad i den övergripande prestandan, och noggrann justering kan positivt påverka den prediktiva prestandan. När Renate tränar en ny modell kan Renate aktivera hyperparameteroptimering (HPO) med hjälp av toppmoderna algoritmer som ASHA för att utnyttja möjligheten att köra flera parallella jobb på Amazon SageMaker. Ett exempel på resultaten visas i figuren nedan.

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

För att aktivera HPO måste användaren definiera sökutrymmet eller använda ett av standardsökutrymmena som tillhandahålls med biblioteket. Se exemplet på Kör ett träningsjobb med HPO. Kunder som letar efter en snabbare återjustering kan också dra nytta av resultatet av sina tidigare trimningsjobb genom att välja algoritmer med överföringsinlärningsfunktioner. På detta sätt kommer optimerare att informeras om vilka hyperparametrar som presterar bra över olika inställningsjobb och kommer att kunna fokusera på dessa, vilket minskar inställningstiden.

Kör den i molnet

Renate tillåter användare att snabbt gå över från träningsmodeller på en lokal maskin för experiment till att träna storskaliga neurala nätverk med SageMaker. Faktum är att köra träningsjobb på en lokal maskin är ganska ovanligt, speciellt när man tränar storskaliga modeller. Samtidigt kan det vara oerhört användbart att kunna verifiera detaljer och testa koden lokalt. För att svara på detta behov tillåter Renate att snabbt växla mellan den lokala maskinen och SageMaker-tjänsten bara genom att ändra en enkel flagga i konfigurationsfilen.

Till exempel, när man startar ett trimjobb är det möjligt att köra lokalt execute_tuning_job(..., backend='local') och byt snabbt till SageMaker, ändra koden enligt följande:

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
...
)

Efter att ha kört skriptet kommer det att vara möjligt att se jobbet körs från SageMakers webbgränssnitt:

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Det kommer också att vara möjligt att övervaka träningsjobbet och läsa loggarna i CloudWatch:

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Allt detta utan ytterligare kod eller ansträngning.

Ett fullständigt exempel på att köra träningsjobb i molnet finns på Hur man kör ett träningsjobb.

Slutsats

I det här inlägget beskrev vi problemen i samband med att omskola neurala nätverk och de viktigaste fördelarna med Renate-biblioteket i processen. För att lära dig mer om biblioteket, kolla in GitHub repository, där du hittar en översikt på hög nivå över bibliotek och dess algoritmer, instruktioner för Installationenoch exempel som kan hjälpa dig att komma igång.

Vi ser fram emot din bidrag, feedback och diskutera detta vidare med alla intresserade, och att se biblioteket integrerat i verkliga omskolningspipelines.


Om författarna

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Giovanni Zappella är en Sr. tillämpad forskare som arbetar med långsiktig vetenskap på AWS Sagemaker. Han arbetar för närvarande med kontinuerligt lärande, modellövervakning och AutoML. Innan dess arbetade han med tillämpningar av flerarmade banditer för storskaliga rekommendationssystem på Amazon Music.

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Martin Wistuba är en tillämpad forskare i det långsiktiga vetenskapsteamet på AWS Sagemaker. Hans forskning fokuserar på automatisk maskininlärning.

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.  Lukas Balles är en tillämpad forskare vid AWS. Han arbetar med kontinuerligt lärande och ämnen som rör modellövervakning.

Träna om neurala nätverk automatiskt med Renate PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Cedric Archambeau är en Principal Applied Scientist vid AWS och fellow vid European Lab for Learning and Intelligent Systems.

Tidsstämpel:

Mer från AWS maskininlärning