Verwenden von APIs für maschinelles Lernen
Verwenden Sie ServiceNow Machine Learning (ML)-APIs, um Modelle für maschinelles Lernen zu trainieren und Rückschlüsse auszuführen.
ML-APIs ermöglichen das Trainieren von Lösungen und das Verwalten von Lösungsversionen. Sie können aktive Versionen abrufen und festlegen, den Trainingsstatus überwachen und vieles mehr. Die ML-API stellt auch Encoder bereit, die die Verwendung von Begriffshäufigkeit – inverse Dokumenthäufigkeit (TF-IDF) als Wortkorpus ermöglichen. Schätzungen der Vorhersagbarkeit ermöglichen die Bewertung des Vorhersagewerts von Tabellenspalten.
ML-API-Klassenübersicht
In diesem Abschnitt werden kurz Klassen zum Trainieren von ML-Lösungen und zum Ausführen von Rückschlüssen mit trainierten Lösungen beschrieben.
- Datensätze
Ein Datensatz ist Eine Reihe von Datensätzen, einschließlich Tabellenname, Spalten und Zeilenauswahlkriterien, die als Eingabe für ML-Trainingsalgorithmen verwendet werden sollen. Datensätze enthalten nicht die tatsächlichen Daten.
Weitere Informationen finden Sie unter DatasetDefinition.
- ML-Objekte – Lösungen, Codierer und Schätzungen
ML-Objekte definieren eine bestimmte Trainingskonfiguration, die auf einen Datensatz angewendet werden soll. Einige Vorgänge sind für ML-Objekte gleich. Zu den Lösungsobjekten gehören Klassifizierung, Clustering, Regression und Ähnlichkeit.
Codierer sind Textverarbeitungsobjekte, die entweder vortrainiert oder basierend auf den von Ihnen bereitgestellten Sprachdatensätzen trainiert werden. Sie können Encoder trainieren, die bestimmen, wie das System Textfelder interpretiert und verarbeitet. Für ML-Lösungen, die Text enthalten, können Sie einen Encoder trainieren, um anzugeben, wie Text verarbeitet werden soll, und den trainierten Encoder in einer Lösung zu verwenden.
PredictabilityEstimate-Objekte schätzen, welche Felder in einem Datensatz vorhersehbar sind und auf welchen Funktionen diese Vorhersagbarkeit basiert.
Weitere Informationen finden Sie unter:- Speicher
ML-Objekte werden in einem bestimmten Speicher für jeden Objekttyp verwaltet. Jede Speicherklasse enthält Methoden für die Vorgänge Hinzufügen, Abrufen, Aktualisieren und Löschen.
Weitere Informationen finden Sie unter:- Versionen
Jedes trainierte Objekt führt zu einer neuen Version, für die Sie Aufgaben ausführen können. Verwenden Sie die Versions-API, um eine beliebige Lösungsversion abzurufen und Aufgaben dafür auszuführen.
Weitere Informationen finden Sie unter:
Zusammenfassung: ML-API-Flows
Anforderungen für ML-Objektcodierer:
- In Ähnlichkeits-API-Lösungen erforderlich.
- Erforderlich in Clustering-API-Lösungen, es sei denn, der Levenshtein-Distanzalgorithmus wird verwendet. In diesem Fall sind Encoder optional.
- Optional für Klassifizierungs- und Regressionslösungen.
- Nicht verfügbar für Vorhersagbarkeitsschätzungen.
Erste Schritte mit der Schulung der ML-API-Lösung
Folgen Sie dieser Beispielaufgliederung, um zu erfahren, wie eine Lösung konfiguriert und trainiert wird.
- Konfigurieren und trainieren Sie eine Lösung
- Definieren Sie einen Datensatz mit der DatasetDefinition- API.
var myData = new sn_ml.DatasetDefinition({ 'tableName' : 'incident', 'fieldNames' : ['assignment_group', 'short_description', 'description'], 'encodedQuery' : 'activeANYTHING' }); - Verwenden Sie den Konstruktor, um die Lösung zu definieren, einschließlich des Datensatzes in der Konfiguration.
var mySolution = new sn_ml.ClassificationSolution({ 'label': "my solution definition", 'dataset' : myData, 'predictedFieldName' : 'assignment_group', 'inputFieldNames':['short_description'] }); - Fügen Sie dem Speicher die Lösungsdefinition mit der add()- Methode hinzu.
var my_unique_name = sn_ml.ClassificationSolutionStore.add(mySolution); - Trainieren Sie die Lösung mit der Methode „submitTrainingJob() “. Nach Abschluss des Trainings können Sie die trainierte Lösung mithilfe einer Lösungsversions-API verwalten. Eine Lösung kann mehrmals neu trainiert werden. Jedes Training führt zu einer neuen Lösung „Version“, für die Sie Rückschlüsse ausführen können.
var myClassifierVersion = mySolution.submitTrainingJob();
- Definieren Sie einen Datensatz mit der DatasetDefinition- API.
- Zeigen Sie alle Klassifizierungslösungen in einem Speicher an
- Sie können die Methode getAllNames() des Speichers verwenden, um eine Liste aller Lösungen anzuzeigen, die dem Speicher hinzugefügt wurden.
gs.print(JSON.stringify(JSON.parse(sn_ml.ClassificationSolutionStore.getAllNames()), null, 2));In der Ausgabe hat das System die Lösung
ml_x_snc_global_global_my_solution_definition genannt. Verwenden Sie diesen Namen in den folgenden Beispielen, um Versionsinformationen abzurufen.*** Script: [ "ml_incident_assignment", "ml_x_snc_global_global_my_solution_definition", "ml_incident_categorization" ]
Erste Schritte mit ML-API-Lösungsversionen
Folgen Sie diesen Beispielaufgliederungen, um zu erfahren, wie trainierte Lösungsversionen verwaltet werden.
- Überprüfen Sie den Trainingsstatus
Rufen Sie die Klassifizierungslösung aus dem Store ab, wählen Sie eine Version aus, und überprüfen Sie den Trainingsstatus. Die zur Überprüfung des Trainingsstatus verwendeten Methoden gelten für alle ML-Objekttypen.
- Ruft die Lösung mit der Methode get() aus dem Klassifizierungslösungsspeicher ab.
// 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'); - Greifen Sie mit der Lösungsmethode getLatestVersion() auf die neueste Lösungsversion zu, und rufen Sie den Trainingsstatus mit der Versionsmethode getStatus() ab.
// Access the latest version of the solution and print its training status gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus(), null, 2)));Ausgabe nach Abschluss des Trainings:
*** Script: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}
- Ruft die Lösung mit der Methode get() aus dem Klassifizierungslösungsspeicher ab.
- Rufen Sie Vorhersagen mithilfe einer Lösungsversion ab
- Nachdem die Lösung trainiert wurde, rufen Sie die trainierte Version ab und führen eine Vorhersage dafür aus. Rufen Sie die von Ihnen erstellte Lösung aus dem Store ab. Wählen Sie als Nächstes die trainierte Version aus, und sagen Sie die trainierte Version vorher.Hinweis:Vorhersagen können nicht für Encoder und Vorhersagbarkeitsschätzungen getroffen werden.
- Ruft die Lösung mit der Methode get() aus dem Klassifizierungslösungsspeicher ab.
// 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'); - Verwenden Sie die Methode get() der GlideRecord- API, um einen Datensatz aus der Incident-Tabelle [incident] bereitzustellen.
// single GlideRecord input var input = new GlideRecord("incident"); input.get("<sys_id>"); - Optional. Konfigurieren Sie den Parameter ClassificationSolutionVersion – prediction() method options, um die ersten drei Ergebnisse zurückzugeben und alle Ergebnisse zurückzugeben.
// configure optional parameters var options = {}; options.top_n = 3; options.apply_threshold = false; - Deklarieren Sie eine Variable mit dem Namen „
results“, und weisen Sie sie der Vorhersageaufgabe zu. Um den Vorhersageauftrag auszuführen, rufen Sie die neueste Lösungsversion mit der Methode ClassificationSolution – getLatestVersion() ab und rufen die Methode ClassificationSolutionVersion –predict( ) auf.var results = mlSolution.getLatestVersion().predict(input, options); - Drucken Sie die Ausgabe der vorhergesagten Ergebnisse.
gs.print(JSON.stringify(JSON.parse(results), null, 2));Beispielausgabe für vorhergesagte Ergebnisse:
*** 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": "" } ] }
- Ruft die Lösung mit der Methode get() aus dem Klassifizierungslösungsspeicher ab.