Criando seus próprios modelos

Determinados algoritmos no Watson Natural Language Processing podem ser treinados com seus próprios dados, por exemplo, é possível criar modelos customizados com base em seus próprios dados para extração de entidade, para classificar dados, extrair sentimentos e extrair sentimentos de destino.

Você pode usar um modelo integrado IBM Foundation baseado em transformador chamado Slate para criar seus próprios modelos. O modelo Slate foi treinado em um conjunto de dados muito grande que foi pré-processado para filtrar ódio, propensão e profanação.

Para criar sua própria classificação, modelo de extração de entidade ou modelo de sentimento, é possível ajustar o modelo de Slate em seus próprios dados. Para treinar o modelo em tempo razoável, é recomendado usar ambientes baseados em GPU.

Suporte ao idioma para modelos customizados

É possível criar modelos customizados e usar os modelos de dicionário e de classificação pré-treinados a seguir para os idiomas mostrados.

Idiomas suportados para dicionários pré-treinados e modelos de classificação
Modelo customizado Códigos de Idioma Suportados
Modelos de dicionário 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 (todos os idiomas suportados na parte da sintaxe da identificação de fala)
Expressões regulares 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 (todos os idiomas suportados na parte da sintaxe da identificação de fala)
Classificação SVM com 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
Classificação SVM com USE ar, de, en, es, fr, it, ja, ko, nl, pl, pt, ru, tr, zh_cn, zh_tw
Classificação CNN com GloVe ar, de, en, es, fr, it, ja, ko, nl, pt, zh_cn
Classificação BERT multilíngue 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
modelo do Transformer 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
Listas de palavras vazias ar, de, en, es, fr, it, ja, ko

Para obter uma lista dos códigos de idioma e dos idiomas correspondentes, consulte Códigos de idioma.

Salvando e carregando modelos customizados

Se você deseja usar o seu modelo customizado em outro bloco de notas, salve-o como um ativo de dados no seu projeto. Dessa forma, é possível exportar o modelo como parte de uma exportação do projeto.

Use a biblioteca ibm-watson-studio-lib para salvar e carregar modelos customizados.

Para salvar um modelo customizado em seu bloco de notas como um ativo de dados para exportar e usar em outro projeto:

  1. Assegure-se de que você tenha um token de acesso na página Controle de acesso na guia Gerenciar do seu projeto. Somente os administradores do projeto podem criar tokens de acesso. O token de acesso pode ter permissões de acesso de visualizador ou de editor. Somente os editores podem injetar o token em um bloco de notas.

  2. Inclua o token do projeto em um bloco de notas clicando em Mais > Inserir token do projeto da barra de ação do bloco de notas e, em seguida, execute a célula. Quando você executa a célula de código oculta inserida, é criado um objeto wslib que pode ser usado para funções na biblioteca ibm-waton-studio-lib Para obter detalhes sobre as funções ibm-watson-studio-lib disponíveis, consulte Usando ibm-watson-studio-lib para Python.

  3. Execute o método train() para criar um modelo de dicionário, de expressão regular ou de classificação customizado e designe esse modelo customizado a uma variável. Por exemplo:

    custom_block = CNN.train(train_stream, embedding_model.embedding, verbose=2)
    
  4. Se desejar salvar um dicionário customizado ou um modelo de expressão comum, converta-o em um bloco RBRGeneric A conversão de um dicionário personalizado ou de um modelo de expressão regular em um bloco RBRGeneric é útil se você quiser carregar e executar o modelo usando a API do Watson Natural Language Processing for Embed. Até a data, o Watson Natural Language Processing for Embed suporta a execução de modelos de dicionário e de expressão regular apenas como blocos RBRGeneric Para converter um modelo em um bloco RBRGeneric, execute os seguintes comandos:

    # 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. Salve o modelo como um Ativo de Dados para o seu projeto usando ibm-watson-studio-lib:

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

    Ao salvar modelos de transformador, você tem a opção de salvar o modelo no formato de CPU Se você planeja usar o modelo somente em ambientes de CPU, usar esse formato fará com que seu modelo customizado seja executado com mais eficiência. Para isso, configure a opção de formato da CPU da seguinte forma:

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

Para carregar um modelo customizado em um bloco de notas que foi importado de outro projeto:

  1. Assegure-se de que você tenha um token de acesso na página Controle de acesso na guia Gerenciar do seu projeto. Somente os administradores do projeto podem criar tokens de acesso. O token de acesso pode ter permissões de acesso de visualizador ou de editor. Somente os editores podem injetar o token em um bloco de notas.

  2. Inclua o token do projeto em um bloco de notas clicando em Mais > Inserir token do projeto da barra de ação do bloco de notas e, em seguida, execute a célula. Quando você executa a célula de código oculta inserida, um objeto wslib é criado que pode ser usado para funções na biblioteca ibm-watson-studio-lib Para obter detalhes sobre as funções ibm-watson-studio-lib disponíveis, consulte Usando ibm-watson-studio-lib para Python.

  3. Carregue o modelo usando ibm-watson-studio-lib e watson-nlp:

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