Träna Vowpal Wabbit-modell

Den här artikeln beskriver hur du använder komponenten Train Vowpal Wabbit Model i Azure Machine Learning-designern för att skapa en maskininlärningsmodell med hjälp av Vowpal Wabbit.

Om du vill använda Vowpal Wabbit för maskininlärning formaterar du dina indata enligt Vowpal Wabbit-kraven och förbereder data i det format som krävs. Använd den här komponenten för att ange Vowpal Wabbit-kommandoradsargument.

När pipelinen körs läses en instans av Vowpal Wabbit in i experimentets körningstid, tillsammans med angivna data. När träningen är klar serialiseras modellen tillbaka till arbetsytan. Du kan använda modellen omedelbart för att poängsätta data.

Om du vill träna en befintlig modell stegvis på nya data ansluter du en sparad modell till den förtränade Vowpal Wabbit-modellens indataport för Train Vowpal Wabbit Model och lägger till nya data i den andra indataporten.

Vad är Vowpal Wabbit?

Vowpal Wabbit (VW) är ett snabbt, parallellt maskininlärningsramverk som har utvecklats för distribuerad databehandling av Yahoo! Forskning. Senare porterades den till Windows och anpassades av John Langford (Microsoft Research) för vetenskaplig databehandling i parallella arkitekturer.

Funktioner i Vowpal Wabbit som är viktiga för maskininlärning är kontinuerlig inlärning (onlineinlärning), minskning av dimensionalitet och interaktiv inlärning. Vowpal Wabbit är också en lösning på problem när du inte får plats med modelldata i minnet.

De primära användarna av Vowpal Wabbit är dataexperter som tidigare har använt ramverket för maskininlärningsuppgifter som klassificering, regression, ämnesmodellering eller matrisfaktorisering. Azure Wrapper för Vowpal Wabbit har mycket liknande prestandaegenskaper som den lokala versionen, så att du kan använda kraftfulla funktioner och interna prestanda för Vowpal Wabbit och enkelt publicera den tränade modellen som en operationaliserad tjänst.

Komponenten Funktionshashing innehåller även funktioner som tillhandahålls av Vowpal Wabbit, som gör att du kan omvandla textdatauppsättningar till binära funktioner med hjälp av en hashalgoritm.

Så här konfigurerar du Vowpal Wabbit Model

I det här avsnittet beskrivs hur du tränar en ny modell och hur du lägger till nya data i en befintlig modell.

Till skillnad från andra komponenter i designern anger den här komponenten både komponentparametrarna och tränar modellen. Om du har en befintlig modell kan du lägga till den som en valfri indata för att stegvis träna modellen.

Förbereda indata

För att träna en modell med den här komponenten måste indatauppsättningen bestå av en enda textkolumn i något av de två format som stöds: SVMLight eller VW. Detta innebär inte att Vowpal Wabbit endast analyserar textdata, bara att funktionerna och värdena måste förberedas i det textfilformat som krävs.

Data kan läsas från två typer av datauppsättningar, fildatauppsättning eller tabelldatauppsättning. Båda dessa datauppsättningar måste vara i SVMLight- eller VW-format. Vowpal Wabbit-dataformatet har fördelen att det inte kräver ett kolumnformat, vilket sparar utrymme när du hanterar glesa data. Mer information om det här formatet finns på Wiki-sidan Vowpal Wabbit.

Skapa och träna en Vowpal Wabbit-modell

  1. Lägg till komponenten Train Vowpal Wabbit Model i experimentet.

  2. Lägg till träningsdatauppsättningen och anslut den till Träningsdata. Om träningsdatauppsättningen är en katalog som innehåller träningsdatafilen anger du namnet på träningsdatafilen med Namnet på träningsdatafilen. Om träningsdatauppsättningen är en enda fil låter du Namnet på träningsdatafilen vara tom.

  3. I textrutan VW-argument skriver du kommandoradsargumenten för den körbara Vowpal Wabbit.

    Du kan till exempel lägga till –l för att ange inlärningshastigheten eller -b för att ange antalet hash-bitar.

    Mer information finns i avsnittet Vowpal Wabbit parameters (Vowpal Wabbit-parametrar ).

  4. Namnet på träningsdatafilen: Ange namnet på filen som innehåller indata. Det här argumentet används bara när träningsdatauppsättningen är en katalog.

  5. Ange filtyp: Ange vilket format dina träningsdata använder. Vowpal Wabbit stöder dessa två indatafilformat:

    • VW representerar det interna format som används av Vowpal Wabbit . Mer information finns på Vowpal Wabbit wiki-sidan .
    • SVMLight är ett format som används av vissa andra maskininlärningsverktyg.
  6. Skriv ut läsbar modellfil: välj alternativet om du vill att komponenten ska spara den läsbara modellen i jobbposterna. Det här argumentet motsvarar parametern --readable_model på VW-kommandoraden.

  7. Utdatainverterad hash-fil: välj alternativet om du vill att komponenten ska spara den inverterade hashfunktionen till en fil i jobbposterna. Det här argumentet motsvarar parametern --invert_hash på VW-kommandoraden.

  8. Skicka pipelinen.

Träna om en befintlig Vowpal Wabbit-modell

Vowpal Wabbit stöder inkrementell träning genom att lägga till nya data i en befintlig modell. Det finns två sätt att hämta en befintlig modell för omträning:

  • Använd utdata från en annan Train Vowpal Wabbit Model-komponent i samma pipeline.

  • Leta upp en sparad modell i kategorin Datauppsättningar i designerns vänstra navigeringsfönster och dra den till din pipeline.

  1. Lägg till komponenten Train Vowpal Wabbit Model i pipelinen.

  2. Anslut den tidigare tränade modellen till den förtränade Vowpal Wabbit-modellens indataport för komponenten.

  3. Anslut de nya träningsdata till indataporten för träningsdata för komponenten.

  4. I parameterfönstret i Träna Vowpal Wabbit-modell anger du formatet för nya träningsdata och även filnamnet för träningsdata om indatauppsättningen är en katalog.

  5. Välj filalternativen Utdataläsbar modell och Utdatainverterad hashfil om motsvarande filer behöver sparas i jobbposterna.

  6. Skicka pipelinen.

  7. Välj komponenten och välj Registrera datauppsättning under fliken Utdata+loggar i den högra rutan för att bevara den uppdaterade modellen på din Azure Machine Learning-arbetsyta. Om du inte anger ett nytt namn skriver den uppdaterade modellen över den befintliga sparade modellen.

Resultat

Anteckning

Om du behöver distribuera den tränade modellen i designern kontrollerar du att Score Vowpal Wabbit Model i stället för Score Model är ansluten till indata för webbtjänstutdatakomponenten i slutsatsdragningspipelinen.

Tekniska anteckningar

Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.

Fördelar med Vowpal Wabbit

Vowpal Wabbit ger extremt snabb inlärning över icke-linjära funktioner som n-gram.

Vowpal Wabbit använder onlineinlärningstekniker som stochastic gradient descent (SGD) för att passa en modell en post i taget. Därför itererar den mycket snabbt över rådata och kan utveckla en bra förutsägelse snabbare än de flesta andra modeller. Den här metoden undviker också att behöva läsa in alla träningsdata i minnet.

Vowpal Wabbit konverterar alla data till hashvärden, inte bara textdata utan även andra kategoriska variabler. Med hashvärden blir uppslag av regressionsvikter mer effektiva, vilket är viktigt för effektiv stokastisk gradient descent.

Parametrar som stöds och som inte stöds

I det här avsnittet beskrivs stöd för Vowpal Wabbit-kommandoradsparametrar i Azure Machine Learning-designern.

I allmänhet stöds alla argument utom en begränsad uppsättning argument. Om du vill ha en fullständig lista över argument använder du wiki-sidan Vowpal Wabbit.

Följande parametrar stöds inte:

  • Alternativen för in- och utdata som anges i https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    De här egenskaperna konfigureras redan automatiskt av komponenten.

  • Dessutom är alla alternativ som genererar flera utdata eller tar flera indata otillåtna. Dessa inkluderar --cbt, --ldaoch --wap.

  • Endast övervakade inlärningsalgoritmer stöds. Därför stöds inte dessa alternativ: –active, --rankosv --search .

Begränsningar

Eftersom målet med tjänsten är att stödja erfarna användare av Vowpal Wabbit, måste indata förberedas i förväg med hjälp av det inbyggda textformatet Vowpal Wabbit i stället för det datauppsättningsformat som används av andra komponenter.

Nästa steg

Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.