Entraîner et évaluer

Document AI vous permet d'entraîner de nouvelles versions de l'outil de traitement à l'aide de vos propres données d'entraînement et d'évaluer la qualité de votre version de l'outil de traitement par rapport à vos propres données de test.

Cette option est utile lorsque vous souhaitez utiliser un processeur personnalisé. Un processeur Document AI est disponible pour votre type de document, mais vous pouvez entraîner une version personnalisée pour répondre à vos besoins.

L'entraînement et l'évaluation sont généralement effectués en tandem pour itérer vers une version de processeur utilisable et de haute qualité.

Document AI

Document AI vous permet de créer votre propre extracteur personnalisé, qui extrait des entités à partir de documents d'un type particulier, par exemple les éléments d'un menu ou le nom et les coordonnées d'un CV.

Contrairement aux autres processeurs, les processeurs personnalisés ne sont pas fournis avec des versions préentraînées. Par conséquent, ils ne peuvent traiter aucun document tant que vous n'avez pas entraîné une version à partir de zéro.

Pour commencer à utiliser Document AI, consultez la section Créer votre propre outil de traitement personnalisé.

Surentraîner un processeur

Vous pouvez surentraîner de nouvelles versions de processeurs pour améliorer la précision de vos données, extraire des champs personnalisés supplémentaires à partir de vos documents et prendre en charge de nouvelles langues.

L'entraînement par mise à niveau fonctionne en appliquant l'apprentissage par transfert sur les versions de processeur pré-entraînées de Google et nécessite généralement moins de données que l'entraînement à partir de zéro.

Pour commencer, consultez Réentraîner un processeur pré-entraîné.

Processeurs compatibles

Tous les processeurs spécialisés ne sont pas compatibles avec l'entraînement par augmentation. Voici les processeurs compatibles avec la formation.

Remarques et recommandations concernant les données

La qualité et la quantité de vos données déterminent la qualité de l'entraînement, de la mise à niveau et de l'évaluation.

Obtenir un ensemble de documents réels représentatifs et fournir suffisamment de libellés de haute qualité sont souvent la partie la plus longue et la plus gourmande en ressources du processus.

Nombre de documents

Si vos documents ont tous un format similaire (par exemple, un formulaire fixe avec très peu de variations), vous avez besoin de moins de documents pour obtenir une précision optimale. Plus la variation est importante, plus vous avez besoin de documents.

Les graphiques suivants fournissent une estimation approximative du nombre de documents requis pour qu'un extracteur de documents personnalisé atteigne un score de qualité particulier.

Faible variation Forte variation
processor-training-and-evaluation-overview-1 processor-training-and-evaluation-overview-2

Étiquetage des données

Réfléchissez aux options de libellé des documents et assurez-vous de disposer de suffisamment de ressources pour annoter les documents de votre ensemble de données.

Entraîner des modèles

Les processeurs d'extraction personnalisés peuvent utiliser différents types de modèles en fonction du cas d'utilisation spécifique et des données d'entraînement disponibles.

  • Modèle personnalisé: modèle utilisant des données d'entraînement libellées.
    • Basés sur un modèle: documents avec une mise en page fixe.
    • Basé sur un modèle: documents avec une mise en page variable.
  • Modèle d'IA générative: basé sur des modèles de fondation pré-entraînés qui nécessitent un entraînement supplémentaire minimal.

Le tableau suivant indique les cas d'utilisation correspondant à chaque type de modèle.

Modèle personnalisé Generative AI
Basé sur un modèle Basé sur un modèle
Variation de mise en page Aucun Faible à moyen Élevée
Quantité de texte de format libre (par exemple, les paragraphes d'un contrat) Faible Faibles Élevée
Quantité de données d'entraînement requises Faible Élevée Faible
Précision avec des données d'entraînement limitées Plus élevé Diminution Plus élevé

Découvrez comment affiner un processeur avec des descriptions de propriétés.

Quand utiliser un autre processeur

Voici quelques cas où vous pouvez envisager d'autres options que Document AI Document AI Workbench ou adapter votre workflow.

  • Certains formats d'entrée textuels (.txt, .html, .docx, .md, etc.) ne sont pas compatibles avec Document AI Workbench. Envisagez d'autres offres de traitement du langage prédéfinies ou personnalisées dans Google Cloud, comme l'API Cloud Natural Language.
  • Le schéma de l'extracteur de documents personnalisé accepte jusqu'à 150 libellés d'entités. Si votre logique métier nécessite plus de 150 entités dans la définition du schéma, envisagez de former plusieurs processeurs, chacun ciblant un sous-ensemble d'entités.

Entraîner un processeur

En supposant que vous ayez déjà créé un outil de traitement compatible avec l'entraînement ou le surentraînement, et que vous ayez étiqueté votre ensemble de données, vous pouvez entraîner une nouvelle version de l'outil de traitement à partir de zéro. Vous pouvez également surentraîner une nouvelle version de processeur à partir d'une version existante.

Version du processeur d'entraînement

UI Web

  1. Dans la console Google Cloud, accédez à l'onglet Entraînement de votre outil de traitement.

    Accéder à la galerie des processeurs

  2. Cliquez sur Modifier le schéma pour ouvrir la page Gérer les étiquettes. Vérifiez les libellés du processeur.

    Les libellés activés au moment de l'entraînement déterminent les entités que votre nouvelle version du processeur extrait. Si un libellé est inactif dans le schéma, la version du processeur n'extrait pas ce libellé, même si les documents sont libellés.

  3. Dans l'onglet Entraînement, cliquez sur Afficher les statistiques sur les libellés et vérifiez votre ensemble d'entraînement et de test. Les documents étiquetés automatiquement, sans étiquette ou non attribués sont exclus de l'entraînement et de l'évaluation.

  4. Cliquez sur Entraîner une nouvelle version.

    Le champ Nom de la version définit le champ name de processorVersion.

    processor-training-and-evaluation-overview-3

  5. Cliquez sur Démarrer l'entraînement et attendez que votre nouvelle version de l'outil de traitement soit entraînée et évaluée.

    Vous pouvez surveiller la progression de l'entraînement dans l'onglet Gérer les versions:

    processor-training-and-evaluation-overview-4

  6. Cliquez sur l'onglet Évaluer et tester pour voir les performances de votre nouvelle version de l'outil de traitement sur l'ensemble de test. Pour en savoir plus, consultez la page Évaluer la version de l'outil de traitement.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Document AI Python.

Pour vous authentifier auprès de Document AI, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


from typing import Optional

from google.api_core.client_options import ClientOptions
from google.cloud import documentai  # type: ignore

# TODO(developer): Uncomment these variables before running the sample.
# project_id = 'YOUR_PROJECT_ID'
# location = 'YOUR_PROCESSOR_LOCATION' # Format is 'us' or 'eu'
# processor_id = 'YOUR_PROCESSOR_ID'
# processor_version_display_name = 'new-processor-version'
# train_data_uri = 'gs://bucket/directory/' # (Optional)
# test_data_uri = 'gs://bucket/directory/' # (Optional)


def train_processor_version_sample(
    project_id: str,
    location: str,
    processor_id: str,
    processor_version_display_name: str,
    train_data_uri: Optional[str] = None,
    test_data_uri: Optional[str] = None,
) -> None:
    # You must set the api_endpoint if you use a location other than 'us', e.g.:
    opts = ClientOptions(api_endpoint=f"{location}-documentai.googleapis.com")

    client = documentai.DocumentProcessorServiceClient(client_options=opts)

    # The full resource name of the processor
    # e.g. `projects/{project_id}/locations/{location}/processors/{processor_id}
    parent = client.processor_path(project_id, location, processor_id)

    processor_version = documentai.ProcessorVersion(
        display_name=processor_version_display_name
    )

    # If train/test data is not supplied, the default sets in the Cloud Console will be used
    input_data = documentai.TrainProcessorVersionRequest.InputData(
        training_documents=documentai.BatchDocumentsInputConfig(
            gcs_prefix=documentai.GcsPrefix(gcs_uri_prefix=train_data_uri)
        ),
        test_documents=documentai.BatchDocumentsInputConfig(
            gcs_prefix=documentai.GcsPrefix(gcs_uri_prefix=test_data_uri)
        ),
    )

    request = documentai.TrainProcessorVersionRequest(
        parent=parent, processor_version=processor_version, input_data=input_data
    )

    operation = client.train_processor_version(request=request)
    # Print operation details
    print(operation.operation.name)
    # Wait for operation to complete
    response = documentai.TrainProcessorVersionResponse(operation.result())

    metadata = documentai.TrainProcessorVersionMetadata(operation.metadata)

    print(f"New Processor Version:{response.processor_version}")
    print(f"Training Set Validation: {metadata.training_dataset_validation}")
    print(f"Test Set Validation: {metadata.test_dataset_validation}")

Déployer et utiliser la version de l'outil de traitement

Vous pouvez déployer et gérer vos versions d'outils de traitement comme n'importe quelle autre version. Pour en savoir plus, consultez la page Gérer les versions de l'outil de traitement.

Une fois le déploiement effectué, vous pouvez envoyer une requête de traitement à votre outil de traitement personnalisé.

Désactiver ou supprimer un outil de traitement

Si vous ne souhaitez plus utiliser un processeur, vous pouvez le désactiver ou le supprimer. Si vous désactivez un processeur, vous pouvez le réactiver. Si vous supprimez un processeur, vous ne pouvez pas le récupérer.

  1. Dans le panneau Document AI de gauche, cliquez sur Mes outils de traitement.

  2. Cliquez sur les points verticaux à droite du nom du processeur. Cliquez sur Désactiver le processeur ou Supprimer le processeur.

Pour en savoir plus, consultez la page Gérer les versions de l'outil de traitement.

Chiffrement des données d'entraînement

Les données d'entraînement de Document AI sont enregistrées dans Cloud Storage et peuvent être chiffrées avec des clés de chiffrement gérées par le client si nécessaire.

Suppression des données d'entraînement

Une fois une tâche d'entraînement Document AI terminée, toutes les données d'entraînement enregistrées dans Cloud Storage expirent après une période de conservation de deux jours. Les activités de suppression de données ultérieures respectent le processus décrit dans Suppression des données sur Google Cloud.

Tarifs

La formation et le perfectionnement sont gratuits. Vous payez pour l'hébergement et la prédiction. Pour en savoir plus, consultez la page Tarification de Document AI.