AI 文摘

微调LLAMA3,启动!





作者: 思源数据科学 来源: 思源数据科学

torchtune是PyTorch新开源的LLM微调工具库,并原生支持LLAMA3微调!参考之前推送:

微调自己的大模型:PyTorch开源torchtune

洗数据干翻GPT4?解读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

可关注我们的公众号:每天AI新工具