Configuración de Entornos Locales#

Open In Colab

Objetivos#

  • Comprender por qué Google Colab no siempre es suficiente.

  • Entender la necesidad crítica de aislar proyectos usando entornos virtuales.

  • Conocer las alternativas principales (venv, conda, docker).

  • Entender qué son CUDA y cuDNN para la aceleración por hardware.

Prerrequisitos#

1. El Límite de la Nube Gratuita#

Google Colab es una herramienta excepcional para la educación y el prototipado rápido. Nos ofrece acceso gratuito a GPUs, entornos preconfigurados y una integración perfecta con Google Drive.

¿Por qué, entonces, molestarnos en configurar nuestra propia PC?

  1. Privacidad y Seguridad: No puedes (ni debes) subir datos confidenciales de una empresa o pacientes a servidores públicos gratuitos.

  2. Límites de Uso y Desconexiones: Colab detendrá tu ejecución si cierras la pestaña, si el internet parpadea, o si llevas muchas horas usando la GPU. En entrenamientos que duran días, esto es inviable.

  3. Sistemas de Archivos Complejos: Si tu proyecto tiene decenas de scripts interconectados, bases de datos locales y APIs, el entorno de un notebook alojado en la nube se queda corto.

2. El Caos de las Dependencias y los Entornos Virtuales#

El ecosistema de Python se mueve rapidísimo. Constantemente salen nuevas versiones de librerías.

Imagina este escenario (muy común):

  • El Proyecto A fue escrito hace 2 años y requiere TensorFlow 2.4 y Pandas 1.1.

  • El Proyecto B es nuevo y requiere TensorFlow 2.15 y Pandas 2.0.

  • Si instalas todo globalmente en tu sistema operativo, los proyectos colisionarán y se romperán. Un paquete actualizará al otro y perderás días intentando averiguar por qué un código que antes funcionaba ya no lo hace (“Dependency Hell”).

La Solución: Entornos Virtuales. Un entorno virtual crea una carpeta aislada para cada proyecto con su propia copia de Python y sus propias librerías instaladas. Lo que pasa en el Entorno A, no afecta al Entorno B.

2.1 Herramientas Principales#

1. venv (Módulo estándar de Python)#

Viene incluido con Python por defecto. Es muy ligero y perfecto para proyectos estándar.

# Crear el entorno
python -m venv mi_entorno

# Activar (Windows)
mi_entorno\Scripts\activate
# Activar (Linux/Mac)
source mi_entorno/bin/activate

# Instalar librerías
pip install pandas scikit-learn

2. Conda (Anaconda / Miniconda)#

Es más que un gestor de paquetes de Python; gestiona cualquier tipo de software. ¿Por qué es el favorito en IA? Porque las librerías de Deep Learning a menudo dependen de bibliotecas escritas en C o C++. Compilarlas desde cero es un dolor de cabeza. Conda instala binarios precompilados que simplemente funcionan.

conda create -n mi_entorno_ia python=3.10
conda activate mi_entorno_ia
conda install pytorch torchvision -c pytorch

3. Docker (Contenedores)#

El estándar de oro para MLOps y despliegues. Encapsula no solo Python y sus librerías, sino el sistema operativo completo (ej. un Linux Ubuntu específico) dentro de un archivo. Si funciona en tu PC, funcionará en el servidor de producción. Garantizado.

3. Aceleración de Hardware: GPUs, CUDA y cuDNN#

Entrenar redes neuronales profundas en una CPU tradicional (el procesador de tu PC) puede tomar semanas. Las CPUs tienen pocos núcleos (ej. 8 o 16, si son “buenos”) optimizados para tareas complejas en serie. Las GPUs (Tarjetas Gráficas), en cambio, tienen miles de núcleos pequeños diseñados para hacer operaciones matemáticas simples en paralelo (originalmente, para renderizar miles de píxeles en la pantalla al mismo tiempo). Esto es exactamente lo que necesitan las redes neuronales: multiplicar enormes matrices de números a la vez.

El monopolio de NVIDIA#

Actualmente, el ecosistema de IA está fuertemente dominado por NVIDIA debido a su ecosistema de software propietario:

  • CUDA (Compute Unified Device Architecture): Es la plataforma de computación paralela de NVIDIA. Le permite a los lenguajes de programación (como C++ o Python bajo el capó) enviarle instrucciones directamente a la GPU.

  • cuDNN (CUDA Deep Neural Network library): Es una librería construida sobre CUDA que contiene implementaciones altamente optimizadas de rutinas estándar de Deep Learning (como la convolución o las capas recurrentes).

¿Qué pasa con AMD o Apple Silicon (M1/M2/M3)?

  • Apple Silicon: PyTorch y TensorFlow ya ofrecen soporte nativo usando MPS (Metal Performance Shaders). Funciona decentemente bien para modelos pequeños/medianos.

  • AMD: Utiliza la plataforma ROCm, pero históricamente ha tenido menos soporte de la comunidad, aunque está mejorando.

Recomendación para ingenieros: Si vas a armar una PC para Machine Learning hoy en día, una tarjeta gráfica NVIDIA es la ruta con menos fricción técnica.

4. IDEs Recomendados (Entornos de Desarrollo Integrados)#

Para salir de Colab/Jupyter Notebooks, necesitarás un editor de código profesional:

  1. VS Code (Visual Studio Code): El rey indiscutido actual. Es gratuito, tiene soporte nativo para Jupyter Notebooks incrustados, integración con Git, y miles de extensiones (ej. GitHub Copilot, linters).

  2. JupyterLab: La evolución del clásico Jupyter Notebook. Funciona en el navegador localmente y es excelente si vas a estar el 100% del tiempo haciendo EDA y visualizaciones.

NOTA: recientemente, salieron integraciones para aprovechar el poder de cómputo disponible en Google Colab, en el VSC local.

Conexiones y Próximos Pasos#