Entraîner des modèles d'extraction d'entités pour le secteur de la santé

AutoML Entity Extraction for Healthcare vous fournit un point de départ pour entraîner des modèles de langage naturel destinés aux soins de santé personnalisés. Une fois votre modèle entraîné, vous pouvez lui demander d'effectuer des prédictions. Une prédiction se produit lorsque vous soumettez du texte médical au modèle pour l'extraction d'entités.

AutoML accepte les modes de prédiction suivants :

  • La prédiction en ligne, qui consiste à soumettre un document unique que le modèle analyse de façon synchrone.
  • La prédiction par lot, qui consiste à soumettre un ensemble de documents que le modèle analyse de manière asynchrone.

Activer l'API AutoML

Avant d'entraîner un modèle à l'aide d'AutoML Entity Extraction for Healthcare, vous devez activer l'API AutoML pour votre projet Google Cloud.

Pour activer l'API AutoML, procédez comme suit :

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez votre projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Créer et continuer.
    5. Attribuez le rôle Project > Owner au compte de service.

      Pour accorder le rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez Project > Owner.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  5. Créez une clé de compte de service :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  6. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès du fichier JSON contenant vos identifiants. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.

  7. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  8. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  9. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"
    2. Sélectionnez votre projet.
    3. Dans le champ Nom du compte de service, saisissez un nom. La console Google Cloud remplit le champ ID du compte de service en fonction de ce nom.

      Dans le champ Description du compte de service, saisissez une description. Exemple : Service account for quickstart.

    4. Cliquez sur Créer et continuer.
    5. Attribuez le rôle Project > Owner au compte de service.

      Pour accorder le rôle, trouvez la liste Sélectionner un rôle, puis sélectionnez Project > Owner.

    6. Cliquez sur Continuer.
    7. Cliquez sur OK pour terminer la création du compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  10. Créez une clé de compte de service :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur Ajouter une clé, puis sur Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  11. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès du fichier JSON contenant vos identifiants. Cette variable ne s'applique qu'à la session de shell actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez de nouveau la définir.

  12. Activez l'API AutoML Natural Language

    Activer l'API

  13. Installez Google Cloud CLI.
  14. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init

Configurer les autorisations

Pour entraîner des modèles personnalisés qui utilisent AutoML Entity Extraction for Healthcare comme modèle de base, vous devez utiliser un compte de service disposant de l'autorisation healthcare.nlpservce.analyzeEntities, incluse dans le rôle healthcare.nlpServiceViewer.

Pour attribuer ce rôle, exécutez la commande gcloud projects add-iam-policy-binding :

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

Entraîner un modèle

Entraîner un modèle à l'aide de l'interface utilisateur d'AutoML

Pour entraîner un modèle à l'aide de l'interface utilisateur d'AutoML, procédez comme suit :

  1. Ouvrez l'interface utilisateur d'AutoML Natural Language, puis cliquez sur Premiers pas sous AutoML Entity Extraction.

    La page Ensembles de données s'affiche. Elle indique l'état des ensembles de données précédemment créés pour le projet en cours. Si vous souhaitez entraîner votre modèle à partir de l'ensemble de données d'un autre projet, sélectionnez celui-ci dans la liste située dans l'angle supérieur droit de la barre de titre.

  2. Créez un ensemble de données ou sélectionnez celui que vous souhaitez utiliser pour entraîner le modèle personnalisé.

    Le nom à afficher de l'ensemble de données sélectionné apparaît dans la barre de titre. La page répertorie chaque document de l'ensemble de données et l'étiquette correspondante.

  3. Importez un fichier CSV répertoriant un ensemble de données de texte ou de documents au format JSONL structuré.

  4. Après avoir examiné l'ensemble de données, cliquez sur l'onglet Entraînement sous la barre de titre.

    Si vous entraînez le premier modèle à partir de cet ensemble de données, la page d'entraînement présente une analyse de base de celui-ci et vous indique s'il est adapté à l'entraînement. Si AutoML Natural Language suggère des modifications, pensez à revenir à la page Text items (Éléments textuels) puis ajoutez des documents ou des étiquettes.

    Si vous avez entraîné d'autres modèles à partir de cet ensemble de données, la page d'entraînement affiche les métriques d'évaluation de base correspondant à ces modèles.

  5. Cliquez sur Démarrer l'entraînement.

  6. Saisissez un nom pour le modèle.

    Ce nom peut comporter jusqu'à 32 caractères et ne doit contenir que des lettres, des chiffres et des traits de soulignement. Il doit commencer par une lettre.

  7. Si vous souhaitez déployer automatiquement le modèle, sélectionnez l'option Déployer le modèle une fois l'entraînement terminé.

  8. Sélectionnez l'option Activer Healthcare Entity Extraction.

  9. Cliquez sur Démarrer l'entraînement.

L'entraînement peut prendre plusieurs heures. Une fois le modèle entraîné, vous recevez une notification par e-mail.

Entraîner un modèle à l'aide de l'API AutoML

Pour entraîner un modèle à l'aide de l'API AutoML, utilisez la méthode projects.locations.models.create.

  1. Enregistrez le corps de la requête ci-dessous dans un fichier nommé request.json. Indiquez les informations suivantes dans la requête :

    • DISPLAY_NAME, le nom à afficher pour le modèle
    • DATASET_ID, l'ID de l'ensemble de données
    {
    "displayName": "DISPLAY_NAME",
    "dataset_id": "DATASET_ID",
    "textExtractionModelMetadata": {
       "model_hint": "healthcare"
    }
    }
    
  2. Exécutez la commande projects.locations.models.create.

    curl

    Pour exécuter la requête POST à l'aide de curl, exécutez la commande suivante :

    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

    Pour effectuer la requête POST à l'aide de Windows PowerShell, exécutez la commande suivante :

    $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
    

    Le résultat de la commande doit ressembler à l'exemple suivant. Vous pouvez obtenir l'état de la tâche à l'aide de l'ID d'opération. Pour en savoir plus, consultez la section Obtenir l'état d'une opération.

    {
      "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
      }
    }
    

Faire des prédictions

Effectuer des prédictions à l'aide de l'interface utilisateur d'AutoML Natural Language

Vous pouvez utiliser AutoML Entity Extraction for Healthcare pour effectuer des prédictions sur des fichiers dans Cloud Storage ou le texte que vous saisissez dans l'interface utilisateur d'AutoML Natural Language.

Pour effectuer une prédiction à l'aide de l'interface utilisateur d'AutoML Natural Language, procédez comme suit :

  1. Ouvrez l'interface utilisateur d'AutoML Natural Language, puis cliquez sur Modèles.

  2. Cliquez sur la ligne du modèle que vous souhaitez utiliser pour analyser le document.

  3. Cliquez sur l'onglet Test et utilisation situé juste en dessous de la barre de titre.

  4. Cliquez sur Sélectionner un fichier sur Cloud Storage, puis saisissez le chemin d'accès Cloud Storage pour un fichier PDF, ou cliquez sur Saisir le texte ci-dessous, puis renseignez le texte médical à utiliser pour les prédictions.

  5. Cliquez sur Prédire.

Effectuer des prédictions à l'aide de la méthode batchPredict

Pour utiliser votre modèle pour effectuer une prédiction asynchrone à haut débit sur un corpus de documents, vous pouvez utiliser la méthode batchPredict. Pour utiliser la méthode de prédiction par lot, vous devez spécifier des URI d'entrée et de sortie pointant vers des emplacements situés dans des buckets Cloud Storage.

L'URI d'entrée pointe vers un fichier JSONL qui spécifie le contenu à analyser. Le résultat spécifie un emplacement pour lequel AutoML enregistre les résultats de la prédiction par lot.

Pour effectuer des prédictions à l'aide de la méthode batchPredict, procédez comme suit :

  1. Créez un fichier JSONL comprenant le contenu à analyser, soit en ligne, soit sous forme de liens vers des fichiers stockés dans un bucket Cloud Storage.

    L'exemple suivant montre un contenu intégré inclus dans le fichier JSONL, avec chaque élément comprenant l'ID unique requis.

    { "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." } }
    

    L'exemple suivant montre un fichier JSONL contenant des liens vers des fichiers d'entrée, qui doivent se trouver dans des buckets Cloud Storage.

    { "document": { "input_config": { "gcs_source": { "input_uris": [ "gs://FOLDER/FILENAME1" ] } } } }
    { "document": { "input_config": { "gcs_source": { "input_uris": [ "gs://FOLDER/FILENAME2" ] } } } }
    ...
    
  2. Créez un fichier JSON spécifiant l'emplacement du fichier d'entrée JSONL et le répertoire de sortie dans un bucket Cloud Storage.

    {
    "input_config": { "gcs_source": { "input_uris": [ "gs://JSONL_FILE_LOCATION"] } },
    "output_config": { "gcs_destination": { "output_uri_prefix": "gs://OUTPUT_DIR" } }
    }
    
  3. Pour effectuer des prédictions, exécutez la méthode batchPredict :

    curl

    Dans la commande batchPredict, effectuez les substitutions suivantes :

    • Remplacez REQUEST_FILENAME par l'emplacement du fichier JSON de requête.
    • Remplacez PROJECT_ID/locations/REGION/models/MODEL_ID par le nom complet de votre modèle. Pour trouver l'ID de modèle, accédez à la page Modèles de l'interface utilisateur d'AutoML.

    L'exemple suivant montre une requête POST utilisant curl :

    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
    

    La réponse à la commande ressemble à l'exemple suivant :

    {
    "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"
            ]
          }
        }
      }
    }
    }
    

    Pour vérifier si la prédiction est terminée, exécutez la commande suivante :

    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
    

    Dans la réponse, qui ressemblera à l'exemple suivant, recherchez la valeur ¨done¨: true pour confirmer que l'opération est terminée :

    {
    "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"
    }
    }
    

    Dans l'emplacement de sortie que vous avez spécifié, un fichier JSONL contient les résultats des prédictions.

    PowerShell

    Dans la commande batchPredict, effectuez les substitutions suivantes :

    • Remplacez REQUEST_FILENAME par l'emplacement dans lequel vous avez stocké le fichier JSON de la requête.
    • Remplacez PROJECT_ID/locations/REGION/models/MODEL_ID par le nom complet de votre modèle. Pour trouver l'ID de modèle, accédez à la page Modèles de l'interface utilisateur d'AutoML.

    L'exemple suivant montre une requête POST utilisant 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
    

    La réponse à la commande ressemble à l'exemple suivant :

    {
    "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"
            ]
          }
        }
      }
    }
    }
    

    Pour vérifier si la prédiction est terminée, exécutez la commande suivante :

    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
    

    Dans la réponse, qui ressemblera à l'exemple suivant, recherchez la valeur ¨done¨: true pour confirmer que l'opération est terminée :

    {
    "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"
    }
    }
    

    Dans l'emplacement de sortie que vous avez spécifié, un fichier JSONL contient les résultats des prédictions.