Esta publicación fue escrita en coautoría con Daniele Chiappalupi, participante del equipo de Hackathon estudiantil de AWS en eth Zürich.
Todos pueden comenzar fácilmente con el aprendizaje automático (ML) utilizando Amazon SageMaker JumpStart. En esta publicación, le mostramos cómo un equipo de Hackathon universitario utilizó SageMaker JumpStart para crear rápidamente una aplicación que ayuda a los usuarios a identificar y eliminar prejuicios.
“Amazon SageMaker fue fundamental en nuestro proyecto. Facilitó la implementación y administración de una instancia previamente entrenada de Flan, ofreciéndonos una base sólida para nuestra aplicación. Su función de escalado automático resultó crucial durante los períodos de mucho tráfico, lo que garantizó que nuestra aplicación siguiera respondiendo y los usuarios recibieran un análisis de sesgo rápido y constante. Además, al permitirnos descargar la pesada tarea de consultar el modelo Flan a un servicio administrado, pudimos mantener nuestra aplicación liviana y rápida, mejorando la experiencia del usuario en varios dispositivos. Las características de SageMaker nos permitieron maximizar nuestro tiempo en el hackathon, permitiéndonos concentrarnos en optimizar nuestras indicaciones y aplicaciones en lugar de administrar el rendimiento y la infraestructura del modelo”.
– Daniele Chiappalupi, participante del equipo de Hackathon estudiantil de AWS en eth Zürich.
Descripción general de la solución
El tema del Hackathon es contribuir a los objetivos sostenibles de la ONU con tecnología de inteligencia artificial. Como se muestra en la siguiente figura, la aplicación creada en el Hackathon contribuye a tres de los Objetivos de Desarrollo Sostenible (educación de calidad, lucha contra la discriminación de género y reducción de las desigualdades) al ayudar a los usuarios a identificar y eliminar sesgos en sus textos para promover la equidad. y lenguaje inclusivo.
Como se muestra en la siguiente captura de pantalla, después de proporcionar el texto, la aplicación genera una nueva versión libre de prejuicios raciales, étnicos y de género. Además, resalta las partes específicas del texto de entrada relacionadas con cada categoría de sesgo.
En la arquitectura que se muestra en el siguiente diagrama, los usuarios ingresan texto en el ReaccionarAplicación web basada en Amazon, que activa Amazon API Gateway, que a su vez invoca una función AWS Lambda dependiendo del sesgo en el texto del usuario. La función Lambda llama al punto final del modelo Flan en SageMaker JumpStart, que devuelve el resultado de texto imparcial a través de la misma ruta de regreso a la aplicación de front-end.
Proceso de desarrollo de aplicaciones
El proceso de desarrollo de esta aplicación fue iterativo y se centró en dos áreas principales: interfaz de usuario e integración del modelo ML.
Elegimos React para el desarrollo front-end debido a su flexibilidad, escalabilidad y poderosas herramientas para crear interfaces de usuario interactivas. Dada la naturaleza de nuestra aplicación (procesar la entrada del usuario y presentar resultados refinados), la arquitectura basada en componentes de React resultó ideal. Con React, pudimos crear de manera eficiente una aplicación de una sola página que permitiera a los usuarios enviar texto y ver resultados no sesgados sin la necesidad de actualizar constantemente la página.
El texto ingresado por el usuario debía ser procesado por un potente modelo de lenguaje para detectar sesgos. Elegimos Flan por sus propiedades de robustez, eficiencia y escalabilidad. Para utilizar Flan, utilizamos SageMaker JumpStart, como se muestra en la siguiente captura de pantalla. Amazon SageMaker facilitó la implementación y administración de una instancia previamente entrenada de Flan, lo que nos permitió concentrarnos en optimizar nuestras indicaciones y consultas en lugar de administrar el rendimiento y la infraestructura del modelo.
Conectar el modelo Flan a nuestra aplicación front-end requirió una integración sólida y segura, que se logró utilizando Lambda y API Gateway. Con Lambda, creamos una función sin servidor que se comunica directamente con nuestro modelo SageMaker. Luego utilizamos API Gateway para crear un punto final seguro, escalable y de fácil acceso para que nuestra aplicación React invoque la función Lambda. Cuando un usuario enviaba un texto, la aplicación activaba una serie de llamadas API a la puerta de enlace: primero para identificar si había algún sesgo y luego, si era necesario, consultas adicionales para identificar, localizar y neutralizar el sesgo. Todas estas solicitudes se enrutaron a través de la función Lambda y luego a nuestro modelo SageMaker.
Nuestra tarea final en el proceso de desarrollo fue la selección de indicaciones para consultar el modelo de lenguaje. Aquí, el conjunto de datos CrowS-Pairs jugó un papel fundamental porque nos proporcionó ejemplos reales de texto sesgado, que utilizamos para ajustar nuestras solicitudes. Seleccionamos las indicaciones mediante un proceso iterativo, con el objetivo de maximizar la precisión en la detección de sesgos dentro de este conjunto de datos.
Al concluir el proceso, observamos un flujo operativo fluido en la aplicación terminada. El proceso comienza cuando un usuario envía un texto para su análisis, que luego se envía mediante una solicitud POST a nuestro punto final seguro API Gateway. Esto activa la función Lambda, que se comunica con el punto final de SageMaker. En consecuencia, el modelo Flan recibe una serie de consultas. El primero comprueba la presencia de sesgos en el texto. Si se detectan sesgos, se implementan consultas adicionales para localizar, identificar y neutralizar estos elementos sesgados. Luego, los resultados se devuelven a través de la misma ruta: primero a la función Lambda, luego a través de API Gateway y, finalmente, de regreso al usuario. Si había algún sesgo en el texto original, el usuario recibe un análisis completo que indica los tipos de sesgos detectados, ya sean raciales, étnicos o de género. Se resaltan las secciones específicas del texto donde se encontraron estos sesgos, lo que brinda a los usuarios una visión clara de los cambios realizados. Junto con este análisis, se presenta una versión nueva y sin sesgos de su texto, transformando efectivamente aportes potencialmente sesgados en una narrativa más inclusiva.
En las siguientes secciones, detallamos los pasos para implementar esta solución.
Configurar el entorno de React
Comenzamos configurando nuestro entorno de desarrollo para React. Para iniciar una nueva aplicación React con una configuración mínima, utilizamos create-react-app:
npx create-react-app my-app
Construya la interfaz de usuario
Usando React, diseñamos una interfaz simple para que los usuarios ingresen texto, con un botón de envío, un botón de reinicio y pantallas superpuestas para presentar los resultados procesados cuando estén disponibles.
Iniciar el modelo Flan en SageMaker
Usamos SageMaker para crear una instancia previamente entrenada del modelo de lenguaje Flan con un punto final para inferencia en tiempo real. El modelo se puede utilizar contra cualquier carga útil estructurada en JSON como la siguiente:
Crear una función Lambda
Desarrollamos una función Lambda que interactuaba directamente con nuestro punto final SageMaker. La función fue diseñada para recibir una solicitud con el texto del usuario, reenviarla al punto final de SageMaker y devolver los resultados refinados, como se muestra en el siguiente código (ENDPOINT_NAME
se configuró como el punto final de la instancia de SageMaker):
Configurar puerta de enlace API
Configuramos una nueva API REST en API Gateway y la vinculamos a nuestra función Lambda. Esta conexión permitió que nuestra aplicación React realizara solicitudes HTTP a API Gateway, lo que posteriormente activó la función Lambda.
Integre la aplicación React con la API
Actualizamos la aplicación React para realizar una solicitud POST a API Gateway cuando se hace clic en el botón Enviar, siendo el cuerpo de la solicitud el texto del usuario. El código JavaScript que utilizamos para realizar la llamada API es el siguiente (REACT_APP_AWS_ENDPOINT
corresponde al punto final de API Gateway vinculado a la llamada Lambda):
Optimizar la selección de mensajes
Para mejorar la precisión de la detección de sesgos, probamos diferentes indicaciones con el conjunto de datos CrowS-Pairs. A través de este proceso iterativo, elegimos las indicaciones que nos brindaron la mayor precisión.
Implemente y pruebe la aplicación React en Vercel
Después de crear la aplicación, la implementamos en Vercel para que sea de acceso público. Realizamos pruebas exhaustivas para garantizar que la aplicación funcionara como se esperaba, desde la interfaz de usuario hasta las respuestas del modelo de lenguaje.
Estos pasos sentaron las bases para la creación de nuestra aplicación para analizar y eliminar el sesgo de texto. A pesar de la complejidad inherente del proceso, el uso de herramientas como SageMaker, Lambda y API Gateway simplificó el desarrollo, permitiéndonos centrarnos en el objetivo principal del proyecto: identificar y eliminar sesgos en el texto.
Conclusión
SageMaker JumpStart ofrece una manera conveniente de explorar las características y capacidades de SageMaker. Proporciona soluciones seleccionadas de un solo paso, cuadernos de ejemplo y modelos previamente entrenados implementables. Estos recursos le permiten aprender y comprender rápidamente SageMaker. Además, tiene la opción de ajustar los modelos e implementarlos según sus necesidades específicas. El acceso a JumpStart está disponible a través de Amazon SageMaker Studio o mediante programación mediante las API de SageMaker.
En esta publicación, conoció cómo un equipo estudiantil de Hackathon desarrolló una solución en poco tiempo utilizando SageMaker JumpStart, lo que muestra el potencial de AWS y SageMaker JumpStart para permitir un rápido desarrollo e implementación de soluciones sofisticadas de IA, incluso por parte de equipos o individuos pequeños.
Para obtener más información sobre el uso de SageMaker JumpStart, consulte Ajuste de instrucciones para FLAN T5 XL con Amazon SageMaker Jumpstart y Solicitud de disparo cero para el modelo básico Flan-T5 en Amazon SageMaker JumpStart.
eth Analytics Club organizó el ‘eth Datathon’, un hackathon de IA/ML que atrae a más de 150 participantes de eth Zurich, la Universidad de Zurich y EPFL. El evento presenta talleres dirigidos por líderes de la industria, un desafío de codificación de 24 horas y valiosas oportunidades para establecer contactos con compañeros de estudios y profesionales de la industria. Muchas gracias al equipo de eth Hackathon: Daniele Chiappalupi, Athina Nisioti y Francesco Ignazio Re, así como al resto del equipo organizador de AWS: Alice Morano, Demir Catovic, Iana Peix, Jan Oliver Seidenfuss, Lars Nettemann y Markus Winterholer.
El contenido y las opiniones de esta publicación son del autor externo y AWS no es responsable del contenido o la precisión de esta publicación.
Sobre los autores
Jun Zhang es un arquitecto de soluciones con sede en Zurich. Ayuda a los clientes suizos a diseñar soluciones basadas en la nube para alcanzar su potencial empresarial. Le apasiona la sostenibilidad y se esfuerza por resolver los desafíos actuales de sostenibilidad con tecnología. También es un gran aficionado al tenis y le gusta mucho jugar juegos de mesa.
Mohan Gowda Lidera el equipo de Machine Learning en AWS Suiza. Trabaja principalmente con clientes de automoción para desarrollar soluciones y plataformas innovadoras de IA/ML para vehículos de próxima generación. Antes de trabajar con AWS, Mohan trabajó con una firma de consultoría de gestión global centrada en estrategia y análisis. Su pasión radica en los vehículos conectados y la conducción autónoma.
Esterathias el es el Jefe de Educación en Suiza. Es un líder de equipo entusiasta con una amplia experiencia en desarrollo empresarial, ventas y marketing.
Kemeng Zhang es un ingeniero de ML con sede en Zurich. Ayuda a clientes globales a diseñar, desarrollar y escalar aplicaciones basadas en ML para potenciar sus capacidades digitales para aumentar los ingresos comerciales y reducir los costos. También le apasiona la creación de aplicaciones centradas en las personas aprovechando el conocimiento de las ciencias del comportamiento. Le gusta practicar deportes acuáticos y pasear perros.
Daniele Chiappalupi es un recién graduado de eth Zürich. Disfruta todos los aspectos de la ingeniería de software, desde el diseño hasta la implementación y desde la implementación hasta el mantenimiento. Tiene una profunda pasión por la IA y anticipa con impaciencia explorar, utilizar y contribuir a los últimos avances en el campo. En su tiempo libre, le encanta practicar snowboard durante los meses más fríos y jugar baloncesto cuando el clima se calienta.