DeepSeek presenta un sistema de ficheros concebido para tareas de la IA

Fire-Flyer File System (3FS) ha sido diseñado para resolver los desafíos de entrenamiento e inferencia en inteligencia artificial, aprovechando tecnologías de redes RDMA y SSD modernas.
25 de marzo, 2025
Unidades de almacenamiento de alta capacidad

DeepSeek no deja de sorprender y, tras la presentación de su exitoso -y no excento de polémica- modelo de lenguaje grande que optimiza el uso del hardware, y su prescriptivo chatbot, ahora presenta 3FS, un nuevo sistema de ficheros concebido desde la base y optimizado, para lidiar con las pesadas cargas de trabajo correspondientes al entrenamiento de modelos de lenguaje.

Un sistema de ficheros, por lo tanto, muy especializado, aunque es posible utilizarlo más genéricamente para dar un mayor rendimiento a aplicaciones distribuidas.

El uso de redes RDMA (Remote Direct Memory Access, tecnología que permite leer y escribir en la memoria de otro ordenador como si fuera la local, reduciendo la latencia y liberando recursos de cómputo) y la integración de múltiples unidades SSD, le otorgan una velocidad de acceso a los datos, idónea para cumplir con las demandas de los escenarios de entrenamiento de modelos de IA.

Funciones enfocadas a cargas de la IA

En este nuevo sistema de ficheros, DeepSeek ha implementado una arquitectura desagregada, con la finalidad de combinar el rendimiento agregado de miles de SSD, y el ancho de banda de cientos de nodos de almacenamiento. Esto permite a las aplicaciones procesar datos sin necesidad de preocuparse por la localización física de los ficheros, ofreciendo además consistencia sólida gracias a la adopción de un sistema de replicación.

Por otro lado, la simplificación en el uso se ve reflejada en la integración de interfaces de fichero reconocidas por los desarrolladores, aprovechando metadatos gestionados a través de un almacén transaccional. Esto facilita la adopción de la plataforma, pues no requiere del aprendizaje de nuevas APIs de almacenamiento y garantiza que tanto la consistencia de la información como el control de versiones estén debidamente cubiertos.

En la práctica, 3FS ha sido concebido para abarcar distintas necesidades dentro del ámbito de la inteligencia artificial y el análisis de datos. Por ejemplo, la preparación de información masiva se concentra en la capacidad de organizar salidas de canalizaciones de análisis en estructuras jerárquicas, de manera que los volúmenes intermedios se gestionen con efectividad. A su vez, en procesos de entrenamiento, la carga de datos se agiliza al no requerir labores de prefetching, ya que se habilita el acceso aleatorio desde múltiples nodos de cómputo.

La sistematización de grandes procesos de entrenamiento incluye, según sus desarrolladores, un soporte para checkpointing intensivo y simultáneo. De la misma manera, para los entornos de inferencia a gran escala, se resalta el uso de KVCache, una tecnología cuyo propósito es prescindir de memorias DRAM de alto coste, sustituyéndolas por capacidades más amplias y un desempeño que busca ajustarse a los requisitos de cada proyecto.

Resultados de las pruebas de rendimiento

En cuanto al rendimiento, se han llevado a cabo varios ensayos en entornos distribuidos. En uno de ellos se desplegaron 180 nodos de almacenamiento, cada uno con dos interfaces InfiniBand de 200 Gbps y un conjunto de SSD NVMe de 14 TiB. Del lado del cliente, la prueba de lectura involucró a más de 500 nodos, obteniendo un rendimiento que llegó a 6,6 TiB/s durante las operaciones, incluso con tráfico de entrenamiento en segundo plano.

Otra evaluación se centró en el banco de pruebas GraySort, donde se midieron tareas de clasificación de datos a gran escala. En esta ocasión, el clúster consistió en 25 nodos de almacenamiento con varios dominios NUMA y 50 nodos de cómputo, capaces de procesar hasta 110,5 TiB de información. El proceso se dividió en una fase de particionamiento y otra de ordenamiento dentro de las particiones, ambas con lectura y escritura en 3FS, obteniéndose un promedio de 3,66 TiB/min.

Gestión de inferencias con KVCache

El subsistema KVCache representa una optimización para la inferencia de modelos de lenguaje de gran tamaño, al evitar repeticiones en los cálculos necesarios para procesar secuencias de tokens. En las pruebas, se alcanzó un pico de 40 GiB/s de lectura, destacando la eliminación de operaciones sobrantes a través de un proceso de recolección de elementos desactualizados.

Este enfoque busca un consumo eficiente de recursos sin sacrificar el rendimiento en los niveles requeridos por la IA actual.