Vowpal Wabbit-model trainen

In dit artikel wordt beschreven hoe u het onderdeel Train Vowpal Wabbit Model in Azure Machine Learning Designer gebruikt om een machine learning-model te maken met behulp van Vowpal Wabbit.

Als u Vowpal Wabbit wilt gebruiken voor machine learning, maakt u uw invoer op volgens de vereisten voor Vowpal Wabbit en bereidt u de gegevens voor in de vereiste indeling. Gebruik dit onderdeel om Vowpal Wabbit-opdrachtregelargumenten op te geven.

Wanneer de pijplijn wordt uitgevoerd, wordt een exemplaar van Vowpal Wabbit geladen in de runtime van het experiment, samen met de opgegeven gegevens. Wanneer de training is voltooid, wordt het model teruggezet naar de werkruimte. U kunt het model onmiddellijk gebruiken om gegevens te scoren.

Als u een bestaand model stapsgewijs wilt trainen op nieuwe gegevens, verbindt u een opgeslagen model met de vooraf getrainde Vowpal Wabbit-modelinvoerpoort van Train Vowpal Wabbit Model en voegt u de nieuwe gegevens toe aan de andere invoerpoort.

Wat is Vowpal Wabbit?

Vowpal Wabbit (VW) is een snel, parallel machine learning-framework dat is ontwikkeld voor gedistribueerde computing door Yahoo! Onderzoek. Later werd het overgezet naar Windows en aangepast door John Langford (Microsoft Research) voor wetenschappelijke computing in parallelle architecturen.

Functies van Vowpal Wabbit die belangrijk zijn voor machine learning zijn onder andere continu leren (online leren), dimensionaliteitsvermindering en interactief leren. Vowpal Wabbit is ook een oplossing voor problemen wanneer u de modelgegevens niet in het geheugen kunt inpassen.

De primaire gebruikers van Vowpal Wabbit zijn gegevenswetenschappers die het framework eerder hebben gebruikt voor machine learning-taken, zoals classificatie, regressie, onderwerpmodellering of matrixfactorisatie. De Azure-wrapper voor Vowpal Wabbit heeft prestatiekenmerken die vergelijkbaar zijn met de on-premises versie, zodat u de krachtige functies en systeemeigen prestaties van Vowpal Wabbit kunt gebruiken en het getrainde model eenvoudig kunt publiceren als een operationele service.

Het onderdeel Feature Hashing bevat ook functionaliteit van Vowpal Wabbit, waarmee u tekstgegevenssets kunt transformeren naar binaire functies met behulp van een hash-algoritme.

Vowpal Wabbit-model configureren

In deze sectie wordt beschreven hoe u een nieuw model traint en hoe u nieuwe gegevens toevoegt aan een bestaand model.

In tegenstelling tot andere onderdelen in de ontwerpfunctie, geeft dit onderdeel zowel de componentparameters aan als traint het model. Als u een bestaand model hebt, kunt u dit toevoegen als optionele invoer om het model stapsgewijs te trainen.

De invoergegevens voorbereiden

Als u een model wilt trainen met dit onderdeel, moet de invoergegevensset bestaan uit één tekstkolom in een van de twee ondersteunde indelingen: SVMLight of VW. Dit betekent niet dat Vowpal Wabbit alleen tekstgegevens analyseert, alleen dat de functies en waarden moeten worden voorbereid in de vereiste tekstbestandsindeling.

De gegevens kunnen worden gelezen uit twee soorten gegevenssets: bestandsgegevensset of tabelgegevensset. Beide gegevenssets moeten de INDELING SVMLight of VW hebben. De Vowpal Wabbit-gegevensindeling heeft het voordeel dat er geen kolomindeling voor nodig is, waardoor ruimte wordt bespaard bij het omgaan met sparse gegevens. Zie de wikipagina Vowpal Wabbit voor meer informatie over deze indeling.

Een Vowpal Wabbit-model maken en trainen

  1. Voeg het onderdeel Train Vowpal Wabbit Model toe aan uw experiment.

  2. Voeg de trainingsgegevensset toe en koppel deze aan Trainingsgegevens. Als de trainingsgegevensset een map is die het trainingsgegevensbestand bevat, geeft u de naam van het trainingsgegevensbestand op met de naam van het trainingsgegevensbestand. Als de trainingsgegevensset één bestand is, laat u Naam van het trainingsgegevensbestand leeg.

  3. Typ in het tekstvak VW-argumenten de opdrachtregelargumenten voor het uitvoerbare bestand Vowpal Wabbit.

    U kunt bijvoorbeeld toevoegen –l om de leersnelheid op te geven of -b om het aantal hash-bits aan te geven.

    Zie de sectie Vowpal Wabbit-parameters voor meer informatie.

  4. Naam van het trainingsgegevensbestand: Typ de naam van het bestand dat de invoergegevens bevat. Dit argument wordt alleen gebruikt wanneer de trainingsgegevensset een map is.

  5. Bestandstype opgeven: geef aan welke indeling uw trainingsgegevens gebruiken. Vowpal Wabbit ondersteunt deze twee invoerbestandsindelingen:

    • VW vertegenwoordigt het interne formaat dat wordt gebruikt door Vowpal Wabbit . Zie de wikipagina Vowpal Wabbit voor meer informatie.
    • SVMLight is een indeling die wordt gebruikt door een aantal andere machine learning-hulpprogramma's.
  6. Uitvoerbaar modelbestand: selecteer de optie als u wilt dat het onderdeel het leesbare model opslaat in de taakrecords. Dit argument komt overeen met de --readable_model parameter in de VW-opdrachtregel.

  7. Omgekeerd hashbestand uitvoeren: selecteer de optie als u wilt dat het onderdeel de omgekeerde hashfunctie opslaat in één bestand in de taakrecords. Dit argument komt overeen met de --invert_hash parameter in de VW-opdrachtregel.

  8. Verzend de pijplijn.

Een bestaand Vowpal Wabbit-model opnieuw trainen

Vowpal Wabbit ondersteunt incrementele training door nieuwe gegevens toe te voegen aan een bestaand model. Er zijn twee manieren om een bestaand model te verkrijgen voor omscholing:

  • Gebruik de uitvoer van een ander onderdeel Train Vowpal Wabbit Model in dezelfde pijplijn.

  • Zoek een opgeslagen model in de categorie Gegevenssets van het linkernavigatiedeelvenster van de ontwerper en sleep het naar uw pijplijn.

  1. Voeg het onderdeel Train Vowpal Wabbit Model toe aan uw pijplijn.

  2. Verbind het eerder getrainde model met de vooraf getrainde Vowpal Wabbit Model-invoerpoort van het onderdeel.

  3. Verbind de nieuwe trainingsgegevens met de invoerpoort Trainingsgegevens van het onderdeel.

  4. Geef in het deelvenster parameters van Train Vowpal Wabbit Model de indeling van de nieuwe trainingsgegevens op, en ook de naam van het trainingsgegevensbestand als de invoergegevensset een map is.

  5. Selecteer de opties Uitvoer leesbaar modelbestand en Uitvoer omgekeerd hash-bestand als de bijbehorende bestanden moeten worden opgeslagen in de taakrecords.

  6. Verzend de pijplijn.

  7. Selecteer het onderdeel en selecteer Gegevensset registreren op het tabblad Uitvoer en logboeken in het rechterdeelvenster om het bijgewerkte model in uw Azure Machine Learning-werkruimte te behouden. Als u geen nieuwe naam opgeeft, overschrijft het bijgewerkte model het bestaande opgeslagen model.

Resultaten

Notitie

Als u het getrainde model in de ontwerpfunctie wilt implementeren, moet u ervoor zorgen dat Score Vowpal Wabbit Model in plaats van Score Model is verbonden met de invoer van het onderdeel Web Service Output in de deductiepijplijn.

Technische opmerkingen

Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.

Voordelen van Vowpal Wabbit

Vowpal Wabbit biedt extreem snel leren over niet-lineaire functies zoals n-grams.

Vowpal Wabbit maakt gebruik van online leertechnieken zoals stochastische gradiëntafname (SGD) om een model record voor record te passen. Het itereert dus zeer snel over onbewerkte gegevens en kan sneller een goede voorspeller ontwikkelen dan de meeste andere modellen. Deze aanpak voorkomt ook dat alle trainingsgegevens in het geheugen moeten worden gelezen.

Vowpal Wabbit converteert alle gegevens naar hashes, niet alleen tekstgegevens maar andere categorische variabelen. Het gebruik van hashes maakt het opzoeken van regressiegewichten efficiënter, wat essentieel is voor effectieve stochastische gradiëntafname.

Ondersteunde en niet-ondersteunde parameters

In deze sectie wordt de ondersteuning voor Vowpal Wabbit-opdrachtregelparameters in Azure Machine Learning Designer beschreven.

Over het algemeen worden alle argumenten ondersteund, behalve een beperkte set argumenten. Gebruik de wikipagina Vowpal Wabbit voor een volledige lijst met argumenten.

De volgende parameters worden niet ondersteund:

  • De invoer-/uitvoeropties die zijn opgegeven in https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    Deze eigenschappen zijn al automatisch geconfigureerd door het onderdeel.

  • Bovendien is elke optie die meerdere uitvoer genereert of meerdere invoer gebruikt, niet toegestaan. Deze omvatten --cbt, --ldaen --wap.

  • Alleen leeralgoritmen onder supervisie worden ondersteund. Daarom worden deze opties niet ondersteund: –active, --rank, --search enzovoort.

Beperkingen

Omdat het doel van de service is om ervaren gebruikers van Vowpal Wabbit te ondersteunen, moeten invoergegevens vooraf worden voorbereid met behulp van de systeemeigen tekstindeling Vowpal Wabbit in plaats van de indeling van de gegevensset die door andere onderdelen wordt gebruikt.

Volgende stappen

Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning.