Enable javascript in your browser for better experience. Need to know to enable it? Go here.

Desmitificando DeepSeek

Un análisis técnico detallado

El 10 de enero de 2025, DeepSeek lanzó un LLM, R1, que la startup afirmó que está a la par de ChatGPT o1 de OpenAI para tareas de razonamiento. La aplicación alcanzó el primer lugar en las listas de la App Store en tiempo récord, capturando la imaginación no solo de la industria tecnológica, sino también del mundo en general. Una afirmación en particular llamó la atención: que el modelo había sido entrenado por menos de 6 millones de dólares (en comparación con los 100 millones de dólares que OpenAI gastó en GPT-4). Esto generó revuelo en el mercado de valores y en los medios de comunicación.

 

Si bien es difícil evitar la tormenta mediática y financiera, en Thoughtworks nos interesa más tratar de entender exactamente qué hizo DeepSeek y cómo lo hizo. Comenzaremos con los hechos clave y las primeras impresiones y luego exploraremos lo que sabemos hasta ahora a partir de sus artículos sobre la arquitectura de su modelo, los datos de entrenamiento, su enfoque en evaluaciones y las técnicas utilizadas. Finalmente, analizaremos los intentos de reproducir sus resultados y qué sigue.

 

Los nuevos modelos de DeepSeek: ¿Cuáles son los hechos?

 

¿Quién lo construyó?

 

Fundada en mayo de 2023, DeepSeek es una startup china de IA con sede en Hangzhou y Pekín. Está respaldada por el fondo de inversión High-Flyer, ubicado en Hangzhou. Tanto High-Flyer como DeepSeek fueron fundados por Liang Wenfeng.

 

El 10 de enero de 2025, DeepSeek lanzó su aplicación móvil; el 20 de enero de 2025, la empresa publicó los pesos de R1 en Hugging Face y el código de inferencia de R1 en GitHub.

 

¿Qué construyó DeepSeek realmente?

 

DeepSeek desarrolló dos tipos de modelos y aplicaciones para utilizarlos. Las versiones más recientes de estos modelos son V3 y R1. V3, como su nombre lo indica, es la tercera versión de un modelo de lenguaje de propósito general, mientras que R1 es un modelo de razonamiento basado en V3-Base. También proporcionan versiones reducidas de sus modelos para que puedan ejecutarse en computadoras portátiles.

 

Existen dos variantes de V3. Una se basa en Llama (el modelo de código abierto de Meta) y otra en Qwen (el modelo de código abierto de Alibaba).

 

Si bien han publicado los pesos del modelo R1 y el código para ejecutarlo en inferencia, no han liberado ningún código de entrenamiento ni las optimizaciones que realizaron a nivel de hardware.

Nuestras primeras impresiones al usar DeepSeek

 

Algunas personas en Thoughtworks probaron DeepSeek a través del sitio web de la empresa, mientras que otras usaron ollama para ejecutar una versión reducida de R1 en sus computadoras portátiles. Luego, probamos el modelo en distintas tareas, desde programación hasta preguntas de razonamiento.

 

Con base en nuestra experiencia en los últimos días, estas son algunas de nuestras primeras impresiones:

 

  • Su desempeño multilingüe mostró buenos resultados en inglés y mandarín, pero fue menos fluido en francés, con la aparición inesperada de caracteres en chino o árabe y una ocasional reaparición del inglés durante tareas complejas de razonamiento.
  • Su estilo de razonamiento puede ser excesivamente extenso: en algunos casos, daba vueltas en círculos en sus respuestas.
  • Nos gustaría conocer más sobre el enfoque de DeepSeek en seguridad y privacidad, especialmente desde la perspectiva del usuario.
  • Las instancias del modelo están disponibles en varios tamaños y pueden instalarse en hardware de consumo, incluidas versiones de bajo consumo energético.
  • La versión alojada parece tener restricciones alineadas con la perspectiva del gobierno chino. El modelo en sí podría reflejar puntos de vista acordes con dicha alineación.
  • No tenemos visibilidad sobre los datos utilizados para entrenarlo (aunque lo mismo ocurre con Llama, OpenAI y Claude), lo que genera inquietud en algunos gobiernos y empresas.

¿Cómo se puede usar DeepSeek?

 

Se puede probar el modelo en el sitio web de DeepSeek o mediante su aplicación móvil. También es posible ejecutar la versión reducida del modelo localmente con ollama ejecutando ollama run deepseek-r1:32b, lo que requiere descargar e instalar Ollama.

 

Los proveedores de servicios en la nube también han adoptado este modelo. Es posible desplegar modelos de DeepSeek en GCP Vertex AI, AWS Bedrock y Azure AI Foundry. También se puede implementar como NVIDIA NIM.

 

Los modelos de DeepSeek son lo suficientemente interesantes como para considerarlos dentro del conjunto de herramientas de una plataforma de IA, junto con otros modelos de código abierto, ya que los desarrolladores de aplicaciones querrán experimentar o usar distintos modelos para diferentes propósitos.

 

¿Podemos confiar en los resultados de rendimiento reportados por DeepSeek?

 

Los resultados de DeepSeek aún no han sido reproducidos. Estamos siguiendo de cerca el intento de Hugging Face de replicarlos a través de openR1

 

También queremos comprender si el modelo fue expuesto a los datos de los benchmarks durante el entrenamiento y si los métodos de evaluación utilizados en su artículo son apropiados.

 

Dicho esto, no tenemos razones específicas para creer que los resultados no sean reales.

 

Uno de los aspectos más llamativos es el reporte de 2.788M horas de GPU para entrenamiento (aproximadamente 5.576 millones de dólares). El artículo de V3 aclara los supuestos detrás de este costo, pero también advierte que es solo representativo de la última iteración de entrenamiento. Dado lo rápido que la industria ha adoptado este modelo, sospechamos que este número ha sido citado fuera de contexto muchas veces.

Componentes técnicos de DeepSeek

 

R1 fue entrenado utilizando una combinación de SFT y RL sobre V3-Base. Son transformadores altamente optimizados para marcos de hardware y software específicos, basados en las limitaciones impuestas por el entorno (particularmente los controles de exportación del gobierno de EE.UU. sobre los chips NVIDIA H100). DeepSeek también ha combinado técnicas nuevas y antiguas de formas interesantes. Comencemos analizando V3-Base.

 

V3-Base utiliza un enfoque sólido de mezcla de expertos. Es similar a Mixtral, pero más eficiente. V3-Base fue entrenado con un total de 671B parámetros, mientras que Llama tiene una versión de 405B. Tanto V3-Base como Llama 3.1 405B utilizan cuantización FP8. V3-Base fue entrenado con 14.8T tokens, mientras que Llama fue entrenado con 15T tokens. Ambos admiten una ventana de contexto de 128K.

 

La diferencia clave es que el artículo de V3 menciona que solo se utilizaron 2.788M horas de GPU, mientras que la página de Llama 3.1 405B FP8 en Hugging Face informa 39.3M horas acumuladas de GPU. Aquí es donde radica la diferencia: según lo que entendemos, las 2.788M horas de GPU utilizadas para entrenar V3 corresponden únicamente a la última ejecución completa de entrenamiento, mientras que el número reportado por Llama es un acumulado. Los detalles sobre cómo interpretar exactamente estos datos surgirán con el tiempo, pero por ahora, aún no está claro si es posible hacer una comparación directa. Por ejemplo, V3 fue entrenado con algunos datos generados por un R1 que aún no había sido lanzado; ¿deberían los costos de entrenamiento calculados para V3 incluir también los costos de entrenamiento de R1 en ese caso?

 

R1 fue construido sobre V3-Base utilizando ajuste fino supervisado (SFT) y aprendizaje por refuerzo (RL) para desarrollar capacidades de razonamiento en el modelo. R1 utiliza el patrón de cadena de pensamiento extendida para realizar tareas de razonamiento. Posteriormente, R1 fue reducido a modelos densos más pequeños. Al igual que V3-Base, han publicado versiones basadas en Llama y Qwen. También han lanzado R1-Zero, que no utiliza SFT y tiene algunas limitaciones, como problemas de legibilidad y mezcla de idiomas, aunque presenta comportamientos de razonamiento intrigantes. Estas limitaciones hacen que R1-Zero sea probablemente más interesante para investigadores que para usuarios finales. Para superar estas limitaciones, aplicaron un entrenamiento en múltiples etapas y datos de arranque en frío antes de RL.

 

V3 se construyó utilizando datos generados por los patrones de razonamiento, verificación y reflexión de R1, mejorando aún más V3-Base para crear un modelo más completo, V3.

 

Todos estos modelos fueron entrenados utilizando GPUs NVIDIA H800. Estas son versiones de los chips H100 diseñadas para el mercado chino y están limitadas para cumplir con las restricciones de exportación de EE.UU. Específicamente, los chips H800 poseen la mitad de la velocidad de interconexión entre chips en comparación con los H100 (aproximadamente 400GB/s frente a 900GB/s en NVLink).

 

El costo reportado de entrenamiento de R1 es de 5.58M dólares. Sabemos que esto es incorrecto, pero no está claro en qué medida. El cálculo proviene del informe técnico de V3, que se refiere al costo de entrenamiento de DeepSeek V3. CNN lo informó correctamente al señalar que el costo era para el modelo base; sin embargo, no aclararon la diferencia entre ambos.

 

R1 fue entrenado sobre V3-Base, por lo que el costo acumulado de entrenamiento de R1 definitivamente es mayor que el del modelo base. Los números en la tabla uno del informe técnico de V3 parecen corresponder a una ejecución completa, probablemente la última. Si alguien intentara replicar el proceso de entrenamiento, probablemente necesitaría realizar más de una ejecución completa.

 

También hay informes contradictorios sobre el acceso de DeepSeek a 50,000 GPUs A100, lo que estaría más en línea con lo que se supone que OpenAI usó para entrenar GPT-4 (25,000 A100s).

 

Si hoy se alquilaran 50,000 GPUs A100 en EE.UU., el costo estimado sería de aproximadamente 1.35 dólares por hora por GPU (suponiendo que estuvieran disponibles). Esto equivaldría a unos 11.34M dólares por semana. En el caso de DeepSeek, parece que podrían haber utilizado GPUs adquiridas previamente por su fondo de inversión High-Flyer para fines de trading de alta frecuencia.

Explorando lo que hace único a DeepSeek

 

Existen varias formas sofisticadas en las que DeepSeek ha modificado la arquitectura del modelo, las técnicas de entrenamiento y los datos para obtener el máximo rendimiento del hardware limitado que tenían disponible.

 

Optimización para el hardware disponible

 

Las GPUs H800 que DeepSeek utilizó presentan dos limitaciones clave en comparación con las H100. Primero, tienen la mitad del ancho de banda de interconexión entre GPUs. Segundo, poseen una memoria mucho menor: 80GB frente a 188GB.

 

Curiosamente, DeepSeek parece haber convertido estas limitaciones en una ventaja. “Los costos de entrenamiento económicos de DeepSeek-V3… se lograron gracias a nuestro diseño optimizado de algoritmos, marcos y hardware”, escribió el equipo de DeepSeek. En otras palabras, tomaron decisiones estratégicas que les permitieron maximizar el uso de los recursos disponibles.

 

Por ejemplo, usaron FP8 para reducir significativamente la cantidad de memoria requerida. El artículo de V3 menciona que “el entrenamiento de baja precisión ha surgido como una solución prometedora para entrenamientos eficientes”. Sin embargo, antes de este trabajo, FP8 era considerado eficiente pero menos efectivo; DeepSeek demostró cómo puede utilizarse con éxito. “En este trabajo, introducimos un marco de entrenamiento de precisión mixta en FP8 y, por primera vez, validamos su efectividad en un modelo de escala extremadamente grande. Gracias al soporte para cálculos y almacenamiento en FP8, logramos tanto acelerar el entrenamiento como reducir el uso de memoria de la GPU.”

 

Además, optimizaron aún más el hardware limitado a un nivel muy bajo. El artículo de V3 indica: “desarrollamos kernels eficientes de comunicación all-to-all entre nodos para aprovechar completamente el ancho de banda de InfiniBand (IB) y NVLink. Además, optimizamos meticulosamente la huella de memoria, lo que hace posible entrenar DeepSeek-V3 sin usar paralelismo tensorial costoso. Combinando estos esfuerzos, logramos una alta eficiencia de entrenamiento.” Este es un trabajo técnico profundo para maximizar el rendimiento del hardware disponible.

 

Además, el artículo menciona algo particularmente interesante: “Diseñamos el algoritmo DualPipe para un paralelismo de pipeline eficiente, que reduce las interrupciones en el flujo de datos y oculta la mayor parte de la comunicación durante el entrenamiento a través de la superposición de cómputo y comunicación. Esta superposición garantiza que, a medida que el modelo crezca, si mantenemos una proporción constante entre cómputo y comunicación, podemos seguir empleando expertos de grano fino en varios nodos sin generar prácticamente ninguna sobrecarga de comunicación all-to-all.” Esto es llamativo en comparación con los métodos habituales de escalado de entrenamiento distribuido, que generalmente implican simplemente “agregar más hardware”.

 

Este es un claro caso en el que la necesidad impulsa la innovación.

 

El impacto del aprendizaje por refuerzo en el rendimiento de los benchmarks

 

DeepSeek aplicó aprendizaje por refuerzo con GRPO (group relative policy optimization) en V2 y V3. Sin embargo, aparentemente, tuvo un impacto significativo en el modelo de razonamiento R1, especialmente en su desempeño en benchmarks.

 

Al utilizar GRPO para aplicar la recompensa al modelo, DeepSeek evitó la necesidad de un modelo "crítico" de gran tamaño, lo que nuevamente ahorra memoria. Sin embargo, GRPO sigue un enfoque basado en reglas que, aunque es más efectivo en problemas con una respuesta objetiva, como programación y matemáticas, podría tener dificultades en dominios donde las respuestas son subjetivas o variables. Será interesante observar cómo se manejan estos compromisos a medida que más personas lo utilicen en diferentes contextos.

 

Multi-head latent attention (MLA)

 

Multi-head Latent Attention es una variación de la atención multi-head que DeepSeek introdujo en su artículo de V2. Según este artículo, mientras que las técnicas previas de atención multi-head se consideraban un compromiso (en el que se reduce la calidad del modelo para lograr una mayor escalabilidad en el entrenamiento de modelos grandes), DeepSeek afirma que MLA no solo permite escalar, sino que también mejora el modelo. Estamos interesados en profundizar más en este tema.

 

Destilación vs. aprendizaje por refuerzo

 

El artículo de R1 presenta una discusión interesante sobre la destilación en comparación con el aprendizaje por refuerzo. El equipo de DeepSeek escribe que su trabajo permite: “extraer dos conclusiones: Primero, destilar modelos más potentes en modelos más pequeños produce excelentes resultados, mientras que los modelos más pequeños que dependen del aprendizaje por refuerzo a gran escala mencionado en este artículo requieren un enorme poder computacional y pueden ni siquiera alcanzar el rendimiento de la destilación. Segundo, aunque las estrategias de destilación son tanto económicas como efectivas, avanzar más allá de los límites de la inteligencia aún puede requerir modelos base más potentes y aprendizaje por refuerzo a mayor escala.”

 

La primera conclusión es interesante y, en realidad, intuitiva. La segunda es alentadora: al menos, no han cambiado completamente nuestra comprensión sobre los requisitos computacionales significativos del aprendizaje profundo.

 

¿Qué podemos aprender de lo que no funcionó?

 

Siempre es interesante leer sobre esto. ¿Qué intentó DeepSeek que no funcionó?

 

  • Primero, usar un modelo de recompensa de proceso (PRM) para guiar el aprendizaje por refuerzo no fue viable a gran escala. Sin embargo, aún podría utilizarse para volver a clasificar las N mejores respuestas.
  • Segundo, la búsqueda en árbol de Monte Carlo (MCTS), que fue utilizada por AlphaGo y AlphaZero, no escala bien para tareas de razonamiento general porque el espacio de problemas no está tan “restringido” como en el ajedrez o incluso en Go. Recordemos que, hace menos de una década, el espacio de Go se consideraba demasiado complejo para ser computacionalmente viable. Ahora, se considera “restringido”.

 

Otras cosas interesantes

 

Hay una gran cantidad de temas interesantes que podríamos comentar. Sin embargo, hay un par de puntos que vale la pena destacar:

 

  • Un benchmark de programación muy impresionante
  • El entrenamiento post-entrenamiento + la escalabilidad en inferencia parecen ser una estrategia viable para crear un modelo muy efectivo

¿Qué sigue?

 

Rompiendo la circularidad de benchmarks y modelos

 

Cada vez que se lanza un nuevo modelo mejorado, surge la duda de si estuvo expuesto a los datos de los benchmarks durante el entrenamiento. “¿Estudió para el examen o realmente aprendió la materia?”

 

Esto se debe a la circularidad de los conjuntos de datos de benchmarks; es un ciclo interminable de hype engañoso. Se crea un buen conjunto de datos de benchmark, el siguiente modelo lo optimiza para obtener mejores resultados, recibe atención mediática y luego se necesita otro benchmark “justo”... esto agrega valor hasta que el próximo modelo lo optimiza, y así sucesivamente.

 

Dicho de otra manera, cuando un LLM genera respuestas correctas en los benchmarks actuales, es positivo si su aplicación real es en datos cuya complejidad es similar. Sin embargo, cuando el LLM falla en un nuevo benchmark (o en el dominio en el que se aplica), generalmente es porque genera respuestas erróneas con confianza. Esto ocurre porque los nuevos datos de benchmark presentan una complejidad que no conocía durante el entrenamiento.

 

Este ciclo necesita detenerse, y necesitamos mejores mecanismos de evaluación más generales y métricas informativas que no dependan de nuevos benchmarks cada pocas semanas." (Hemos hablado de esto en otra parte.)

 

Replicando los resultados de DeepSeek R1

 

Una gran tarea pendiente es replicar los resultados de R1 y validar sus hallazgos de manera independiente. Seguimos de cerca el proyecto openR1 de Hugging Face, mientras la comunidad de código abierto intenta reproducir los resultados. Para lograrlo, se necesitan algunos elementos:

 

  • GPUs: 2048 no es un número enorme, al igual que $5.5M no es una cantidad elevada por ejecución de entrenamiento.
  • Código de entrenamiento: DeepSeek no ha liberado el suyo como código abierto.
  • Datos de entrenamiento: probablemente la mayor brecha.

 

Es poco probable que DeepSeek libere su conjunto de datos de entrenamiento completo, al igual que OpenAI o Anthropic no han liberado los suyos. Hasta donde sabemos, DeepSeek tampoco ha publicado muestras de los datos utilizados para el entrenamiento con cadena de pensamiento extendida. Por ello, la comunidad de código abierto ha comenzado a crear conjuntos de datos propios. OpenThoughts es un ejemplo de ello.

 

Mientras tanto, investigadores de Berkeley afirman haber reproducido R1-Zero por menos de $30...

 

...Creo que necesito tomar una siesta.

Gracias a mis colegas Shayan Mohanty, Ben O’Mahony, Chris Kramer, Sahger Lad, Prathamesh Kalamkar, Lauris Jullien, Emily Gorcenski, Karrtik Iyer, Runyan Tan, Parag Mahajani y Andy Yates, quienes contribuyeron a este artículo.

Ayudamos a las organizaciones a aprovechar AI