微调LLAMA3,启动!
作者: 思源数据科学 来源: 思源数据科学
torchtune是PyTorch新开源的LLM微调工具库,并原生支持LLAMA3微调!参考之前推送:
Llama3-8B
Llama3-8B 是 Meta AI 发布的新型模型,它在一系列不同的基准测试中提高了 Llama2 模型系列的性能。Llama2-7B 和 Llama3-8B 模型之间有几个主要的变化:
-
Llama3-8B 使用分组查询注意力机制,而不是 Llama2-7B 中的标准多头注意力机制。
-
Llama3-8B 拥有更大的词汇表大小(128,256,而不是 Llama2 模型的 32,000)。
-
Llama3-8B 使用了与 Llama2 模型不同的分词器(tiktoken 而非 sentencepiece)。
-
Llama3-8B 在其 MLP(多层感知机)层中使用了比 Llama2-7B 更大的中间维度。
-
Llama3-8B 在计算其旋转位置嵌入(rotary positional embeddings)中的 theta 时使用了更大的值。
获取Llama3-8B
tune download meta-llama/Meta-Llama-3-8B \
--output-dir <checkpoint_dir> \
--hf-token <ACCESS TOKEN>
https://github.com/meta-llama/llama3/blob/main/README.md
微调Llama3-8B
单卡LoRA微调样例:
tune run lora_finetune_single_device --config llama3/8B_lora_single_device
在我们的实验中,我们观察到18.5GB的峰值内存使用量。默认配置可以在具有24 GB VRAM的消费级GPU上进行训练。
如果您有多个可用的GPU,您可以运行分布式版本。torchtune使用PyTorch Distributed的FSDP API来分割模型、优化器状态和梯度。这将使您能够增加批量,从而更快地进行整体培训。例如,在两个设备上:
tune run --nproc_per_node 2 lora_finetune_distributed --config llama3/8B_lora
由于我们的默认配置支持完整的bfloat16训练,因此所有上述命令都可以在具有至少24 GB 显存的设备上运行,事实上,如果使用QLoRA,峰值分配内存甚至低于10 GB。您还可以尝试使用LoRA和QLoRA的不同配置,甚至可以进行全量参数微调。试试看!比如QLoRA微调方法如下:
tune run lora_finetune_single_device --config llama3/8B_qlora_single_device
使用torchtune完全可以实现0代码大模型微调、评测、量化、推理,所要做的仅需要确定微调的YAML配置文件!
更多AI工具,参考Github-AiBard123,国内AiBard123