Codificador - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 8 min. de leitura
  • A API Encoder fornece um objeto programável usado em armazenamentos Inteligência preditiva. Este objeto converte dados de entrada em vetores de números, com base em objetivos e configurações específicas do codificador. Os codificadores podem ser usados independentemente para executar codificações ou podem ser configurados como parte de soluções para codificar colunas de texto.

    Este A API requer o plug-in Inteligência preditiva (com.glide.platform_ml) e é fornecida no namespace sn_ml.

    Codificadores são objetos de processamento de texto pré-treinados ou treinados com base nos conjuntos de dados de idioma fornecidos. Você pode treinar codificadores que determinam como o sistema interpreta e processa os campos de texto. Para soluções de ML que incluem texto, você pode treinar um codificador para especificar como processar texto e usar o codificador treinado em uma solução.

    Os codificadores têm configuração e versões e podem ser treinados independentemente com sua própria frequência de retreinamento. Os codificadores definidos pela API são diferentes dos codificadores definidos pela IU, porque o retreinamento de codificadores definidos pela IU é controlado pelas soluções que os usam.

    O fluxo de configuração para treinamento do codificador é o seguinte:
    1. Crie um ou mais conjuntos de dados usando a API DatasetDefinition.
    2. Use o construtor para criar um objeto codificador.
    3. Adicione o objeto do codificador ao armazenamento do codificador usando o método EncoderStore - add().
    4. Treine o codificador usando o método submitTrainingJob(). Isso cria uma versão do objeto que você pode gerenciar usando a API EncoderVersion.
    Depois de treinar um codificador, você pode usá-lo em um objeto de solução:
    Nota:
    Esta API executa com privilégios totais. Para restringir o acesso do usuário, inclua um mecanismo de controle de acesso no script.

    Para obter diretrizes de uso, consulte Como usar APIs de ML.

    Codificador - Codificador (configuração de objeto)

    Cria um codificador.

    Para obter um codificador para um ou mais conjuntos de dados, use este construtor para criar um novo objeto de codificador com um nome exclusivo.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    config Objeto Objeto JavaScript que contém propriedades de configuração do codificador.
    {
      "algorithmConfig": {Object},
      "datasets": [Array],
      "domainName": "String",
      "label": "String",
      "minRowCount": "String",
      "processingLanguage": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    config.algorithmConfig Objeto Opcional. Objeto JavaScript que contém propriedades de configuração do algoritmo.
    'algorithmConfig' : {
      "algorithm": "String"
    }
    config.algorithmConfig.algorithm Cadeia de caracteres Nome do algoritmo para treinar este codificador.
    Valores possíveis:
    • paravec: incorporação de palavra vetorial de parágrafo.
    • tf-idf: Texto baseado em Frequência Termo–Frequência Inversa do Documento (TF-IDF).
    config.conjuntosdedados Matriz Lista de nomes de objeto DatasetDefinition.
    config.domainName Cadeia de caracteres Opcional. Nome do domínio associado a este conjunto de dados. Consulte Separação de domínios e Inteligência preditiva.

    Padrão: domínio atual, por exemplo, "global".

    config.rótulo Cadeia de caracteres Identifica a tarefa de previsão.
    config.minRowCount Cadeia de caracteres Opcional. Número mínimo de registros necessários no conjunto de dados para treinamento.

    Padrão: 10000

    config.processingLanguage Cadeia de caracteres Opcional. Idioma de processamento no formato de código de idioma ISO 639-1 de duas letras.

    Padrão: "en"

    config.palavras irrelevantes Matriz Opcional. Lista predefinida de cadeias de caracteres que o sistema gera automaticamente com base na configuração da propriedade language. Para obter detalhes, consulte Criação de uma lista de palavras irrelevantes personalizada.

    Padrão: palavras irrelevantes em inglês

    config.FrequênciaDetreinamento Cadeia de caracteres A frequência para retreinar o modelo.
    Valores possíveis:
    • a cada_30_dias
    • a cada_60_dias
    • a cada_90_dias
    • a cada_120_dias
    • a cada_180_dias
    • run_once
    Padrão: run_once

    O exemplo a seguir mostra como criar um trabalho de codificador e adicioná-lo ao armazenamento do codificador.

    var myPrbData = new sn_ml.DatasetDefinition({
        'tableName' : 'problem',
        'fieldNames' : ['short_description'],
        'encodedQuery' : 'activeANYTHING'
    });
    
    var myIncidentData = new sn_ml.DatasetDefinition({
        'tableName' : 'incident',
        'fieldNames' : ['short_description', 'description'],
        'encodedQuery' : 'activeANYTHING'
    });
    
    var myEncoder = new sn_ml.Encoder({
        'label': "encoder",
        'datasets' : [myPrbData, myIncidentData],
        'algorithmConfig' : {
            'algorithm' : 'tf-idf'
        }
    });
    var myEncoderName = sn_ml.EncoderStore.add(myEncoder);

    Codificador - cancelTrainingJob()

    Cancela um trabalho para um objeto de codificador que foi enviado para treinamento.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 3. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir mostra como cancelar um trabalho de treinamento existente.

    var myEncoder = sn_ml.EncoderStore.get('ml_sn_global_global_encoder');
    
    myEncoder.cancelTrainingJob();

    Codificador - getActiveVersion()

    Obtém o ativo Objeto EncoderVersion.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 5. Retorna
    Tipo Descrição
    Objeto Objeto EncoderVersion ativo.

    O exemplo a seguir mostra como obter uma Codificador versão ativa do armazenamento e retornar seu status de treinamento.

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(mlEncoder.getActiveVersion().getStatus()), null, 2));

    Saída:

    {
      "state": "encoder_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    Codificador - getAllVersions()

    Obtém todas as versões de um codificador.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    Matriz Versões existentes de um objeto codificador. Consulte também a API EncoderVersion.

    O exemplo a seguir mostra como obter todos os objetos de versão do codificador e chamar os métodos de versão do codificador getVersionNumber() e getStatus() neles.

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    var mlEncoderVersions = mlEncoder.getAllVersions();
    
    for (i = 0; i < mlEncoderVersions.length; i++) {
    gs.print("Version " + mlEncoderVersions[i].getVersionNumber() + " Status: " + mlEncoderVersions[i].getStatus() +"\n");
    };

    Saída:

    Version 3 Status: {"state":"encoder_complete","percentComplete":"100","hasJobEnded":"true"}
    
    Version 2 Status: {"state":"encoder_complete","percentComplete":"100","hasJobEnded":"true"}
    
    Version 1 Status: {"state":"encoder_cancelled","percentComplete":"0","hasJobEnded":"true"}

    Codificador - getLatestVersion()

    Obtém a versão mais recente de um codificador.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. Retorna
    Tipo Descrição
    Objeto EncoderVersion objeto correspondente à versão mais recente de e Encoder().

    O exemplo a seguir mostra como obter a versão mais recente de um codificador e retornar seu status de treinamento.

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(mlEncoder.getLatestVersion().getStatus()), null, 2));

    Saída:

    {
      "state": "encoder_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    Codificador - getName()

    Obtém o nome do objeto a ser usado para interação com o armazenamento.

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 11. Retorna
    Tipo Descrição
    Cadeia de caracteres Nome do objeto do codificador.

    O exemplo a seguir mostra como atualizar Codificador as informações do conjunto de dados e imprimir o nome do objeto.

    // Update encoder
    var myIncidentData = new sn_ml.DatasetDefinition({
       'tableName' : 'incident',
       'fieldNames' : ['category', 'short_description', 'priority'],
       'encodedQuery' : 'activeANYTHING'
    });
    
    var eligibleFields = JSON.parse(myIncidentData.getEligibleFields(encoder));
    
    var myEncoder = new sn_ml.Encoder({
       'label': "my encoder",
       'datasets' : [myIncidentData],
       'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
       'predictedFieldName': 'category'
    });
    
    // update encoder
    sn_ml.EncoderStore.update('ml_x_snc_global_global_my_definition_4', myEncoder);
    
    // print encoder name
    gs.print('Encoder Name: '+myEncoder.getName());

    Saída:

    Encoder Name: ml_x_snc_global_global_my_definition_4

    Codificador - getProperties()

    Obtém propriedades do objeto de solução.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 13. Retorna
    Tipo Descrição
    Objeto Conteúdos dos detalhes do objeto Dataset e Encoder() no EncoderStore.
    {
      "algorithmConfig" : {Object},
      "datasetsProperties": [Array],
      "domainName": "String",
      "label": "String",
      "name": "String",
      "processingLanguage": "String",
      "scope": "String",
      "stopwords": [Array],
      "trainingFrequency": "String"
    }
    <Object>.algoritmoConfig.algoritmo Nome do algoritmo para treinar este codificador.
    Valores possíveis:
    • paravec: incorporação de palavra vetorial de parágrafo.
    • tf-idf: Texto baseado em Frequência Termo–Frequência Inversa do Documento (TF-IDF).

    Tipo de dados: cadeia de caracteres.

    <Object>.algorithmConfig Opcional. Objeto JavaScript que contém propriedades de configuração do algoritmo.
    'algorithmConfig' : {
      "algorithm": "String"
    }

    Tipo de dados: objeto.

    <Object>.datasetsProperties

    Lista de propriedades DatasetDefinition() associadas ao codificador.

    {
      "encodedQuery": "String",
      "fieldDetails": [Array],
      "fieldNames": [Array],
      "tableName": "String"
    }

    Tipo de dados: matriz.

    <Object>.datasetsProperties.tableName Nome da tabela para o conjunto de dados. Por exemplo, "tableName" : "Incidente".

    Tipo de dados: cadeia de caracteres.

    <Object>.datasetsProperties.fieldNomes Lista de nomes de campo da tabela especificada como cadeias de caracteres. Por exemplo, "fieldNames" : ["short_description", "priority"].

    Tipo de dados: matriz.

    <Object>.datasetsProperties.fieldNames.fieldDetails Lista de objetos JavaScript que especificam propriedades de campo.
    [
      {
        "name": "String",
        "type": "String"
      }
    ]

    Tipo de dados: matriz.

    <Object>.datasetsProperties.fieldNames.fieldDetails.<object>.nome Nome do campo que define o tipo de informação ao qual este conjunto de dados será restrito.

    Tipo de dados: cadeia de caracteres.

    <Object>.datasetsProperties.fieldDetails.<object>.type Tipo de campo de aprendizado de máquina.

    Tipo de dados: cadeia de caracteres.

    <Object>.datasetsProperties.fieldDetails.encodedQuery Cadeia de caracteres de consulta codificada no formato Glide padrão. Consulte Cadeias de caracteres de consulta codificadas.

    Tipo de dados: cadeia de caracteres.

    <Object>.domainName Nome do domínio associado a este conjunto de dados. Consulte Separação de domínios e Inteligência preditiva.

    Tipo de dados: cadeia de caracteres.

    <Object>.rótulo Identifica a tarefa de previsão.
    {
      "label": "my first prediction"
    }

    Tipo de dados: cadeia de caracteres.

    <Object>.nome Nome atribuído pelo sistema.

    Tipo de dados: cadeia de caracteres.

    <Object>.predictedFieldName Identifica um campo a ser treinado para previsibilidade.

    Tipo de dados: cadeia de caracteres.

    <Object>.processingLanguage Idioma de processamento no formato de código de idioma ISO 639-1 de duas letras.

    Tipo de dados: cadeia de caracteres.

    <Object>.escopo Escopo do objeto. Atualmente, o único valor válido é global.

    Tipo de dados: cadeia de caracteres

    <Object>.palavras irrelevantes Opcional. Lista predefinida de cadeias de caracteres que o sistema gera automaticamente com base na configuração da propriedade language. Para obter detalhes, consulte Criação de uma lista de palavras irrelevantes personalizada.

    Tipo de dados: matriz.

    <Object>.trainingFrequency A frequência para retreinar o modelo.
    Valores possíveis:
    • a cada_30_dias
    • a cada_60_dias
    • a cada_90_dias
    • a cada_120_dias
    • a cada_180_dias
    • run_once
    Padrão: run_once

    Tipo de dados: cadeia de caracteres.

    O exemplo a seguir obtém propriedades de um objeto de codificador no armazenamento.

    var myEncoder = sn_ml.EncoderStore.get('ml_sn_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(myEncoder.getProperties()), null, 2));
    Saída:
    *** Script: {
      "datasetsProperties": [
        {
          "tableName": "incident",
          "fieldNames": [
            "assignment_group",
            "short_description",
            "description"
          ],
          "encodedQuery": "activeANYTHING"
        }
      ],
      "domainName": "global",
      "label": "my encoder definition",
      "name": "ml_x_snc_global_global_my_encoder_definition",
      "processingLanguage": "en",
      "scope": "global",
      "stopwords": [
        "Default English Stopwords"
      ],
      "trainingFrequency": "run_once"
    }

    Codificador - getVersion(String version)

    Obtém um codificador pelo número de versão fornecido.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    versão Cadeia de caracteres Número da versão existente de um codificador.
    Tabela 15. Retorna
    Tipo Descrição
    Objeto Versão especificada do objeto Encoder() na qual você pode chamar métodos de API EncoderVersion.

    O exemplo a seguir mostra como obter o status de treinamento de um codificador por número de versão.

    var mlEncoder = sn_ml.EncoderStore.get('ml_x_snc_global_global_encoder');
    
    gs.print(JSON.stringify(JSON.parse(mlEncoder.getVersion('1').getStatus()), null, 2));

    Saída:

    {
      "state": "encoder_complete",
      "percentComplete": "100",
      "hasJobEnded": "true"
    }

    Codificador - setActiveVersion(String version)

    Ativa uma versão especificada de um codificador no armazenamento.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    versão Cadeia de caracteres Nome da versão do objeto Encoder() a ser ativada.

    Ativar esta versão desativa qualquer outra versão.

    Tabela 17. Retorna
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como ativar um codificador versão de solução na loja.

    sn_ml.Encoder.setActiveVersion("ml_incident_categorization");

    Codificador - submitTrainingJob()

    Envia um trabalho de treinamento.

    Nota:
    Antes de executar este método, você deve primeiro adicionar um codificador ao armazenamento usando o método EncoderStore - add().
    Tabela 18. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 19. Retorna
    Tipo Descrição
    Objeto Codificador está sendo treinado.EncoderVersion objeto correspondente ao que

    O exemplo a seguir mostra como criar um conjunto de dados, aplicá-lo a um codificador, adicione-o a um armazenamento e enviar o trabalho de treinamento.

    // Create a dataset 
    var myData = new sn_ml.DatasetDefinition({
    
      'tableName' : 'incident',
      'fieldNames' : ['assignment_group', 'short_description', 'description'],
      'encodedQuery' : 'activeANYTHING'
    
    });
    
    // Create an encoder 
    var myEncoder = new sn_ml.Encoder({
    
      'label': "my encoder definition",
      'datasets' : [myData],
      'predictedFieldName' : 'assignment_group',
      'inputFieldNames':['short_description']
    
    });
    
    // Add the encoder to the store to later be able to retrieve it.
    var my_unique_name = sn_ml.EncoderStore.add(myEncoder);
    
    // Train the encoder - this is a long running job 
    var myEncoderVersion = myEncoder.submitTrainingJob();