Construye soluciones IDP bien estructuradas con una lente personalizada – Parte 3 Confiabilidad

Construyendo soluciones IDP confiables con una lente personalizada - Parte 3

El Lente personalizado de AWS Well-Architected para IDP está destinado a todos los clientes de AWS que utilizan AWS para ejecutar soluciones de procesamiento inteligente de documentos (IDP) y buscan orientación sobre cómo construir una solución IDP segura, eficiente y confiable en AWS.

Construir una solución lista para producción en la nube implica una serie de compensaciones entre recursos, tiempo, expectativas del cliente y resultados comerciales. El Marco de AWS Well-Architected le ayuda a comprender los beneficios y riesgos de las decisiones que tome al construir cargas de trabajo en AWS. Utilizando el Marco, aprenderá las mejores prácticas operativas y arquitectónicas para diseñar y operar cargas de trabajo confiables, seguras, eficientes, rentables y sostenibles en la nube.

Un proyecto de IDP generalmente combina reconocimiento óptico de caracteres (OCR) y procesamiento de lenguaje natural (NLP) para leer y comprender un documento y extraer términos o palabras específicas. El Lente personalizado de AWS Well-Architected para IDP describe los pasos para realizar una revisión de AWS Well-Architected que le permite evaluar e identificar los riesgos técnicos de sus cargas de trabajo de IDP. Proporciona orientación para abordar los desafíos comunes que vemos en el campo, ayudándole a diseñar sus cargas de trabajo de IDP según las mejores prácticas.

Esta publicación se centra en el pilar de Confiabilidad de la solución de IDP. Comenzando desde la introducción del pilar de Confiabilidad y los principios de diseño, luego profundizamos en el diseño e implementación de la solución con tres áreas de enfoque: fundamentos, gestión de cambios y gestión de fallas. Al leer esta publicación, aprenderá sobre el pilar de Confiabilidad en el Marco de AWS Well-Architected con el estudio de caso de IDP.

Principios de diseño

El pilar de Confiabilidad abarca la capacidad de una solución de IDP para procesar documentos de manera correcta y consistente cuando se espera y de acuerdo con las reglas comerciales definidas. Esto incluye la capacidad de operar y probar todo el flujo de trabajo de IDP y su ciclo de vida completo.

Existen varios principios que pueden ayudarlo a aumentar la confiabilidad. Tenga en cuenta estos principios mientras discutimos las mejores prácticas:

  • Recuperación automática de fallas – Monitoreando su flujo de trabajo de IDP mediante indicadores clave de rendimiento (KPI), puede ejecutar automatización cuando se supera un umbral. Esto le permite realizar un seguimiento y recibir notificaciones automáticamente si ocurre alguna falla y activar procesos de recuperación automatizados que solucionen o reparen la falla. Según las medidas de KPI, también puede anticipar fallas y aplicar acciones correctivas antes de que ocurran.
  • Pruebas de procedimientos de recuperación – Pruebe cómo falla su flujo de trabajo de IDP y valide los procedimientos de recuperación. Utilice la automatización para simular diferentes escenarios o recrear escenarios que condujeron a la falla anteriormente.
  • Escalado y ajuste de capacidad de servicio – Monitoree la demanda y el uso del flujo de trabajo de IDP y ajuste automáticamente la capacidad de los servicios de AWS para mantener el nivel óptimo que satisfaga la demanda sin sobre o subaprovisionamiento. Controle y tenga en cuenta las cuotas, límites y restricciones del servicio de los componentes de IDP, como Amazon Textract y Amazon Comprehend.
  • Automatizar cambios – Utilice la automatización al aplicar cambios a la infraestructura de su flujo de trabajo de IDP. Administre los cambios a través de la automatización, que luego se pueden rastrear y revisar.

Áreas de enfoque

Los principios de diseño y las mejores prácticas del pilar de Confiabilidad se basan en conocimientos recopilados de nuestros clientes y nuestras comunidades de especialistas técnicos de IDP. Úselos como orientación y apoyo para sus decisiones de diseño y alinéelos con los requisitos comerciales de su solución de IDP. Aplicar el Lente de AWS Well-Architected para IDP le ayuda a validar la resistencia y eficiencia del diseño de su solución de IDP y proporciona recomendaciones para abordar cualquier brecha que pueda identificar.

Las siguientes son áreas de mejores prácticas para la confiabilidad de una solución de IDP en la nube:

  • Fundamentos – Los servicios de IA de AWS, como Amazon Textract y Amazon Comprehend, proporcionan un conjunto de límites suaves y duros para diferentes dimensiones de uso. Es importante revisar estos límites y asegurarse de que su solución de IDP se adhiera a los límites suaves, sin exceder los límites duros.
  • Gestión de cambios – Trate su solución de IDP como infraestructura como código (IaC), lo que le permite automatizar la supervisión y gestión de cambios. Utilice el control de versiones en los componentes como infraestructura y modelos personalizados de Amazon Comprehend, y haga un seguimiento de los cambios hasta el lanzamiento en un punto específico en el tiempo.
  • Gestión de fallas – Debido a que el flujo de trabajo de IDP es una solución basada en eventos, su aplicación debe ser resistente para manejar errores conocidos y desconocidos. Una solución de IDP bien diseñada tiene la capacidad de prevenir fallas y resistir fallas cuando ocurren mediante el uso de registros y mecanismos de reintento. Es importante diseñar la resiliencia en la arquitectura de su flujo de trabajo de IDP y planificar la recuperación ante desastres.

Fundamentos

Los servicios de IA de AWS proporcionan inteligencia list

Gestión de fallos

Cuando se diseña una solución IDP, un aspecto importante a considerar es su resiliencia, cómo manejar los errores conocidos y desconocidos que pueden ocurrir. La solución IDP debe tener la capacidad de registrar los errores y volver a intentar las operaciones fallidas durante las diferentes etapas del flujo de trabajo de IDP. En esta sección, discutiremos los detalles sobre cómo diseñar su flujo de trabajo de IDP para manejar los fallos.

Prepara tu flujo de trabajo de IDP para gestionar y resistir los fallos

“Todo falla, todo el tiempo”, es una famosa cita del CTO de AWS Werner Vogels. Tu solución IDP, al igual que todo lo demás, eventualmente fallará. La pregunta es cómo puede resistir los fallos sin afectar a los usuarios de tu solución IDP. El diseño de arquitectura de tu IDP debe ser consciente de los fallos a medida que ocurren y tomar medidas para evitar impactar la disponibilidad. Esto debe hacerse automáticamente y sin afectar al usuario. Considera las siguientes mejores prácticas:

  • Utilice Amazon Simple Storage Service (Amazon S3) como su almacén de datos escalable para los documentos del flujo de trabajo de IDP a procesar. Amazon S3 proporciona una infraestructura de almacenamiento altamente duradera diseñada para almacenamiento de datos críticos y primarios.
  • Haga una copia de seguridad de todos los datos del flujo de trabajo de IDP según sus requisitos comerciales. Implemente una estrategia para recuperar o reproducir los datos en caso de pérdida de datos. Alinee esta estrategia con un Objetivo de Punto de Recuperación (RPO) y un Objetivo de Tiempo de Recuperación (RTO) definidos que cumplan con sus requisitos comerciales.
  • Si es necesario, planifique e implemente una estrategia de conmutación por error de recuperación ante desastres de su solución IDP en varias cuentas y regiones de AWS.
  • Utilice la función OutputConfig de Amazon Textract y la función OutputDataConfig de Amazon Comprehend para almacenar los resultados del procesamiento asíncrono de Amazon Textract o Amazon Comprehend en un bucket S3 designado. Esto permite que el flujo de trabajo continúe desde ese punto en lugar de repetir la invocación de Amazon Textract o Amazon Comprehend. El siguiente código muestra cómo iniciar un trabajo de API asíncrono de Amazon Textract para analizar un documento y almacenar la salida de inferencia cifrada en un bucket S3 definido. Para obtener información adicional, consulte la documentación del cliente de Amazon Textract.
import boto3client = boto3.client('textract')response = client.start_document_analysis(    DocumentLocation={        'S3Object': {            'Bucket': 'string',            'Name': 'string',            'Version': 'string'        }    },    FeatureTypes=[        'TABLES'|'FORMS'|'QUERIES'|'SIGNATURES'|'LAYOUT',    ],    …    OutputConfig={        'S3Bucket': 'string',        'S3Prefix': 'string'    },    KMSKeyId='string'    …)

Diseña tu flujo de trabajo de IDP para prevenir fallos

La confiabilidad de una carga de trabajo comienza con decisiones de diseño anticipadas. Las elecciones de arquitectura afectarán el comportamiento de la carga de trabajo y su resiliencia. Para mejorar la confiabilidad de tu solución IDP, sigue estas mejores prácticas.

En primer lugar, diseña tu arquitectura siguiendo el flujo de trabajo de IDP. Aunque las etapas en un flujo de trabajo IDP pueden variar y verse influenciadas por el caso de uso y los requisitos comerciales, las etapas de captura de datos, clasificación de documentos, extracción de texto, enriquecimiento de contenido, revisión y validación, y consumo son generalmente partes del flujo de trabajo de IDP. Estas etapas bien definidas se pueden utilizar para separar las funcionalidades y aislarlas en caso de fallo.

Puedes usar Amazon Simple Queue Service (Amazon SQS) para desacoplar las etapas del flujo de trabajo de IDP. Un patrón de desacoplamiento ayuda a aislar el comportamiento de los componentes de la arquitectura de otros componentes que dependen de él, aumentando la resiliencia y la agilidad.

En segundo lugar, controla y limita las llamadas de reintentos. Los servicios de AWS, como Amazon Textract, pueden fallar si se excede el número máximo de TPS asignados, lo que puede provocar que el servicio limite la aplicación o corte la conexión.

Debes gestionar la limitación de capacidad y las conexiones cortadas volviendo a intentar automáticamente la operación (tanto operaciones síncronas como asíncronas). Sin embargo, también debes especificar un número limitado de reintentos, después de los cuales la operación falla y arroja una excepción. Si realizas demasiadas llamadas a Amazon Textract en un corto período de tiempo, el servicio limitará tus llamadas y enviará un ProvisionedThroughputExceededExceptionerror en la respuesta de la operación.

Además, utiliza retroceso exponencial y jitter para reintentos y mejora del rendimiento. Por ejemplo, al utilizar Amazon Textract, especifica el número de reintentos incluyendo el parámetro config al crear el cliente de Amazon Textract. Recomendamos un número de reintentos de cinco. En el siguiente código de ejemplo, utilizamos el parámetro config para reintentar automáticamente una operación utilizando el modo adaptable y un máximo de cinco reintentos:

import boto3from botocore.client import Configdocuments = ['doc-img-1.png','doc-img-2.png', 'doc-img-3.png',              'doc-img-4.png', 'doc-img-5.png']config = Config(    retries = {        'max_attempts': 5,        'mode': 'adaptive'        })client = boto3.client('textract', config=config)for documentName in documents:    response = client.detect_document_text(        DocumentLocation = {            'S3Object': {                'Bucket': 'string',                'Name': documentName                }                })        ...

Aprovecha los SDK de AWS, como el AWS SDK para Python (Boto3), para ayudar en la repetición de llamadas al cliente de los servicios de AWS, como Amazon Textract y Amazon Comprehend. Hay tres modos de repetición disponibles:

  • Modo heredado – Reintenta llamadas por un número limitado de errores y excepciones, e incluye un retroceso exponencial por un factor base de 2.
  • Modo estándar – Estandariza la lógica y el comportamiento de repetición de acuerdo con otros SDK de AWS y extiende la funcionalidad de repetición en comparación con el modo heredado. Cualquier intento de repetición incluirá un retroceso exponencial por un factor base de 2, con un tiempo máximo de retroceso de 20 segundos.
  • Modo adaptable – Incluye todas las características del modo estándar e introduce un límite de tasa en el cliente mediante el uso de un cubo de tokens y variables de límite de tasa que se actualizan dinámicamente con cada intento de repetición. Ofrece flexibilidad en las repeticiones del lado del cliente que se adapta al estado de error o excepción en la respuesta de un servicio de AWS. Con cada nuevo intento de repetición, el modo adaptable modifica las variables de límite de tasa en función del error, excepción o código de estado HTTP presentado en la respuesta del servicio de AWS. Estas variables de límite de tasa se utilizan luego para calcular una nueva tasa de llamada para el cliente. Cada excepción, error o respuesta HTTP no exitosa de un servicio de AWS actualiza las variables de límite de tasa a medida que ocurren repeticiones hasta que se alcanza el éxito, el cubo de tokens se agota o se alcanza el valor máximo de intentos configurado. Ejemplos de excepciones, errores o respuestas HTTP no exitosas:
# Errores/excepciones transitoriosRequestTimeoutRequestTimeoutExceptionPriorRequestNotCompleteConnectionErrorHTTPClientError# Errores y excepciones de limitación del lado del servicioThrottlingThrottlingExceptionThrottledExceptionRequestThrottledExceptionTooManyRequestsExceptionProvisionedThroughputExceededExceptionTransactionInProgressExceptionRequestLimitExceededBandwidthLimitExceededLimitExceededExceptionRequestThrottledSlowDownEC2ThrottledException# Intentos de repetición de códigos de error transitorios no descriptivos. Específicamente, estos códigos de estado HTTP: 500, 502, 503, 504.

Conclusión

En esta publicación, compartimos principios de diseño, áreas de enfoque, fundamentos y mejores prácticas para la confiabilidad en tu solución de IDP.

Para obtener más información sobre el lente personalizado de IDP Well-Architected, explora las siguientes publicaciones de esta serie:

AWS se compromete con la Lente Well-Architected del IDP como una herramienta en constante evolución. A medida que las soluciones del IDP y los servicios relacionados de AWS AI evolucionen y se dispongan nuevos servicios de AWS, actualizaremos el Lente Well-Architected del IDP en consecuencia.

Si desea obtener más información sobre el Marco Well-Architected de AWS, consulte AWS Well-Architected.

Si necesita orientación adicional de expertos, comuníquese con su equipo de cuenta de AWS para contratar a un Arquitecto de Soluciones Especialista en IDP.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Se analiza el sonido de la tos para identificar la gravedad de los pacientes de COVID-19

Un estudio identificó características tos que pueden ayudar a evaluar la gravedad de la COVID-19 y permitir el monito...

Inteligencia Artificial

¿Son los cúbits de gato la clave para una computación cuántica confiable en la era moderna?

Los ordenadores cuánticos son propensos a errores debido a la sensibilidad de los qubits al ruido ambiental. ¿Pueden ...

Inteligencia Artificial

Amazon está probando la entrega de medicamentos con drones

Amazon está probando un servicio de entrega con drones para medicamentos recetados en College Station, Texas, con pla...

Inteligencia Artificial

NVIDIA brinda apoyo a los esfuerzos de Washington para garantizar la seguridad de la inteligencia artificial

En un evento en la Casa Blanca hoy, NVIDIA anunció su apoyo a compromisos voluntarios que la Administración Biden des...

Inteligencia Artificial

Explora el poder de las imágenes dinámicas con Text2Cinemagraph una nueva herramienta de IA para la generación de cinemagraphs a partir de indicaciones de texto

Si eres nuevo en la terminología, quizás te estés preguntando qué son los cinemagraphs, pero puedo asegurarte que pro...

Inteligencia Artificial

MLOps para la inferencia por lotes con monitoreo y reentrenamiento del modelo utilizando Amazon SageMaker, HashiCorp Terraform y GitLab CI/CD

En esta publicación, describimos cómo crear un flujo de trabajo de MLOps para la inferencia por lotes que automatiza ...