Realizar entrenamientos y evaluaciones

Document AI te permite entrenar versiones nuevas del procesador con tus propios datos de entrenamiento y evaluar la calidad de la versión del procesador en función de tus propios datos de prueba.

Esto es útil cuando deseas usar un procesador personalizado. Hay un procesador de Document AI para tu tipo de documento, pero puedes entrenar una versión personalizada para satisfacer tus necesidades.

Por lo general, el entrenamiento y la evaluación se realizan en conjunto para iterar hacia una versión del procesador usable y de alta calidad.

Document AI

Document AI te permite crear tu propio extractor personalizado, que extrae entidades de documentos de un tipo particular, por ejemplo, los elementos de un menú o el nombre y la información de contacto de un currículum.

A diferencia de otros procesadores, los procesadores personalizados no incluyen versiones de procesadores previamente entrenadas y, por lo tanto, no pueden procesar ningún documento hasta que entrenes una versión desde cero.

Para comenzar a usar Document AI, consulta Crea tu propio procesador personalizado.

Entrena un procesador

Puedes entrenar versiones nuevas del procesador para mejorar la precisión de tus datos, extraer campos personalizados adicionales de tus documentos y agregar compatibilidad con nuevos idiomas.

El entrenamiento mejorado funciona aplicando aprendizaje por transferencia en versiones de procesadores previamente entrenados de Google y, por lo general, requiere menos datos que el entrenamiento desde cero.

Para comenzar, consulta Enriquece un procesador previamente entrenado.

Procesadores compatibles

No todos los procesadores especializados admiten el entrenamiento ascendente. Estos son los procesadores que admiten la capacitación.

Consideraciones y recomendaciones sobre los datos

La calidad y la cantidad de tus datos determinan la calidad del entrenamiento, la actualización y la evaluación.

Obtener un conjunto de documentos representativos del mundo real y proporcionar suficientes etiquetas de alta calidad suele ser la parte del proceso que requiere más tiempo y recursos.

Cantidad de documentos

Si todos tus documentos tienen un formato similar (por ejemplo, un formulario fijo con una variación muy baja), se requieren menos documentos para lograr la precisión. Cuanto mayor sea la variación, más documentos se requerirán.

En los siguientes gráficos, se proporciona una estimación aproximada de la cantidad de documentos que se requieren para que un extractor de documentos personalizado alcance una puntuación de calidad en particular.

Variación baja Variación alta
processor-training-and-evaluation-overview-1 processor-training-and-evaluation-overview-2

Etiquetado de datos

Considera las opciones para etiquetar documentos y asegúrate de tener recursos suficientes para anotar los documentos de tu conjunto de datos.

Entrenar modelos

Los procesadores de extractores personalizados pueden usar diferentes tipos de modelos según el caso de uso específico y los datos de entrenamiento disponibles.

  • Modelo personalizado: modelo que usa datos de entrenamiento etiquetados.
    • Basados en plantillas: Documentos con un diseño fijo.
    • Basado en modelos: Documentos con alguna variación de diseño.
  • Modelo de IA generativa: Se basa en modelos de base previamente entrenados que requieren un entrenamiento adicional mínimo.

En la siguiente tabla, se ilustran los casos de uso que corresponden a cada tipo de modelo.

Modelo personalizado IA generativa
Basado en plantillas Basado en modelos
Variación del diseño Ninguno De baja a media Alta
Cantidad de texto de formato libre (por ejemplo, párrafos en un contrato) Low (Baja) Bajo Alta
Cantidad de datos de entrenamiento necesarios Low (Baja) Alta Low (Baja)
Exactitud con datos de entrenamiento limitados Mayor Inferior Mayor

Obtén información para ajustar un procesador con descripciones de propiedades.

Cuándo usar otro procesador

Estas son algunas instancias en las que te recomendamos que consideres opciones además de Document AI Workbench o que adaptes tu flujo de trabajo.

  • Document AI Workbench no admite ciertos formatos de entrada basados en texto (.txt, .html, .docx, .md, etcétera). Considera otras ofertas de procesamiento de lenguaje precompiladas o personalizadas en Google Cloud, como la API de Cloud Natural Language.
  • El esquema del extractor de documentos personalizados admite hasta 150 etiquetas de entidad. Si tu lógica empresarial requiere más de 150 entidades en la definición del esquema, considera entrenar varios procesadores, cada uno de los cuales se segmenta para un subconjunto de entidades.

Cómo entrenar un procesador

Si ya creaste un procesador que admite el entrenamiento o el enriquecimiento y etiquetaste tu conjunto de datos, puedes entrenar una nueva versión del procesador desde cero. También puedes enriquecer una versión existente.

Entrena la versión del procesador

IU web

  1. En la consola de Google Cloud, ve a la pestaña Entrenar del procesador.

    Ve a la Galería de procesadores

  2. Haz clic en Editar esquema para abrir la página Administrar etiquetas. Verifica las etiquetas del procesador.

    Las etiquetas que están habilitadas en el momento del entrenamiento determinan las entidades que extrae la nueva versión del procesador. Si una etiqueta está inactiva en el esquema, la versión del procesador no la extrae, incluso si los documentos están etiquetados.

  3. En la pestaña Entrenar, haz clic en Ver estadísticas de etiquetas y verifica tu conjunto de prueba y entrenamiento. Los documentos etiquetados automáticamente, sin etiquetar o sin asignar se excluyen del entrenamiento y la evaluación.

  4. Haz clic en Entrenar una versión nueva.

    Nombre de la versión define el campo name de processorVersion.

    processor-training-and-evaluation-overview-3

  5. Haz clic en Iniciar entrenamiento y espera a que se entrene y evalúe la nueva versión del procesador.

    Puedes supervisar el progreso del entrenamiento en la pestaña Administrar versiones:

    processor-training-and-evaluation-overview-4

  6. Haz clic en la pestaña Evalúa y prueba para ver el rendimiento de la nueva versión del procesador en el conjunto de pruebas. Para obtener más información, consulta Evalúa la versión del procesador.

Python

Para obtener más información, consulta la documentación de referencia de la API de Document AI Python.

Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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}")

Implementa y usa la versión del procesador

Puedes implementar y administrar tus versiones de procesador como cualquier otra versión de procesador. Para obtener más información, consulta Administra versiones de procesadores.

Una vez implementado, puedes enviar una solicitud de procesamiento a tu procesador personalizado.

Inhabilita o borra un procesador

Si ya no quieres usar un procesador, puedes inhabilitarlo o borrarlo. Si inhabilitas un procesador, puedes volver a habilitarlo. Si borras un procesador, no podrás recuperarlo.

  1. En el panel Document AI de la izquierda, haz clic en Mis procesadores.

  2. Haz clic en los puntos verticales a la derecha del nombre del procesador. Haz clic en Inhabilitar procesador o Borrar procesador.

Para obtener más información, consulta Administra versiones de procesadores.

Encriptación de datos de entrenamiento

Los datos de entrenamiento de Document AI se guardan en Cloud Storage y se pueden encriptar con claves de encriptación administradas por el cliente si es necesario.

Eliminación de datos de entrenamiento

Después de completar un trabajo de entrenamiento de Document AI, todos los datos de entrenamiento guardados en Cloud Storage vencen después de un período de retención de dos días. Las actividades posteriores de eliminación de datos respetan el proceso que se describe en Eliminación de datos en Google Cloud.

Precios

No se cobra por la capacitación ni la actualización. Pagas por el alojamiento y la predicción. Para obtener más información, consulta Precios de Document AI.