- Información general
- Proceso de Document Understanding
- Tutoriales de inicio rápido
- Componentes de marco
- Información general
- Actividades de Document Understanding
- Resumen de la clasificación de documentos
- Asistente para Configurar clasificadores de Clasificar ámbito de documento
- Clasificador inteligente de palabra clave
- Clasificador basado en palabras clave
- Clasificador de aprendizaje automático
- Clasificador generativo
- Actividades relacionadas con la clasificación de documentos
- Consumo de datos
- Llamadas a API
- Paquetes ML
- Información general
- Document Understanding - Paquete ML
- DocumentClassifier: paquete ML
- Paquetes ML con capacidades OCR
- 1040: paquete ML
- 1040 Anexo C - Paquete ML
- 1040 Anexo D - Paquete ML
- 1040 Anexo E - Paquete ML
- 1040x: paquete ML
- 3949a: paquete ML
- 4506T: paquete ML
- 709: paquete ML
- 941x: paquete ML
- 9465: paquete ML
- 990 - Paquete ML: vista previa
- ACORD125: paquete ML
- ACORD126 - Paquete ML
- ACORD131 - Paquete ML
- ACORD140 - Paquete ML
- ACORD25 - Paquete ML
- Extractos bancarios: paquete ML
- Conocimientos de embarque: paquete ML
- Certificado de incorporación: paquete ML
- Certificado de origen: paquete ML
- Cheques: paquete ML
- Certificado de producto secundario: paquete ML
- CMS1500 - Paquete ML
- Declaración de conformidad de la UE: Paquete ML
- Estados financieros: paquete ML
- FM1003: paquete ML
- I9 - Paquete ML
- Documentos de identidad: paquete ML
- Facturas: paquete ML
- FacturasChina - Paquete ML
- Facturas en hebreo: paquete ML
- FacturasIndia - Paquete ML
- FacturasJapón - Paquete ML
- Envío de facturas: paquete ML
- Listas de embalaje: paquete ML
- Pasaportes: paquete ML
- Nóminas - - Paquete ML
- Órdenes de compra: paquete ML
- Recibos: paquete ML
- ConsejosDeRemesas: paquete ML
- UB04 - Paquete ML
- Facturas de servicios públicos: paquete ML
- Títulos de vehículos: paquete ML
- W2 - Paquete ML
- W9 - Paquete ML
- Otros paquetes ML listos para usar
- Puntos finales públicos
- Requisitos de hardware
- Procesos
- Administrador de documentos
- Servicios de OCR
- Aprendizaje profundo
- Entrenamiento de modelos de alto rendimiento
- Implantación de modelos de alto rendimiento
- Paneles de insights
- Document Understanding implementado en Automation Suite
- Document Understanding implementado en AI Center independiente
- Licencia
- Actividades
- Actividades.DeUipath
- UiPath.AbbyyEmbedded.Activities
- UiPath.DocumentProcessing.Contracts
- UiPath.DocumentUnderstanding.ML.Activities
- UiPath.DocumentUnderstanding.OCR.LocalServer.Activities
- UiPath.IntelligentOCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.OmniPage.Activities
- UiPath.PDF.Activities
Implantación de modelos de alto rendimiento
A medida que los modelos de aprendizaje automático (ML) mejoran en precisión a lo largo del tiempo, sus requisitos de recursos también cambian. Para obtener el mejor rendimiento, es importante que al implementar modelos ML a través de AI Center, las habilidades tengan el tamaño adecuado con respecto al tráfico que deben gestionar. En su mayor parte, la infraestructura se dimensiona con respecto al número de páginas por unidad de tiempo (minuto u hora). Un documento puede tener una sola página o varias.
Para implementar infraestructura a través de AI Center, hay algunos aspectos importantes que se deben tener en cuenta para obtener un rendimiento óptimo.
Solo hay un tipo de infraestructura de GPU disponible. Esto lo resalta la casilla de verificación para habilitar GPU. Cada habilidad se ejecuta en una sola máquina virtual (VM) o nodo que tiene una GPU. En este caso, la CPU y la memoria no son relevantes, ya que la habilidad puede utilizar todos los recursos de CPU y memoria disponibles en esos nodos. Además del rendimiento, la GPU es mucho más rápida. Debido a esto, si la latencia es crítica, se recomienda utilizar GPU.
La CPU y la memoria pueden estar fraccionadas, lo que significa que varias habilidades ML pueden ejecutarse en el mismo nodo. Para evitar cualquier perturbación de una habilidad vecina, cada habilidad ML se limita a la cantidad de memoria y CPU que puede consumir, dependiendo del nivel seleccionado. Mayor CPU conduce a un procesamiento más rápido (para una página), mientras que mayor memoria conduce a un mayor número de documentos que se pueden procesar.
El número de réplicas determina el número de contenedores que se utilizan para servir solicitudes del modelo ML. Un número más alto conduce a una mayor cantidad de documentos que pueden procesarse en paralelo, sujetos a los límites de ese nivel en particular. El número de réplicas está directamente vinculado al tipo de infraestructura (número de CPU por réplica o si se utiliza una GPU), en el sentido de que tanto las réplicas como el tamaño de la infraestructura pueden afectar directamente el rendimiento (páginas/minuto).
El número de robots afecta al rendimiento. Para obtener un rendimiento eficiente, el número de robots debe dimensionarse de tal manera que no sobrecargue las habilidades ML. Esto depende de la propia automatización y debeComo pauta general, puedes utilizar de uno a tres robots como punto de partida para cada réplica que tenga la habilidad ML. Dependiendo del tiempo total del proceso (excluyendo el Extractor ML), el número de robots puede ser mayor o menor (o el número de réplicas).
Si la infraestructura no se dimensiona correctamente, los modelos pueden colocarse bajo una carga muy alta. En algunos casos, esto puede provocar una acumulación de solicitudes, un largo tiempo de procesamiento o incluso fallos al procesar documentos.
La memoria insuficiente se produce con más frecuencia en los niveles de CPU inferiores (0,5 CPU o 1 CPU). Si necesitas procesar una carga útil muy grande (uno o varios documentos grandes) se puede producir una excepción de falta de memoria. Esto está relacionado con el tamaño del documento en términos de páginas y de densidad de texto (cuánto texto hay por página). Dado que los requisitos son muy específicos para cada caso de uso, no es posible proporcionar números exactos. Puedes comprobar las directrices en la sección Dimensionar la infraestructura correctamente para obtener información más detallada. Si te encuentras con una situación de memoria insuficiente, la recomendación general es ir al siguiente nivel.
520
y 499
), producir acumulación de pedidos o incluso provocar que el modelo se bloquee (códigos de estado 503
y 500
). Si te encuentras con una situación de cálculo insuficiente, recomendamos ir al siguiente nivel, o incluso al nivel de la GPU.
Esta sección ofrece directrices generales sobre cómo se comportan los modelos en cada tamaño de habilidad diferente.
Nivel | Páginas/documento máximas | Rendimiento esperado (páginas/hora) | Unidades de IA/hora |
---|---|---|---|
0,5 CPU/2 GB de memoria | 25 | 300-600 | 1 |
1 CPU/4 GB de memoria | 50 | 400-800 | 2 |
2 CPU/8 GB de memoria | 100 | 600-1000 | 4 |
4 CPU/16 GB de memoria | 100 | 800-1200 | 8 |
6 CPU/24 GB de memoria | 100 | 900-1300 | 12 |
GPU | 200-250 | 1350-1600 | 20 |
Nivel | Páginas/documento máximas | Rendimiento esperado (páginas/hora) | Unidades de IA/hora |
---|---|---|---|
0,5 CPU/2 GB de memoria | 25 | 40-100 | 1 |
1 CPU/4 GB de memoria | 50 | 70-140 | 2 |
2 CPU/8 GB de memoria | 75 | 120-220 | 4 |
4 CPU/16 GB de memoria | 100 | 200-300 | 8 |
6 CPU/24 GB de memoria | 100 | 250-400 | 12 |
GPU | 200-250 | 1400-2200 | 20 |
Nivel | Páginas/documento máximas | Rendimiento esperado (páginas/hora) | Unidades de IA/hora |
---|---|---|---|
0,5 CPU/2 GB de memoria | 25 | 60-200 | 1 |
1 CPU/4 GB de memoria | 50 | 120-240 | 2 |
2 CPU/8 GB de memoria | 75 | 200-280 | 4 |
4 CPU/16 GB de memoria | 100 | 250-400 | 8 |
6 CPU/24 GB de memoria | 100 | 350-500 | 12 |
GPU | 200-250 | 1000-2000 | 20 |
El rendimiento esperado se expresa para cada réplica, en página/hora y un rendimiento esperado mínimo y máximo, dependiendo del propio documento. La habilidad ML debe dimensionarse para el rendimiento más alto esperado (pico) y no el rendimiento medio en un día, semana o mes.
Ejemplo 1
- Documentos que contienen un máximo de cinco páginas.
- Un pico máximo de 300 páginas por hora.
Dado que el rendimiento está en la parte inferior y el tamaño del documento es pequeño, no se necesita una GPU en este ejemplo. De dos a cuatro réplicas del nivel 0,5 de CPU o 1 de CPU son suficientes.
Ejemplo 2
- Documentos que contienen un máximo de 80 páginas.
- Un pico máximo de 900 páginas por hora.
Para este ejemplo, son suficientes tres réplicas del nivel de 4 CPU o un solo nivel de GPU.
Ejemplo 3
- Documentos que contienen un máximo de 50 páginas.
- Un pico máximo de 3000 páginas por hora.
- Usar 3 réplicas de GPU.
- Usar 12-15 réplicas del nivel de 4 CPU o 6 CPU.
Ambas opciones tienen alta disponibilidad porque hay más de dos réplicas para la habilidad ML.
Puedes consultar las tablas desde la sección de Directrices generales para ver el rendimiento esperado de una única réplica de extracción, dependiendo de la versión del modelo y el nivel.
- Idealmente, debe haber un tiempo de inactividad mínimo entre el momento en que la réplica envía la respuesta a una solicitud y el momento en que la réplica recibe los datos para la siguiente solicitud.
- La réplica no debe sobrecargarse. Las solicitudes se procesan una tras otra (en serie). Esto significa que siempre hay una solicitud activa en proceso y una cola de solicitudes pendientes. Si esta cola se vuelve demasiado larga, la réplica rechaza las nuevas solicitudes entrantes, mostrando un código de estado
429 (too many requests) HTTP
.
El punto clave a recordar al dimensionar la infraestructura para una única réplica es garantizar que la carga de trabajo esté equilibrada. La carga de trabajo no debe ser tan ligera que la réplica permanezca inactiva, o tan pesada que comience a rechazar tareas.
- Identifica el período de tiempo relevante más ocupado para las réplicas. Por ejemplo, debes identificar la hora más ocupada de actividad, no el intervalo máximo de un minuto o un tramo de 12 horas. Después de identificar este período de tiempo, estima la demanda (número de páginas o solicitudes) durante ese tiempo.
- Divide la estimación por el rendimiento por réplica, descrito en la sección Tamaño de la infraestructura para una réplica.
- Añade algo de capacidad adicional como medida de seguridad.
Ten en cuenta que el uso del período de tiempo más ocupado puede provocar un sobreaprovisionamiento cuando la demanda es significativamente menor. Para solucionar esto, puedes aumentar o disminuir manualmente el tamaño de una implementación, dependiendo de la demanda. Esto puede ser útil si, por ejemplo, hay un intervalo de una hora muy ocupado que requiere 10 réplicas, seguidas de 23 horas de actividad baja donde solo se necesitan 2 réplicas. Esto puede resultar en un tiempo considerable en el que el sistema está sobreaprovisionado.
El número de páginas y la densidad de esas páginas son factores clave. El recuento de páginas es más relevante que el número de solicitudes. Sin embargo, en términos prácticos, las solicitudes son más fáciles de contar.
Al determinar si una implementación está subaprovisionada, la utilización de la CPU no es relevante, ya que cada réplica maximizará el uso de CPU/GPU mientras se procesa una solicitud, independientemente de la cola de solicitudes pendiente.
El factor importante es el tiempo de principio a fin, que es la suma del tiempo de espera y el tiempo de procesamiento real.
Por ejemplo, si has elegido un nivel con un rendimiento de aproximadamente 900 páginas/hora, o unos 4 segundos/página, y envías documentos de 5 páginas, normalmente tardarás unos 30 segundos por documento.
A continuación, puedes aproximar un tiempo de espera de unos 10 segundos. Esto significa que hay un tiempo de espera (lo que significa que la solicitud no fue tomada instantáneamente por la réplica porque estaba ocupada manejando solicitudes preexistentes). Esto también indicó que este tiempo de espera era de unos 10 segundos.
Si la diferencia entre el tiempo real de principio a fin (el tiempo medido) y el tiempo esperado de principio a fin (estimado en función del nivel) es superior a cero, significa que la réplica está funcionando sin parar. Además, si el tiempo de espera aumenta a medida que aumenta la demanda, está claro que la implementación está bajo un estrés sostenido. Además, cualquier código de estado 429 (demasiadas solicitudes) es un signo de subaprovisionamiento.
- Identifica el período de tiempo más ocupado. Para este ejemplo, supongamos que es una hora, o 3600 segundos.
- Tomemos el número actual de réplicas, supongamos que son 10. Esto da como resultado 36 000 "réplica-segundos" (concepto similar a "persona-hora").
- Suma la duración total de las solicitudes (suma de tiempos de principio a fin). Supongamos que son 10 000 segundos.
- Introducción al rendimiento del modelo de ML
- GPU
- CPU
- Número de réplicas
- Número De Robots
- Problemas potenciales relacionados con el tamaño de la infraestructura
- Memoria insuficiente
- Cálculo insuficiente
- Dimensionar la infraestructura correctamente
- Directrices generales
- Ejemplos
- Tamaño de la infraestructura para una réplica
- Determinar el número de réplicas necesario
- Medir la demanda y la oferta: páginas o solicitudes
- Determinar si una implementación está subaprovisionada
- Determinar si una implementación está sobreaprovisionada