链载Ai

标题: 【一文了解】Llama-Factory [打印本页]

作者: 链载Ai    时间: 昨天 20:50
标题: 【一文了解】Llama-Factory

在当下流行的各种大模型工具中,Llama-Factory是全球开发者常用的一套工具集,它基于Transformer架构,为我们提供了一套简单、快速而又高效的大模型定制化训练与部署工具,并且它提供了模块化、可扩展和流程化的框架,支持多种主流的大语言模型(如 LLaMA、ChatGLM、Qwen 等),一站式地集成了数据预处理、训练、微调、评估和推理等多种功能。本篇我们一起来看看Llama-Factory能为我们带来哪些便利。

01

核心功能


1. 多模型支持


2. 高效的微调方法


3. 多模态训练支持


4. 数据预处理与增强


5. 可视化与监控


6. 一键部署与推理


02

主要组件和工具


LLaMA-Factory 的整体架构围绕以下几个核心模块展开:

1. 模型支持框架(Model Support)

支持 Hugging Face Transformers 中的主流大语言模型:


这些模型可以通过 Hugging Face 的 AutoModelForCausalLM 和 AutoTokenizer 加载,兼容性强。


2. 微调方法(Fine-tuning Methods)

通过集成 PEFT(Parameter-Efficient Fine-Tuning)库,支持主流的参数高效微调策略:


用户可以选择不同的微调方法来根据资源和需求进行训练。


3. 训练器模块(Trainer)

基于 Hugging Face 的 Trainer 类封装,增加对 PEFT 的支持。

支持:


4. 数据处理模块(Data Preprocessing)

支持多种数据格式:


5. 推理模块(Inference / Serving)

提供简单的推理脚本 `infer.py`,支持:


6. 评估模块(Evaluation)

支持自动评估方法:


7. 部署模块(Serving)

可选的部署方式:


8. 配置与脚本(Scripts & Configs)

提供丰富的训练、推理、部署脚本,如:


03

微调实战


我们一起来看看如何用Llama-Factory微调llama3大模型,使用“弱智吧 ruozhiba”数据集。相比某些微调工具,LLaMA-Factory 整个操作过程还是比较简单的。

1. 环境准备

(1)克隆 LLaMA-Factory 仓库

gitclonehttps://github.com/hiyouga/LLaMA-Factory.gitcdLLaMA-Factorypipinstall-rrequirements.txt

(2) 确保在以下环境中进行微调:


2. 模型与数据集下载

我们可以在Hugging Face或魔塔社区,下载llama3模型和ruozhiba数据集,具体方法多种多样,这里就不做详细介绍了。下图是我下载的模型文件与数据集文件。

数据集文件:COIG-COIA/ruozhiba


3. 微调配置文件(`scripts/llama3/finetune_ruozhiba.sh`)

创建一个 shell 脚本如下:

#!/bin/bash
CUDA_VISIBLE_DEVICES=0accelerate launch src/train_bash.py \--stage sft \--model_name_or_path llama_models/llama-3-8b \--do_train \--dataset ruozhiba \--dataset_dir data \--template llama3 \--finetuning_type lora \--output_dir output/llama3-ruozhiba-lora \--overwrite_cache \--per_device_train_batch_size 2 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--logging_steps 10 \--save_steps 500 \--learning_rate 5e-5 \--num_train_epochs 3 \--plot_loss \--fp16

参数说明:


4. 开始训练

bashscripts/llama3/finetune_ruozhiba.sh


训练完成后,输出目录为:

output/llama3-ruozhiba-lora/├──adapter_config.json├──adapter_model.bin├──tokenizer.model└──...


5. 推理测试(inference)

我们需要使用 `src/api_demo.py` 启动一个测试接口:


pythonsrc/api_demo.py\--model_name_or_pathllama_models/llama-3-8b\--templatellama3\--finetuning_typelora\--adapter_name_or_pathoutput/llama3-ruozhiba-lora






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5