Entitätsextraktionsmodelle für das Gesundheitswesen trainieren

AutoML Entity Extraction for Healthcare dient als Basis zum Trainieren benutzerdefinierter Healthcare Natural Language-Modelle. Nachdem Sie ein Modell trainiert haben, können Sie Vorhersagen vom Modell anfragen. Wenn Sie zur Entitätsextraktion medizinischen Text an das Modell senden, wird eine Vorhersage erstellt.

AutoML unterstützt folgende Vorhersagemodi:

  • Onlinevorhersage, bei der Sie ein einzelnes Dokument übergeben und das Modell die Analyse synchron zurückgibt
  • Batchvorhersage, bei der Sie eine Sammlung von Dokumenten übergeben, die das Modell asynchron analysiert.

AutoML API aktivieren

Bevor Sie ein Modell mit AutoML Entity Extraction for Healthcare trainieren, müssen Sie die AutoML API für Ihr Google Cloud-Projekt aktivieren.

Führen Sie folgende Schritte aus, um die AutoML API zu aktivieren:

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  4. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“
    2. Wählen Sie Ihr Projekt aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

    4. Klicken Sie auf Erstellen und fortfahren.
    5. Um Zugriff auf Ihr Projekt zu gewähren, weisen Sie Ihrem Dienstkonto die folgenden Rollen zu: Projekt > Inhaber .

      Wählen Sie in der Liste Rolle auswählen eine Rolle aus.

      Klicken Sie auf Weitere Rolle hinzufügen, um weitere Rollen hinzuzufügen.

    6. Klicken Sie auf Weiter.
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  5. Erstellen Sie einen Dienstkontoschlüssel:

    1. Klicken Sie in der Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  6. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

  7. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  8. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  9. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“
    2. Wählen Sie Ihr Projekt aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

    4. Klicken Sie auf Erstellen und fortfahren.
    5. Um Zugriff auf Ihr Projekt zu gewähren, weisen Sie Ihrem Dienstkonto die folgenden Rollen zu: Projekt > Inhaber .

      Wählen Sie in der Liste Rolle auswählen eine Rolle aus.

      Klicken Sie auf Weitere Rolle hinzufügen, um weitere Rollen hinzuzufügen.

    6. Klicken Sie auf Weiter.
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  10. Erstellen Sie einen Dienstkontoschlüssel:

    1. Klicken Sie in der Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  11. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

  12. AutoML Natural Language API aktivieren.

    Aktivieren Sie die API

  13. Installieren und initialisieren Sie Google Cloud CLI.

Berechtigungen einrichten

Zum Trainieren benutzerdefinierter Modelle, die AutoML Entity Extraction for Healthcare als Basismodell verwenden, müssen Sie ein Dienstkonto mit der Berechtigung healthcare.nlpservce.analyzeEntities verwenden, die in der Rolle healthcare.nlpServiceViewerenthalten ist.

Führen Sie zum Zuweisen dieser Rolle den Befehl gcloud projects add-iam-policy-binding aus:

gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:SERVICE_ACCOUNT_ID --role roles/healthcare.nlpServiceViewer

Modell trainieren

Modell über die AutoML-UI trainieren

Führen Sie folgende Schritte aus, um ein Modell über die AutoML-UI zu trainieren:

  1. Öffnen Sie die Benutzeroberfläche von AutoML Natural Language und klicken Sie dann unter AutoML Entity Extraction auf Erste Schritte.

    Auf der Seite Datasets wird der Status zuvor erstellter Datasets für das aktuelle Projekt angezeigt. Wenn Sie mit einem Dataset für ein anderes Projekt trainieren möchten, wählen Sie das betreffende Projekt in der Liste rechts oben in der Titelleiste aus.

  2. Erstellen Sie ein Dataset oder wählen Sie das Dataset aus, das Sie zum Trainieren des benutzerdefinierten Modells verwenden möchten.

    Der Anzeigename des ausgewählten Datasets wird in der Titelleiste angezeigt. Die einzelnen Dokumente im Dataset werden zusammen mit ihren Labels aufgelistet.

  3. Importieren Sie eine CSV-Datei, die ein Dataset mit Texten oder Dokumenten in einem strukturierten JSONL-Format enthält.

  4. Nachdem Sie das Dataset geprüft haben, klicken Sie unter der Titelleiste auf den Tab Trainieren.

    Wenn Sie das erste Modell mit diesem Dataset trainieren, bietet die Seite "Training" eine grundlegende Analyse des Datasets und informiert Sie über dessen Eignung für das Training. Wenn AutoML Natural Language Änderungen vorschlägt, können Sie zu der Seite Textelemente zurückkehren und Dokumente oder Labels hinzufügen.

    Wenn Sie andere Modelle aus diesem Dataset trainiert haben, werden auf der Seite "Training" die grundlegenden Bewertungswerte dieser Modelle angezeigt.

  5. Klicken Sie auf Training starten.

  6. Geben Sie einen Namen für das Modell ein.

    Der Modellname darf maximal 32 Zeichen lang sein und nur Buchstaben, Zahlen und Unterstriche enthalten. Das erste Zeichen muss ein Buchstabe sein.

  7. Wenn Sie das Modell automatisch bereitstellen möchten, wählen Sie die Option Modell nach Abschluss des Trainings bereitstellen.

  8. Wählen Sie die Option Healthcare-Entitätsextraktion aktivieren.

  9. Klicken Sie auf Training starten.

Das Training kann mehrere Stunden dauern. Nachdem das Modell trainiert wurde, erhalten Sie eine E-Mail-Benachrichtigung.

Modell über die AutoML API trainieren

Zum Trainieren eines Modells mit der AutoML API verwenden Sie die Methode projects.locations.models.create.

  1. Speichern Sie den Anfragetext unten in einer Datei mit dem Namen request.json. Geben Sie in der Anfrage die folgenden Informationen an:

    • DISPLAY_NAME: Anzeigename für das Modell
    • DATASET_ID: Die Dataset-ID
    {
    "displayName": "DISPLAY_NAME",
    "dataset_id": "DATASET_ID",
    "textExtractionModelMetadata": {
       "model_hint": "healthcare"
    }
    }
    
  2. Führen Sie den Befehl projects.locations.models.create aus:

    curl

    Führen Sie folgenden Befehl aus, um die POST-Anfrage mit curl zu erstellen:

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models
    

    PowerShell

    Führen Sie folgenden Befehl aus, um die POST-Anfrage mit Windows PowerShell zu erstellen:

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models" | Select-Object -Expand Content
    

    Die Ausgabe des Befehls sollte in etwa folgendem Beispiel entsprechen. Sie können den Status der Aufgabe anhand der Vorgangs-ID abrufen. Weitere Informationen finden sich unter Status eines Vorgangs abrufen.

    {
      "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
        "createTime": "CREATE_TIME",
        "updateTime": "UPDATE_TIME",
        "cancellable": true
      }
    }
    

Vorhersagen erstellen

Vorhersagen mit der AutoML Natural Language-UI erstellen

Sie können AutoML Entity Extraction for Healthcare verwenden, um Vorhersagen für Dateien in Cloud Storage oder Text zu erstellen, den Sie über die Benutzeroberfläche von AutoML Natural Language eingeben.

Führen Sie folgende Schritte aus, um mit der Benutzeroberfläche von AutoML Natural Language eine Vorhersage zu erstellen:

  1. Öffnen Sie die Benutzeroberfläche von AutoML Natural Language und klicken Sie dann auf Modelle.

  2. Klicken Sie auf die Zeile für das Modell, das Sie zur Analyse des Dokuments verwenden möchten.

  3. Klicken Sie auf den Tab Testen und verwenden direkt unter der Titelleiste.

  4. Klicken Sie auf Datei in Cloud Storage auswählen und geben Sie den Cloud Storage-Pfad für eine PDF-Datei ein. Sie können auch auf Eingabetext unten klicken und dann den medizinischen Text für die Vorhersage eingeben.

  5. Klicken Sie auf Vorhersage.

Vorhersagen mit der Methode batchPredict erstellen

Um Ihr Modell für die Vorhersage mit asynchronem hohen Durchsatz auf eine Dokumentensammlung anwenden möchten, können Sie die Methode batchPredict nutzen. Um die Batch-Prognosemmethode zu verwenden, geben Sie Eingabe- und Ausgabe-URIs an, die auf Speicherorte in Cloud Storage-Buckets verweisen.

Der Eingabe-URI verweist auf eine JSONL-Datei, die den zu analysierenden Inhalt angibt. Die Ausgabe gibt einen Speicherort an, an dem die Ergebnisse aus der Batchvorhersage von AutoML gespeichert werden.

Führen Sie folgende Schritte aus, um Vorhersagen mithilfe der Methode batchPredict zu treffen:

  1. Erstellen Sie eine JSONL-Datei, die den zu analysierenden Inhalt enthält, entweder inline oder als Links zu Dateien, die in einem Cloud Storage-Bucket gespeichert sind.

    Das folgende Beispiel zeigt Inline-Content, der in der JSONL-Datei enthalten ist, wobei jedes Element die erforderliche eindeutige ID enthält.

    { "id": "0", "text_snippet": { "content": "Insulin regimen human 5 units IV administered.." } }
    { "id": "1", "text_snippet": { "content": "Blood pressure is normal." } }
    ...
    { "id": "n", "text_snippet": { "content": "Pulse: 80. BP: 110/70. Respirations: 16. Temp: 97.4." } }
    

    Das folgende Beispiel zeigt eine JSONL-Datei, die Links zu Eingabedateien enthält, die sich in Cloud Storage-Buckets befinden müssen.

    { "document": { "input_config": { "gcs_source": { "input_uris": [ "gs://FOLDER/FILENAME1" ] } } } }
    { "document": { "input_config": { "gcs_source": { "input_uris": [ "gs://FOLDER/FILENAME2" ] } } } }
    ...
    
  2. Erstellen Sie eine JSON-Datei, die den Speicherort der JSONL-Eingabedatei und das Ausgabeverzeichnis in einem Cloud Storage-Bucket bestimmt.

    {
    "input_config": { "gcs_source": { "input_uris": [ "gs://JSONL_FILE_LOCATION"] } },
    "output_config": { "gcs_destination": { "output_uri_prefix": "gs://OUTPUT_DIR" } }
    }
    
  3. Führen Sie die Methode batchPredict aus, um Vorhersagen zu treffen:

    curl

    Ersetzen Sie im Befehl batchPredict die folgenden Elemente:

    • Ersetzen Sie REQUEST_FILENAME durch den Speicherort Ihrer JSON-Anfragedatei
    • Ersetzen Sie PROJECT_ID/locations/REGION/models/MODEL_ID durch den vollständig qualifizierten Namen des Modells. Rufen Sie zum Ermitteln der Modell-ID in der AutoML-UI die Seite Modelle auf.

    Das folgende Beispiel zeigt eine POST-Anfrage, die curl verwendet .

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @REQUEST_FILENAME \
    https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID:batchPredict
    

    Die Antwort auf den Befehl sieht etwa so aus:

    {
    "name": "projects/824236087934/locations/REGION/operations/MODEL_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
      "createTime": "CREATE_TIME",
      "updateTime": "UPDATE_TIME",
      "batchPredictDetails": {
        "inputConfig": {
          "gcsSource": {
            "inputUris": [
              "gs://INPUT_URI"
            ]
          }
        }
      }
    }
    }
    

    Führen Sie folgenden Befehl aus, um zu prüfen, ob die Vorhersage abgeschlossen ist:

    curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json" \
     https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
    

    Suchen Sie in der Antwort, die folgendem Beispiel ähneln wird, nach ¨done¨: true, um zu bestätigen, dass der Vorgang abgeschlossen ist:

    {
    "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
      "createTime": "CREATE_TIME",
      "updateTime": "UPDATE_TIME",
      "batchPredictDetails": {
        "inputConfig": {
          "gcsSource": {
            "inputUris": [
              "gs://JSONL_FILE_LOCATION"
            ]
          }
        },
        "outputInfo": {
          "gcsOutputDirectory": "gs://OUTPUT_DIRPREDICTION_FILENAME"
        }
      }
    },
    "done": true,
    "response": {
      "@type": "type.googleapis.com/google.cloud.automl.v1beta1.BatchPredictResult"
    }
    }
    

    In dem von Ihnen angegebenen Ausgabespeicherort findet sich eine JSONL-Datei mit den Ergebnisse der Vorhersagen.

    PowerShell

    Ersetzen Sie im Befehl batchPredict die folgenden Elemente:

    • Ersetzen Sie REQUEST_FILENAME durch den Speicherort, unter dem Sie die JSON-Anfragedatei gespeichert haben.
    • Ersetzen Sie PROJECT_ID/locations/REGION/models/MODEL_ID durch den vollständig qualifizierten Namen des Modells. Rufen Sie zum Ermitteln der Modell-ID in der AutoML-UI die Seite Modelle auf.

    Das folgende Beispiel zeigt eine POST-Anfrage mit Windows PowerShell:

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile REQUEST_FILENAME `
    -Uri "https://automl.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID:batchPredict" | Select-Object -Expand Content
    

    Die Antwort auf den Befehl sieht etwa so aus:

    {
    "name": "projects/824236087934/locations/REGION/operations/MODEL_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
      "createTime": "CREATE_TIME",
      "updateTime": "UPDATE_TIME",
      "batchPredictDetails": {
        "inputConfig": {
          "gcsSource": {
            "inputUris": [
              "gs://INPUT_URI"
            ]
          }
        }
      }
    }
    }
    

    Führen Sie folgenden Befehl aus, um zu prüfen, ob die Vorhersage abgeschlossen ist:

    curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json" \
     https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
    

    Suchen Sie in der Antwort, die folgendem Beispiel ähneln wird, nach ¨done¨: true, um zu bestätigen, dass der Vorgang abgeschlossen ist:

    {
    "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
      "createTime": "CREATE_TIME",
      "updateTime": "UPDATE_TIME",
      "batchPredictDetails": {
        "inputConfig": {
          "gcsSource": {
            "inputUris": [
              "gs://JSONL_FILE_LOCATION"
            ]
          }
        },
        "outputInfo": {
          "gcsOutputDirectory": "gs://OUTPUT_DIRPREDICTION_FILENAME"
        }
      }
    },
    "done": true,
    "response": {
      "@type": "type.googleapis.com/google.cloud.automl.v1beta1.BatchPredictResult"
    }
    }
    

    In dem von Ihnen angegebenen Ausgabespeicherort findet sich eine JSONL-Datei mit den Ergebnisse der Vorhersagen.