0 / 0
Zurück zur englischen Version der Dokumentation
Entitäten mit einem angepassten Umsetzungsprogrammmodell erkennen
Letzte Aktualisierung: 07. Nov. 2024
Entitäten mit einem angepassten Umsetzungsprogrammmodell erkennen

Wenn Sie keine feste Gruppe von Begriffen haben oder keine Entitäten ausdrücken können, die Sie als reguläre Ausdrücke erkennen möchten, können Sie ein angepasstes Umsetzungsmodell erstellen. Das Modell basiert auf dem vorab trainierten Slate IBM Foundation-Modell.

Wenn Sie das vortrainierte Modell verwenden, können Sie mehrsprachige Modelle erstellen. Sie müssen keine separaten Modelle für jede Sprache haben.

Sie benötigen ausreichende Trainingsdaten, um hohe Qualität zu erreichen (2000-5000 pro Entitätstyp). Wenn GPUs verfügbar sind, verwenden Sie sie für das Training.

Hinweis:

Das Trainieren von Transformatormodellen ist CPU-und speicherintensiv. Die vordefinierten Umgebungen sind nicht groß genug, um das Training abzuschließen. Erstellen Sie eine angepasste Notebookumgebung mit einer größeren CPU-und Speicherkapazität und verwenden Sie diese zum Ausführen Ihres Notebooks. Wenn GPUs verfügbar sind, wird dringend empfohlen, sie zu verwenden. Siehe Eigene Umgebungsvorlage erstellen.

Eingabedatenformat

Die Trainingsdaten werden durch ein Array mit mehreren JSON-Objekten dargestellt. Jedes JSON-Objekt stellt eine Trainingsinstanz dar und muss ein Feld text und ein Feld mentions enthalten. Das Feld text stellt den Text des Trainingssatzes dar und mentions ist ein Array von JSON-Objekten mit dem Text, dem Typ und der Position jeder Erwähnung:

[
  {
    "text": str,
    "mentions": [{
      "location": {
        "begin": int,
        "end": int
      },
      "text": str,
      "type": str
    },...]
  },...
]

Beispiel:

[
    {
        "id": 38863234,
        "text": "I'm moving to Colorado in a couple months.",
        "mentions": [{
            "text": "Colorado",
            "type": "Location",
            "location": {
                "begin": 14,
                 "end": 22
                 }
            },
            {
                "text": "couple months",
                "type": "Duration",
                "location": {
                    "begin": 28,
                     "end": 41
                     }
            }]
    }
]

Modell trainieren

Der Transformatoralgorithmus verwendet das vortrainierte Slate-Modell.

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

Geben Sie Folgendes ein, um die Optionen für die Konfiguration des Transformer-Trainings abzurufen:

help(watson_nlp.workflows.entity_mentions.transformer.Transformer.train)

Mustercode

import watson_nlp
from watson_nlp.toolkit.entity_mentions_utils.train_util import prepare_stream_of_train_records_from_JSON_collection

# load the syntax models for all languages to be supported
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
syntax_models = [syntax_model]

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

# prepare the train and dev data
# entity_train_data is a directory with one or more json files in the input format specified above
train_data_stream = prepare_stream_of_train_records_from_JSON_collection('entity_train_data')
dev_data_stream = prepare_stream_of_train_records_from_JSON_collection('entity_train_data')

# train a transformer workflow model
trained_workflow = watson_nlp.workflows.entity_mentions.transformer.Transformer.train(
    train_data_stream=train_data_stream,
    dev_data_stream=dev_data_stream,
    syntax_models=syntax_models,
    template_resource=pretrained_model_resource,
    num_train_epochs=3,
)

Modell auf neue Daten anwenden

Wenden Sie das Workflowmodell des trainierten Transformators auf neue Daten an, indem Sie die Methode run() verwenden, wie Sie es bei allen vorhandenen vorab trainierten Blöcken verwenden würden.

Codebeispiel

trained_workflow.run('Bruce is at Times Square')

Modell speichern und laden

Das angepasste Transformatormodell kann wie jedes andere Modell gespeichert werden, wie im Abschnitt Angepasste Modelle speichern und ladenunter Verwendung von ibm_watson_studio_libbeschrieben.

Zum Laden des angepassten Umsetzungsprogrammmodells sind zusätzliche Schritte erforderlich:

  1. Stellen Sie sicher, dass Sie über ein Zugriffstoken auf der Seite Zugriffssteuerung in der Registerkarte Verwalten Ihres Projekts verfügen. Nur Projektadministratoren können Zugriffstokens erstellen. Das Zugriffstoken kann über Viewer -oder Editor -Zugriffsberechtigungen verfügen. Nur Bearbeiter können das Token in ein Notebook einfügen.

  2. Fügen Sie das Projekttoken zum Notebook hinzu, indem Sie in der Aktionsleiste des Notebooks auf Mehr > Projekttoken einfügen klicken und dann die Zelle ausführen.

    Durch Ausführen der eingefügten verdeckten Codezelle wird ein wslib -Objekt erstellt, das Sie für Funktionen in der Bibliothek ibm-watson-studio-lib verwenden können. Informationen zu den verfügbaren ibm-watson-studio-lib -Funktionen finden Sie unter Using ibm-watson-studio-lib for Python.

  3. Laden Sie das Modell herunter und extrahieren Sie es in Ihrer lokalen Laufzeitumgebung:

    import zipfile
    model_zip = 'trained_workflow_file'
    model_folder = 'trained_workflow_folder'
    wslib.download_file('trained_workflow', file_name=model_zip)
    
    with zipfile.ZipFile(model_zip, 'r') as zip_ref:
      zip_ref.extractall(model_folder)
    
  4. Laden Sie das Modell aus dem extrahierten Ordner:

    trained_workflow = watson_nlp.load(model_folder)
    

Ü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