Tworzenie własnych modeli

Niektóre algorytmy w produkcie Watson Natural Language Processing mogą być wyszkolone z wykorzystaniem własnych danych, na przykład można tworzyć niestandardowe modele na podstawie własnych danych dotyczących wyodrębniania jednostek, klasyfikowania danych, wyodrębniania odczuć i wyodrębniania odczuć docelowych.

Począwszy od środowiska wykonawczego 23.1 , można użyć nowego wbudowanego modelu opartego na transformatorze IBM o nazwie Slate, aby utworzyć własne modele. Model Slate został przeszkolony w zakresie bardzo dużego zestawu danych, który został wstępnie przetworzony w celu filtrowania nienawiści, uprzedzeńi profanacji.

Aby utworzyć własną klasyfikację, model ekstrakcji jednostki lub model sentymentu, można precyzyjnie dostroić model Slate na podstawie własnych danych. Aby trenować model w rozsądnym czasie, zaleca się korzystanie ze środowisk opartych na GPU.

Obsługa języków dla modeli niestandardowych

Użytkownik może tworzyć modele niestandardowe i używać następujących wstępnie wyszkolonych modeli słownika i klasyfikacji dla wyświetlanych języków. Lista kodów języków i odpowiadających im języków znajduje się w sekcji Kody języków.

Obsługiwane języki dla gotowych modeli niestandardowych
Model użytkownika Obsługiwane kody języków
Modele słowników af, ar, bs, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw (wszystkie języki obsługiwane w części składni znakowania mowy)
Regex af, ar, bs, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw (wszystkie języki obsługiwane w części składni znakowania mowy)
Klasyfikacja SVM z TFIDF af, ar, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw
Klasyfikacja SVM z USE ar, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, tr, zh_cn, zh_tw
Klasyfikacja CNN z GloVe ar, de, en, es, fr, it, ja, ko, nl, pt, zh_cn
BERT, klasyfikacja wielojęzyczna af, ar, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw
Model transformatora af, ar, bs, ca, cs, da, de, el, en, es, fi, fr, he, hi, hr, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sr, sv, tr, zh_cn, zh_tw
Listy stopów ar, de, en, es, fr, it, ja, ko

Zapisywanie i ładowanie modeli niestandardowych

Aby użyć modelu niestandardowego w innym notatniku, należy zapisać go jako zasób danych w projekcie. W ten sposób można wyeksportować model w ramach eksportu projektu.

Biblioteka ibm-watson-studio-lib służy do zapisywania i ładowania modeli niestandardowych.

Aby zapisać model niestandardowy w notatniku jako zasób danych do wyeksportowania i użyć w innym projekcie:

  1. Upewnij się, że na stronie Kontrola dostępu znajduje się znacznik dostępu na karcie Zarządzanie w projekcie. Tokeny dostępu mogą tworzyć tylko administratorzy projektu. Znacznik dostępu może mieć uprawnienia dostępu do przeglądarki lub edytora. Tylko edytujący mogą wstrzyknąć znacznik do notatnika.

  2. Dodaj znacznik projektu do notatnika, klikając opcję Więcej > Wstaw znacznik projektu z paska działań notatnika, a następnie uruchom komórkę. Po uruchomieniu wstawionej komórki ukrytej kodu tworzony jest obiekt wslib , który może być używany dla funkcji w bibliotece produktu ibm-waton-studio-lib . Szczegółowe informacje na temat dostępnych funkcji produktu ibm-watson-studio-lib zawiera sekcja Korzystanie z produktu ibm-watson-studio-lib dla języka Python.

  3. Uruchom metodę train() w celu utworzenia niestandardowego słownika, wyrażenia regularnego lub modelu klasyfikacji i przypisz ten model niestandardowy do zmiennej. Na przykład:

    custom_block = CNN.train(train_stream, embedding_model.embedding, verbose=2)
    
  4. Jeśli chcesz zapisać niestandardowy słownik lub model wyrażenia regularnego, przekształć go w blok RBRGeneric. Przekształcenie niestandardowego słownika lub modelu wyrażenia regularnego w blok RBRGeneric jest przydatne, jeśli model ma być ładowany i wykonywany przy użyciu interfejsu API for Watson Natural Language Processing for Embed. Do tej pory Watson Natural Language Processing for Embed obsługuje uruchamianie modeli słowników i wyrażeń regularnych tylko w postaci bloków RBRGeneric. Aby przekształcić model w blok RBRGeneric, należy uruchomić następujące komendy:

    # Create the custom regular expression model
    custom_regex_block = watson_nlp.resources.feature_extractor.RBR.train(module_folder, language='en', regexes=regexes)
    
    # Save the model to the local file system
    custom_regex_model_path = 'some/path'
    custom_regex_block.save(custom_regex_model_path)
    
    # The model was saved in a file "executor.zip" in the provided path, in this case "some/path/executor.zip"
    model_path = os.path.join(custom_regex_model_path, 'executor.zip')
    
    # Re-load the model as a RBRGeneric block
    custom_block = watson_nlp.blocks.rules.RBRGeneric(watson_nlp.toolkit.rule_utils.RBRExecutor.load(model_path), language='en')
    
  5. Zapisz model jako zasób danych w projekcie przy użyciu produktu ibm-watson-studio-lib:

    wslib.save_data("<model name>", custom_block.as_bytes(), overwrite=True)
    

    Podczas zapisywania modeli transformatorów dostępna jest opcja zapisania modelu w formacie CPU. Jeśli model ma być używany tylko w środowiskach procesorów, użycie tego formatu spowoduje, że model niestandardowy będzie przebiegał bardziej wydajnie. Aby to zrobić, należy ustawić opcję formatu procesora w następujący sposób:

    wslib.save_data('<model name>', data=custom_model.as_bytes(cpu_format=True), overwrite=True)
    

Aby załadować model niestandardowy do notatnika, który został zaimportowany z innego projektu:

  1. Upewnij się, że na stronie Kontrola dostępu znajduje się znacznik dostępu na karcie Zarządzanie w projekcie. Tokeny dostępu mogą tworzyć tylko administratorzy projektu. Znacznik dostępu może mieć uprawnienia dostępu do przeglądarki lub edytora. Tylko edytujący mogą wstrzyknąć znacznik do notatnika.

  2. Dodaj znacznik projektu do notatnika, klikając opcję Więcej > Wstaw znacznik projektu z paska działań notatnika, a następnie uruchom komórkę. Po uruchomieniu wstawionej komórki ukrytej kodu tworzony jest obiekt wslib , który może być używany dla funkcji w bibliotece produktu ibm-watson-studio-lib . Szczegółowe informacje na temat dostępnych funkcji produktu ibm-watson-studio-lib zawiera sekcja Korzystanie z produktu ibm-watson-studio-lib dla języka Python.

  3. Załaduj model za pomocą ibm-watson-studio-lib i watson-nlp:

    custom_block = watson_nlp.load(wslib.load_data("<model name>"))
    

Temat nadrzędny: Watson Natural Language Processing library