Udostępnij za pośrednictwem


Trenowanie modelu Vowpal Wabbit w wersji 8

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Trenowanie modelu przy użyciu wersji 8 systemu uczenia maszynowego Vowpal Wabbit

Kategoria: analiza tekstu

Uwaga

Dotyczy: tylko Machine Learning Studio (klasyczne)

Podobne moduły przeciągania i upuszczania są dostępne w Azure Machine Learning projektanta.

Omówienie modułu

W tym artykule opisano sposób użycia modułu Train Vowpal Wabbit Version 8 in Machine Learning Studio (classic) (Trenowanie narzędzia Vowpal Wabbit w wersji 8) w programie Machine Learning Studio (wersja klasyczna) w celu utworzenia modelu uczenia maszynowego przy użyciu narzędzia Vowpal Wabbit (wersja 8).

Aby użyć narzędzia Vowpal Wabbit do uczenia maszynowego, sformatuj dane wejściowe zgodnie z wymaganiami Vowpal Wabbit i zapisz dane w obiekcie blob platformy Azure. Użyj tego modułu, aby określić argumenty wiersza polecenia Vowpal Wabbit.

Po uruchomieniu eksperymentu wystąpienie Vowpal Wabbit jest ładowane do czasu uruchomienia eksperymentu wraz z określonymi danymi. Po zakończeniu trenowania model jest serializowany z powrotem do obszaru roboczego. Możesz od razu użyć modelu do oceny danych. Wytrenowany model jest również utrwalany w usłudze Azure Storage, dzięki czemu można go użyć później bez konieczności ponownego przetwarzania danych treningowych.

Aby przyrostowo wytrenować istniejący model na nowych danych, połącz zapisany model z wstępnie wytrenowanymi danymi wejściowymi modelu i dodaj nowe dane do innych danych wejściowych.

Uwaga

Machine Learning Studio (wersja klasyczna) hostuje wiele wersji struktury Vowpal Wabbit. W tym module jest używana najnowsza wersja struktury Vowpal Wabbit, która jest w wersji 8. Aby wytypować nowe dane wejściowe, należy użyć funkcji Score Vowpal Wabbit Version 8 Model (Ocena modelu Vowpal Wabbit w wersji 8).

Vowpal Wabbit w wersji 7–4 lub 7–6: Train Vowpal Wabbit 7-4 Model and Score Vowpal Wabbit 7-4 Model (Trenowanie modelu Vowpal Wabbit 7-4 i ocena modelu Vowpal Wabbit 7-4).

Vowpal Wabbit w wersji 7-10: Train Vowpal Wabbit 7-10 Model and Score Vowpal Wabbit 7-10 Model (Trenowanie modelu Vowpal Wabbit 7-10 i ocena modelu Vowpal Wabbit 7-10).

Co to jest Vowpal Wabbit?

Vowpal Wabbit (VW) to szybka, równoległa platforma uczenia maszynowego opracowana dla przetwarzania rozproszonego firmy Yahoo! Badania. Później została ona przekierowyowana do Windows i dostosowana przez Johna Langforda (Microsoft Research) do obliczeń naukowych w architekturach równoległych.

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

Podstawowymi użytkownikami usługi Vowpal Wabbit są naukowcy zajmujący się danymi, którzy wcześniej używali struktury do wykonywania zadań uczenia maszynowego, takich jak klasyfikacja, regresja, modelowanie tematu lub faktoryzacja macierzy. Otoka platformy Azure dla narzędzia Vowpal Wabbit ma bardzo podobne charakterystyki wydajności do wersji lokalnej, dzięki czemu można korzystać z zaawansowanych funkcji i natywnej wydajności narzędzia Vowpal Wabbit oraz łatwo opublikować wytrenowany model jako usługę zoperacyjną.

Moduł Skróty funkcji obejmuje również funkcje udostępniane przez platformę Vowpal Wabbit, które umożliwiają przekształcanie zestawów danych tekstowych w funkcje binarne przy użyciu algorytmu wyznaczania wartości skrótu.

Jak skonfigurować model Vowpal Wabbit w wersji 8

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

W przeciwieństwie do innych modułów w programie Studio (wersja klasyczna) ten moduł określa parametry modułu i szkoli model. Jeśli masz istniejący model, możesz dodać go jako opcjonalne dane wejściowe w celu przyrostowego trenowania modelu.

Korzystanie z tego modułu wymaga uwierzytelnienia na koncie usługi Azure Storage.

Przygotowywanie danych wejściowych

Aby wytszkolić model przy użyciu tego modułu, wejściowy zestaw danych musi składać się z jednej kolumny tekstowej w jednym z dwóch obsługiwanych formatów: LibSVM 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 muszą być odczytywane z usługi Azure Storage. Nie można użyć funkcji Eksportuj dane do bezpośredniego zapisania pliku wejściowego na platformie Azure do użycia z usługą Vowpal Wabbit, ponieważ format wymaga pewnych dodatkowych modyfikacji. Musisz upewnić się, że dane są w poprawnym formacie, a następnie przekazać je do usługi Azure Blob Storage.

Można jednak użyć modułu Convert to SVMLight do wygenerowania pliku formatu SVMLight. Następnie możesz przekazać plik formatu SVMLight do usługi Azure Blob Storage i użyć go jako danych wejściowych lub nieco zmodyfikować plik, aby był zgodny z wymaganiami pliku wejściowego Vowpal Wabbit.

Format danych Vowpal Wabbit ma tę zaletę, że nie wymaga formatu kolumnowego, co pozwala zaoszczędzić miejsce podczas pracy z rozrzednym danymi. Aby uzyskać więcej informacji na temat tego formatu, zobacz stronę wiki Vowpal Wabbit.

Tworzenie i szkolenie modelu Vowpal Wabbit

  1. Dodaj moduł Train Vowpal Wabbit Version 8 (Trenowanie usługi Vowpal Wabbit w wersji 8 ) do eksperymentu.

  2. Określ konto, na którym są przechowywane dane szkoleniowe. Wytrenowany model i plik wyznaczania wartości skrótu są przechowywane w tej samej lokalizacji.

    • W przypadku nazwy konta usługi Azure Storage wpisz nazwę konta usługi Azure Storage.

    • W przypadku klucza usługi Azure Storage skopiuj i wklej klucz podany w celu uzyskania dostępu do konta magazynu.

    Jeśli nie masz klucza, zobacz Jak ponownie wygenerować klucze dostępu do magazynu

  3. W przypadku nazwy kontenera platformy Azure wpisz nazwę pojedynczego kontenera na określonym koncie usługi Azure Storage, na którym są przechowywane dane trenowania modelu. Nie należy wpisywać nazwy konta ani prefiksu protokołu.

    Jeśli na przykład pełna ścieżka kontenera i nazwa to https://myaccount.blob.core.windows.net/vwmodels, należy wpisać tylko .vwmodels Aby uzyskać więcej informacji na temat nazw kontenerów, zobacz Naming and Referencing Containers, Blobs, and Metadata (Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych).

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

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

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

  5. Nazwa wejściowego pliku VW: wpisz nazwę pliku zawierającego dane wejściowe. Plik musi być istniejącym plikiem w usłudze Azure Blob Storage, który znajduje się na wcześniej określonym koncie magazynu i kontenerze. Plik musi zostać przygotowany przy użyciu jednego z obsługiwanych formatów.

  6. Nazwa wyjściowego pliku modelu czytelnego (--readable_model): wpisz nazwę pliku, w którym powinien zostać zapisany wytrenowany model. Plik musi być zapisany w ramach tego samego konta magazynu i kontenera co plik wejściowy.

    Ten argument odpowiada parametrowi --readable_model w wierszu polecenia VW.

  7. Nazwa pliku wyjściowego odwróconego skrótu (--invert_hash): wpisz nazwę pliku, w którym ma zostać zapisana funkcja odwróconego skrótu. Plik musi być zapisany w ramach tego samego konta magazynu i kontenera co plik wejściowy.

    Ten argument odpowiada parametrowi --invert_hash w wierszu polecenia VW.

  8. Określ typ pliku: określ format używany przez dane szkoleniowe. Vowpal Wabbit obsługuje następujące dwa formaty plików wejściowych:

  9. Wybierz opcję Użyj buforowanych wyników, jeśli nie chcesz ładować danych z magazynu przy każdym ponownym wznowieniu eksperymentu. Zakładając, że nie zmieniono żadnych innych parametrów i można znaleźć prawidłową pamięć podręczną, program Studio (klasyczny) używa buforowanej wersji danych.

    Jeśli ta opcja jest zaznaczona, moduł zawsze odczytuje dane z magazynu.

  10. Uruchom eksperyment.

  11. Po zakończeniu trenowania kliknij prawym przyciskiem myszy dane wyjściowe i wybierz pozycję Zapisz jako wytrenowany model , aby zapisać model w obszarze roboczym programu Studio (klasycznym).

Ponowne trenowanie istniejącego modelu Vowpal Wabbit

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

  • Użyj danych wyjściowych innego modułu Train Vowpal Wabbit Version 8 (Trenowanie Vowpal Wabbit w wersji 8 ) w tym samym eksperymencie.

  • Znajdź zapisany model w grupie Wytrenowane modele w lewym okienku nawigacji programu Studio (wersja klasyczna) i przeciągnij go do eksperymentu.

  1. Dodaj moduł Train Vowpal Wabbit Version 8 (Trenowanie usługi Vowpal Wabbit w wersji 8 ) do eksperymentu.

  2. Połączenie wcześniej wytrenowany model do portu wejściowego szkolenia Vowpal Wabbit w wersji 8.

  3. W okienku Właściwości w okienku Train Vowpal Wabbit Version 8 (Trenowanie usługi Vowpal Wabbit w wersji 8) określ lokalizację i format nowych danych szkoleniowych.

  4. Określ nazwę pliku wyjściowego modelu czytelnego dla człowieka i inną nazwę pliku skrótu skojarzonego ze zaktualizowanym modelem.

    Uwaga

    Jeśli w określonej lokalizacji istnieje model Vowpal Wabbit lub plik skrótu, pliki są dyskretnie zastępowane przez nowy wytrenowany model. Aby zachować modele pośrednie podczas ponownego trenowania, należy zmienić lokalizację przechowywania lub wykonać lokalną kopię plików modelu.

  5. Uruchom eksperyment.

  6. Kliknij prawym przyciskiem myszy moduł i wybierz pozycję Zapisz jako wytrenowany model, aby zachować zaktualizowany model w Machine Learning roboczym. Jeśli nie określisz nowej nazwy, zaktualizowany model zastąpi istniejący zapisany model.

Przykłady

Przykłady dotyczące sposobu, w jaki Vowpal Wabbit może być używany w uczeniu maszynowym, zobacz Azure AI Gallery:

  • Przykład Vowpal Wabbit

    W tym eksperymencie pokazano prepration danych, trenowanie i operationalization modelu VW.

Zapoznaj się również z tymi zasobami:

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ę na funkcjach nieliniowych, takich jak n-gramy.

Vowpal Wabbit używa technik uczenia online , takich jak stochastyczny spadek gradientu (SGD, stochastyczny spadek gradientu), aby dopasować model po jednym rekordzie na raz. Dzięki temu bardzo szybko iteruje po danych pierwotnych i może opracowywać dobry predyktor szybciej 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 wyszukiwania wag regresji są bardziej wydajne, co ma kluczowe znaczenie dla efektywnego stochastycznego spadku gradientu.

Podczas trenowania moduł wykonuje wywołania do otoki Vowpal Wabbit opracowanej dla platformy Azure. Dane szkoleniowe są pobierane z bloków z platformy Azure przy użyciu dużej przepustowości między rolami procesu roboczego wykonującego obliczenia a magazynem i są przesyłane strumieniowo do osób uczących się maszyn wirtualnych. Wynikowy model jest zwykle bardzo kompaktowy ze względu na wewnętrzną kompresję wykonywana przez maszynę VW. Model jest kopiowany z powrotem do obszaru roboczego eksperymentu, gdzie może być wykorzystywany jak inne modele w Machine Learning.

Obsługiwane i nieobsługiwane parametry

W tej sekcji opisano obsługę parametrów wiersza polecenia Vowpal Wabbit w programie Machine Learning Studio (wersja klasyczna).

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

Następujące parametry nie są dostępne:

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

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

  • Ponadto każda opcja, która generuje wiele danych wyjściowych lub przyjmuje wiele danych wejściowych, jest niedozwolone. Należą do nich --cbt, --ldai --wap.

  • Obsługiwane są tylko algorytmy uczenia nadzorowanego. Dlatego te opcje nie są obsługiwane: –active, --rank, --search itp. Ograniczenia ###

Ograniczenia

Ponieważ celem usługi jest obsługa doświadczonych użytkowników narzędzia Vowpal Wabbit, dane wejściowe muszą zostać wcześniej przygotowane przy użyciu natywnego formatu tekstu Vowpal Wabbit, a nie formatu zestawu danych używanego przez inne moduły.

Zamiast korzystać z danych w obszarze roboczym usługi Azure ML, dane szkoleniowe są przesyłane strumieniowo bezpośrednio z platformy Azure w celu zmaksymalizowania wydajności i minimalnego narzutu na analizę. Z tego powodu istnieje tylko ograniczone współdziałanie między modułami VW i innymi modułami w usłudze Azure ML.

Parametry modułu

Nazwa Zakres Typ Opcjonalne Domyślny Opis
Określ typ pliku VW

SvMLight
typ_danych Wymagane VW Wskaż, czy typ pliku to SVMLight, czy Vowpal Wabbit.
Nazwa konta usługi Azure Storage dowolny Ciąg Wymagane Wpisz nazwę konta usługi Azure Storage
Klucz usługi Azure Storage dowolny Securestring Wymagane Podaj klucz usługi Azure Storage
Nazwa kontenera platformy Azure dowolny Ciąg Wymagane Wpisz nazwę kontenera platformy Azure
Argumenty VW dowolny Ciąg Opcjonalne Określ wszystkie argumenty Vowpal Wabbit. Nie dołączaj -f.
Nazwa wejściowego pliku VW dowolny Ciąg Wymagane Określanie nazwy pliku wejściowego w formacie Vowpal Wabbit
Nazwa wyjściowego modelu czytelnego (--readable_model) dowolny Ciąg Opcjonalne Jeśli zostanie określony, usługa wyprowadza model czytelny z powrotem do kontenera platformy Azure.
Nazwa pliku wyjściowego odwróconego skrótu (--invert_hash) String (ciąg) String (ciąg) Opcjonalne Jeśli zostanie określony, funkcja wyprowadza plik zawierający funkcję odwróconego skrótu z powrotem do kontenera platformy Azure.

Dane wyjściowe

Nazwa Typ Opis
Wytrenowany model ILearner, interfejs Wytrenowany uczony

Wyjątki

Wyjątek Opis
Błąd 0001 Wyjątek występuje, jeśli nie można odnaleźć co najmniej jednej określonej kolumny zestawu danych.
Błąd 0003 Wyjątek występuje, jeśli co najmniej jeden z danych wejściowych ma wartość null lub jest pusty.
Błąd 0004 Wyjątek występuje, jeśli parametr jest mniejszy lub równy określonej wartości.
Błąd 0017 Wyjątek występuje, jeśli co najmniej jedna określona kolumna ma typ nieobsługiwany przez bieżący moduł.

Aby uzyskać listę błędów specyficznych dla modułów programu Studio (wersja klasyczna), zobacz Machine Learning Kody błędów.

Aby uzyskać listę wyjątków interfejsu API, zobacz Machine Learning API REST Error Codes (Kody błędów interfejsu API REST).

Zobacz też

Analiza tekstu
Tworzenie skrótów funkcji
Rozpoznawanie jednostek nazwanych
Ocena modelu Vowpal Wabbit 7-4
Ocena modelu Vowpal Wabbit w wersji 8.
Trenowanie modelu Vowpal Wabbit 7-4
Lista modułów A–Z