Estás leyendo la publicación: Colossal-AI, un sistema unificado de aprendizaje profundo para modelos grandes, acelera sin problemas modelos grandes a bajo costo con Hugging Face
De acuerdo a un Artículo de Forbes, los modelos grandes de IA se consideran una de las seis tendencias de IA a tener en cuenta en 2022. A medida que los modelos de IA a gran escala continúan con su desempeño superior en diferentes dominios, surgen tendencias que conducen a aplicaciones de IA distinguidas y eficientes que nunca se han visto en la industria.
Por ejemplo, GitHub, propiedad de Microsoft, y OpenAI se asociaron para lanzar Copilot recientemente. Copilot desempeña el papel de un programador de pares de IA, que ofrece sugerencias para el código y funciones completas en tiempo real. Tales desarrollos continúan haciendo que la codificación sea más fácil que antes.
Otro ejemplo lanzado por OpenAI, DALL-E 2, es una poderosa herramienta que crea imágenes originales y realistas, así como también arte a partir de texto simple. Un mes después, Google anunció su propio modelo robusto de difusión de texto a imagen llamado Imagen. Imagen ofrece resultados excepcionales y acelera la carrera de grandes modelos de IA hasta el clímax.
En los últimos años, el excelente rendimiento del escalado de modelos ha llevado a un aumento del tamaño de los modelos preentrenados. Desafortunadamente, el entrenamiento e incluso el simple ajuste fino de grandes modelos de IA suelen ser inasequibles y requieren decenas o cientos de GPU. Es posible que los marcos de aprendizaje profundo existentes, como PyTorch y Tensorflow, no ofrezcan una solución satisfactoria para modelos de IA muy grandes. Además, normalmente se requiere un conocimiento avanzado de los sistemas de IA para configuraciones sofisticadas y optimización de modelos específicos. Por lo tanto, muchos usuarios de IA, como ingenieros de pequeñas y medianas empresas, no pueden evitar sentirse abrumados por la aparición de grandes modelos de IA.
De hecho, las razones principales del aumento del costo de los grandes modelos de IA son las restricciones de memoria de la GPU y la incapacidad de acomodar modelos de gran tamaño. En respuesta a todo esto, Colossal-AI desarrolló el módulo Gemini, que administra y utiliza de manera eficiente la memoria heterogénea de GPU y CPU y se espera que ayude a resolver los cuellos de botella mencionados. Lo mejor de todo es que es completamente de código abierto y solo requiere modificaciones mínimas para permitir que los proyectos de aprendizaje profundo existentes se entrenen con modelos mucho más grandes en una sola tarjeta gráfica de consumo. En particular, hace que las tareas posteriores y las implementaciones de aplicaciones, como el ajuste fino y la inferencia de grandes modelos de IA, sean mucho más fáciles. ¡Incluso otorga la conveniencia de entrenar modelos de IA en casa!
Hugging Face es una comunidad de IA popular que se esfuerza por avanzar y democratizar la IA a través del código abierto y la ciencia abierta. Hugging Face ha tenido éxito al recopilar modelos a gran escala en su propio centro de modelos con más de 50,000 modelos, incluidos modelos modernos de IA grandes como GPT y OPT.
Colossal-AI, el sistema de IA de gran escala y de código abierto insignia de HPC-AI Tech, ahora permite a los usuarios de Hugging Face desarrollar sin problemas sus modelos ML de una manera fácil y distribuida. En los siguientes párrafos, tomaremos uno de los modelos de IA más populares en Hugging Face Hub, OPT de Meta, para demostrar cómo entrenar y ajustar sus grandes modelos de IA a bajo costo con modificaciones mínimas a su código.
código fuente abierto: https://github.com/hpcaitech/ColossalAI
Acelere OPT de modelos grandes con bajo costo
Acerca del transformador preentrenado abierto (OPT)
Meta lanzó recientemente Open Pretrained Transformer (OPT), un modelo de lenguaje de IA de 175 mil millones de parámetros. Para fomentar la democratización de la IA en la comunidad, Meta ha lanzado tanto el código como los pesos del modelo entrenado, lo que estimula a los programadores de IA a realizar diversas tareas posteriores e implementaciones de aplicaciones. Ahora demostraremos el ajuste fino del modelado de lenguaje casual con pesos previos al entrenamiento del modelo OPT proporcionado por Hugging Face Hub.
Configurar con Colosal-AI
Es muy sencillo utilizar las potentes funciones de Colossal-AI. Los usuarios solo necesitan un archivo de configuración simple y no están obligados a modificar su lógica de entrenamiento para equipar los modelos con las características deseadas. (por ejemplo, entrenamiento de precisión mixta, acumulación de gradientes, entrenamiento paralelo multidimensional y eliminación de redundancia de memoria).
Supongamos que tenemos la intención de desarrollar el OPT en una GPU. Podemos lograr esto aprovechando la capacitación heterogénea de Colossal-AI, que solo requiere que los usuarios agreguen elementos relevantes a los archivos de configuración. Entre los elementos agregados, tensor_placement_policy, que se puede configurar como cuda, cpu o auto, determina nuestra estrategia de entrenamiento heterogénea. Cada estrategia de entrenamiento tiene sus distintas ventajas:
- cuda: pone todos los parámetros del modelo en GPU, adecuado para escenarios donde el entrenamiento persiste sin descargar pesos;
- cpu: coloca todos los parámetros del modelo en la CPU, adecuado para el entrenamiento de modelos gigantes, solo mantiene los pesos en la memoria de la GPU que participan en los pasos de cálculo actuales;
- auto: determina la cantidad de parámetros que se mantendrán en la GPU al monitorear de cerca el estado actual de la memoria. Optimiza el uso de la memoria de la GPU y minimiza la costosa transmisión de datos entre la GPU y la CPU.
Para los usuarios típicos, pueden simplemente seleccione la estrategia automática, que maximiza la eficiencia del entrenamiento adaptando dinámicamente su estrategia heterogénea con respecto a su estado de memoria actual.
from colossalai.zero.shard_utils import TensorShardStrategy zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(), tensor_placement_policy=”auto”), Optimizer_config=dict(gpu_margin_mem_ratio=0.8))
Lanzamiento con Colossal-AI
Con el archivo de configuración listo, solo se necesitan unas pocas líneas de código para las funciones recién declaradas.
En primer lugar, despierte Colossal-AI a través de una sola línea de código en el archivo de configuración. Colossal-AI inicializará automáticamente el entorno distribuido, leerá los ajustes de configuración e integrará los ajustes de configuración en sus componentes (es decir, modelos y optimizadores).
colossalai.launch_from_torch(config=’./configs/colossalai_zero.py’)
Después de eso, los usuarios pueden definir sus propios conjuntos de datos, modelos, optimizadores y funciones de pérdida como de costumbre, o utilizando código PyTorch sin formato. Solo sus modelos deben inicializarse en ZeroInitContext. En el ejemplo dado, adoptamos el modelo OPTForCausalLM junto con sus pesos previamente entrenados por HuggingFace y hacemos ajustes al conjunto de datos de Wikitext.
con ZeroInitContext(target_device=torch.cuda.current_device(), shard_strategy=shard_strategy, shard_param=True): modelo = OPTForCausalLM.from_pretrained(‘facebook/opt-1.3b’ config=config )
A continuación, utilice colossalai.initialize para integrar funciones de memoria heterogéneas definidas en el archivo de configuración, en el motor de entrenamiento para habilitar la función.
l_dataloader, lr_scheduler = colossalai.initialize(modelo=modelo, optimizador=optimizador, criterio=criterio, train_dataloader=tren_dataloader, test_dataloader=eval_dataloader, lr_scheduler=lr_scheduler)
Desempeño notable de Colossal-AI
En una sola GPU, la estrategia automática de Colossal-AI proporciona ganancias de rendimiento notables de la estrategia ZeRO Offloading de Microsoft DeepSpeed. Los usuarios pueden experimentar hasta un 40% de aceleración, en una variedad de escalas de modelo. Sin embargo, cuando se usa un marco de entrenamiento de aprendizaje profundo tradicional como PyTorch, una sola GPU ya no puede admitir el entrenamiento de modelos a tal escala.
¡Adoptar la estrategia de entrenamiento distribuido con 8 GPU es tan simple como agregar -nprocs 8 al comando de entrenamiento de Colossal-AI!
Entre bastidores
Tales mejoras notables provienen del eficiente sistema de administración de memoria heterogénea de Colossal-AI, Gemini. En pocas palabras, Gemini utiliza algunos pasos de calentamiento durante el entrenamiento del modelo para recopilar información sobre el uso de la memoria de los gráficos computacionales de PyTorch. Después de un calentamiento y antes de realizar cada operación, Gemini asigna previamente memoria para el operador equivalente a su uso máximo en función de los registros de uso de memoria recopilados. Al mismo tiempo, reasigna algunos tensores de modelo de la memoria de la GPU a la memoria de la CPU.
El administrador de memoria incorporado de Gemini adjunta un estado a cada tensor, incluidos HOLD, COMPUTE, FREE, etc. Según el uso de memoria consultado, el administrador convierte constantemente los estados del tensor y ajusta las posiciones del tensor. En comparación con la clasificación de memoria estática de ZeRO Offload de DeepSpeed, Colossal-AI Gemini emplea un uso más eficiente de la memoria GPU y CPU, maximiza las capacidades del modelo y equilibra las velocidades de entrenamiento, todo con pequeñas cantidades de equipo de hardware.
Para el representante de modelos grandes, GPT, Colossal-AI es capaz de entrenar hasta 1.500 millones de parámetros en un portátil para juegos con RTX 2060 de 6 GB. Para una PC con RTX3090 de 24 GB, Colossal-AI puede entrenar GPT con 18 000 millones de parámetros. Colossal-AI también puede aportar mejoras significativas a las tarjetas gráficas de alto rendimiento, como una Tesla V100.
Además: paralelizaciones convenientes y eficientes
Las tecnologías paralelas y distribuidas son métodos vitales para acelerar aún más el entrenamiento de modelos. Para entrenar los modelos de IA más grandes y avanzados del mundo en el menor tiempo posible, la paralelización distribuida eficiente sigue siendo una necesidad. Los problemas encontrados en las soluciones existentes incluyen una dimensión paralela limitada, baja eficiencia, poca versatilidad, implementación difícil y falta de mantenimiento. Con esto en mente, Colossal-AI utiliza tecnologías como el paralelismo multidimensional eficiente y el paralelismo heterogéneo para permitir a los usuarios implementar grandes modelos de IA de manera eficiente y rápida con modificaciones mínimas en su código.
Para contrarrestar las complicaciones que surgen de los datos, la tubería y el paralelismo 2.5D simultáneamente, una simple línea de declaración de código es suficiente con Colossal-AI. El método típico de sistema/marco de piratear la lógica del código subrayado ya no es necesario.
paralelo = dictado (tubería = 2, tensor = dictado (modo = “2.5d”, profundidad = 1, tamaño = 4))
Para un modelo de IA súper grande como GPT-3, Colossal-AI solo necesita la mitad de los recursos informáticos en comparación con la solución de NVIDIA para comenzar a entrenar. Si se usaran los mismos recursos informáticos, la velocidad podría incrementarse aún más en un 11 %, lo que podría reducir el costo de capacitación de GPT-3 en más de un millón de dólares.
En teoría, esto suena fantástico, pero ¿qué pasa en la práctica? Colossal-AI ha demostrado sus capacidades en la aplicación a problemas del mundo real en una variedad de industrias, que incluyen conducción autónoma, computación en la nube, comercio minorista, medicina y producción de chips.
Para AlphaFold, que se utiliza para la predicción de la estructura de proteínas, el equipo de investigación introdujo FastFold, basado en el esquema de aceleración Colossal-AI. FastFold ha superado con éxito otros esquemas, incluidos los propuestos por Google y la Universidad de Columbia. Reduce con éxito el tiempo de capacitación de AlphaFold de 11 días a 67 horas, reduciendo simultáneamente el costo total. Además, el proceso de inferencia de secuencia larga se acelera entre 9,3 y 11,6 veces.
Colossal-AI valora la construcción de comunidades de código abierto. Los investigadores brindan tutoriales detallados y admiten las últimas aplicaciones de vanguardia, como PaLM y AlphaFold. Según el equipo de investigación de HPC AI Tech, Colossal-AI producirá regularmente características nuevas e innovadoras. En una charla exclusiva con el técnico de IA de HPC que trabaja en Collossal-AI, afirmaron que siempre aceptan sugerencias y debates y que estarán más que dispuestos a ayudarlo si tiene algún problema. Puedes levantar un asunto aquí o crear un tema de discusión en su foro.
Recientemente, Colossal-AI alcanzó No. 1 en proyectos de tendencia en Github y Papers With Codejunto con proyectos que tienen hasta 10K estrellas.
Dirección del Proyecto Portal: https://github.com/hpcaitech/ColossalAI
Referencias:
Gracias a HPC AI Tech por el liderazgo intelectual/artículo educativo anterior.
Echa un vistazo a https://aitoolsclub.com para encontrar 100 de Cool AI Tools