Construyendo tu propia máquina de aprendizaje profundo en 2023: algunas reflexiones

Publicado en:
Mi experiencia al construir una máquina de aprendizaje profundo casera en 2023.

Introducción

Este año me sumergí en el mundo de los equipos de aprendizaje profundo hechos por uno mismo. Hay algo emocionante e interesante en ensamblar una máquina poderosa que pueda procesar terabytes de datos para entrenar y aplicar redes neuronales. Hoy en día, estas redes pueden ver, hablar y escribir correctamente, y con el avance de la inteligencia artificial generativa, posiblemente generen sus propias ideas en un futuro cercano también. Cuando comencé, sabía poco sobre los canales PCIe, el ancho de banda o por qué no podía simplemente poner cualquier combinación de cuatro GPUs en una placa base y olvidarme del asunto. Descubrí que hay que prestar atención, por ejemplo, a la versión y al número de canales, detalles como las configuraciones x8 y x16 que pueden limitar drásticamente tu rendimiento si no tienes cuidado. (P.D. no has sentido verdadera frustración hasta que has intentado encajar una pieza cuadrada en un espacio redondo, al estilo de PCI Express).

Aprendizaje Profundo: Fundamentos de Hardware

Aprendizaje Profundo: Fundamentos de Hardware

Descubrí otra capa de complejidad cuando se trataba de la entrega de energía y el enfriamiento. Nadie menciona que, además de las especificaciones de rendimiento, casi necesitas ser un electricista aficionado para averiguar si tus equipos van a hacer que salten los interruptores. Me divertí aprendiendo sobre amperaje y protectores contra sobretensiones (una vez accidentalmente convertí mi habitación en una sauna por la noche, lo cual no fue muy apreciado por el resto de mi familia). Habla de aprendizaje práctico.

En cuanto al hardware, me fascina cómo las GPUs pueden ser transformadas de tarjetas de juego en motores para el aprendizaje profundo. Sin embargo, sus precios son bastante altos. Si no estás buscando los modelos más nuevos y caros y te conformas con las tarjetas de la generación anterior, todavía puedes obtener muy buen rendimiento por tu dinero. A menudo hay buenas ofertas en /r/hardwareswap y en eBay.

Especialmente en tareas de aprendizaje automático, la cantidad de memoria en una tarjeta gráfica marca una gran diferencia al entrenar modelos más complejos. Puede ser la diferencia entre esperar días versus horas para que los algoritmos terminen. Aunque no busco desarrollar modelos de aprendizaje profundo de última generación, encontrar una GPU como la RTX 3080 representa una gran mejora para mis proyectos (como ejecutar mi propio chatbot local). Tener la cantidad adecuada de RAM es crucial, así que no escatimes en eso. Si te interesa exprimir al máximo el rendimiento de tus GPUs, te recomiendo estar al tanto de la Guía de Rendimiento en Aprendizaje Profundo de Hugging Face. Esta guía se actualiza frecuentemente e incluye los últimos avances sobre los modelos disponibles en la plataforma.

Aunque las especificaciones de hardware son importantes, no subestimes el aspecto del software: marcos como PyTorch y TensorFlow, así como las bibliotecas para la optimización de CUDA, pueden determinar el éxito o el fracaso de tu configuración. Solo lo comprendes verdaderamente cuando tu modelo se congela porque olvidaste actualizar las bibliotecas de CUDA (es mejor mantenerlas actualizadas, ya que el campo avanza rápidamente).

Lo más importante que he aprendido es comprender y respetar el hardware: cada componente desempeña su papel en un ecosistema bien ajustado. He realizado bastante investigación, de lo cual profundizaré más adelante, como seguir proyectos en GitHub como tortoise-tts. Esto me mantiene al tanto de los últimos desarrollos en ML y además es una oportunidad de aprendizaje.

Construir mi propio sistema de aprendizaje profundo no se trata solo del resultado final para mí; lo veo como una oportunidad para adquirir conocimientos y experiencia a lo largo del proceso. Me resulta gratificante ver cómo un montón de cajas y cables se convierte en una poderosa herramienta capaz de ayudarme a desarrollar aplicaciones de inteligencia artificial.

Autoconstruido versus Nube

Autoconstruido versus Nube

He estado debatiendo entre construir una estación personal para aprendizaje profundo y utilizar el servicio en la nube; no es fácil decidir cuál es la mejor inversión. Al principio, la idea de montar mi propia configuración parecía implicar un gasto inicial bastante elevado. Sin embargo, me atraía la posibilidad de tener control total sobre el hardware y, a su vez, aprender sobre el ensamblaje y la integración de los diferentes componentes (ver, por ejemplo: mi experiencia utilizando una GPU externa (eGPU) para aprendizaje profundo).

Mirar hacia la nube es conveniente. Pagas por lo que utilizas y tienes acceso a hardware de última generación con solo unos clics. Pero hay que tener en cuenta que la rentabilidad es un arma de doble filo. Por un lado, los servicios en la nube como AWS, Google Cloud o vast.ai pueden generar un coste elevado si frecuentemente entrenas modelos o trabajas con grandes volúmenes de datos. Revisa sus precios y una simple calculadora te mostrará que los números pueden escalar rápidamente (como en el caso de los precios de AWS).

Por otro lado, al observar mi equipo de bricolaje, he invertido en algo de calidad: un equipo potente con un Intel Core i7, una RTX 3080 y bastante RAM. No fue barato, pero tampoco fue carísimo. Conseguí un espacio donde puedo entrenar modelos sin preocuparme por los costos crecientes. Además, si necesito un descanso de las tareas de aprendizaje profundo, puedo usar la misma máquina para juegos exigentes.

Por supuesto, está el argumento de la depreciación: las GPUs pueden mantener su valor, pero eso es suponiendo que el mercado no cambie drásticamente. Cuando el cripto colapsó, todo el mundo intentó deshacerse de sus equipos de minería. Yo fui uno de los afortunados que realmente logró vender una GPU vieja por más de lo que pagué por ella.

Además, no podemos pasar por alto el valor educativo que conlleva armar tu propia computadora. Como mencioné antes, he aprendido mucho sobre las complejidades del hardware: carriles PCIe, cuellos de botella, e incluso el sutil arte de optimizar la aplicación de pasta térmica. Cada lección me hace ser mejor en tecnología, y eso es algo que no tiene precio.

Luego está el factor de impacto. He logrado entrenar modelos para cosas que son importantes para mí; estamos hablando de proyectos personales que podrían, con el tiempo, convertirse en algo más grande. La satisfacción que siento cuando un modelo en el que he estado trabajando comienza a funcionar bien es enorme.

Aún utilizo la nube para tareas pesadas cuando es necesario. Para mí, es la flexibilidad: mi equipo para tareas cotidianas, y la potencia lista para usarse en la nube para esos modelos que requieren muchos recursos. Todo se trata de equilibrar costo y conveniencia. Reviso los repositorios alojados en lugares como GitHub para encontrar frameworks o modelos que superan la capacidad de mi equipo en casa.

Al final del día, diría que no se trata solo del retorno de inversión en términos financieros; también se trata del retorno intelectual y la satisfacción de dominar un arte. Claro, mi factura de electricidad parece un poco elevada, y mi habitación a veces se convierte en una sauna (¡sin costo extra!), pero cada día con mi equipo es una nueva aventura. Así que, analizando bien, el dilema de "hacerlo uno mismo vs. utilizar la nube" no es solo una cuestión de dinero; se adentra en lo que nos apasiona de la tecnología. Y, ¿realmente se puede poner precio a eso?

Desafíos Técnicos: Refrigeración y Energía

Desafíos Técnicos: Refrigeración y Energía

Pronto comprendí que el enfriamiento y la energía no eran meros detalles sin importancia, sino elementos cruciales para mantener un sistema eficiente y sostenible.

Cuando intenté instalar varias GPUs (un segundo RTX 3080 que me prestaron) en mi equipo de aprendizaje profundo, el mayor problema fue el calor que generaban. Era como tener un pequeño sol escondido en mi garaje. Tuve que ser creativo, ya que el sistema de refrigeración estándar no era suficiente. Explorar el mundo de la bifurcación PCIe y los enfriadores evaporativos transformó mi espacio, y estos descubrimientos cambiaron por completo mi estrategia de refrigeración. Aunque en línea abundaban los recursos en repositorios de Github y Huggingface sobre soluciones de software, la configuración de refrigeración se convirtió en un laboratorio de experimentación personal.

Convertí mi instalación en algo similar a una gran torre de computadora: entrada de aire en la parte inferior, salida en la parte superior. Al mismo tiempo, desarrollé una relación de amor-odio con mi factura de electricidad. Al principio, pagando $0.0875/kWh, estaba viviendo el sueño.

Sin embargo, cuando empiezas a ver ganancias, es difícil no justificar el poder (y los reguladores de aumento son muy útiles). Con el aprendizaje en enjambre, la idea de alquilar mis GPUs era muy tentadora, especialmente al ver que los beneficios mensuales alcanzaban los $600-800. Sin embargo, tener hardware propio ofrecía ventajas, como poder ajustar cada parte del sistema para alcanzar la máxima eficiencia. Esas 3080s y 3090s, con sus capacidades NVLink, tenían más potencial en mis manos que en cualquier configuración en la nube, a pesar de su insistencia en conexiones de alta velocidad como 100GbE.

Al buscar formas de reducir costos, encontré switches mikrotik que ofrecen un switch de 4x100Gbps por $800—¡qué oferta, verdad? Es asombroso pensar que ahora vivimos en una época en la que puedo tener tanto ancho de banda en mi casa sin arruinarme. En el pasado, ¡100 mbps nos costaban una pequeña fortuna!

Todo este esfuerzo, la personalización—el ajuste fino—ha sido para obtener esa ventaja adicional en el entrenamiento de datos en paralelo sin sufrir cuellos de botella. El viaje desde preocuparme por la posibilidad de quemar mi sistema hasta ver cómo esas GPUs procesan datos con la misma facilidad que un cuchillo caliente atraviesa la mantequilla? Invaluable. ¿Y quién habría pensado que el control de la humedad sería un factor tan importante en una refrigeración efectiva? El aire seco de Utah fue un aliado inesperado, lo que redujo la necesidad de costosos sistemas de aire acondicionado. A veces la naturaleza te regala un respiro.

Al adentrarme en el mundo del aprendizaje profundo por cuenta propia, he adquirido habilidades que no solo se centran en entender la tecnología, sino también en dominar el entorno en el que opera. Es tentador quedarse atrapado en el atractivo de armar un potente equipo, pero sin tener en cuenta esos factores cruciales detrás de escena, corres el riesgo de provocar un colapso, literalmente.

Ya seas un entusiasta del bricolaje o alguien con curiosidad por el mundo del hardware de deep learning, ten presente que ajustar estas máquinas es como un baile, un equilibrio perfecto entre el consumo de energía, la innovación en refrigeración y la búsqueda de soluciones económicas. He instalado ventiladores, revisado fuentes de alimentación, analizado cifras de ROI, y ha sido una gran curva de aprendizaje—no solo construir el sistema sino también convertirme en su director.

Escalabilidad y Rendimiento Aprovechando Múltiples GPUs

Escalabilidad y Rendimiento Aprovechando Múltiples GPUs

Distribuir la carga computacional entre varias unidades realmente expandió los límites de mis proyectos. (P.D. Si te interesa comenzar con el aprendizaje profundo de manera práctica, echa un vistazo a mi introducción a Pytorch en Python, que puede ayudarte a iniciar). Es bastante útil cuando trabajas en una red neuronal convolucional (CNN) para clasificación de imágenes, y puedes completarla porque cuentas con suficiente potencia de GPU para experimentar con conjuntos de datos más grandes sin ralentizarse. O al entrenar modelos de lenguaje, viendo cómo la curva de pérdida desciende constantemente gracias al poder combinado de múltiples GPUs. Es como si cada GPU fuera una célula cerebral y, juntas, formaran un hiper-cerebro enfrentando problemas en conjunto.

Un aspecto fundamental en el que me concentré al expandir mi configuración fue asegurarme de tener una arquitectura equilibrada. No podía simplemente juntar un montón de tarjetas de alta gama y esperar lo mejor; era esencial aprender sobre los carriles PCIe y los cuellos de botella. No podría dormir si una tarjeta no funcionara adecuadamente solo porque estuviera limitada por una conexión más lenta.

Hablando de conexiones, iniciativas como NVIDIA NVLink abordan precisamente este problema. Es una tecnología práctica que permite a las GPUs comunicarse directamente, evitando la necesidad de que los datos pasen de un lado a otro a través del CPU, lo cual es muy útil para reducir cargas. Por ejemplo, el marco PyTorch DDP gestiona el aprendizaje multi-GPU de manera muy eficaz, especialmente cuando se combina con NVLink o redes InfiniBand de alta velocidad.

Otra cosa que me llamó la atención fue el impacto de la optimización clásica del software. Aunque tengas un hardware muy potente, son los ajustes en el software los que pueden exprimir un rendimiento extra de tu sistema. Mantenerse al día con las actualizaciones de CUDA o las últimas bibliotecas como TensorFlow o PyTorch puede llevar a mejoras dramáticas en el rendimiento sin cambiar ni un solo tornillo de tu configuración.

Sinceramente, siento un poco de envidia por aquellos académicos que tienen acceso a supercomputadoras o a grandes cantidades de créditos en la nube, pero hay algo profundamente gratificante en construir tu propio sistema. La sensación de propiedad y el conocimiento de que tu máquina, con sus detalles y personalizaciones, está produciendo esos resultados es invaluable.

En última instancia, para aquellos de nosotros que no tenemos la influencia para comandar un clúster de supercomputación, la cuestión es cómo agrupar de manera inteligente suficiente potencia de GPU. Y, aunque podrías llegar a un punto de rendimientos decrecientes con la expansión del hardware debido a ineficiencias de escalado o consumo de energía, un sistema bien ajustado con múltiples GPU todavía puede ser una puerta de entrada más económica hacia un poder de cómputo serio para el aprendizaje profundo.

Y, bueno, cuando formas parte de comunidades en línea como r/MachineLearning, compartir tus éxitos (y frustraciones) con múltiples GPUs se siente como una contribución a una base de conocimientos más amplia. Al fin y al cabo, todos estamos en este torbellino de descubrimientos sobre aprendizaje profundo juntos. Es como lanzar mis hallazgos al ruedo y tal vez ayudar a alguien por ahí; es ese aprendizaje compartido lo que impulsa la innovación hacia adelante.

Construir vs Comprar: Elección de Componentes

Construir vs Comprar: Elección de Componentes

Montar o comprar una máquina para aprendizaje profundo puede convertirse fácilmente en una aventura compleja, ¡pero vaya que es interesante! He pasado por eso, ajustando y afinando, y he llegado a valorar el equilibrio delicado al elegir los componentes. Es un rompecabezas increíble donde cada pieza influye en el resultado final, y sinceramente, he aprendido muchísimo en el camino.

Primero, hablemos de la GPU. Es el corazón de tu sistema de DL, y escatimar aquí es como intentar ganar una carrera con un kart en el Gran Premio. He visto a personas optar por algo como una RTX 3080 debido a limitaciones de presupuesto o problemas de disponibilidad. Lo entiendo, los precios pueden ser impredecibles, pero si puedes, consigue una GPU con más VRAM. Hace una gran diferencia cuando empiezas a entrenar modelos más complejos. La RTX 3080 con 12GB de VRAM es un buen equilibrio si logras encontrar una buena oferta.

Pasando al procesador y la memoria RAM. Aunque las pautas aquí pueden ser más flexibles, siguen siendo esenciales. Elegí un Intel Core i7 para mi última configuración, lo cual es lo suficientemente potente para manejar el procesamiento de datos, pero sin ser exagerado al punto de arruinar mi presupuesto. La verdad, si te dedicas solamente al aprendizaje profundo, podrías incluso optar por un procesador de 8 núcleos para ahorrar algo de dinero para otras partes. ¿Y en cuanto a la RAM? 16GB podrían parecer suficientes hasta que Chrome decida devorarlos como si fuera un refrigerio nocturno. Si puedes, súbete a 32GB. Es como abrir las ventanas para que tu PC respire mejor.

Ahora hablemos del héroe no reconocido: la fuente de alimentación. Mi lema es "No juegues con la PSU". Consigue una confiable, como yo hice con mi modelo de 750W. Parece potente, pero no querrás escatimar en energía estable. Créeme, esas GPU son muy exigentes.

Una cosa peculiar que me encanta de armar mi propio equipo es el sistema de enfriamiento. Honestamente, creo que la refrigeración por agua es uno de los mejores inventos de la humanidad. Es elegante, mantiene tu sistema fresco, y el zumbido ahora es mi nana geek.

También he notado una tendencia en las preguntas sobre afinar modelos más pequeños en casa en lugar de lanzarse a trabajar con modelos de 7 mil millones de parámetros. Amigos, el contexto es fundamental. Para los trabajos grandes, necesitas toda la potencia posible. Para tareas más ligeras y aprendizaje, tu fortaleza casera será suficiente.

Ahora llega la parte de bricolaje. Algunos dicen, ¿por qué construir cuando puedes comprar? Pero, ¿dónde está la diversión en eso? Cada componente que he elegido, desde el SSD NVMe que maneja datos con gran rapidez, hasta los ventiladores RGB que hacen que mi equipo parezca una mini discoteca, fue seleccionado meticulosamente. Comencé con algo pequeño, pero luego conseguí una unidad NVMe que hizo que el control de entrada/salida de datos fuera tan suave como la seda. Además, a medida que mis necesidades crecieron, también lo hizo mi equipo, poco a poco.

Al final, todo se reduce a en qué estás sumergiéndote. Considera los requisitos de tu proyecto, tu presupuesto, ¡e incluso el clima en el que te encuentras! Es tu lienzo, y eres el da Vinci de tu obra maestra de aprendizaje profundo. Explora algunos de los increíbles proyectos que existen, como Tortoise TTS para síntesis de voz, para tener una idea de lo que podrías necesitar.

Para concluir, construir un sistema de aprendizaje profundo es una combinación de arte y ciencia. Es el toque personal, la emoción del desarrollo, la satisfacción dulce cuando tu modelo se entrena sin problemas. Es una inversión, no solo en dinero, sino también en conocimiento y satisfacción personal. Ya seas estudiante, aficionado, o alguien que busca dejar su huella en el mundo del ML, arremangarse y construir tu propio sistema puede ser una de las aventuras más gratificantes en la tecnología. Recuerda, lo que estás creando es más que una máquina, es un puente hacia el futuro de la inteligencia artificial.


Compartir

Comentarios (0)

Publicar un comentario

© 2023 - 2025 — TensorScience. Todos los derechos reservados.