Extractor personalizado con IA generativa

El entrenamiento y la extracción de IA generativa te permiten hacer lo siguiente:

  • Usa la tecnología de cero y pocos ejemplos para obtener un modelo de alto rendimiento con pocos o sin datos de entrenamiento con el modelo de base.
  • Usa el perfeccionamiento para mejorar aún más la precisión a medida que proporcionas más y más datos de entrenamiento.

Métodos de entrenamiento de IA generativa

El método de entrenamiento que elijas dependerá de la cantidad de documentos que tengas disponibles y de la cantidad de esfuerzo que puedas dedicar a entrenar tu modelo. Existen tres formas de entrenar un modelo de IA generativa:

Método de entrenamiento Sin ejemplos Ejemplos limitados Ajuste
Precisión Media Media-alta Alta
Esfuerzo Low (Baja) Low (Baja) Media
Cantidad recomendada de documentos de entrenamiento 0 Entre 5 y 10 De 10 a más de 50

Versiones de modelos de extractores personalizados

Los siguientes modelos están disponibles para el extractor personalizado. Para cambiar las versiones de modelos, consulta Administra versiones de procesadores.

Las versiones 1.0 y 1.3 admiten puntuaciones de confianza, mientras que las versiones 1.1 y 1.2 no.

Versión del modelo Descripción Estable Procesamiento de AA en EE.UU. y la UE Ajuste fino en EE.UU. y la UE Fecha de lanzamiento
pretrained-foundation-model-v1.0-2023-08-22

Candidato listo para producción especializado en casos de uso de documentos con modelos de visión y modelos de base especializados.

No Solo en EE.UU. (GA) 9 de enero de 2024
pretrained-foundation-model-v1.1-2024-03-12

Versión candidata potenciada por el LLM de Gemini 1.0 Pro y tecnologías recientemente desarrolladas, incluidos modelos de lenguaje y visión especializados

Esta versión y las posteriores incluyen funciones avanzadas de OCR, como la detección de cuadros de verificación. Se recomienda para usar los límites de tokens aumentados o experimentar con modelos más nuevos.

No EE.UU. y la UE (versión preliminar) 3 de mayo de 2024
pretrained-foundation-model-v1.2-2024-05-10

Candidato listo para la producción potenciado por el LLM de Gemini 1.5 Pro y tecnologías recientemente desarrolladas, incluidos modelos de lenguaje y visión especializados

Se recomienda para obtener la mejor calidad, usar los límites de tokens más grandes compatibles, emplear la mejor calidad en la identificación de entidades o experimentar con modelos más nuevos.

EE.UU. y la UE (versión preliminar) 27 de mayo de 2024
pretrained-foundation-model-v1.3-2024-08-31 Candidato listo para la producción con el LLM de Gemini 1.5 Flash Se recomienda para quienes desean la latencia más baja. EE.UU. y la UE (versión preliminar) 23 de agosto de 2024

Para cambiar la versión del procesador en tu proyecto, consulta Administra versiones de procesadores.

Antes de comenzar

Si aún no lo hiciste, habilita la facturación y las APIs de Document AI.

Compila y evalúa un modelo de IA generativa

  1. Crea un procesador y define los campos que deseas extraer siguiendo las prácticas recomendadas, lo que es importante porque afecta la calidad de la extracción.

    • Ve a Workbench > Extractor personalizado > Crear procesador > Asignar un nombre.

    processor-version-genai-1

    • Ve a Comenzar > Crear nuevo campo.

    processor-version-genai-2

  2. Importar documentos

    • Importa documentos con etiquetado automático y asígnales al conjunto de entrenamiento y prueba.
    • Para la transferencia cero, solo se requiere el esquema. Para evaluar la precisión del modelo, solo se necesita un conjunto de pruebas.
    • Para la variante de pocas imágenes, recomendamos cinco documentos de entrenamiento.
    • La cantidad de documentos de prueba necesarios depende del caso de uso. Por lo general, cuantos más documentos de prueba, mejor.
    • Confirma o edita las etiquetas del documento.
  3. Entrena el modelo:

    • Selecciona Build y, luego, Create new version.
    • Ingresa un nombre y selecciona Crear.

    processor-version-genai-12

  1. Evaluación:

    • Ve a Evaluar y probar, selecciona la versión que acabas de entrenar y, luego, Ver evaluación completa.

    processor-version-genai-13

    • Ahora, verás métricas como F1, precisión y recuperación para todo el documento y cada campo.
    • Decide si el rendimiento cumple con tus objetivos de producción. Si no es así, vuelve a evaluar los conjuntos de entrenamiento y prueba.
  2. Configura una versión nueva como predeterminada:

    • Navega a Administrar versiones.
    • Selecciona para expandir las opciones y, luego, selecciona Establecer como predeterminado.

    processor-version-genai-14

    Tu modelo ya está implementado. Los documentos que se envían a este procesador usan tu versión personalizada. Puedes evaluar el rendimiento del modelo para comprobar si requiere más entrenamiento.

Referencia de evaluación

El motor de evaluación puede realizar la concordancia exacta o la concordancia aproximada. Para que se produzca una coincidencia exacta, el valor extraído debe coincidir exactamente con la verdad fundamental o se registrará como una omisión.

Las extracciones de concordancia aproximada que tenían diferencias leves, como diferencias en el uso de mayúsculas, aún se cuentan como coincidencias. Esto se puede cambiar en la pantalla Evaluación.

processor-version-genai-15

Ajuste

Con el ajuste fino, puedes usar cientos o miles de documentos para el entrenamiento.

  1. Crea un procesador y define los campos que deseas extraer siguiendo las prácticas recomendadas, lo que es importante porque afecta la calidad de la extracción.

  2. Importa documentos con etiquetado automático y asígnales al conjunto de entrenamiento y prueba.

  3. Confirma o edita las etiquetas del documento.

  4. Entrenamiento de modelos

    • Selecciona la pestaña Build y, luego, Create New Version.
    • Prueba los parámetros o valores de entrenamiento predeterminados proporcionados. Si los resultados no son satisfactorios, prueba estas opciones avanzadas:

    • Pasos de entrenamiento (entre 100 y 400): Controla la frecuencia con la que se optimizan los pesos en un lote de datos durante el ajuste.

      • Si es demasiado bajo, indica que existe el riesgo de que el entrenamiento finalice antes de la convergencia (ajuste insuficiente).
      • Si es demasiado alto, el modelo podría ver el mismo lote de datos varias veces durante el entrenamiento, lo que puede generar un sobreajuste.
      • Menos pasos significa un tiempo de entrenamiento más rápido. Los recuentos más altos pueden ser útiles para los documentos con poca variación de plantillas (y los más bajos para los que tienen más variación).
    • Multiplicador de la tasa de aprendizaje (entre 0.1 y 10): Controla la rapidez con la que se optimizan los parámetros del modelo en los datos de entrenamiento. Corresponde aproximadamente al tamaño de cada paso de entrenamiento.

      • Las tasas bajas implican pequeños cambios en los pesos del modelo en cada paso de entrenamiento. Si es demasiado bajo, es posible que el modelo no converja a una solución estable.
      • Las tasas altas indican cambios importantes, y si son demasiado altas, puede significar que el modelo pasa por alto la solución óptima y converge en una solución subóptima.
      • El tiempo de entrenamiento no se ve afectado por la elección de la tasa de aprendizaje.
    • Asigna un nombre, selecciona la versión del procesador base requerida y elige Crear.

    processor-version-genai-21

  5. Evaluación: Ve a Evaluar y probar, selecciona la versión que acabas de entrenar y, luego, Ver evaluación completa.

    processor-version-genai-13

    • Ahora, verás métricas como f1, precisión y recuperación para todo el documento y cada campo.
    • Decide si el rendimiento cumple con tus objetivos de producción. De lo contrario, es posible que se requieran más documentos de capacitación.
  6. Establece una versión nueva como la predeterminada:

    • Navega a Administrar versiones.
    • Selecciona para expandir las opciones y elige Establecer como predeterminado.

    processor-version-genai-14

    Tu modelo ya se implementó, y los documentos que se envían a este procesador ahora usan tu versión personalizada. Quieres evaluar el rendimiento del modelo para comprobar si requiere más entrenamiento.

Etiquetado automático con el modelo de base

El modelo de base puede extraer campos con precisión para una variedad de tipos de documentos, pero también puedes proporcionar datos de entrenamiento adicionales para mejorar la precisión del modelo para estructuras de documentos específicas.

Document AI usa los nombres de etiquetas que tú defines y las anotaciones anteriores para que sea más fácil y rápido etiquetar documentos a gran escala con el etiquetado automático.

  1. Cuando hayas creado un procesador personalizado, ve a la pestaña Comenzar.
  2. Selecciona Crear campo nuevo.
  3. Asigna a la etiqueta un nombre descriptivo y distinto. Esto mejorará la exactitud y el rendimiento del modelo de base.

    processor-version-genai-17

  4. Para mejorar la precisión y el rendimiento de la extracción, agrega una descripción (como contexto agregado, estadísticas y conocimientos previos para cada entidad) de los tipos de entidades que debe identificar.

processor-version-genai-23

  1. Navega a la pestaña Build y, luego, selecciona Import Documents.

    processor-version-genai-18

  2. Selecciona la ruta de los documentos y el conjunto al que se deben importar. Marca la opción de etiquetado automático y selecciona el modelo de base.

  3. En la pestaña Build, selecciona Manage Dataset.

  4. Cuando veas tus documentos importados, selecciona uno de ellos.

    processor-version-genai-19

Las predicciones del modelo ahora se muestran destacadas en púrpura.

  1. Revisa cada etiqueta que predijo el modelo y asegúrate de que sea correcta.
  2. Si faltan campos, agrégalos también.

    processor-version-genai-20

  3. Cuando hayas revisado el documento, selecciona Marcar como etiquetado. El documento ya está listo para que lo use el modelo.

  4. Asegúrate de que el documento esté en el conjunto de prueba o de entrenamiento.

Anidación de tres niveles

El extractor personalizado ahora proporciona tres niveles de anidación. Esta función proporciona una mejor extracción para tablas complejas.

Puedes determinar el tipo de modelo con las siguientes llamadas a la API:

La respuesta de estos es un ProcessorVersion, que contiene el campo modelType en la versión preliminar de v1beta3.

Procedimiento y ejemplo

Usamos este ejemplo:

processor-version-genai-3

  1. Selecciona Comenzar y, luego, crea un campo:

    • Crea el nivel superior.
    • En este ejemplo, se usa officer_appointments.
    • Selecciona Esta es una etiqueta superior.
    • Selecciona Ocurrencia: Optional multiple.

    processor-version-genai-4 processor-version-genai-5 processor-version-genai-6

  2. Selecciona Agregar campo secundario. Ahora se puede crear la etiqueta de segundo nivel:

    • Para esta etiqueta de nivel, crea officer.
    • Selecciona Esta es una etiqueta superior.
    • Selecciona Ocurrencia: Optional multiple.

    processor-version-genai-7 processor-version-genai-8

  3. Selecciona Agregar campo secundario en el officer de segundo nivel. Crea etiquetas secundarias para el tercer nivel de anidación. processor-version-genai-9

  4. Cuando se configura el esquema, puedes obtener predicciones de documentos con tres niveles de anidación mediante el etiquetado automático.

    processor-version-genai-10 processor-version-genai-11

Configuración del conjunto de datos

Se requiere un conjunto de datos de documentos para entrenar, enriquecer o evaluar una versión del procesador. Los procesadores de Document AI aprenden de ejemplos, al igual que las personas. El conjunto de datos alimenta la estabilidad del procesador en términos de rendimiento.

Conjunto de datos de entrenamiento

Para mejorar el modelo y su precisión, entrena un conjunto de datos en tus documentos. El modelo está compuesto por documentos con verdad fundamental.
  • Para el perfeccionamiento, necesitas un mínimo de 10 documentos para entrenar un modelo nuevo con la versión pretrained-foundation-model-v1.0-2023-08-22, 16 para la versión pretrained-foundation-model-v1.1-2024-03-12 y 1 documento para pretrained-foundation-model-v1.2-2024-05-10 y pretrained-foundation-model-v1.3-2024-08-31.
  • Para un modelo de pocas imágenes, se recomiendan cinco documentos.
  • Para la capacitación sin ninguna imagen de muestra, solo se requiere un esquema.

Conjunto de datos de prueba

El conjunto de datos de prueba es lo que el modelo usa para generar una puntuación F1 (exactitud). Se compone de documentos con verdad fundamental. Para ver con qué frecuencia el modelo tiene razón, se usa la verdad fundamental para comparar las predicciones del modelo (campos extraídos del modelo) con las respuestas correctas. El conjunto de datos de prueba debe tener al menos 10 documentos para la versión de ajuste fino pretrained-foundation-model-v1.0-2023-08-22, 16 para la versión pretrained-foundation-model-v1.1-2024-03-12 y 1 documento para pretrained-foundation-model-v1.2-2024-05-10 y pretrained-foundation-model-v1.3-2024-08-31.

Extractor personalizado con descripciones de propiedades

Con las descripciones de propiedades, puedes entrenar un modelo describiendo cómo son los campos etiquetados. Puedes proporcionar contexto y estadísticas adicionales para cada entidad. Esto permite que el modelo se entrene haciendo coincidir los campos que se ajustan a la descripcion que proporcionas y mejorando la precisión de la extracción. Las descripciones de las propiedades se pueden especificar para las entidades superiores y secundarias.

Algunos buenos ejemplos de descripciones de propiedades incluyen información de ubicación y patrones de texto de los valores de la propiedad, que ayudan a desambiguar posibles fuentes de confusión en el documento. Las descripciones de propiedades claras y precisas guían al modelo con reglas que garantizan extracciones más confiables y coherentes, independientemente de la estructura del documento específico o las variaciones de contenido.

Actualiza el esquema de documentos de un procesador

Para configurar las descripciones de las propiedades, consulta Actualiza el esquema del documento.

Envía una solicitud de procesamiento con descripciones de las propiedades

Si el esquema del documento ya tiene descripciones configuradas, puedes enviar una solicitud de procesamiento con las instrucciones que se indican en Cómo enviar una solicitud de procesamiento.

Cómo ajustar un procesador con descripciones de propiedades

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La ubicación de tu procesador, por ejemplo:
    • us: Estados Unidos
    • eu: Unión Europea
  • PROJECT_ID: El ID de tu proyecto de Google Cloud .
  • PROCESSOR_ID: Es el ID de tu procesador personalizado.
  • DISPLAY_NAME: Es el nombre visible del procesador.
  • PRETRAINED_PROCESSOR_VERSION: Es el identificador de la versión del procesador. Consulta Cómo seleccionar una versión de procesador para obtener más información. Por ejemplo:
    • pretrained-TYPE-vX.X-YYYY-MM-DD
    • stable
    • rc
  • TRAIN_STEPS: Pasos de entrenamiento para el ajuste fino del modelo.
  • LEARN_RATE_MULTIPLIER: Multiplicador de la tasa de aprendizaje para el ajuste fino del modelo.
  • DOCUMENT_SCHEMA: Es el esquema del procesador. Consulta la representación de DocumentSchema.

Método HTTP y URL:

POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process

Cuerpo JSON de la solicitud:

{
  "rawDocument": {
      "parent": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID",
         "processor_version": {
             "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/DISPLAY_NAME",
             "display_name": "DISPLAY_NAME",
             "model_type": "MODEL_TYPE_GENERATIVE",
         },
         "base_processor_version": "projects/PROJECT_ID/locations/us/processors/PROCESSOR_ID/processorVersions/PRETRAINED_PROCESSOR_VERSION",
         "foundation_model_tuning_options": {
             "train_steps": TRAIN_STEPS,
             "learning_rate_multiplier": LEARN_RATE_MULTIPLIER,
         }
         "document_schema": DOCUMENT_SCHEMA
      }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content

¿Qué sigue?

Entrena un procesador especializado