
Felafax是使用XLA运行时继续培训和微调开源LLM的框架。我们负责必要的运行时设置,并提供jupyter笔记本电脑外的盒子外,才能开始。
我们在Felafax的目标是建立Instra,以使在非NVIDIA硬件(TPU,AWS Trainium,AMD GPU和Intel GPU)上运行AI工作负载变得更加容易。
添加数据集,单击“运行全部”,然后在Google Colab上使用免费的TPU资源运行!
| Felafax支持 | 免费笔记本 |
|---|---|
| 骆驼3.1(1b,3b) |
Llama-3.1 JAX实施
Llama-3/3.1 Pytorch XLA
通过几个简单的步骤使用Felafax CLI进行微调模型开始。
首先安装CLI。
pip install pipx
pipx install felafax-cli然后,生成一个身份令牌:
最后,使用令牌来验证您的CLI会话:
felafax-cli auth login --token < your_token >首先,生成用于微调的默认配置文件。此命令在具有默认的超参数值的当前目录中生成一个config.yml文件。
felafax-cli tune init-config其次,使用您的超参数更新配置文件:
拥抱面旋钮:
数据集管道和培训参数:
batch_size , max_seq_length用于微调数据集。null 。如果将num_steps设置为一个数字,则训练将在指定的步骤数之后停止。learning_rate和lora_rank设置用于微调。eval_interval是评估之间的步骤数。运行以下命令以查看您可以微调的基本模型列表,截至目前,我们支持Llama-3.1的所有变体。
felafax-cli tune start --help现在,您可以从上面的列表和数据集名称从HuggingFace(例如yahma/alpaca-cleaned )启动微调过程:
felafax-cli tune start --model < your_selected_model > --config ./config.yml --hf-dataset-id < your_hf_dataset_name >示例命令使您入门:
felafax-cli tune start --model llama3-2-1b --config ./config.yml --hf-dataset-id yahma/alpaca-cleaned开始微调工作后, Felafax CLI会照顾旋转TPU,进行培训,并将微调模型上传到Huggingface Hub。
您可以流式传输实时日志以监视微调工作的进度:
# Use `<job_name>` with the job namethat you get after starting the fine-tuning.
felafax-cli tune logs --job-id < job_name > -f微调完成后,您可以列出所有微调型号:
felafax-cli model list您可以启动交互式终端会话以与您的微调模型聊天:
# Replace `<model_id>` with model id from `model list` command you ran above.
felafax-cli model chat --model-id < model_id > CLI分为三个主要命令组:
tune :开始/停止微调工作。model :管理和与微调模型进行互动。files :上传/查看您的数据库文件。使用--help标志来发现有关任何命令组的更多信息:
felafax-cli tune --help我们最近使用JAX而不是Pytorch微调了8xAMD MI300X GPU上的Llama3.1 405b模型。 Jax的高级分片API使我们得以取得出色的性能。请查看我们的博客文章,以了解我们使用的设置和碎片技巧。
我们在Bfloat16精度中使用所有模型权重和Lora参数进行了微调,而Lora等级为8,Lora Alpha为16:
可以在下面找到GPU利用率和VRAM利用率图。但是,我们仍然需要计算模型FLOPS利用率(MFU)。注意:由于基础架构和VRAM约束,我们无法运行405B模型的JIT编译版本(我们需要进一步研究)。整个训练运行都是在JAX急切模式下执行的,因此有很大的潜力可以改善性能。


如果您有任何疑问,请通过[email protected]与我们联系。