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 programu 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. Ten składnik służy do określania argumentów 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. Możesz użyć modelu natychmiast, aby ocenić dane.
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 Wabbit Model 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 opracowana na potrzeby 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 Vowpal Wabbit ma bardzo podobne właściwości wydajności do wersji lokalnej, dzięki czemu można używać zaawansowanych funkcji i natywnej wydajności Vowpal Wabbit i łatwo opublikować wytrenowany model jako usługę operacyjną.
Składnik skrótów 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 w jednym z wymaganych formatów
- Trenowanie nowego modelu
- Przyrostowe trenowanie istniejącego modelu
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 mogą być odczytywane z dwóch rodzajów zestawów danych, zestawu danych plików lub tabelarycznego zestawu danych. 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ę typu wiki Vowpal Wabbit.
Tworzenie i trenowanie modelu Vowpal Wabbit
Dodaj do eksperymentu składnik Train Vowpal Wabbit Model (Trenowanie modelu Vowpal Wabbit).
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 treningowych o nazwie pliku danych treningowych. Jeśli zestaw danych trenowania jest pojedynczym plikiem, pozostaw pole Nazwa pliku danych treningowych, aby był pusty.
W polu tekstowym Argumenty VW wpisz argumenty wiersza polecenia dla pliku wykonywalnego Vowpal Wabbit.
Możesz na przykład dodać
–l
element , 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).
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.
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ę typu wiki Vowpal Wabbit.
- SVMLight to format używany przez inne narzędzia uczenia maszynowego.
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.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.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 lewego okienka nawigacji projektanta i przeciągnij go do potoku.
Dodaj do potoku składnik Train Vowpal Wabbit Model (Trenowanie modelu Vowpal Wabbit).
Połącz wcześniej wytrenowany model z wstępnie wytrenowanym portem wejściowym Vowpal Wabbit Model składnika.
Połącz nowe dane szkoleniowe z portem wejściowym Dane szkoleniowe składnika.
W okienku parametrów w obszarze Train Vowpal Wabbit Model (Trenowanie modelu Vowpal Wabbit) określ format nowych danych treningowych, a także nazwę pliku danych treningowych, jeśli wejściowy zestaw danych jest katalogiem.
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ń.
Prześlij potok.
Wybierz składnik i wybierz pozycję Zarejestruj zestaw danych w obszarze Dane wyjściowe i dzienniki kartę 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
- Aby wygenerować wyniki na podstawie modelu, użyj opcji Score Vowpal Wabbit Model (Generowanie wyników na podstawie modelu Vowpal Wabbit).
Uwaga
Jeśli musisz wdrożyć wytrenowany model w projektancie, upewnij się, że model Score Vowpal Wabbit Model zamiast Score Model (Generowanie wyników dla modelu) jest połączony 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), aby dopasować model jeden rekord naraz. Dzięki temu bardzo szybko iteruje dane pierwotne i może szybciej opracowywać dobry prognostyk 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 także inne zmienne kategorii. Użycie skrótów sprawia, że wyszukiwanie wag regresji jest bardziej wydajne, co ma kluczowe znaczenie dla efektywnego 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ż automatycznie konfigurowane przez składnik.
Ponadto każda opcja, która generuje wiele danych wyjściowych lub pobiera wiele danych wejściowych, jest niedozwolona. Należą do nich
--cbt
: ,--lda
i--wap
.Obsługiwane są tylko nadzorowane algorytmy uczenia. W związku z tym te opcje nie są obsługiwane:
–active
,--rank
itp--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.