Sugerencias para principiantes sobre el uso de Azure Machine Learning: hacia la IA

Estás leyendo la publicación: Sugerencias para principiantes sobre el uso de Azure Machine Learning: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Sugerencias para principiantes para comenzar con Azure Machine Learning

Preparándose para el examen DP-100 Azure Data Science Associate.

La tubería de extremo a extremo para un modelo de ciencia de datos es diversa y sinuosa. Entre el análisis exploratorio de datos, el entrenamiento de modelos, la implementación y la gestión de esos modelos, hay muchas partes móviles. Azure Machine Learning es el servicio en la nube de Microsoft para ayudar a los desarrolladores en este viaje. Ofrece un amplio conjunto de herramientas para realizar un seguimiento del desarrollo de su modelo, versionar sus datos, implementar su modelo de forma segura y más.

Creo que muchas buenas API y software comparten algunas cosas en común. Uno de ellos es que son buenos para predecir sus deseos, o al menos tienen una comprensión de cómo el usuario querrá interactuar con el sistema. Cuando escribo código y pienso “Oh, me gustaría que hubiera una manera de hacer esto realmente fácil”, y luego tropiezo con una característica del lenguaje que hace exactamente eso en una línea, siento que el escritor de la biblioteca ha hecho algo realmente especial. Esto sucede mucho en Python, creo, con Pandas o Numpy diseñados de una manera que parece entender cómo querré interactuar con él (excepto las horas y las fechas, que lo absorben todo).

Actualmente, me estoy preparando para el DP-100, un examen de Microsoft sobre el uso de Azure ML para hacer ciencia de datos. He pasado mucho tiempo aprendiendo sobre el ecosistema y conociendo cómo funciona todo. Me encuentro pensando mucho en lo bien diseñado que está. Cómo muchas de las características hacen mi vida mucho más fácil, eliminando mi necesidad de escribir mucho código, ya que han implementado una función inteligente para hacerlo.

Realmente no he escrito antes sobre ciencia de datos, pero pensé que lo intentaría aquí. Ya hay muchas cosas geniales sobre el DP-100, así que, en cambio, pensé en probar algo ligeramente diferente. Esta es una lista de cosas que complementan el DP-100 y van bien con el plan de estudios o, en algunos casos, cosas que pensé que estaban bastante bien. No son tutoriales completos sobre cómo usar las funciones, sino pequeñas sugerencias de cosas para ver. ¡Disfrutar!

código de estudio visual

Ok, entonces esto a veces se menciona en el plan de estudios. Sin embargo, lo mencionaré de nuevo ya que está muy bien integrado.

Dentro de Visual Studio Code, el complemento Azure Machine Learning le permite tener acceso a sus espacios de trabajo, conjuntos de datos y cómputos, etc. Básicamente, le permite usar VSCode como su IDE mientras conserva la funcionalidad de Azure ML. Una vez que se conecta a un cómputo en ejecución, puede acceder a los archivos almacenados en él y ejecutar su código como lo haría en su máquina local. En el navegador Azure ML, está un poco limitado a usar cuadernos, mientras que aquí puede escribir scripts como desee.

🔥 Recomendado:  Cómo desactivar las sugerencias de amigos en Facebook

Estandarización

Desde mi experiencia aprendiendo programación, creo que puede haber una distinción entre habilidades de programación “duras” y “blandas”. Voy a llamar a las habilidades “duras” la codificación pura: el lenguaje mismo. Las cosas “suaves” son literalmente todo lo demás a su alrededor. Ni siquiera estoy seguro de que esta sea una buena distinción para hacer, de hecho, dividirlos en dos probablemente resulte en un código peor. Sin embargo, lo menciono porque creo que a veces, cuando aprendes a codificar, estás sutilmente entrenado para hacer la distinción. En mi experiencia, los cursos de codificación y los libros de texto se centran casi exclusivamente en las habilidades “duras” y dejan las cosas “blandas” como ejercicio para el lector.

No soy un gran programador, todavía tengo mucho margen de mejora. Creo que gran parte de lo que he mejorado proviene de abrazar el lado más suave y un rechazo reflexivo e informado de lo “duro”. Muchos de mis problemas eran típicos: “Vaya, escribí este código hace 3 meses y olvidé lo que hace”, “Vaya, desearía poder volver a una versión anterior del código” o “Vaya, me han dado a alguien el código de otra persona y no tengo idea de cómo usarlo”. Siento que muchos de estos se resuelven no con la capacidad de escribir funciones más rápidas, sino con DevOps y estándares.

De todos modos, esa es una gran introducción para simplemente decir: intente estandarizar cosas. microsoft tiene convenciones de nomenclatura recomendadas para los recursos de Azure, y hay plantillas por ahí para diseñar sus proyectos de codificación (he jugado un poco con esto, mal, en Github). Al estandarizar las cosas, ayuda a que nuevas personas ingresen a un proyecto, lo ayuda cuando ingresa a un proyecto en el que no ha estado y se ayuda a sí mismo cuando regresa al código que no ha visto en mucho tiempo. Las cosas siempre se nombrarán de manera consistente y los proyectos se presentarán de manera familiar.

Por ejemplo, podría tener un grupo de recursos para cada proyecto, denominado como:

rg-ejemplo-dev-001

Esto ya le brinda mucha información: sabe que es un grupo de recursos (rg), tiene una idea de su propósito (es para un proyecto llamado ejemplo) y sabe que es para la compilación de desarrollo (en lugar de uat o prod) . Ahora, dentro de aquí, podría crear un espacio de trabajo de Azure Machine Learning y llamarlo:

mlw-ejemplo-dev-001

Este estilo se puede seguir para todo lo demás y, con suerte, debería significar que todo está limpio y ordenado.

🔥 Recomendado:  Los 7 mejores consejos de SEO móvil para mejorar su clasificación

CI/CD

Usar algún tipo de control de versiones es absolutamente vital. Esto es cuando el código se envía a un “repositorio” para su custodia. Ser capaz de realizar un seguimiento de los cambios y revisiones de su código es un salvavidas absoluto. Creo que es algo que queda fuera de muchos tutoriales de codificación y libros de texto, y admito que pasé demasiado tiempo sin usar Git en absoluto (solo un error monumentalmente terrible).

Entonces, la integración continua es cuando el código se verifica automáticamente cada vez que se envía a un repositorio. Esto podría implicar ejecutar automáticamente todas las pruebas que ha escrito, verificar si el código se puede compilar o ejecutar un linter.

En el trabajo, usamos Azure DevOps, que se divierte mucho rastreando cosas para la administración de proyectos. Utilizo Github para todas mis cosas personales, y tiene una característica maravillosa en la que puedes iniciar cuadernos en el navegador presionando el botón . clave en su teclado. Es asombroso. Ambos tienen sólidas ofertas de CI/CD: Github tiene Github Actions y Azure DevOps tiene Pipelines, pero ambos funcionan de manera similar.

En Github, puede crear un archivo .github/workflows/main.yml que se ve así:

nombre: Pelar y probar en: [push]
trabajos:
construir:
se ejecuta en: ubuntu-latest
estrategia:
matriz:
versión de Python: [3.7, 3.8, 3.9]
pasos:
– usos: acciones/[email protected]
– nombre: Configurar Python $
usos: acciones/[email protected]
con:
versión-python: $
– nombre: Instalar dependencias
ejecutar: |
python -m pip instalar –actualizar pip
pip install -r requisitos.txt
– nombre: Prueba con pytest
ejecutar: |
pytest –ignore=docs

Este código, cada vez que envíe su código, creará una instancia de Python (ya sea 3.7, 3.8 o 3.9) con paquetes basados ​​en el contenido de requirements.txt, luego ejecute pytest. Ahora, cuando revisa la página de Github del proyecto, puede tener en cuenta los resultados de la canalización de CI antes de aceptar una solicitud de extracción. Azure Pipelines usa una sintaxis muy similar. Es una excelente manera de asegurarse de que el código pase ciertas pruebas antes de aceptarlo.

ps, Microsoft, libere el . cosa para Azure DevOps!

Compartir entornos

Para cada proyecto, creo un entorno de Python para él. Esto es impulsado por un archivo requirements.txt. Este archivo, como se indicó anteriormente, también se usa para crear el entorno de Python que se usa para la canalización de CI/CD.

Cuando envía trabajos en Azure Machine Learning con los métodos de ejecución, debe especificar el entorno que se usará. En ese momento imaginé (erróneamente) que tendría que crear un entorno completamente nuevo. Pensé que tendría que hacer esto recorriendo mi archivo de requisitos, pasando el contenido de este .add_pip_package() uno a la vez. Eventualmente, eso crearía el mismo ambiente que en cualquier otro lugar. Sin embargo, es mucho más fácil que eso.

En primer lugar, puede usar .from_pip_requirements() y pasarle todo el archivo de requisitos de una sola vez. O, si ya ha creado un entorno conda, puede especificarlo in.from_existing_conda_environment() .

🔥 Recomendado:  "Lo siento, este contenido no está disponible en este momento" Error de Facebook

Luego, si registra este entorno, puede verlo en la pestaña “Entorno” de Azure ML. Ahora, debe tener entornos consistentes en todas las partes de su proyecto.

Establecer un presupuesto

Lamento tener que decirte esto: un día dejas una máquina virtual o una computadora o algo en ejecución cuando pensabas que lo habías apagado. Esto puede ser por una hora, o por semanas, pero va a pasar. Intento no pensar en cuánto he gastado sin querer, no es bueno….

En su grupo de recursos o suscripción, puede establecer un presupuesto, que puede ayudarlo a detener este problema antes de que sea un problema. Puede ingresar la cantidad que cree que debería gastar y establecer puntos en los que desea recibir una advertencia si comienza a acercarse.

Pensamientos finales

Esas son algunas de las cosas que he encontrado útiles al usar Azure Machine Learning. Cada punto podría ser realmente su propio artículo. ¡He hecho un flaco favor a todos los puntos, de verdad! También hay muchas otras cosas que encontré que creo que son geniales (la pestaña “Modelo” en Azure ML, Labeller y Synapse) de las que también me encantaría hablar. Si la gente está interesada, ¡podría volver y escribir un poco más sobre todo!

Sin embargo, estas 5 cosas: VSCode, estandarización, CI/CD, gestión del entorno y presupuestos son todas buenas herramientas para desarrollar parte del contenido de DP-100. Podría volver a estas cosas más tarde para una exploración más profunda, pero espero que hayas disfrutado de lo que hay aquí.

Andrew es científico de datos en Waterstons, una consultoría de TI. Presenta un podcast tonto llamado y está en una banda genuinamente terrible llamada . Independientemente, la Universidad de Durham lo consideró lo suficientemente sensato como para convertirlo en un Doctor en física de partículas (y una especie de aprendizaje automático y computación cuántica). Una vez, en un momento de locura impensable, decidió aprender el lenguaje de programación ensamblador 6502. Puede correr 5 km bastante rápido (22:05) y cree que Star Trek moderno no es tan malo como la gente lo pinta.


Sugerencias para principiantes sobre el uso de Azure Machine Learning se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Publicado a través de Hacia la IA