馃帣 Episodio 67. Los cuadernos de Jupyter

En el episodio de hoy de Un podcast ninja sobre Big Data hablamos de los cuadernos de Jupyter 馃獝

驴C贸mo funcionan los Jupyter Notebooks? 驴Para qu茅 sirven y para qu茅 no sirven?

El proyecto Jupyter 馃獝

El proyecto Jupyter, es un proyecto de c贸digo abierto que permite ejecutar c贸digo en el navegador web.

Naci贸 como spin off de IPython, un proyecto que permit铆a ejecutar c贸digo Python de manera interactiva.

Sin embargo, el proyecto Jupyter soportaba desde el principio varios lenguajes de programaci贸n.

  • Julia (Ju-)
  • Python (-pyt-)
  • R (-r)

De ah铆 el nombre de Jupyter.

Hoy en d铆a ya soportan muchos m谩s lenguajes de programaci贸n.

La base del proyecto Jupyter son los cuadernos (Jupyter notebooks). 

Jupyter Notebooks

Los Jupyter Notebooks, son ficheros con c贸digo que se ejecuta en un navegador web, lo que permite que sea mucho m谩s f谩cil de compartir. 

Al tener un formato cuaderno, en el que se van mezclando celdas con c贸digo y otras celdas con explicaciones de texto o visualizaciones facilita que alguien pueda ver este cuaderno y entender el proceso que se ha seguido para llegar a los resultados.

Tiene un punto de storytelling, que en an谩lisis de datos es una cualidad muy  importante.

Saber transmitir a alguien ajeno al proyecto de una manera sencilla lo que hemos encontrado en esos datos es fundamental.

Y eso en un cuaderno de Jupyter se consigue bastante bien a trav茅s de visualizaciones, resultados y explicaciones de texto, que puede estar formateado mediante Markdown.

B谩sicamente, el cuaderno de Jupyter es una experiencia visual de lo que hace nuestro c贸digo como si dij茅ramos. Es como si pudi茅ramos dividir un c贸digo muy extenso en cachitos m谩s peque帽os que podemos ejecutar de manera independiente.  

Instalaci贸n de Jupyter Notebooks

Para empezar a utilizar los cuadernos de Jupyter en nuestro ordenador una opci贸n muy generalizada es instalar Anaconda o Miniconda, que son distribuciones de software preparadas con todo lo que necesitas para hacer cosas de ciencia de datos.

Cuadernos de Jupyter incluidos.

Anaconda y Miniconda

Anaconda es la versi贸n que viene con todo, m谩s de 150 librer铆as de ciencia de datos y Miniconda es la versi贸n que viene con lo esencial. 

Las librer铆as no son m谩s que paquetes de c贸digo que sirven para un prop贸sito espec铆fico y que ha escrito alguien para que no tengamos que empezar siempre desde cero en nuestros proyectos de ciencia de datos.

Por ejemplo, pandas, numpy, pytorch, seaborn鈥 Todas son librer铆as escritas en python que se utilizan en ciencia de datos y que podemos (debemos) reutilizar en nuestros proyectos.

Ambas distribuciones vienen con Conda que es un gestor de librer铆as para poder instalar, quitar o actualizarlas seg煤n necesitemos.

驴C贸mo saber si usar Anaconda o Miniconda?

 Eleguir una u otra distribuci贸n depender谩 del espacio que tengamos en el ordenador.

Si ten茅is mucho espacio libre pod茅is instalar Anaconda y si no, pod茅is ser m谩s minimalistas, usar miniconda e ir instalando m谩s librer铆as seg煤n las vay谩is necesitando.

En cualquiera de los dos casos ya dispondr茅is de cuadernos de Jupyter para empezar con vuestros proyectos.

 Pero, tened en cuenta que estos proyectos necesitar谩n de los recursos de vuestro ordenador (CPU, GPU, memoria RAM鈥)

驴D贸nde ejecutar los cuadernos de Jupyter?

As铆 que volvemos un poco al tema de que en el momento que quer谩is entrenar un modelo de Machine Learning un poco grande o manejar datasets m谩s serios os encontrar茅is con alg煤n que otro problema.

Para estos casos es mejor usar una GPU moderna de NVIDIA en lugar del CPU de nuestro ordenador. Especialmente para el procesamiento de im谩genes con redes convolucionales, en estos casos usar una GPU puede aumentar la velocidad hasta 5 o 10 veces comparado con una CPU.

As铆 que llegados a este punto hay tres opciones para utilizar GPUs:

  • Comprarla e instalarla una GPU NVIDIA f铆sica en una estaci贸n de trabajo. Aqu铆 instalar铆amos Anaconda en la propia estaci贸n de trabajo y ejecutar铆amos los cuadernos de Jupyter en local.
  • Tambi茅n es posible usar instancias de GPU en la nube Google Cloud, AWS鈥 en todas las plataformas tienen entornos de Jupyter disponibles.
  • Utilizar el tiempo de GPU gratis de Google Colab, que es un servicio basado en cuadernos de Jupyter hospedados por Google.

Google Colab

Colab es la forma m谩s f谩cil de empezar ya que no requiere comprar hardware ni instalar software; solo necesitais abrir una pesta帽a en vuestro navegador y comenzar a programar.

Sin embargo, la versi贸n gratis de Colab solo es adecuada para cargas de trabajo peque帽as. Si vais aumentando el tama帽o de vuestros modelos de deep learning o de vuestros datasets necesitar茅is a煤n m谩s capacidad y no quedar谩 otra que usar la primera o segunda opci贸n, que os contaba antes.

Kaggle Notebooks

Tambi茅n podemos conseguir horas gratis de uso de GPUs en Kaggle, que tiene implementados sus propios Notebooks basados en cuadernos de Jupyter.

Tanto en Kaggle como en Google Colab podemos acceder a 12 horas de tiempo de ejecuci贸n en CPUs o GPUs y 9 horas de tiempo de ejecuci贸n para sesiones con TPUs.

En el caso de Google Colab existe una opci贸n de pago, Colab Pro+, que permite la ejecuci贸n continua de c贸digo durante un m谩ximo de 24 horas.

Eso s铆, el acceso a estos recursos no est谩 garantizado as铆 que es posible que si intentas entrenar un modelo en una GPU un d铆a que hay mucha demanda, no puedas conseguir acceder a una.

Limitaciones de Jupyter Notebooks

Sin embargo, no todo es de color de rosa en los cuadernos de Jupyter. Tambi茅n tienen sus inconvenientes que hay que tener en cuenta.

En su versi贸n original no permiten colaboraci贸n entre equipos en tiempo real ni comentarios de otros miembros del equipo.

Adem谩s, hay que ser muy organizado a la hora de escribir y ejecutar el c贸digo puesto que al  permitir un enfoque muy libre, podemos terminar con un c贸digo desorganizado y dif铆cil de seguir, especialmente para otros usuarios pero puede que incluso para nosotros mismos.

Este enfoque tan libre hace que sean muy buenos para experimentar con posibles soluciones pero que puedan llegar a ser contraproducentes para implementar buenas pr谩cticas de desarrollo de software, que al final es lo que necesitamos cuando queremos llevar nuestro proyecto al mundo real.

Y entonces, acabamos reescribiendo todo el notebook para producci贸n, lo que resulta en trabajo duplicado.

Otro inconveniente es que no facilitan el seguimiento de la evoluci贸n de los experimentos. No se versionan f谩cilmente y a veces surgen problemas al fusionar cambios, lo que puede llevar a que cada miembro de un equipo de datos trabaje de manera aislada. 

Adem谩s hay que tener en cuenta que pueden ser muy dependientes del entorno espec铆fico en el que se crearon (versiones de las librer铆as, etc...). Esto puede llevar a problemas si se intenta ejecutar el mismo notebook en un entorno diferente.

TL;DR

Los cuadernos de Jupyter son una herramienta revolucionaria en el campo de la ciencia de datos.

Son interactivos y vers谩tiles a la hora de hacer experimentos con nuestros datos y de ser capaces de contar la historia de nuestro experimento de manera que otros puedan entenderla. 

Por supuesto que no son perfectos, ni sirven para todo, especialmente, como hemos visto,  en lo que respecta a la colaboraci贸n en tiempo real y a la gesti贸n del c贸digo para producci贸n, pero su capacidad para integrar c贸digo, visualizaciones y texto los convierte en una opci贸n indispensable para muchos ninjas de datos.

Sin hablar de la facilidad para seguir tutoriales que da un cuaderno de Jupyter al tener las explicaciones del c贸digo integradas.

Al final, al igual que con cualquier otra cosa, la clave est谩 en saber cu谩ndo y c贸mo utilizarlos de la mejor manera posible para complementar y enriquecer nuestro flujo de trabajo como ninjas de los datos.

Espero que el episodio de hoy os sea de provecho y que aprend谩is algo de valor. 

Si es as铆, no olvid茅is dejar una valoraci贸n de 5 estrellas del podcast en Apple podcasts, en Spotify, en Ivoox o donde quiera que escuch茅is el podcast. 

Recordad que si ten茅is cualquier duda o pregunta pod茅is contactar conmigo a trav茅s del formulario de contacto o podemos seguir la conversaci贸n en Twitter.

Muchas gracias por estar ah铆 y os espero en el pr贸ximo episodio de Un Podcast Ninja sobre Big Data.

Bolet铆n Ninja

Suscr铆bete a la newsletter y recibe la gu铆a ninja del Big Data y la Inteligencia Artificial.

Gu铆a ninja del Big Data
Copyright 漏 2024  路 Datos 馃シ 路 Todos los derechos reservados
馃捈 Aviso legal y cookies