
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]與我們聯繫。