Mithilfe von APIs für maschinelles Lernen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • Verwenden Sie APIs für maschinelles Lernen (ML) ServiceNow, um Modelle für maschinelles Lernen zu trainieren und Inferenzen 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 Schulungsstatus ü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.

    Hinweis:
    Predictive Intelligence APIs werden ausgeführt Patch 7 mit vollständigen Rechten ausgeführt. Nach diesem Release gewähren Sie Zugriff über ACLs. Weitere Informationen finden Sie unter Query ACLs.

    Übersicht über die ML-API-Klassen

    In diesem Abschnitt werden Klassen zum Trainieren von ML-Lösungen und zum Ausführen von Rückschlüssen mit trainierten Lösungen kurz beschrieben.

    Datensätze

    Ein Datensatz ist Eine Reihe von Datensätzen, einschließlich eines Tabellennamens, Spalten und Zeilenauswahlkriterien, die als Eingabe für ML-Trainingsalgorithmen verwendet werden. 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 gelten für ML-Objekte gemeinsam. Zu den Lösungsobjekten gehören Klassifizierung, Clustering, Regression und Ähnlichkeit.

    Encoder 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 wird, und um 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.

    Speicher

    ML-Objekte werden für jeden Objekttyp in einem bestimmten Speicher verwaltet. Jede Speicherklasse enthält Methoden für Hinzufügungs-, Abruf-, Aktualisierungs- und Löschvorgänge.

    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.

    Zusammenfassung: ML-API-Flows

    Sie können den folgenden Flow verwenden, um Lösungen, Encoder und Vorhersagbarkeitsschätzungen zu konfigurieren und zu trainieren:
    Abbildung : 1. ML-API-Flow – Schulung für Lösung, Encoder und Schätzung
    Diese Abbildung veranschaulicht den API-Flow vom Definieren des Datensatzes über das Erstellen eines ML-Objekts, das Hinzufügen des ML-Objekts zu einem Speicher und das Trainieren des ML-Objekts.
    Hinweis:
    Die Encoderdefinitionen unterstützen mehrere Datensatzdefinitionen, haben jedoch denselben Trainings-Flow.
    Um eine Lösung mit einem Encoder zu trainieren, erstellen Sie zuerst den Encoder, und fügen Sie dann den Encoder in die Lösungskonfiguration ein.
    Abbildung : 2. ML-API-Flow – Lösungs-API-Training mit Encoder
    Diese Abbildung zeigt den API-Flow von der Definition des Datensatzes, der Erstellung eines Lösungsobjekts unter Angabe eines vorhandenen Encoders, dem Hinzufügen der Lösung zu einem Store und dem Trainieren der Lösung.

    Anforderungen an den ML-Objektcodierer:

    • Erforderlich in Ähnlichkeits-API-Lösungen.
    • In API-Lösungen für das Clustering erforderlich, es sei denn, der Entfernungsalgorithmus von Levenshtein wird verwendet. In diesem Fall sind Encoder optional.
    • Optional für Klassifizierungs- und Regressionslösungen.
    • Nicht verfügbar für Vorhersagbarkeitsschätzungen.

    Erste Schritte beim Training der ML-API-Lösung

    Folgen Sie dieser Beispielaufgliederung, um zu erfahren, wie Sie eine Lösung konfigurieren und trainieren können.

    Konfigurieren und trainieren Sie eine -Lösung
    Diese Abbildung zeigt den API-Flow vom Definieren des Datensatzes über das Erstellen eines Klassifizierungslösungsobjekts, das Hinzufügen der Lösung zu einem Store und das Trainieren der Lösung.
    1. Definieren Sie einen Datensatz mit der DatasetDefinition -API.
      var myData = new sn_ml.DatasetDefinition({
      
        'tableName' : 'incident',
        'fieldNames' : ['assignment_group', 'short_description', 'description'],
        'encodedQuery' : 'activeANYTHING'
      
      });
    2. 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']
      
      });
    3. Fügen Sie die Lösungsdefinition mit der Methode „add()“ dem Store hinzu.
      var my_unique_name = sn_ml.ClassificationSolutionStore.add(mySolution);
    4. Trainieren Sie die Lösung mit der Methode „submitTrainingJob()“. Nach Abschluss des Trainings können Sie die trainierte Lösung mit einer Lösungsversions-API verwalten. Eine Lösung kann mehrmals neu trainiert werden. Jedes Training führt zu einer neuen Lösungsversion, für die Sie Inferenzen ausführen können.
      var myClassifierVersion = mySolution.submitTrainingJob();
    Zeigen Sie alle Klassifizierungslösungen in einem Store an
    Sie können die getAllNames() -Methode des Stores verwenden, um eine Liste aller Lösungen anzuzeigen, die dem Store 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_definitionbenannt. Verwenden Sie diesen Namen in den folgenden Beispielen, um Versionsinformationen zu erhalten.

    *** Script: [
      "ml_incident_assignment",
      "ml_x_snc_global_global_my_solution_definition",
      "ml_incident_categorization"
    ]

    Erste Schritte mit Versionen der ML-API-Lösungen

    Folgen Sie diesen Beispielaufgliederungen, um zu erfahren, wie Sie trainierte Lösungsversionen verwalten.

    Überprüfen Sie den Schulungsstatus

    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.

    Diese Abbildung veranschaulicht den API-Flow beim Zugriff auf eine Klassifizierungslösung im Store, bei der Auswahl einer Lösungsversion und beim Überprüfen des Trainingsstatus.
    1. Rufen Sie die Lösung mit der get()- Methode 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');
    2. Greifen Sie mit der Lösungsmethode getLatestVersion() auf die aktuelle Lösungsversion zu, und rufen Sie ihren 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, wenn das Training abgeschlossen ist:

    Vorhersagen mit einer Lösungsversion abrufen
    Nachdem die Lösung trainiert wurde, rufen Sie die trainierte Version ab, und führen Sie 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. Diese Abbildung veranschaulicht den API-Flow vom Zugriff auf die Klassifizierungslösung im Store, der Auswahl einer Lösungsversion und dem Abrufen von Vorhersageeingabedaten.
    Hinweis:
    Für Encoder und Vorhersagbarkeitsschätzungen können keine Vorhersagen getroffen werden.
    1. Rufen Sie die Lösung mit der get()- Methode 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');
    2. Verwenden Sie die get()- Methode der GlideRecord- API, um einen Datensatz aus der Incident-Tabelle [incident] bereitzustellen.
      // single GlideRecord input
      var input = new GlideRecord("incident");
      input.get("<sys_id>");
    3. Optional. Konfigurieren Sie den Parameter ClassificationSolutionVersion – prediction()- Methode options, um die ersten drei Ergebnisse und alle Ergebnisse zurückzugeben.
      // configure optional parameters
      var options = {};
      options.top_n = 3;
      options.apply_threshold = false;
    4. Deklarieren Sie eine Variable mit dem Namen „ Ergebnisse“, und weisen Sie sie dem Vorhersageauftrag zu. Um den Vorhersageauftrag auszuführen, rufen Sie die neueste Lösungsversion mit der Methode „ClassificationLösung – getLatestVersion()“ ab und rufen die Methode „ClassificationLösungVersion – vorhersagen“ auf.
      var results = mlSolution.getLatestVersion().predict(input, options);
    5. 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": ""
          }
        ]
      }