微信扫码
与创始人交个朋友
我要投稿
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配置文件!
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-14
2024-04-26
2024-03-30
2024-04-12
2024-05-10
2024-07-18
2024-05-22
2024-05-28
2024-04-25
2024-04-26
2024-11-14
2024-11-13
2024-11-13
2024-11-13
2024-11-12
2024-11-11
2024-11-08
2024-11-07