Como usar APIs de aprendizado de máquina
Use ServiceNow APIs de aprendizado de máquina (ML) para treinar modelos de aprendizado de máquina e executar inferências.
As APIs de ML permitem soluções de treinamento e o gerenciamento de versões da solução. Você pode obter e definir versões ativas, monitorar o status de treinamento e muito mais. A API de ML também fornece codificadores, que permitem o uso de frequência de documento de frequência inversa (TF-IDF) como um corpus de palavras. As estimativas de previsibilidade permitem avaliar o valor preditivo das colunas da tabela.
Visão geral da classe da API de ML
Esta seção descreve resumidamente as classes para treinamento de soluções de ML e execução de inferências com soluções treinadas.
- Conjuntos de dados
Um conjunto de dados é um conjunto de registros, incluindo um nome de tabela, colunas e critérios de seleção de linha a serem usados como entrada para algoritmos de treinamento de ML. Os conjuntos de dados não contêm os dados reais.
Para obter mais informações, consulte DatasetDefinition.
- Objetos de ML – Soluções, codificadores e estimativas
Os objetos de ML definem uma configuração de treinamento específica a ser aplicada em um conjunto de dados. Algumas operações são comuns em objetos de ML. Os objetos de solução incluem classificação, clustering, regressão e semelhança.
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 objetos PredictabilityEstimate estimam quais campos em um conjunto de dados são previsíveis e os recursos nos quais essa previsibilidade se baseia.
Para obter mais informações, consulte:- Lojas
Os objetos de ML são mantidos em um armazenamento específico para cada tipo de objeto. Cada classe de armazenamento inclui métodos para operações de adição, obtenção, atualização e exclusão.
Para obter mais informações, consulte:- Versões
Cada objeto treinado resulta em uma nova versão na qual você pode executar tarefas. Use a API de versão para obter qualquer versão de solução e executar tarefas nela.
Para obter mais informações, consulte:
Reunindo tudo: fluxos da API de ML
Requisitos do codificador de objeto de ML:
- Necessário em soluções de API de semelhança.
- Necessário em soluções de API de cluster, a menos que esteja usando o algoritmo de distância Levenshtein, caso em que os codificadores são opcionais.
- Opcional para soluções de classificação e regressão.
- Indisponível para estimativas de previsibilidade.
Introdução ao treinamento da solução de API de ML
Siga este detalhamento de exemplo para saber como configurar e treinar uma solução.
- Configurar e treinar uma solução
- Defina um conjunto de dados usando a API DatasetDefinition.
var myData = new sn_ml.DatasetDefinition({ 'tableName' : 'incident', 'fieldNames' : ['assignment_group', 'short_description', 'description'], 'encodedQuery' : 'activeANYTHING' }); - Use o construtor para definir a solução, incluindo o conjunto de dados na configuração.
var mySolution = new sn_ml.ClassificationSolution({ 'label': "my solution definition", 'dataset' : myData, 'predictedFieldName' : 'assignment_group', 'inputFieldNames':['short_description'] }); - Adicione a definição de solução ao armazenamento usando o método add().
var my_unique_name = sn_ml.ClassificationSolutionStore.add(mySolution); - Treine a solução usando o método submitTrainingJob(). Depois que o treinamento for concluído, você poderá gerenciar a solução treinada usando uma API de versão de solução. Uma solução pode ser treinada novamente várias vezes. Cada treinamento resulta em uma nova "versão" de solução na qual você pode executar inferências.
var myClassifierVersion = mySolution.submitTrainingJob();
- Defina um conjunto de dados usando a API DatasetDefinition.
- Exibir todas as soluções de classificação em uma loja
- Você pode usar o método store getAllNames() para ver uma lista de todas as soluções que foram adicionadas ao armazenamento.
gs.print(JSON.stringify(JSON.parse(sn_ml.ClassificationSolutionStore.getAllNames()), null, 2));Na saída, o sistema nomeou a solução
como ml_x_snc_global_global_my_solution_definition. Use este nome em exemplos subsequentes para obter informações da versão.*** Script: [ "ml_incident_assignment", "ml_x_snc_global_global_my_solution_definition", "ml_incident_categorization" ]
Introdução às versões da solução de API de ML
Siga estes exemplos de detalhamentos para saber como gerenciar versões de soluções treinadas.
- Verificar status de treinamento
Obtenha a solução de classificação na loja, escolha uma versão e verifique o status de treinamento. Os métodos usados para verificar o status de treinamento são aplicáveis a todos os tipos de objeto de ML.
- Obtenha a solução do armazenamento de soluções de classificação usando o método get().
// Get the solution created in the previous example from the classification solution store var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_my_solution_definition'); - Acesse a versão mais recente da solução usando o método de solução getLatestVersion() e obtenha seu status de treinamento usando o método de versão getStatus().
// Access the latest version of the solution and print its training status gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus(), null, 2)));Saída quando o treinamento é concluído:
*** Script: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}
- Obtenha a solução do armazenamento de soluções de classificação usando o método get().
- Obter previsões usando uma versão de solução
- Depois que a solução tiver sido treinada, obtenha a versão treinada e execute uma previsão nela. Obtenha a solução que você criou na loja. Em seguida, escolha a versão treinada e preveja a versão treinada.Nota:Não é possível fazer previsões sobre codificadores e estimativas de previsibilidade.
- Obtenha a solução do armazenamento de soluções de classificação usando o método get().
// Get the solution created in the first example from the classification solution store var mlSolution = sn_ml.ClassificationSolutionStore.get('ml_x_snc_global_global_my_solution_definition'); - Use o método get() da API GlideRecord para fornecer um registro da tabela Incidente [incidente].
// single GlideRecord input var input = new GlideRecord("incident"); input.get("<sys_id>"); - Opcional. Configure o parâmetro ClassificationSolutionVersion – prever() método options para retornar os três principais resultados e retornar todos os resultados.
// configure optional parameters var options = {}; options.top_n = 3; options.apply_threshold = false; - Declarar uma variável chamada
resultadose atribuí-la ao trabalho de previsão. Para executar o trabalho de previsão, obtenha a versão da solução mais recente usando o método ClassificationSolution – getLatestVersion() e chame o método ClassificationSolutionVersion – prever() nela.var results = mlSolution.getLatestVersion().predict(input, options); - Imprima a saída dos resultados previstos.
gs.print(JSON.stringify(JSON.parse(results), null, 2));Exemplo de saída de resultados previstos:
*** Script: { "<sys_id>": [ { "confidence": 99, "threshold": 24.75, "predictedValue": "Email", "predictedSysId": "" }, { "confidence": 5.88210244009169, "threshold": 100, "predictedValue": "Email (I/f)", "predictedSysId": "" }, { "confidence": 2.3461203499840932, "threshold": 14.81, "predictedValue": "Authentication", "predictedSysId": "" } ] }
- Obtenha a solução do armazenamento de soluções de classificação usando o método get().