IT评测·应用市场-qidao123.com
标题:
LlamaFactory:解锁LLM微调效率的终极神器!
[打印本页]
作者:
熊熊出没
时间:
2025-3-12 13:54
标题:
LlamaFactory:解锁LLM微调效率的终极神器!
LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)练习与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预练习模型的微调,框架特性包罗:
模型种类:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。
练习算法:(增量)预练习、(多模态)指令监督微调、奖励模型练习、PPO 练习、DPO 练习、KTO 练习、ORPO 练习等等。
运算精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
优化算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
加速算子:FlashAttention-2 和 Unsloth。
推理引擎:Transformers 和 vLLM。
实验面板:LlamaBoard、TensorBoard、Wandb、MLflow 等等。
在安装 LLaMA-Factory 之前,请确保您安装了下列依靠:
运行以下指令以安装 LLaMA-Factory 及其依靠:
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
如果出现环境冲突,请尝试使用 pip
install --no-deps -e .解决
复制代码
如果出现环境冲突,请尝试使用 pip install --no-deps -e .办理
LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。 在完成 安装后,您可以通过以下指令进入 WebUI:
llamafactory-cli webui
复制代码
WebUI 重要分为四个界面:练习、评估与预测、对话、导出。
"alpaca_zh_demo.json"
{
"instruction": "计算这些物品的总费用。 ",
"input": "输入:汽车 - $3000,衣服 - $100,书 - $20。",
"output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120。"
},
复制代码
您可以使用以下命令进行微调:
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml
复制代码
examples/train_lora/llama3_lora_sft.yaml提供了微调时的配置示例。该配置指定了模型参数、微调方法参数、数据集参数以及评估参数等。您需要根据自身需求自行配置。
### examples/train_lora/llama3_lora_sft.yaml
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
stage: sft
do_train: true
finetuning_type: lora
lora_target: all
dataset: identity,alpaca_en_demo
template: llama3
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16
output_dir: saves/llama3-8b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500
复制代码
当我们基于预练习模型练习好 LoRA 适配器后,我们不希望在每次推理的时间分别加载预练习模型和 LoRA 适配器,因此我们需要将预练习模型和 LoRA 适配器合并导出成一个模型,并根据需要选择是否量化。根据是否量化以及量化算法的不同,导出的配置文件也有所区别。
您可以通过 llamafactory-cli export merge_config.yaml 指令来合并模型。其中 merge_config.yaml 需要您根据不同环境进行配置。
在完成模型合并并得到完整模型后,为了优化部署结果,人们通常会基于显存占用、使用本钱和推理速度等因素,选择通过量化技术对模型进行压缩,从而实现更高效的部署。
量化(Quantization)通过数据精度压缩有效地镌汰了显存使用并加速推理。LLaMA-Factory 支持多种量化方法,包罗:
AQLM
AWQ
GPTQ
QLoRA
…
GPTQ 等后练习量化方法(Post Training Quantization)是一种在练习后对预练习模型进行量化的方法。我们通过量化技术将高精度体现的预练习模型转换为低精度的模型,从而在避免过多损失模型性能的环境下镌汰显存占用并加速推理,我们希望低精度数据类型在有限的体现范围内尽大概地接近高精度数据类型的体现,因此我们需要指定量化位数 export_quantization_bit 以及校准数据集 export_quantization_dataset。
下面提供一个配置文件示例:
### examples/merge_lora/llama3_gptq.yaml
### model
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
template: llama3
### export
export_dir: models/llama3_gptq
export_quantization_bit: 4
export_quantization_dataset: data/c4_demo.json
export_size: 2
export_device: cpu
export_legacy_format: false
复制代码
QLoRA 是一种在 4-bit 量化模型底子上使用 LoRA 方法进行练习的技术。它在极大地保持了模型性能的同时大幅镌汰了显存占用和推理时间。
LLaMA-Factory 支持多种推理方式。
您可以使用 llamafactory-cli chat inference_config.yaml 或 llamafactory-cli webchat inference_config.yaml 进行推理与模型对话。对话时配置文件只需指定原始模型 model_name_or_path 和 template ,并根据是否是微调模型指定 adapter_name_or_path 和 finetuning_type。
如果您希望向模型输入大量数据集并保存推理结果,您可以启动 vllm 推理引擎对大量数据集进行快速的批量推理。您也可以通过 部署 api 服务的形式通过 api 调用来进行批量推理。
默认环境下,模型推理将使用 Huggingface 引擎。 您也可以指定 infer_backend: vllm 以使用 vllm 推理引擎以得到更快的推理速度。
在完成模型练习后,您可以通过 llamafactory-cli eval examples/train_lora/llama3_lora_eval.yaml 来评估模型结果。
配置示例文件examples/train_lora/llama3_lora_eval.yaml详细如下:
### examples/train_lora/llama3_lora_eval.yaml
### model
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
adapter_name_or_path: saves/llama3-8b/lora/sft # 可选项
### method
finetuning_type: lora
### dataset
task: mmlu_test # mmlu_test, ceval_validation, cmmlu_test
template: fewshot
lang: en
n_shot: 5
### output
save_dir: saves/llama3-8b/lora/eval
### eval
batch_size: 4
复制代码
LLaMA-Factory 支持单机多卡和多机多卡分布式练习。同时也支持 DDP , DeepSpeed 和 FSDP 三种分布式引擎。
DDP (DistributedDataParallel) 通过实现模型并行和数据并行实现练习加速。 使用 DDP 的程序需要天生多个进程而且为每个进程创建一个 DDP 实例,他们之间通过 torch.distributed 库同步。
DeepSpeed 是微软开发的分布式练习引擎,并提供ZeRO(Zero Redundancy Optimizer)、offload、Sparse Attention、1 bit Adam、流水线并行等优化技术。 您可以根据使命需求与设备选择使用。
FSDP 通过全切片数据并行技术(Fully Sharded Data Parallel)来处理更多更大的模型。在 DDP 中,每张 GPU 都各自保存了一份完整的模型参数和优化器参数。而 FSDP 切分了模型参数、梯度与优化器参数,使得每张 GPU 只保存这些参数的一部分。 除了并行技术之外,FSDP 还支持将模型参数卸载至CPU,从而进一步降低显存需求。
随着语言模型规模的不停增大,其练习的难度和本钱已成为共识。 而随着用户数量的增加,模型推理的本钱也在不停攀升,甚至大概成为限制模型部署的首要因素。 因此,我们需要对模型进行压缩以加速推理过程,而模型量化是其中一种有效的方法。
大语言模型的参数通常以高精度浮点数存储,这导致模型推理需要大量计算资源。 量化技术通过将高精度数据类型存储的参数转换为低精度数据类型存储, 可以在不改变模型参数量和架构的前提下加速推理过程。这种方法使得模型的部署更加经济高效,也更具可行性。
浮点数一般由3部分组成:符号位、指数位和尾数位。指数位越大,可体现的数字范围越大。尾数位越大、数字的精度越高。
量化可以根据何时量化分为:后练习量化和练习感知量化,也可以根据量化参数的确定方式分为:静态量化和动态量化。
为了办理大语言模型的忘记标题, LLaMA Pro 通过在原有模型上增加新模块以适应新的使命,使其在多个新使命上的体现均优于原始模型。 LLaMA-Factory 支持 LLaMA Pro 的使用。 您可以使用运行 expand.sh 将 Meta-Llama-3-8B-Instruct 扩展为 llama3-8b-instruct-pro。
对于 LLaMA Pro 模型进行练习时,您需要指定 use_llama_pro 为 true。
以上就是关于
LlamaFactory
的全部内容,它为大语言模型微调提供了高效且统一的办理方案。
如何系统学习把握AI大模型?
AI大模型作为人工智能范畴的重要技术突破,正成为推动各行各业创新和转型的关键气力。抓住AI大模型的风口,把握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从底子开始,徐徐深入到更高级的技术。
这里给各人经心整理了
一份全面的AI大模型学习资源,包罗:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、口试题等,资料免费分享!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手肯定要
先学习成长路线图
,
方向不对,努力白费
。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,
它们由范畴内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论底子
。
(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有底子的同学来说,书籍这些纯笔墨类的学习课本会以为比力艰涩难以明白,因此,我们
提供了丰富的大模型视频教程
,以动态、形象的方式展示技术概念,
帮助你更快、更轻松地把握核心知识
。
4. 2024行业陈诉
行业分析重要包罗对不同行业的现状、趋势、标题、机会等进行系统地调研和评估,以了解哪些行业更得当引入大模型的技术和应用,以及在哪些方面可以发挥大模型的上风。
5. 大模型项目实战
学以致用
,当你的理论知识积累到肯定水平,就需要通过项目实战,
在实际利用中检验和巩固你所学到的知识
,同时为你找工作和职业发展打下坚实的底子。
6. 大模型口试题
口试不但是技术的较量,更需要充分的准备。
在你已经把握了大模型技术之后,就需要开始准备口试,我们将提供经心整理的大模型口试题库,涵盖当前口试中大概遇到的各种技术标题,让你在口试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小同伴可以微信扫描下方CSDN官方认证二维码,免费领取【包管100%免费】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4