
Felafax es un marco para el entrenamiento continuo y el ajuste de código abierto de código abierto que usa el tiempo de ejecución XLA . Nos encargamos de la configuración de tiempo de ejecución necesaria y proporcionamos un cuaderno Jupyter fuera de caja para comenzar.
Nuestro objetivo en Felafax es construir infra para que sea más fácil ejecutar cargas de trabajo de IA en hardware no nvidia (TPU, AWS Entrenium, AMD GPU e Intel GPU).
Agregue su conjunto de datos, haga clic en "Ejecutar todo" y se ejecutará en el recurso TPU gratuito en Google Colab.
| Felafax es compatible | Cuadernos gratis |
|---|---|
| Llama 3.1 (1b, 3b) |
Llama-3.1 Implementación de Jax
Llama-3/3.1 Pytorch XLA
Comience con el ajuste de sus modelos utilizando la CLI de Felafax en algunos simples pasos.
Comience instalando la CLI.
pip install pipx
pipx install felafax-cliLuego, genere un token de autenticación:
Finalmente, autentique su sesión de CLI usando su token:
felafax-cli auth login --token < your_token > Primero, genere un archivo de configuración predeterminado para ajuste fino. Este comando genera un archivo config.yml en el directorio actual con valores predeterminados de hiperparameter.
felafax-cli tune init-configEn segundo lugar, actualice el archivo de configuración con sus hiperparámetros:
Bandillas de Huggingface:
Cubierte de datos y parámetros de capacitación:
batch_size , max_seq_length para usar para ajustar el conjunto de datos.null si desea que Trainig se ejecute a través del conjunto de datos completo. Si num_steps se establece en un número, el entrenamiento se detendrá después del número especificado de pasos.learning_rate y lora_rank para usar para ajustar.eval_interval es el número de pasos entre evaluaciones.Ejecute el siguiente comando para ver la lista de modelos base que puede ajustar, apoyamos todas las variantes de LLAMA-3.1 a partir de ahora.
felafax-cli tune start --help Ahora, puede iniciar el proceso de ajuste con su modelo seleccionado de la lista anterior y el nombre del conjunto de datos de Huggingface (como yahma/alpaca-cleaned ):
felafax-cli tune start --model < your_selected_model > --config ./config.yml --hf-dataset-id < your_hf_dataset_name >Ejemplo de comando para comenzar:
felafax-cli tune start --model llama3-2-1b --config ./config.yml --hf-dataset-id yahma/alpaca-cleanedDespués de comenzar el trabajo de ajuste, Felafax CLI se encarga de hacer girar las TPU, ejecutar el entrenamiento, y carga el modelo ajustado al Hub Huggingface.
Puede transmitir registros en tiempo real para monitorear el progreso de su trabajo ajustado:
# Use `<job_name>` with the job namethat you get after starting the fine-tuning.
felafax-cli tune logs --job-id < job_name > -fDespués de completar el ajuste, puede enumerar todos sus modelos ajustados:
felafax-cli model listPuede iniciar una sesión de terminal interactivo para chatear con su modelo ajustado:
# Replace `<model_id>` with model id from `model list` command you ran above.
felafax-cli model chat --model-id < model_id > La CLI se divide en tres grupos de comando principales:
tune : para comenzar/dejar de ajustar los trabajos.model : para administrar e interactuar con sus modelos ajustados.files : para cargar/ver sus archivos suDataSet. Use el indicador --help para descubrir más sobre cualquier grupo de comando:
felafax-cli tune --helpRecientemente ajustamos el modelo LLAMA3.1 405B en GPU 8XAMD MI300X usando Jax en lugar de Pytorch. Las API avanzadas de fragmentación de Jax nos permitieron lograr un gran rendimiento. Echa un vistazo a nuestra publicación de blog para aprender sobre la configuración y los trucos de fragmentos que utilizamos.
Hicimos un ajuste fino de Lora con todos los pesos del modelo y los parámetros de Lora en la precisión BFLOAT16, y con el rango de Lora de 8 y Lora Alpha de 16:
Los gráficos de utilización de GPU y utilización de VRAM se pueden encontrar a continuación. Sin embargo, todavía necesitamos calcular la utilización del modelo de FLOPS (MFU). Nota: No pudimos ejecutar la versión compilada por JIT del modelo 405B debido a las limitaciones de infraestructura y VRAM (necesitamos investigar esto más a fondo). Toda la ejecución de capacitación se ejecutó en modo Jax EXISH, por lo que existe un potencial significativo para las mejoras de rendimiento.


Si tiene alguna pregunta, contáctenos en [email protected].