Screenshot 2024 09 23 At 11.14.02 am.png

Los proyectos de aprendizaje automático (ML) son inherentemente complejos e implican múltiples pasos intrincados, desde la recopilación y el preprocesamiento de datos hasta la creación, implementación y mantenimiento de modelos. Los científicos de datos enfrentan numerosos desafíos a lo largo de este proceso, como seleccionar las herramientas adecuadas, necesitar instrucciones paso a paso con ejemplos de código y solucionar errores y problemas. Estos desafíos iterativos pueden obstaculizar el progreso y ralentizar los proyectos. Afortunadamente, los asistentes para desarrolladores con tecnología de IA generativa como Desarrollador de Amazon Q Han surgido para ayudar a los científicos de datos a optimizar sus flujos de trabajo y acelerar los proyectos de ML, lo que les permite ahorrar tiempo y centrarse en iniciativas estratégicas e innovación.

Amazon Q Developer está completamente integrado con Estudio Amazon SageMakerun entorno de desarrollo integrado (IDE) que proporciona una única interfaz basada en la web para gestionar todas las etapas del desarrollo de ML. Puede utilizar este asistente de lenguaje natural desde su notebook de SageMaker Studio para obtener asistencia personalizada mediante lenguaje natural. Ofrece recomendaciones de herramientas, orientación paso a paso, generación de código y soporte para la resolución de problemas. Esta integración simplifica su flujo de trabajo de ML y lo ayuda a crear, entrenar e implementar modelos de ML de manera eficiente sin necesidad de salir de SageMaker Studio para buscar recursos o documentación adicionales.

En esta publicación, presentamos un caso de uso del mundo real que analiza el Conjunto de datos de 130 hospitales de EE. UU. sobre diabetes Desarrollar un modelo de ML que prediga la probabilidad de readmisión después del alta. A lo largo de este ejercicio, utilizará Amazon Q Developer en SageMaker Studio para varias etapas del ciclo de vida de desarrollo y experimentará de primera mano cómo este asistente de lenguaje natural puede ayudar incluso a los científicos de datos o ingenieros de ML más experimentados a optimizar el proceso de desarrollo y acelerar el tiempo de generación de valor.

Descripción general de la solución

Si eres un Gestión de identidad y acceso de AWS (YO SOY) y Centro de identidad de AWS IAM usuario, puedes utilizar tu Nivel Amazon Q Developer Pro suscripción dentro de Amazon SageMakerLos administradores pueden suscribir usuarios al nivel Pro en la consola de Amazon Q Developer, habilitar el nivel Pro en la configuración del dominio de SageMaker y proporcionar el nombre de recurso de Amazon (ARN) del perfil de Amazon Q Developer. El nivel Pro ofrece chat ilimitado y sugerencias de código en línea. Consulte Configurar Amazon Q Developer para sus usuarios para obtener instrucciones detalladas.

Si no tiene una suscripción de nivel Pro pero desea probar la capacidad, puede acceder a la Nivel gratuito para desarrolladores de Amazon Q agregando las políticas pertinentes a sus roles de servicio de SageMaker. Los administradores pueden navegar a la consola de IAM, buscar el rol de SageMaker Studio y agregar la política descrita en Configurar Amazon Q Developer para sus usuariosEl nivel gratuito está disponible para los usuarios de IAM y de IAM Identity Center.

Para iniciar nuestro proyecto ML que predice la probabilidad de readmisión de pacientes con diabetes, debe descargar el Conjunto de datos de 130 hospitales de EE. UU. sobre diabetesEste conjunto de datos contiene 10 años (1999-2008) de datos de atención clínica en 130 hospitales y redes integradas de prestación de servicios de los EE. UU. Cada fila representa los registros hospitalarios de pacientes con diagnóstico de diabetes, que se sometieron a análisis de laboratorio y más.

Al momento de escribir este artículo, la compatibilidad con Amazon Q Developer en SageMaker Studio solo está disponible en espacios de JupyterLab. Amazon Q Developer no es compatible con espacios compartidos.

Chat para desarrolladores de Amazon Q

Una vez que haya cargado los datos en SageMaker Studio, puede comenzar a trabajar en su problema de ML para reducir las tasas de readmisión de pacientes con diabetes. Comience por usar la función de chat junto a su notebook de JupyterLab. Puede hacer preguntas como generar código para analizar los datos de los hospitales de Diabetes 130-US, cómo debe formular este problema de ML y desarrollar un plan para crear un modelo de ML que prediga la probabilidad de readmisión después del alta. Amazon Q Developer usa IA para proporcionar recomendaciones de código, y esto no es determinista. Los resultados que obtenga pueden ser diferentes a los que se muestran en la siguiente captura de pantalla.

Puede pedirle a Amazon Q Developer que lo ayude a planificar el proyecto de ML. En este caso, queremos que el asistente nos muestre cómo entrenar un clasificador de bosque aleatorio utilizando el conjunto de datos Diabetes 130-US. Ingrese el siguiente mensaje en el chat y Amazon Q Developer generará un plan. Si se genera el código, puede usar la interfaz de usuario para insertarlo directamente en su cuaderno.

I have diabetic_data.csv file containing training data about whether a diabetic patient was readmitted after discharge. I want to use this data to train a random forest classifier using scikit-learn. Can you list out the steps to build this model?

Puede pedirle a Amazon Q Developer que lo ayude a generar código para tareas específicas insertando el siguiente mensaje:

Create a function that takes in a pandas DataFrame and performs one-hot encoding for the gender, race, A1Cresult, and max_glu_serum columns.

También puede pedirle a Amazon Q Developer que le explique el código existente y solucione los errores más comunes. Simplemente seleccione la celda con el error e ingrese /fix en el chat.

La siguiente es una lista completa de los comandos de acceso directo:

  • /ayuda – Mostrar este mensaje de ayuda
  • /arreglar – Corrige un error en la celda seleccionada en tu cuaderno
  • /claro – Limpiar la ventana de chat
  • /exportar – Exportar el historial de chat a un archivo Markdown

Para aprovechar al máximo su chat de desarrollador de Amazon Q, se recomiendan las siguientes prácticas recomendadas al elaborar su mensaje:

  • Sea directo y específico – Haga preguntas precisas. Por ejemplo, en lugar de una consulta vaga sobre los servicios de AWS, intente: “¿Puede proporcionar un código de muestra que utilice la biblioteca SageMaker Python SDK para entrenar un modelo XGBoost en SageMaker?”. La especificidad ayuda al asistente a comprender exactamente lo que necesita, lo que da como resultado respuestas más precisas y útiles.
  • Proporcionar información contextual – Cuanto más contexto ofrezcas, mejor. Esto permite que Amazon Q Developer adapte sus respuestas a tu situación específica. Por ejemplo, no te limites a pedir código para preparar los datos. En su lugar, proporciona las primeras tres filas de tus datos para obtener mejores sugerencias de código con menos cambios necesarios.
  • Evite temas delicados – Amazon Q Developer está diseñado con controles de seguridad. Es mejor evitar preguntas relacionadas con la seguridad, la información de facturación de su cuenta u otros temas delicados.

Seguir estas pautas puede ayudarlo a maximizar el valor de las recomendaciones de código impulsadas por IA de Amazon Q Developer y agilizar sus proyectos de ML.

Sugerencias de código en línea para desarrolladores de Amazon Q

También puede obtener sugerencias de código en tiempo real mientras escribe en el cuaderno de JupyterLab, lo que ofrece recomendaciones contextuales basadas en su código y comentarios existentes para agilizar el proceso de codificación. En el siguiente ejemplo, demostramos cómo utilizar la función de sugerencias de código en línea para generar bloques de código para diversas tareas de ciencia de datos: desde la exploración de datos hasta la ingeniería de características, el entrenamiento de un modelo de bosque aleatorio, la evaluación del modelo y, finalmente, la implementación del modelo para predecir la probabilidad de readmisión de pacientes con diabetes.

La siguiente figura muestra la lista de atajos de teclado para interactuar con Amazon Q Developer.

Comencemos con la exploración de datos.

Primero importamos algunas de las bibliotecas de Python necesarias, como pandas y NumPy. Agregamos el siguiente código en la primera celda de código de Jupyter Notebook y luego ejecutamos la celda:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

En la siguiente celda de código, agregue el siguiente comentario y antes de ejecutar la celda, presione Ingresar y PestañaPuede observar la barra de estado inferior para ver a Amazon Q Developer trabajando para generar sugerencias de código.

# read 'diabetic-readmission.csv'

También puedes pedirle a Amazon Q Developer que cree una visualización:

# create a bar chart from df that shows counts of patients by 'race' and 'gender' with a title of 'patients by race and gender' 

Ahora puede realizar ingeniería de características para preparar el modelo para el entrenamiento.

El conjunto de datos proporcionado tiene una serie de características categóricas, que deben convertirse en características numéricas, así como datos faltantes. En la siguiente celda de código, agregue el siguiente comentario y presione PESTAÑA Para ver cómo Amazon Q Developer puede ayudar:

# perform one-hot encoding for gender, race, a1c_result, and max_glu_serum columns 

Por último, puede utilizar Amazon Q Developer para ayudarle a crear un modelo ML simple, un clasificador de bosque aleatorio, utilizando scikit-learn.

Política de datos de Amazon Q Developer en SageMaker

Al utilizar Amazon Q Developer en SageMaker Studio, no se utiliza ningún contenido de clientes para mejorar el servicio, independientemente de si utiliza el nivel gratuito o el nivel Pro. Para compartir telemetría a nivel de IDE, Amazon Q Developer puede realizar un seguimiento de su uso del servicio, como la cantidad de preguntas que realiza y si acepta o rechaza una recomendación. Esta información no contiene contenido de clientes ni información de identificación personal, como su dirección IP. Si prefiere no utilizar la telemetría a nivel de IDE, complete los siguientes pasos para dejar de compartir datos de uso con Amazon Q Developer:

  1. En el Ajustes menú, elegir Editor de configuraciones.

Editor de configuración para desarrolladores de Amazon Q

  1. Desmarca la opción Compartir datos de uso con Amazon Q Developer.

Política de uso de datos para desarrolladores de Amazon Q

Como alternativa, un administrador de la plataforma de ML puede deshabilitar esta opción para todos los usuarios dentro de JupyterLab de forma predeterminada con la ayuda de scripts de configuración del ciclo de vida. Para obtener más información, consulte Uso de configuraciones de ciclo de vida con JupyterLabPara deshabilitar el uso compartido de datos con Amazon Q Developer de forma predeterminada para todos los usuarios dentro de un dominio de SageMaker Studio, complete los siguientes pasos:

  1. En la consola de SageMaker, seleccione Configuraciones del ciclo de vida bajo Configuraciones de administración en el panel de navegación.
  2. Elegir Crear configuración.

Configuración del ciclo de vida de Amazon SageMaker

  1. Para Nombreintroduzca un nombre.
  2. En el Guiones sección, crea un script de configuración del ciclo de vida que deshabilita la shareCodeWhispererContentWithAWS bandera de configuración para el jupyterlab-q extensión:
#!/bin/bash
mkdir -p /home/sagemaker-user/.jupyter/lab/user-settings/amazon-q-developer-jupyterlab-ext/
cat<<EOL> /home/sagemaker-user/.jupyter/lab/user-settings/amazon-q-developer-jupyterlab-ext/completer.jupyterlab-settings
{
"shareCodeWhispererContentWithAWS": false,   
"suggestionsWithCodeReferences": true,   
"codeWhispererTelemetry": false,
"codeWhispererLogLevel": "ERROR"
}
EOL

Script de configuración del ciclo de vida de Amazon SageMaker

  1. Adjunte la configuración del ciclo de vida de deshabilitar-q-data-sharing a un dominio.
  2. Opcionalmente, puede forzar la configuración del ciclo de vida para que se ejecute con el Ejecutar por defecto

Adjuntar configuración de ciclo de vida

  1. Utilice esta configuración de ciclo de vida al crear un espacio JupyterLab.

Se seleccionará de forma predeterminada si la configuración está establecida en Ejecutar por defecto.

Script de configuración del ciclo de vida que se ejecuta de forma predeterminada en el espacio Jupyter

La configuración debería ejecutarse casi instantáneamente y deshabilitar el Compartir datos de uso con Amazon Q Developer opción en su espacio JupyterLab al iniciar.

Deshabilitar el uso compartido de datos

Limpiar

Para evitar incurrir en cargos de AWS después de probar esta solución, elimine el dominio de SageMaker Studio.

Conclusión

En esta publicación, analizamos un caso de uso del mundo real y desarrollamos un modelo de ML que predice la probabilidad de readmisión después del alta de los pacientes en el conjunto de datos de los hospitales Diabetes 130-US. A lo largo de este ejercicio, utilizamos Amazon Q Developer en SageMaker Studio para varias etapas del ciclo de vida del desarrollo, lo que demuestra cómo este asistente para desarrolladores puede ayudar a agilizar el proceso de desarrollo y acelerar el tiempo de obtención de valor, incluso para los profesionales de ML con experiencia. Tiene acceso a Amazon Q Developer en todas las regiones de AWS donde SageMaker está disponible de forma general. Comience a utilizar Amazon Q Developer en SageMaker Studio hoy mismo para acceder al asistente generativo impulsado por IA.

El asistente está disponible para todos los usuarios de Amazon Q Developer Pro y Free Tier. Para obtener información sobre precios, consulte Precios de Amazon Q Developer.


Acerca de los autores

James WuJames Wu James es un arquitecto de soluciones sénior especialista en IA/ML en AWS. Ayuda a los clientes a diseñar y crear soluciones de IA/ML. El trabajo de James abarca una amplia gama de casos de uso de ML, con un interés principal en la visión artificial, el aprendizaje profundo y la ampliación de ML en toda la empresa. Antes de unirse a AWS, James fue arquitecto, desarrollador y líder tecnológico durante más de 10 años, incluidos 6 años en ingeniería y 4 años en las industrias de marketing y publicidad.

Lauren MullennexLauren Mullennex es una arquitecta de soluciones especialista sénior en IA/ML en AWS. Tiene una década de experiencia en DevOps, infraestructura y ML. Sus áreas de especialización incluyen visión artificial, MLOps/LLMOps e IA generativa.

Shibin Michaelraj es gerente sénior de productos del equipo Amazon SageMaker. Se centra en la creación de productos basados ​​en IA y ML para clientes de AWS.

Pranav Murthy es un arquitecto de soluciones especializado en IA/ML en AWS. Se centra en ayudar a los clientes a crear, entrenar, implementar y migrar cargas de trabajo de aprendizaje automático (ML) a SageMaker. Anteriormente trabajó en la industria de semiconductores desarrollando grandes modelos de visión artificial (CV) y procesamiento del lenguaje natural (NLP) para mejorar los procesos de semiconductores utilizando técnicas de ML de última generación. En su tiempo libre, disfruta jugando al ajedrez y viajando. Puedes encontrar a Pranav en LinkedIn.

Bhadrinath Pani es ingeniero de desarrollo de software en Amazon Web Services y trabaja en productos de aprendizaje automático interactivos de Amazon SageMaker. Tiene más de 12 años de experiencia en el desarrollo de software en dominios como la automoción, la IoT, la realidad aumentada y virtual y la visión artificial. Actualmente, su principal objetivo es desarrollar herramientas de aprendizaje automático destinadas a simplificar la experiencia de los científicos de datos. En su tiempo libre, disfruta de pasar tiempo con su familia y explorar la belleza del noroeste del Pacífico.