Amazon SageMaker viene con dos opciones para activar portátiles totalmente administrados para explorar datos y crear modelos de aprendizaje automático (ML). La primera opción son cuadernos colaborativos de inicio rápido a los que se puede acceder desde Amazon SageMaker Studio, un entorno de desarrollo totalmente integrado (IDE) para el aprendizaje automático. Puede iniciar rápidamente cuadernos en Studio, subir o bajar fácilmente los recursos informáticos subyacentes sin interrumpir su trabajo e incluso compartir su cuaderno como un enlace con unos pocos clics. Además de crear cuadernos, puede realizar todos los pasos de desarrollo de ML para crear, entrenar, depurar, rastrear, implementar y monitorear sus modelos en un solo panel de vidrio en Studio. La segunda opción son las instancias de notebook de Amazon SageMaker: una única instancia informática de aprendizaje automático completamente administrada que ejecuta notebooks en la nube, lo que le ofrece más control sobre las configuraciones de su notebook.
Hoy, nos complace anunciar la disponibilidad de las extensiones de seguridad de Amazon CodeWhisperer y Amazon CodeGuru en las notebooks de SageMaker. Estas extensiones impulsadas por IA ayudan a acelerar el desarrollo de ML al ofrecer sugerencias de código a medida que escribe y garantizan que su código sea seguro y siga las mejores prácticas de AWS.
En esta publicación, le mostramos cómo puede comenzar con Amazon CodeGuru Security y CodeWhisperer en instancias de notebook Studio y SageMaker.
Descripción general de la solución
El Extensión CodeWhisperer es un compañero de codificación de IA que brinda a los desarrolladores sugerencias de código en tiempo real en cuadernos. Los desarrolladores individuales pueden usar CodeWhisperer de forma gratuita en las instancias de notebook de Studio y SageMaker. El compañero de codificación genera sugerencias de código de función completa o de una sola línea en tiempo real. Comprende la semántica y el contexto de su código y puede recomendar sugerencias basadas en AWS y las mejores prácticas de desarrollo, lo que mejora la eficiencia, la calidad y la velocidad de los desarrolladores.
El Extensión de seguridad de CodeGuru ofrece escaneos de calidad de código y seguridad para instancias de notebook Studio y SageMaker. Esto ayuda a los usuarios de computadoras portátiles a detectar vulnerabilidades de seguridad, como fallas de inyección, fugas de datos, criptografía débil o cifrado faltante dentro de las celdas de las computadoras portátiles. También puede detectar muchos problemas comunes que afectan la legibilidad, la reproducibilidad y la corrección de los cuadernos computacionales, como el uso indebido de las API de la biblioteca ML, el orden de ejecución no válido y el no determinismo. Cuando se identifican vulnerabilidades o problemas de calidad en el cuaderno, CodeGuru genera recomendaciones que le permiten solucionar esos problemas según las prácticas recomendadas de seguridad de AWS.
En las siguientes secciones, mostramos cómo instalar cada una de las extensiones y discutimos las capacidades de cada una, demostrando cómo estas herramientas pueden mejorar la productividad general de los desarrolladores.
requisitos previos
Si es la primera vez que trabaja con Studio, primero debe crear un dominio de SageMaker. Además, asegúrese de tener acceso adecuado tanto a CodeWhisperer como a CodeGuru mediante AWS Identity and Access Management (IAM).
Puede usar estas extensiones en cualquier región de AWS, pero las solicitudes a CodeWhisperer se atenderán a través del us-east-1
Región. Las solicitudes se enviarán a CodeGuru en la región del dominio de Studio y si CodeGuru es compatible con la región. Para todas las regiones no admitidas, las solicitudes se atenderán a través de us-east-1
.
Configurar CodeWhisperer con cuadernos de SageMaker
En esta sección, demostramos cómo configurar CodeWhisperer con SageMaker Studio.
Actualice los permisos de IAM para usar la extensión
Puede usar la extensión CodeWhisperer en cualquier región, pero todas las solicitudes a CodeWhisperer se atenderán a través de us-east-1
Región.
Para usar la extensión CodeWhisperer, asegúrese de tener los permisos necesarios. En la consola de IAM, agregue la siguiente política al rol de ejecución del usuario de SageMaker:
Instalar la extensión CodeWhisperer
Puede instalar la extensión CodeWhisperer a través de la línea de comando. En esta sección, analizamos los pasos involucrados. Para comenzar, complete los siguientes pasos:
- Sobre el Archivo menú, elige Nuevo y Terminal.
- Ejecute los siguientes comandos para instalar la extensión:
Actualice su navegador y habrá instalado con éxito la extensión CodeWhisperer.
Usar CodeWhisperer en Studio
Después de completar los pasos de instalación, podemos usar CodeWhisperer abriendo un nuevo cuaderno o archivo de Python. Para nuestro ejemplo, abriremos un Cuaderno de muestra.
Verá una barra de herramientas en la parte inferior de su computadora portátil llamada CodeWhisperer. Esto muestra accesos directos comunes para CodeWhisperer junto con la capacidad de pausar sugerencias de código, abrir el registro de referencia de código y obtener un enlace a la documentación de CodeWhisperer.
El registro de referencia de código marcará o filtrará las sugerencias de código que se parezcan a los datos de entrenamiento de código abierto. Obtenga la licencia y la URL del repositorio del proyecto de código abierto asociado para que pueda revisarlos más fácilmente y agregar atribuciones.
Para comenzar, coloque el cursor en un bloque de código en su cuaderno y CodeWhisperer comenzará a hacer sugerencias. Si no ve sugerencias, presione Alt+C en Windows o Opción+C en Mac para invocar manualmente las sugerencias.
El siguiente video muestra cómo usar CodeWhisperer para leer y realizar estadísticas descriptivas en un archivo de datos en Studio.
Usar CodeWhisperer en instancias de SageMaker Notebook
Complete los siguientes pasos para usar CodeWhisperer en instancias de notebook:
- Navegue a su instancia de cuaderno de SageMaker.
- Asegúrese de haber adjuntado la política de CodeWhisperer anterior al rol de IAM de la instancia del cuaderno.
- Cuando se agreguen los permisos, elija Abrir JupyterLab.
- Instala la extensión. usando una terminal, en el Archivo menú, elige Nuevo y Terminale ingrese los siguientes comandos:
- Una vez que se completan los comandos, en el Archivo menú, elige Cerrar para reiniciar nuestro servidor Jupyter.
- Actualizar la ventana del navegador.
Ahora verá la extensión CodeWhisperer instalada y lista para usar.
Probémoslo en un archivo de Python.
- Sobre el Archivo menú, elige Nuevo y Archivo Python.
El siguiente video muestra cómo crear una función para convertir un archivo JSON a CSV.
Configurar la seguridad de CodeGuru con las libretas de SageMaker
En esta sección, demostramos cómo configurar CodeGuru Security con SageMaker Studio.
Actualice los permisos de IAM para usar la extensión
Para usar la extensión de seguridad de CodeGuru, asegúrese de tener los permisos necesarios. Complete los siguientes pasos para actualizar las políticas de permisos con IAM:
- Privilegiado: En la consola de IAM, puede adjuntar el
AmazonCodeGuruSecurityScanAccess
política administrada a sus identidades de IAM. Esta política otorga permisos que permiten a un usuario trabajar con análisis, incluida la creación de análisis, la visualización de la información del análisis y la visualización de los resultados del análisis. - Para políticas personalizadas, ingrese los siguientes permisos:
- Adjunte la política a cualquier usuario o rol que usará la extensión CodeGuru Security.
Para obtener más información, consulte Políticas y permisos en IAM.
Instalar la extensión de seguridad de CodeGuru
Puede instalar la extensión CodeGuru Security a través de la línea de comando. Para comenzar, complete los siguientes pasos:
- Sobre el Archivo menú, elige Nuevo y Terminal.
- Ejecute los siguientes comandos para instalar la extensión en el
conda
ambiente:
Actualice su navegador y habrá instalado con éxito la extensión de CodeGuru.
Ejecutar un escaneo de código
Los siguientes pasos demuestran cómo ejecutar su primer análisis de seguridad de CodeGuru usando un archivo de ejemplo:
- Crear un nuevo cuaderno llamado
example.ipynb
con el siguiente código para fines de prueba:
El siguiente código ha incorporado intencionalmente malas prácticas comunes para mostrar las capacidades de Amazon CodeGuru Security.
- Importante: Confirme que la extensión CodeGuru-Security está instalada y si el servidor LSP dice
Fully initialized
como se muestra a continuación cuando abre su computadora portátil.
Si no ve la extensión completamente inicializada, regrese a la sección anterior para instalar la extensión y completar los pasos de instalación.
- Inicie el escaneo. Puede iniciar un escaneo de una de las siguientes maneras:
- Elija cualquier celda de código en su archivo, luego elija el icono de bombilla.
- Elija (haga clic con el botón derecho) cualquier celda de código en su archivo, luego elija Ejecutar análisis de CodeGuru.
- Elija cualquier celda de código en su archivo, luego elija el icono de bombilla.
Cuando se inicia el escaneo, el estado del escaneo se mostrará como CodeGuru: Escaneo en progreso.
Después de unos segundos, cuando se complete el escaneo, el estado cambiará a CodeGuru: Escaneo completado.
Ver y abordar los hallazgos
Una vez finalizada la exploración, su código puede tener algunos hallazgos subrayados. Pase el cursor sobre el código subrayado y aparecerá una ventana emergente con un breve resumen del hallazgo. Para acceder a detalles adicionales sobre los hallazgos, haga clic derecho en cualquier celda y elija Mostrar panel de diagnóstico.
Esto abrirá un panel que contiene información adicional y sugerencias relacionadas con los hallazgos, ubicado en la parte inferior del archivo del cuaderno.
Después de realizar cambios en su código según las recomendaciones, puede volver a ejecutar el escaneo para verificar si el problema se resolvió. Es importante tener en cuenta que los hallazgos del escaneo desaparecerán después de que modifique su código, y deberá volver a ejecutar el escaneo para verlos nuevamente.
Habilitar escaneos de código automáticos
Los análisis automáticos están desactivados de forma predeterminada. Opcionalmente, puede habilitar escaneos de código automáticos y establecer la frecuencia y la región de AWS para sus ejecuciones de escaneo. Para habilitar los escaneos automáticos de códigos, complete los siguientes pasos.
- En Studio, en el Ajustes menú, elige Editor de configuración avanzada.
- Para Escaneos automáticoselegir Activado.
- Especifique la frecuencia de escaneo en segundos y la región para su escaneo de seguridad de CodeGuru.
Para nuestro ejemplo, configuramos CodeGuru para realizar un escaneo de seguridad automático cada 240 segundos en el us-east-1
Región. Puede modificar este valor para cualquier región en la que se admita CodeGuru Security.
Conclusión
Las instancias de SageMaker Studio y SageMaker Notebook ahora son compatibles con las extensiones CodeWhisperer y CodeGuru con tecnología de inteligencia artificial que lo ayudan a escribir código seguro más rápido. Le recomendamos que pruebe ambas extensiones. Para obtener más información sobre la seguridad de CodeGuru para SageMaker, consulte Introducción a la extensión de Amazon CodeGuru para JupyterLab y SageMaker Studio, y para obtener más información sobre CodeWhisperer para SageMaker, consulte Configuración de CodeWhisperer con Amazon SageMaker Studio. ¡Por favor comparta cualquier comentario en los comentarios!
Sobre los autores
Raj Pathak es Arquitecto de Soluciones Senior y Tecnólogo especializado en Servicios Financieros (Seguros, Banca, Mercados de Capitales) y Aprendizaje Automático. Se especializa en procesamiento de lenguaje natural (NLP), modelos de lenguaje grande (LLM) y proyectos de infraestructura y operaciones de aprendizaje automático (MLOps).
Gaurav Parek es un arquitecto de soluciones que ayuda a los clientes de AWS a crear una arquitectura moderna a gran escala. Su área principal de especialización incluye análisis de datos, redes y estrategia tecnológica. Fuera del trabajo, a Gaurav le gusta jugar cricket, fútbol y voleibol.
Arkaprava de es ingeniero de software sénior en AWS. Ha estado en Amazon durante más de 7 años y actualmente está trabajando para mejorar la experiencia del IDE de Amazon SageMaker Studio. Puedes encontrarlo en LinkedIn.
Prashant Pawan Pequeño es gerente principal de productos en Amazon Web Services (AWS). Ha creado varios productos en AWS y Alexa, y actualmente se centra en ayudar a los profesionales del aprendizaje automático a ser más productivos a través de los servicios de AWS.