Snowflake Arctic, el mejor LLM para IA empresarial: inteligente de manera eficiente y verdaderamente abierto
Utilizar large language models (LLM) para crear inteligencia empresarial de la máxima calidad siempre ha consumido muchos recursos y ha resultado tan prohibitivo que, a menudo, cuesta entre decenas y cientos de millones de dólares. Los investigadores llevamos años lidiando con las limitaciones que conlleva entrenar e inferir LLM de forma eficiente. Los integrantes del equipo Snowflake AI Research han sido pioneros con sistemas como ZeRO, DeepSpeed, PagedAttention, vLLM y LLM360, que han rebajado considerablemente los costes del entrenamiento y la inferencia de los LLM. Además, los han ofrecido como código abierto para que sean más accesibles y rentables para toda la comunidad.
Ahora, el equipo Snowflake AI Research tiene el placer de presentar Snowflake Arctic, un excepcional LLM para empresas que rebasa todos los límites en lo relativo al grado de apertura y la rentabilidad del entrenamiento. Arctic es inteligente de manera eficiente y verdaderamente abierto.
- Inteligente de manera eficiente: Arctic destaca en tareas empresariales como la generación de SQL, la escritura de código y la adherencia a las instrucciones conforme a los indicadores de referencia, incluso cuando se compara con modelos de código abierto entrenados con presupuestos de cómputo mucho más elevados. De hecho, sienta las bases para ofrecer a los clientes de Snowflake un entrenamiento rentable que les permita crear modelos de calidad, personalizados y adaptados a sus necesidades empresariales por poco dinero.
- Verdaderamente abierto: la licencia de Apache 2.0 ofrece un acceso sin restricciones tanto al código como a los pesos. También vamos a ofrecer de forma pública todas nuestras recetas de datos y los hallazgos de las investigaciones.
Snowflake Arctic ya está disponible en Hugging Face, el catálogo de API de NVIDIA y Replicate y, en los próximos días, lo estará también en tu jardín de modelos o en el catálogo que prefieras, como Snowflake Cortex, Amazon Web Services (AWS), Microsoft Azure, Lamini, Perplexity, Replicate y Together AI.
Inteligencia empresarial de máxima calidad a un precio de entrenamiento increíblemente bajo
En Snowflake, hemos identificado un patrón sistemático en las necesidades y los casos de uso de inteligencia artificial (IA) que tienen nuestros clientes empresariales. Las empresas quieren emplear los LLM para crear asistentes de datos SQL conversacionales, asistentes de programación y chatbots de generación aumentada de recuperación (Retrieval Augmented Generation, RAG). Desde el punto de vista de las métricas, eso se traduce en LLM sobresalientes en SQL, escritura de código, adherencia a instrucciones complejas y capacidad para elaborar respuestas fundamentadas. Agrupamos todas esas competencias en una sola métrica que denominamos inteligencia empresarial calculando una media de escritura de código (HumanEval+ y MBPP+), generación de SQL (Spider) y adherencia a instrucciones (IFEval).
Arctic ofrece una inteligencia empresarial que destaca entre los LLM de código abierto. Además, lo hace con un presupuesto de cómputo para el entrenamiento que apenas roza los 2 millones de dólares; es decir, menos de 3000 semanas de uso de GPU. En suma, Arctic supera en capacidad a otros modelos de código abierto entrenados con un presupuesto de cómputo similar y, lo que es aún más importante, sobresale en inteligencia empresarial, incluso cuando se compara con los entrenados con presupuestos muy superiores. La notable eficiencia del entrenamiento de Arctic también implica que los clientes de Snowflake y la comunidad de IA en su conjunto pueden entrenar modelos personalizados de forma mucho más asequible.
Tal como se ilustra en la figura 1, Arctic es igual e incluso mejor que los modelos Llama 2 70B y Llama 3 8B en cuanto a métricas empresariales, pese a que su entrenamiento cuesta menos de la mitad. Es más, aunque Arctic tiene un presupuesto de cómputo 17 veces menor, se halla a la par que Llama 3 70B en métricas empresariales como escritura de código (HumanEval+ y MBPP+), SQL (Spider) y adherencia a instrucciones (IFEval); y todo ello sin perder competitividad en el rendimiento global. Por ejemplo, a pesar de que utiliza 7 veces menos recursos de cómputo que DBRX, es competitivo en comprensión del lenguaje y razonamiento (un grupo que engloba 11 métricas), e incluso mejor en matemáticas (GSM8K). Para ver un desglose detallado de los resultados por cada indicador de referencia, consulta el apartado “Métricas”.
Eficiencia del entrenamiento
Para alcanzar este grado de eficiencia en el entrenamiento, Arctic emplea una arquitectura única híbrida de transformadores Dense-MoE. Al combinar un modelo de transformadores denso de 10 B con un perceptrón multicapa (Multilayer Perceptron, MLP) MoE residual de 128 x 3,66 B, ofrece 480 B en total y 17 000 millones de parámetros activos que se eligen mediante compuertas de selección de 2 niveles. Se ha diseñado y entrenado teniendo en cuenta las tres informaciones e innovaciones siguientes:
1) Muchos expertos condensados y mayor variedad. A finales de 2021, el equipo de DeepSpeed demostró la posibilidad de aplicar el modelo MoE a los LLM autorregresivos con el fin de mejorar considerablemente la calidad de los modelos sin incrementar el coste de cómputo.
Mientras diseñábamos Arctic —y basándonos en esa conclusión—, nos dimos cuenta de que la mejora de calidad de los modelos dependía, sobre todo, del número de expertos y del número total de parámetros del modelo MoE, así como del posible número de combinaciones de dichos expertos.
A partir de esa información, hemos diseñado Arctic para que abarque 480 000 millones de parámetros dispersos por 128 expertos especializados y emplee compuertas de selección de 2 niveles para elegir 17 000 millones de parámetros activos. Otros modelos MoE recientes, en cambio, están diseñados con muchísimos menos expertos, tal como se aprecia en la tabla 2. Arctic sabe cómo aprovechar la abundancia de expertos y de parámetros totales para obtener inteligencia de máxima calidad, al tiempo que elige de forma sensata entre los numerosos expertos condensados y selecciona un número moderado de parámetros activos para ofrecer un entrenamiento y una inferencia eficientes en lo que a recursos se refiere.
2) Diseño conjunto de la arquitectura y del sistema. Entrenar una arquitectura MoE convencional repleta de expertos resulta muy ineficiente incluso con el hardware de entrenamiento de IA más potente debido a la intensa sobrecarga de comunicación entre todos ellos. No obstante, es posible encubrir esa sobrecarga solapando las comunicaciones con cómputo.
Nuestra segunda conclusión es que, al combinar un transformador denso con un componente MoE residual (figura 2) en la arquitectura de Arctic, nuestro sistema de entrenamiento logra una eficiencia aceptable mediante el solapamiento de las comunicaciones con cómputo, ya que se oculta gran parte de la sobrecarga de comunicación.
3) Plan de datos centrado en la empresa. Para destacar en métricas empresariales como la generación de código y el SQL, es imprescindible un plan de datos muy diferente del que ofrecen los modelos de entrenamiento con métricas genéricas. Tras centenares de ablaciones a pequeña escala, concluimos que las competencias generales, como el razonamiento lógico, se pueden aprender desde el primer momento, pero las métricas más complejas, como la escritura de código, las matemáticas y el SQL, se aprenden de manera eficaz en la fase final del entrenamiento. En este sentido, existen analogías con la experiencia y la educación humanas, ya que nuestra adquisición de competencias va de las más sencillas a las más complicadas. Por eso, el entrenamiento de Arctic sigue un plan dividido en 3 etapas, cada una con una composición de datos distinta: la primera se centra en competencias generales (1 billón de tokens), y las dos últimas, en competencias enfocadas en la empresa (1,5 billones y 1 billón de tokens). A continuación, se muestra un resumen general de nuestro plan dinámico.
Eficiencia de la inferencia
La eficiencia del entrenamiento representa tan solo una parte de la inteligencia eficiente de Arctic. La eficiencia de la inferencia es igual de importante para que el modelo pueda implementarse en la práctica con un coste reducido. Arctic supone un salto en la escala de los modelos MoE, puesto que usa más expertos y parámetros totales que los demás modelos MoE autorregresivos de código abierto. Por eso, hacen falta varias informaciones e innovaciones del sistema para ejecutar la inferencia en Arctic de forma eficiente:
a) En la inferencia interactiva de lotes pequeños (por ejemplo, con un tamaño de 1), la latencia de los modelos MoE se resiente por el tiempo que se tarda en leer todos los parámetros activos, ya que la inferencia está delimitada por el ancho de banda de memoria. Con lotes de este tamaño, Arctic (que usa 17 000 millones de parámetros activos) lleva a cabo hasta 4 veces menos lecturas de memoria que Code Llama 70B y hasta 2,5 veces menos que Mixtral 8x22B (44 000 millones de parámetros activos), por lo que la inferencia es más rápida.
Hemos cooperado con NVIDIA y con los equipos de NVIDIA (TensorRT-LLM) y vLLM con el fin de ofrecer una implementación preliminar de Arctic para inferencia interactiva. Gracias a la cuantificación con una precisión de coma flotante de 8 bits (8-bit floating point, FP8), Arctic encaja en un solo nodo de GPU. Aunque se encuentra lejos de una cifra óptima, Arctic ofrece, en el caso de los lotes con un tamaño de 1, un rendimiento superior a 70 tokens por segundo, por lo que el servicio interactivo se puede calificar de eficaz.
b) Con lotes de un tamaño bastante mayor (por ejemplo, miles de tokens por enrutamiento adelante), la limitación de Arctic ya no es el ancho de banda de memoria, sino los recursos de cómputo, y el cuello de botella de la inferencia se produce en los parámetros activos por token. En este caso, Arctic consume 4 veces menos recursos de cómputo que Code Llama 70B y Llama 3 70B.
Para que la inferencia esté limitada por los recursos de cómputo y ofrezca un rendimiento relativo elevado que se corresponda con el reducido número de parámetros activos de Arctic (tal como se muestra en la figura 3), hacen falta lotes de mayor tamaño. Esto se logra con una caché de clave-valor (key-value, KV) capaz de admitir lotes de tal tamaño y con memoria suficiente para almacenar los casi 500 000 millones de parámetros del modelo. Aunque complejo, es posible si a la inferencia de dos nodos se le aplica una combinación de optimizaciones del sistema, como pesos FP8, procesos de división, combinación y creación continua de lotes, paralelismo de tensores dentro de un nodo y paralelismo de flujos entre ambos.
Hemos trabajado estrechamente con NVIDIA para optimizar la inferencia de los microservicios NVIDIA NIM, con la tecnología de TensorRT-LLM. También estamos colaborando con la comunidad de vLLM y, en las próximas semanas, nuestro equipo interno de desarrollo va a habilitar la inferencia eficiente de Arctic para casos de uso empresariales.
Verdaderamente abierto
Para crear Arctic, nos basamos tanto en las experiencias colectivas de nuestro variado equipo como en la información y los conocimientos de la comunidad. La colaboración abierta es un elemento clave a la hora de innovar, y crear Arctic habría sido imposible de no ser por el código abierto y la información de investigación pública de la comunidad. A ella le damos las gracias y prometemos compensarla con los conocimientos que nosotros mismos adquiramos a fin de enriquecer la cultura colectiva y ayudar a los demás a tener éxito.
Nuestro compromiso con un ecosistema verdaderamente abierto trasciende el código y los pesos abiertos, pues incluye la información extraída de las investigaciones y las recetas de código abierto.
Información de investigación abierta
La creación de Arctic ha seguido dos vías muy distintas: la senda del código abierto, que hemos recorrido plácidamente gracias a la profusa información de la comunidad, y el camino más difícil, caracterizado por los segmentos de investigación sin información previa de la comunidad, que ha requerido una depuración intensiva y numerosas ablaciones.
En esta publicación no solo presentamos el modelo, sino que también compartimos la información derivada de nuestra investigación en un completo “recetario”, una guía donde desvelamos las conclusiones extraídas a lo largo de ese camino difícil. Con la guía pretendemos agilizar el proceso de aprendizaje de cualquiera que desee crear modelos MoE de primera categoría. Además de información general, incluye datos técnicos detallados para que crees un LLM parecido a Arctic con el cual adquirir la inteligencia que te interesa de manera eficiente y por poco dinero, saltándote el camino complicado y avanzando directamente por la senda abierta.
La guía abarca conceptos diversos, como el preentrenamiento, el ajuste, la inferencia y la evaluación, pero también profundiza en el modelado, los datos, los sistemas y la infraestructura. Puedes hacerte una idea con el índice, que incluye más de 20 temas. Publicaremos las correspondientes entradas en el blog Medium.com a diario durante el próximo mes. Por ejemplo, revelaremos nuestras estrategias para extraer y ajustar datos web en el apartado “Datos que conviene usar” y analizaremos cómo reunimos los datos y el plan que trazamos en “Composición de los datos”. En “Arquitectura MoE avanzada”, detallaremos cómo examinamos las variaciones en la arquitectura de los modelos MoE y explicaremos cómo tener en cuenta en el diseño tanto la arquitectura del modelo como el rendimiento del sistema. Además, para quienes sientan curiosidad por la evaluación de los LLM, en “Formas de evaluar la calidad de los modelos: un proceso menos sencillo de lo que podría parecer” arrojaremos luz sobre las dificultades inesperadas con las que nos hemos topado.
Con esta iniciativa, pretendemos aportar nuestro granito de arena a la comunidad del código abierto, donde el aprendizaje y el avance colectivos son las pautas para ampliar aún más las fronteras de este campo.
Código de servicio abierto
- Vamos a publicar puntos de control de los modelos con licencia de Apache 2.0 tanto para la versión básica de Arctic como para la versión con ajuste de instrucciones. Así podrás usarlos como quieras en tus propios estudios, prototipos y productos.
- Nuestro flujo de ajuste basado en la adaptación de bajo rango (Low Rank Adaptation, LoRA), completado con una receta, permite ajustar los modelos de manera eficiente en un solo nodo.
- En colaboración con NVIDIA TensorRT-LLM y vLLM, estamos desarrollando implementaciones iniciales de inferencia de Arctic, optimizadas para el uso interactivo con lotes de un solo elemento. Es un placer trabajar con la comunidad para superar las dificultades que entraña la inferencia de lotes de gran tamaño con modelos MoE muy grandes.
- Para entrenar Arctic, se ha empleado una ventana contextual de atención de 4000 tokens. Estamos desarrollando una implementación de ventana deslizante basada en sumideros de atención que permita la generación ilimitada de secuencias en las próximas semanas. En un futuro cercano, esperamos ampliar la ventana de atención a 32 000 tokens en colaboración con la comunidad.
Métricas
En lo que atañe a las métricas, nuestro principal interés es lo que llamamos inteligencia empresarial, una colección de competencias vitales para los clientes empresariales que incluye escritura de código (HumanEval+ y MBPP+), generación de SQL (Spider) y adherencia a instrucciones (IFEval).
Igual de relevante es evaluar los LLM según las métricas habituales en la comunidad investigadora, como los conocimientos generales, el razonamiento lógico y las capacidades matemáticas. Estas métricas se denominan indicadores de referencia académicos.
A continuación, se muestran las métricas empresariales y académicas de Arctic en comparación con varios modelos de código abierto:
En lo que se refiere a las métricas empresariales, Arctic demuestra un rendimiento excepcional en todas las clases de cómputo en comparación con los demás modelos de código abierto. Además, en el resto de las métricas también logra un magnífico rendimiento para su clase de cómputo e incluso mantiene la competitividad con modelos entrenados con presupuestos de cómputo más elevados. Snowflake Arctic es el modelo de código abierto idóneo para casos de uso empresariales listos para usar. Aun así, si prefieres entrenar tu propio modelo partiendo de cero por el menor coste total de propiedad (total cost of ownership, TCO), seguro que te interesan mucho las descripciones sobre la infraestructura de entrenamiento y la optimización de sistemas de nuestra guía de recetas.
En el caso de los indicadores de referencia académicos, el rendimiento del modelo se centra en las métricas de conocimientos generales, como la comprensión general de lenguaje multidisciplinar (Massive Multitask Language Understanding, MMLU). Si tanto los datos web como los de ciencia, tecnología, ingeniería y matemáticas (CTIM) son de buena calidad, el indicador MMLU aumenta repetitivamente en función del número de operaciones de coma flotante por segundo (floating point operations per second, FLOPS) de entrenamiento. Dado que uno de los objetivos de Arctic era optimizar la eficiencia del entrenamiento conteniendo el presupuesto destinado a dicha tarea, la consecuencia natural es un rendimiento menor en MMLU en comparación con otros modelos recientes de máxima calidad. Por ello, prevemos que nuestro entrenamiento continuo consumirá un presupuesto de cómputo mayor que el de Arctic para superar su rendimiento en MMLU. Cabe señalar que el rendimiento del indicador MMLU de conocimientos generales no guarda relación necesariamente con nuestro interés por la inteligencia empresarial.
Tabla 3. Tabla completa de métricas en la que se compara Snowflake Arctic con DBRX, Llama 3 8B, Llama 3 70B, Mixtral 8x7B y Mixtral 8x22B (en los casos disponibles, con ajuste de instrucciones o variantes de chat). 1 2 3
Uso de Arctic
Hace poco, el equipo de Snowflake AI Research también anunció y convirtió en código abierto el conjunto de modelos snowflake-arctic-embed, una moderna tecnología para la recuperación de integraciones masivas de texto (Massive Text Embedding Benchmark, MTEB). Nos entusiasma la idea de colaborar con la comunidad en el desarrollo de la próxima generación de modelos de la familia Arctic. Para obtener más información, participa en el Data Cloud Summit, que se celebrará del 3 al 6 de junio.
Desde hoy mismo, ya disponemos de las siguientes formas de colaborar en Arctic:
- Visita Hugging Face para descargar Arctic directamente y busca recetas de inferencia y ajuste en nuestro repositorio de GitHub .
- Los clientes de Snowflake que tengan registrada alguna forma de pago y prefieran disfrutar de la experiencia sin servidor en Snowflake Cortex pueden acceder a Snowflake Arctic de forma gratuita hasta el 3 de junio, aunque se aplican límites diarios.
- En los próximos días, podrás acceder a Arctic a través de tu jardín de modelos o recurriendo al catálogo que prefieras, como AWS, Lamini, Microsoft Azure, el catálogo de API de NVIDIA, Perplexity, Replicate y Together AI.
- Conversa con Arctic: prueba ya la demostración en directo en Streamlit Community Cloud o Hugging Face Streamlit Spaces, y usa la API con tecnología de nuestros colegas de Replicate.
- Recibe orientación y créditos para crear tus propias aplicaciones basadas en Arctic durante nuestro hackatón comunitario dedicado a Arctic.
Por último, no olvides leer la primera edición de nuestra guía de recetas para aprender a crear tus propios modelos MoE personalizados de la forma más rentable posible.
Agradecimientos
Queremos agradecer a nuestro partner AWS su colaboración y alianza a la hora de crear el clúster y la infraestructura de entrenamiento de Arctic. También damos las gracias a nuestro partner NVIDIA por facilitar la compatibilidad de Arctic con NVIDIA NIM con TensorRT-LLM. Extendemos nuestro agradecimiento a la comunidad del código abierto por generar los modelos, los conjuntos de datos y la información de recetas de conjuntos de datos en los que nos hemos basado para lanzar este producto. Asimismo, queremos expresar nuestra gratitud a nuestros partners de AWS, Microsoft Azure, el catálogo de API de NVIDIA, Lamini, Perplexity, Replicate y Together AI por colaborar en poner Arctic a disposición pública.
1. Las 11 métricas de comprensión del lenguaje y razonamiento son ARC-Easy, ARC-Challenge, BoolQ, CommonsenseQA, COPA, HellaSwag, LAMBADA, OpenBookQA, PIQA, RACE y WinoGrande.
2. Las puntuaciones de la evaluación de HumanEval+ y MBPP+ v0.1.0 se obtuvieron tomando: (1) bigcode-evaluation-harness con plantillas de chat específicas para el modelo y posprocesamiento alineado, y (2) descodificación greedy. Se evaluaron todos los modelos con nuestro flujo para garantizar la coherencia. Se confirmó que las evaluaciones son acordes a la tabla de clasificación de EvalPlus. De hecho, las cifras de nuestro flujo fueron algo más altas que las de EvalPlus para todos los modelos, lo que nos da la seguridad de que estamos evaluando cada modelo de la mejor forma posible.
3. Las puntuaciones de IFEval son la media de prompt_level_strict_acc y inst_level_strict_acc.