0 / 0
Zurück zur englischen Version der Dokumentation
Stimmung mit einem angepassten Umsetzungsprogrammmodell extrahieren
Letzte Aktualisierung: 07. Nov. 2024
Stimmung mit einem angepassten Umsetzungsprogrammmodell extrahieren

Sie können eigene Modelle für die Stimmungsextraktion auf der Basis des Slate IBM Foundation-Modells trainieren. Dieses vortrainierte Modell kann für Ihren Anwendungsfall optimiert werden, indem es anhand Ihrer spezifischen Eingabedaten trainiert wird.

Eine Liste der verfügbaren Slate-Modelle finden Sie in dieser Tabelle:

Liste der verfügbaren Slate-Modelle und deren Beschreibungen
Modell Beschreibung
pretrained-model_slate.153m.distilled_many_transformer_multilingual_uncased Generisches Mehrzweckmodell
pretrained-model_slate.125m.finance_many_transformer_en_cased Auf Finanzinhalte vortrainiertes Modell
pretrained-model_slate.110m.cybersecurity_many_transformer_en_uncased Auf Cybersicherheitsinhalte vortrainiertes Modell
pretrained-model_slate.125m.biomedical_many_transformer_en_cased Auf biomedizinischen Inhalt vortrainiertes Modell
Hinweis: Das Trainieren von Transformatormodellen ist CPU-und speicherintensiv. Je nach Größe Ihrer Trainingsdaten ist die Umgebung möglicherweise nicht groß genug, um das Training abzuschließen. Wenn während des Trainings Probleme mit dem Notebook-Kernel auftreten, erstellen Sie eine angepasste Notebook-Umgebung mit größerer CPU- und Speicherkapazität und verwenden Sie diese Umgebung zum Ausführen Ihres Notebooks. Verwenden Sie eine GPU-basierte Umgebung für das Training und auch Inferenzzeit, wenn sie für Sie verfügbar ist. Siehe Eigene Umgebungsvorlage erstellen.

Format der Eingabedaten für das Trainieren

Sie müssen ein Trainings-und Entwicklungsdataset für die Trainingsfunktion bereitstellen. Die Entwicklungsdaten betragen in der Regel etwa 10% der Trainingsdaten. Jedes Trainings-oder Entwicklungsbeispiel wird als JSON-Objekt dargestellt. Sie muss ein Feld text und ein Feld labels enthalten. Der Text stellt den Text des Trainingsbeispiels dar und das Feld labels ist ein Array, das genau eine Beschriftung positiv, neutraloder negativenthält.

Das folgende Beispiel zeigt ein Array mit Beispieltrainingsdaten:

  [
      {
      "text": "I am happy",
      "labels": ["positive"]
      },
      {
      "text": "I am sad",
      "labels": ["negative"]
      },
      {
      "text": "The sky is blue",
      "labels": ["neutral"]
      }
  ]

Die Trainings-und Entwicklungsdatasets werden als Datenströme aus Arrays von JSON-Objekten erstellt. Zum Erstellen der Datenströme können Sie die Dienstprogrammmethode prepare_data_from_jsonverwenden:

import watson_nlp
from watson_nlp.toolkit.sentiment_analysis_utils.training import train_util as utils

training_data_file = "train_data.json"
dev_data_file = "dev_data.json"

train_stream = utils.prepare_data_from_json(training_data_file)
dev_stream = utils.prepare_data_from_json(dev_data_file)

Vorab trainierte Modellressourcen laden

Das vortrainierte Slate IBM Foundation-Modell muss geladen werden, bevor es an den Trainingsalgorithmus übergeben wird. Darüber hinaus müssen Sie die Syntaxanalysemodelle für die in Ihren Eingabetexten verwendeten Sprachen laden.

So laden Sie das Modell:

# Load the pretrained Slate IBM Foundation model
pretrained_model_resource = watson_nlp.load('<pretrained Slate model>')

# Download relevant syntax analysis models
syntax_model_en = watson_nlp.load('syntax_izumo_en_stock')
syntax_model_de = watson_nlp.load('syntax_izumo_de_stock')

# Create a list of all syntax analysis models
syntax_models = [syntax_model_en, syntax_model_de]

Modell trainieren

Geben Sie für alle Optionen, die für die Konfiguration des Stimmungstransformators verfügbar sind, Folgendes ein:

help(watson_nlp.workflows.sentiment.AggregatedSentiment.train_transformer)

Die Methode train_transformer erstellt ein Workflowmodell, das automatisch eine Syntaxanalyse und die trainierte Stimmungsklassifikation ausführt. Aktivieren Sie in einem nachfolgenden Schritt die Spracherkennung, damit das Workflowmodell für Eingabetext ohne vorausgesetzte Informationen ausgeführt werden kann.

Das folgende Beispiel zeigt einen Aufruf unter Verwendung der Eingabedaten und des vorab trainierten Modells aus dem vorherigen Abschnitt (Modell trainieren):

from watson_nlp.workflows.sentiment import AggregatedSentiment

sentiment_model = AggregatedSentiment.train_transformer(
          train_data_stream = train_stream,
          dev_data_stream = dev_stream,
          syntax_model=syntax_models,
         	pretrained_model_resource=pretrained_model_resource,
          label_list=['negative', 'neutral', 'positive'],
          learning_rate=2e-5,
          num_train_epochs=10,
          combine_approach="NON_NEUTRAL_MEAN",
          keep_model_artifacts=True
        )
lang_detect_model = watson_nlp.load('lang-detect_izumo_multi_stock')

sentiment_model.enable_lang_detect(lang_detect_model)

Modell auf neue Daten anwenden

Nachdem Sie das Modell für ein Dataset trainiert haben, wenden Sie das Modell auf neue Daten an, indem Sie die Methode run() verwenden, wie Sie es für alle vorhandenen vorab trainierten Blöcke verwenden würden.

Beispielcode:

input_text = 'new input text'
sentiment_predictions = sentiment_model.run(input_text)

Übergeordnetes Thema: Eigene Modelle erstellen

Generative KI-Suche und -Antwort
Diese Antworten werden von einem großen Sprachmodell in watsonx.ai basierend auf dem Inhalt der Produktdokumentation generiert. Weitere Informationen