Trenowanie modelu Vowpal Wabbit

W tym artykule opisano sposób używania składnika Train Vowpal Wabbit Model w projektancie usługi Azure Machine Learning w celu utworzenia modelu uczenia maszynowego przy użyciu narzędzia Vowpal Wabbit.

Aby użyć Vowpal Wabbit do uczenia maszynowego, sformatuj dane wejściowe zgodnie z wymaganiami Vowpal Wabbit i przygotuj dane w wymaganym formacie. Użyj tego składnika, aby określić argumenty wiersza polecenia Vowpal Wabbit.

Po uruchomieniu potoku wystąpienie Vowpal Wabbit jest ładowane do czasu wykonywania eksperymentu wraz z określonymi danymi. Po zakończeniu trenowania model jest serializowany z powrotem do obszaru roboczego. Model można natychmiast użyć do oceniania danych.

Aby przyrostowo wytrenować istniejący model na nowych danych, połącz zapisany model z wstępnie wytrenowanym portem wejściowym modelu Vowpal Wabbit train Vowpal WabbitModel i dodaj nowe dane do innego portu wejściowego.

Co to jest Vowpal Wabbit?

Vowpal Wabbit (VW) to szybka, równoległa struktura uczenia maszynowego, która została opracowana do przetwarzania rozproszonego przez Yahoo! Badania. Później został przekierowany do systemu Windows i dostosowany przez Johna Langforda (Microsoft Research) do przetwarzania naukowego w architekturach równoległych.

Funkcje Vowpal Wabbit, które są ważne dla uczenia maszynowego, obejmują ciągłe uczenie (uczenie online), redukcję wymiarowości i interaktywne uczenie. Vowpal Wabbit jest również rozwiązaniem problemów, gdy nie można dopasować danych modelu do pamięci.

Głównymi użytkownikami Vowpal Wabbit są analitycy danych, którzy wcześniej używali struktury do zadań uczenia maszynowego, takich jak klasyfikacja, regresja, modelowanie tematów lub faktoryzacja macierzy. Otoka platformy Azure dla programu Vowpal Wabbit ma bardzo podobne właściwości wydajności do wersji lokalnej, dzięki czemu można użyć zaawansowanych funkcji i natywnej wydajności Vowpal Wabbit i łatwo opublikować wytrenowany model jako usługę zoperalizowaną.

Składnik Skrót funkcji zawiera również funkcje udostępniane przez Vowpal Wabbit, które umożliwiają przekształcanie zestawów danych tekstowych w funkcje binarne przy użyciu algorytmu tworzenia skrótów.

Jak skonfigurować model Vowpal Wabbit

W tej sekcji opisano sposób trenowania nowego modelu oraz sposobu dodawania nowych danych do istniejącego modelu.

W przeciwieństwie do innych składników w projektancie, ten składnik określa parametry składnika i trenuje model. Jeśli masz istniejący model, możesz dodać go jako opcjonalne dane wejściowe, aby przyrostowo wytrenować model.

Przygotowywanie danych wejściowych

Aby wytrenować model przy użyciu tego składnika, wejściowy zestaw danych musi składać się z jednej kolumny tekstowej w jednym z dwóch obsługiwanych formatów: SVMLight lub VW. Nie oznacza to, że Vowpal Wabbit analizuje tylko dane tekstowe, tylko że funkcje i wartości muszą być przygotowane w wymaganym formacie pliku tekstowego.

Dane można odczytywać z dwóch rodzajów zestawów danych, zestawu danych plików lub zestawu danych tabelarycznych. Oba te zestawy danych muszą mieć format SVMLight lub VW. Format danych Vowpal Wabbit ma zaletę, że nie wymaga formatu kolumnowego, co pozwala zaoszczędzić miejsce podczas pracy z rozrzednymi danymi. Aby uzyskać więcej informacji na temat tego formatu, zobacz stronę wiki Vowpal Wabbit.

Tworzenie i trenowanie modelu Vowpal Wabbit

  1. Dodaj składnik Train Vowpal Wabbit Model do eksperymentu.

  2. Dodaj zestaw danych trenowania i połącz go z danymi trenowania. Jeśli zestaw danych trenowania jest katalogiem zawierającym plik danych treningowych, określ nazwę pliku danych trenowania z nazwą pliku danych trenowania. Jeśli zestaw danych trenowania jest pojedynczym plikiem, pozostaw wartość Nazwa pliku danych trenowania , aby był pusty.

  3. W polu tekstowym Argumenty VW wpisz argumenty wiersza polecenia dla pliku wykonywalnego Vowpal Wabbit.

    Możesz na przykład dodać –l polecenie , aby określić szybkość nauki lub -b wskazać liczbę bitów skrótu.

    Aby uzyskać więcej informacji, zobacz sekcję Vowpal Wabbit parameters (Parametry Vowpal Wabbit ).

  4. Nazwa pliku danych treningowych: wpisz nazwę pliku zawierającego dane wejściowe. Ten argument jest używany tylko wtedy, gdy zestaw danych trenowania jest katalogiem.

  5. Określ typ pliku: określ format używany przez dane treningowe. Vowpal Wabbit obsługuje te dwa formaty plików wejściowych:

    • VW reprezentuje format wewnętrzny używany przez Vowpal Wabbit . Aby uzyskać szczegółowe informacje, zobacz stronę wiki Vowpal Wabbit .
    • SVMLight to format używany przez inne narzędzia uczenia maszynowego.
  6. Plik modelu z możliwością odczytu danych wyjściowych: wybierz opcję, jeśli składnik ma zapisać czytelny model w rekordach zadań. Ten argument odpowiada parametrowi --readable_model w wierszu polecenia VW.

  7. Wyjściowy odwrócony plik skrótu: wybierz opcję, jeśli składnik ma zapisać funkcję skrótu odwróconego do jednego pliku w rekordach zadań. Ten argument odpowiada parametrowi --invert_hash w wierszu polecenia VW.

  8. Prześlij potok.

Ponowne trenowanie istniejącego modelu Vowpal Wabbit

Vowpal Wabbit obsługuje trenowanie przyrostowe przez dodanie nowych danych do istniejącego modelu. Istnieją dwa sposoby uzyskania istniejącego modelu na potrzeby ponownego trenowania:

  • Użyj danych wyjściowych innego składnika Train Vowpal Wabbit Model w tym samym potoku.

  • Znajdź zapisany model w kategorii Zestawy danych w lewym okienku nawigacji projektanta i przeciągnij go do potoku.

  1. Dodaj składnik Train Vowpal Wabbit Model do potoku.

  2. Połącz wcześniej wytrenowany model z wstępnie wytrenowanym portem wejściowym Vowpal Wabbit Model składnika.

  3. Połącz nowe dane szkoleniowe z portem wejściowym danych treningowych składnika.

  4. W okienku parametrów train Vowpal Wabbit Model określ format nowych danych treningowych, a także nazwę pliku danych trenowania, jeśli wejściowy zestaw danych jest katalogiem.

  5. Wybierz opcję Plik modelu z możliwością odczytu danych wyjściowych i Opcje pliku skrótu odwróconego danych wyjściowych , jeśli odpowiednie pliki muszą zostać zapisane w rekordach zadań.

  6. Prześlij potok.

  7. Wybierz składnik i wybierz pozycję Zarejestruj zestaw danych na karcie Dane wyjściowe i dzienniki w okienku po prawej stronie, aby zachować zaktualizowany model w obszarze roboczym usługi Azure Machine Learning. Jeśli nie określisz nowej nazwy, zaktualizowany model zastępuje istniejący zapisany model.

Wyniki

Uwaga

Jeśli musisz wdrożyć wytrenowany model w projektancie, upewnij się, że funkcja Score Vowpal Wabbit Model zamiast Score Model (Generowanie wyników modelu) jest połączona z danymi wejściowymi składnika Web Service Output w potoku wnioskowania.

Uwagi techniczne

Ta sekcja zawiera szczegóły implementacji, porady i odpowiedzi na często zadawane pytania.

Zalety Vowpal Wabbit

Vowpal Wabbit zapewnia niezwykle szybkie uczenie się nad funkcjami nieliniowymi, takimi jak n-gramy.

Vowpal Wabbit używa technik uczenia online , takich jak stochastyczny spadek gradientu (SGD) do dopasowania modelu jeden rekord naraz. W związku z tym iteruje bardzo szybko dane pierwotne i może szybciej opracowywać dobry predyktor niż większość innych modeli. Takie podejście pozwala również uniknąć konieczności odczytywania wszystkich danych treningowych do pamięci.

Vowpal Wabbit konwertuje wszystkie dane na skróty, nie tylko dane tekstowe, ale inne zmienne kategorii. Użycie skrótów sprawia, że wyszukiwanie wag regresji jest bardziej wydajne, co ma kluczowe znaczenie dla skutecznego spadku gradientu stochastycznego.

Obsługiwane i nieobsługiwane parametry

W tej sekcji opisano obsługę parametrów wiersza polecenia Vowpal Wabbit w projektancie usługi Azure Machine Learning.

Ogólnie rzecz biorąc, obsługiwane są wszystkie, ale ograniczony zestaw argumentów. Aby uzyskać pełną listę argumentów, użyj strony wiki Vowpal Wabbit.

Następujące parametry nie są obsługiwane:

  • Opcje wejściowe/wyjściowe określone w https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    Te właściwości są już konfigurowane automatycznie przez składnik.

  • Ponadto każda opcja, która generuje wiele danych wyjściowych lub pobiera wiele danych wejściowych, jest niedozwolona. Należą do --cbtnich : , --ldai --wap.

  • Obsługiwane są tylko nadzorowane algorytmy uczenia. W związku z tym te opcje nie są obsługiwane: –active, --rankitp --search .

Ograniczenia

Ponieważ celem usługi jest wsparcie doświadczonych użytkowników Vowpal Wabbit, dane wejściowe muszą być przygotowane przed upływem czasu przy użyciu natywnego formatu tekstu Vowpal Wabbit, a nie formatu zestawu danych używanego przez inne składniki.

Następne kroki

Zobacz zestaw składników dostępnych dla usługi Azure Machine Learning.