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.
- Construye un chatbot contextual para servicios financieros utilizando Amazon SageMaker JumpStart, Llama 2 y Amazon OpenSearch Serverless con Vector Engine.
- Construye soluciones de IDP bien diseñadas con una lente personalizada – Parte 1 Excelencia operativa
- Científicos convierten a las carpas invasoras en traidoras.
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ónOutputDataConfig
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- El debate sobre la seguridad de la IA está dividiendo Silicon Valley
- Las prácticas de contraseña obsoletas están extendidas
- Revolucionando el área de Recursos Humanos Cómo la inteligencia artificial está cambiando la gestión del talento
- Superpotencia el entrenamiento de tus modelos de aprendizaje profundo
- Elevando el Desarrollo de React Liberando el Poder de ChatGPT para Desarrolladores de React
- Síntesis de voz Evolución, ética y ley
- Explorando el mundo de las novias de IA Un vistazo al futuro de las relaciones