延寿县建设银行网站装修公司加盟哪个好
延寿县建设银行网站,装修公司加盟哪个好,网站内部链接优化,站内免费推广的方式有哪些让我们谈谈数字。
大多数现代开源模型在70-80亿参数范围内#xff08;如LLaMA 3、Mistral或Qwen3#xff09;现在可以在配备12-24GB显存的GPU上使用4-bit量化适配器#xff08;QLoRA#xff09;进行微调。
一个80亿参数的模型通常只需要5-6GB的内存#xff0c;使其在RTX…让我们谈谈数字。大多数现代开源模型在70-80亿参数范围内如LLaMA 3、Mistral或Qwen3现在可以在配备12-24GB显存的GPU上使用4-bit量化适配器QLoRA进行微调。一个80亿参数的模型通常只需要5-6GB的内存使其在RTX 3060或更新版本上运行可行。对于内存效率动态量化缩小了精度差距使得使用4-bit几乎没有缺点。QLoRA与LoRA现在的损失可以忽略不计意味着你可以放心使用4-bit来节省内存。你应该以你计划部署的精度进行训练所以如果你想要一个4-bit运行时模型就在4-bit下训练。关于速度使用FlashAttention、LoRA和序列打包等优化你可以在A10040GB上几小时内微调80亿参数模型的10万个样本而在消费级RTX 4090约24GB内存和计算稍少上可能需要10-12小时在3090上则需要20小时以上。如果没有这些框架提供的优化可能需要2-3倍的时间。如果你有多个GPU例如两个3090你可以几乎线性地分担负载。在2个GPU上微调130亿参数的模型可能比1个GPU快近2倍。如果你有Apple Silicon据我所知70亿和130亿参数的微调在技术上可行但由于缺乏Metal优化的底层内核训练速度慢5-10倍。如果你在配备M1或更高版本的MacBook上请坚持使用30亿-70亿参数的模型并限制训练轮次或将训练转移到云GPU如RunPod或Lambda。话虽如此我不是这方面的专家所以我很乐意在评论中听取你关于Mac/M系列的经验。在集成方面所有框架都允许以Hugging Face格式保存模型因此你可以轻松推送到Hub或使用AutoModel加载。在本指南中我将带你了解四个领先的解决方案Unsloth低显存、2倍快速训练、适合初学者的笔记本LLaMA-Factory全栈CLI Web UI、100模型、多模态DeepSpeed经过实战检验的大规模模型和多GPU扩展AxolotlYAML优先、可重现、研究级调优工作流程我们将探讨每个工具包的功能和实用示例代码、CLI、YAML。0、微调框架概述为奠定基础以下是四个框架的高级比较每个工具针对稍微不同的受众和用例Unsloth专注于速度和最小显存使在适度硬件上进行微调成为可能。它简化了典型的训练流程提供Colab笔记本、简单的API并实现巨大的效率提升例如打包序列不浪费GPU时间在填充上。LLaMA-Factory是一个全栈微调工具包强调通过精致的Web UI和快速支持最新模型和研究技巧来提供易用性。对于想要一站式解决方案且几乎不需要编码的人来说这是理想选择。DeepSpeed是一个强大的优化库而不是端到端解决方案。当你需要训练非常大的模型或在多GPU设置上最大化性能时它会发光但它有更陡峭的学习曲线它经常被用在Hugging Face Accelerate等库的后台。Axolotl击中了一个中间地带它是开源且可脚本化的带有简单的YAML配置非常适合想要精细控制和运行自定义训练例程包括前沿技术能力的开发人员而无需从头编写训练循环。它是一个社区驱动的项目平衡了可用性和灵活性。下面我们详细深入研究每个工具包括示例和最新更新。1、Unsloth使用低显存进行轻量级微调Unsloth因其能够超高效地微调大语言模型而迅速流行起来。它宣传训练“比标准方法快2倍显存使用减少约70%”这得益于4-bit量化和智能数据处理等技术。事实上Unsloth的方法非常节省内存以至于可以在仅3GB GPU显存上微调40亿参数的模型例如Qwen3-4B有效地将大语言模型微调带到消费级笔记本电脑。Unsloth作为Python包提供pip install unsloth和一套现成的Jupyter笔记本。初学者可以通过运行Colab笔记本来快速入门该笔记本指导完成整个微调过程。例如使用单个笔记本你可以在Colab或Kaggle上免费进行微调或RLHF只需要几GB的GPU内存。这显著降低了入门门槛。高级用户可以在自己的脚本中使用Unsloth的Python API。没有专门的GUI但文档完善的笔记本和简单的函数调用使过程变得简单。1.1 微调方法Unsloth支持标准监督微调SFT以及强化学习微调用于使用奖励模型的RLHF风格训练。它兼容参数高效技术特别是LoRA和QLoRA。在底层Unsloth可以对基础模型权重应用4-bit量化使用bitsandbytes以便你可以在4-bit模式下进行微调。这就是Unsloth能够在小型GPU上处理更大模型的原因。例如QLoRA将内存减少4倍而Unsloth通过其动态4-bit量化进一步完善这一点。动态部分指的是Unsloth的自定义4-bit权重量化它比标准4-bit方法保留更多精度缩小QLoRA和完整16-bit微调之间的差距。如果你愿意你也可以进行完整的16-bit微调或8-bit模式Unsloth暴露了load_in_4bitTrue/False或full_finetuningTrue等标志来切换这些模式一次只能激活一种模式。对于大多数情况你最好从LoRA/QLoRA开始因为它以计算成本的一小部分实现了与完整微调几乎相同的结果。它还支持扩展上下文训练通过正确的配置你可以将模型微调到比正常长4倍的上下文长度例如通过调整max_seq_length为LLaMA启用8192-token上下文这要归功于FlashAttention支持。除了文本大语言模型Unsloth还可以微调其他模型类型例如它有用于视觉模型、文本到语音模型、嵌入等的模块使其成为一个广泛能力的训练库。1.2 性能最近的更新引入了序列打包它将多个短训练样本合并到一个带有适当掩码的序列中消除了填充token的开销。在有许多短提示的数据集中这理论上可以带来高达5倍的训练加速。即使没有打包的默认模式下自定义融合内核和优化也能产生比早期实现快约1.1-2倍的训练步骤时间。与朴素微调相比Unsloth的显存使用可以降低30-90%例如在单个48GB GPU上微调700亿参数模型而以前需要多个GPU或根本无法容纳。所有这些都伴随着训练损失曲线0%变化即没有精度下降。这些声明也得到了库基准测试和社区测试的支持。在实践中使用Unsloth的一个权衡是它为你抽象了很多东西这对于易用性很好但意味着与Axolotl等框架相比对训练循环的手动控制较少。此外由于它依赖于PyTorch和NVIDIA工具如bitsandbytes在Apple Silicon或AMD GPU上的完整支持不是它的重点在这些设备上运行可能会回退到较慢的方法或无法工作。但在NVIDIA GPU上Unsloth是获得微调大语言模型的最快方式之一。1.3 使用Unsloth进行微调示例使用Unsloth时你通常会编写一个简短的Python脚本或使用他们的笔记本。例如使用Unsloth的高级API你可以这样做from unsloth import SFTTrainer, AutoModelForCausalLM model AutoModelForCausalLM.from_pretrained(unsloth/llama-3.1-8b-unsloth-bnb-4bit) trainer SFTTrainer( modelmodel, train_datasetmy_dataset, lora_rank8, # 使用LoRA秩8 load_in_4bitTrue, output_diroutput-model ) trainer.train()关键思想是你加载Unsloth准备的4-bit版本的模型这里是LLaMA 3 8B指定LoRA或完整微调然后调用train()。2、LLaMA-Factory通过CLI和Web UI统一微调LLaMA-Factory是一个用于微调大语言模型的一站式平台结合了易于使用的WebUI、CLI工具和各种高级功能。它的使命是让微调*“像…点击开始一样简单”*同时仍然允许专家利用前沿研究。该项目以非常活跃的维护而著称通常在几天内添加对新模型或技术的支持他们开玩笑地强调对Qwen3、Llama 4等模型的Day-0或Day-1支持。2.1 易用性使用LLaMA-Factory有两种主要方式**Web UILLaMA Board**安装后通过llamafactory-cli webui启动它这会打开一个基于Gradio的本地Web界面。这个UI显著降低了门槛也就是说你可以完全不编写任何代码就微调模型。训练完成后评估/聊天标签让你在浏览器中测试模型的性能导出标签让你打包结果模型可以选择合并LoRA权重、将模型量化为GGUF/AWQ等并推送到Hub或本地保存。**CLI和YAML**或者一切都可以通过命令行实现自动化。LLaMA-Factory使用YAML配置文件来指定训练运行类似于Axolotl。例如要使用LoRA微调Qwen-3模型可以运行llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml这个命令将根据YAML配置启动训练包含所有设置。同样有用于聊天/推理的子命令和用于合并适配器的子命令。例如训练后你可以运行llamafactory-cli chat config.yaml启动与微调模型的交互式聊天或llamafactory-cli export config.yaml将LoRA权重合并到基础模型。CLI在某种意义上是零代码的你只需要准备配置文件它适合那些喜欢脚本交互或想要将微调集成到管道中的人。安装比Unsloth或Axolotl更复杂因为LLaMA-Factory有许多可选组件用于各种硬件和功能。它支持NVIDIA GPU使用CUDA、AMD GPUROCm甚至华为昇腾NPU这很少见。根据你的硬件你可能需要安装额外的包例如对于Windows手动安装bitsandbytes对于AMD编译自定义bitsandbytes分支。简而言之它是跨平台的但NVIDIA Linux是最流畅的路径。Factory支持一个微调方法流水线它涵盖标准微调更新所有模型权重、冻结微调冻结某些层只训练特定部分和各种基于适配器的调优。它原生支持LoRA和QLoRA事实上它实现了多种量化方法你可以从4-bit后端选择如bitsandbytesNF4或其他实验性的3-bit/2-bit方法如AWQ或AQLM。你可以进行2/3/4/6/8-bit量化微调这是尖端的甚至是2-bit LoRA尽管可能有一些权衡。多模态LLaMA-Factory可以微调视觉语言模型如LLaVA-1.5它为LLaMA添加了视觉理解以及音频模型。这意味着如果你有图像文本数据集例如用于VQA任务WebUI将呈现附加图像特征提取的字段等。它非常全面。强化和指令调优它支持奖励建模和RL微调方法如PPO用于RLHF的近端策略优化、DPO直接偏好优化以及其他如ORPO/KTO。高级优化器和技巧该工具包集成了许多研究优化例如Apollo和Lion优化器、LongLoRA更好的长序列训练、DoRA可能是LoRA的变体、LoftQ、GaLORE和PiSSA可能与结构化稀疏适配器相关。监控和部署训练期间你可以使用内置监视器它支持记录到TensorBoard、Weights Biases、MLflow等以及其原生的LlamaBoard。对于部署LLaMA-Factory甚至可以服务模型它为微调模型提供OpenAI风格的API服务器并与vLLM集成进行优化推理。因此微调后你可以启动一个服务模型的本地API带有加速以进行快速多线程生成。性能LLaMA-Factory的效率很高尽管可能稍…2.2 LLaMA-Factory使用示例对于基于代码的方法LLaMA-Factory还暴露了Python API以防你想要在没有YAML的情况下编写脚本。但通常你会编辑一个YAML例如这是LoRA微调配置的片段# qwen3_lora_sft.yaml节选 model_name_or_path: Qwen/Qwen-3-4B finetuning_type: lora lora_rank: 8 dataset: path/to/dataset.json template: llama2 per_device_train_batch_size: 2 gradient_accumulation_steps: 4 num_train_epochs: 3 output_dir: output/qwen3-4B-lora在此配置上运行llamafactory-cli train将使用LoRA秩8在数据集上微调Qwen-3 40亿参数模型。训练后你可以在WebUI中打开聊天标签加载基础模型和LoRA权重它提供用于选择适配器文件的UI元素并与微调模型进行对话以评估其响应。3、DeepSpeed为大规模微调提供动力DeepSpeed是这一系列中的另一头野兽它不是一个全能训练应用程序而是一个深度学习优化库。由Microsoft开发DeepSpeed因通过克服硬件限制高效训练十亿参数模型而著称。它是许多研究项目的引擎并补充了Hugging Face的Trainer或PyTorch Lightning等工具。3.1 易用性就其本身而言你通常通过编写Python训练脚本并添加DeepSpeed初始化来使用DeepSpeed。然而对于大多数用户利用它的最简单方式是通过Hugging Face Accelerate/Trainer集成。例如你可以采用标准的TransformersTrainer并简单地提供一个DeepSpeed配置文件JSONTrainer将使用DeepSpeed在后台进行优化。或者Accelerate库可以通过简单的配置启动使用DeepSpeed的分布式训练。以下是用于多节点微调的accelerate配置片段示例distributed_type: DEEPSPEED num_machines: 2 mixed_precision: fp8 deepspeed_config: zero_stage: 3在此配置用于微调LLaMA-700亿中zero_stage: 3打开DeepSpeed的ZeRO-3分片而mixed_precision: fp8在支持的GPU上使用8-bit浮点精度以获得更大的内存节省。只需这个设置你就可以在训练脚本上调用accelerate launch它将自动在2台机器每台可能有4个GPU上分片模型大大简化编排。对于单机使用你可以使用deepspeed启动器脚本例如deepspeed --num_gpus2 train.py --deepspeed ds_config.json。这将使用DeepSpeed包装你的PyTorch模型运行你的train.py假设你的脚本是DeepSpeed兼容的。简而言之*DeepSpeed需要一些编码或集成*对于完整训练HF生态系统外没有GUI或简单的YAML。但设置完成后它在很大程度上是*“设置并忘记”*你让DeepSpeed处理并行性和内存。DeepSpeed的旗舰功能是ZeRO零冗余优化器。ZeRO允许将模型状态优化器时刻、梯度甚至参数跨GPU分割以便没有单个GPU需要完整副本。这就是人们如何在几个GPU上微调300亿、650亿或更大模型的方式。例如使用ZeRO-3如果你有4个GPU每个可能只在内存中保存1/4的模型参数。DeepSpeed还支持ZeRO-Offload其中一些数据块如优化器状态可以卸载到CPU内存甚至NVMe SSD进一步扩展了在有限GPU内存上训练巨大模型的能力以速度为代价。另一个核心能力是跨多个节点的分布式训练不仅仅是一台服务器中的多个GPU而是跨服务器。DeepSpeed与通信后端集成以高效同步梯度。它以扩展到数千个GPU进行大规模模型训练而著称。DeepSpeed还引入了专门的优化高效优化器如1-bit Adam和1-bit LAMB通过量化梯度交换来减少多GPU训练期间的通信开销对分布式微调有用。混合精度训练它无缝处理FP16和BF16自动进行损失缩放等。现在它支持FP8在H100等硬件上使用accelerate时如上所示。内存高效注意力和长序列支持DeepSpeed有一个名为Sparse Attention的模块和用于非常长序列训练的实验性功能它引入了长序列的Arctic优化这与你微调超过2048个token上下文的模型相关。MoE专家混合如果你微调带有MoE层的模型对大多数人不常见但一些研究模型使用MoEDeepSpeed有内置支持通过为每个token激活哪个专家来高效训练。然而请注意DeepSpeed本身不实现LoRA或QLoRA但它与它们配合工作。例如你可以使用Hugging Face PEFT为模型添加LoRA层并仍然使用DeepSpeed ZeRO来处理基础模型分布和训练。这是一个常见的设置DeepSpeed QLoRA HF Trainer。这种组合可以在2x H10080GB节点设置上微调LLaMA-700亿使用ZeRO-3、4-bit量化和LoRA适配器。结果是生产就绪的管道即使如此大的模型也可以在合理时间内进行微调。没有DeepSpeed在内存中纯粹处理模型几乎是不可能的。3.2 性能DeepSpeed已被证明可以显著提高大模型微调的吞吐量和降低成本。DeepSpeed可以在某些RLHF微调阶段实现15倍加速与朴素方法相比。对于大多数在单个GPU上微调中等模型60亿-130亿的用户DeepSpeed的主要好处在于内存节省ZeRO-Offload这可能允许你使用更大的批次大小或更长的序列而不会内存不足。在多个GPU上它通过实现接近线性的扩展而发光随着你添加更多GPU。也就是说如果你只是在单个GPU上微调70亿参数模型DeepSpeed可能有些过度像Unsloth或Axolotl使用bitsandbytes更简单。DeepSpeed出现在突破极限的场景中例如在24GB GPU上微调400亿参数模型通过将一半卸载到CPU或在8x 16GB GPU上通过分片训练700亿参数模型。对于多节点集群编写自定义分布式代码会很复杂DeepSpeed在内部处理它。使用DeepSpeed进行微调示例通过HF Trainer为了说明以下是如何在Transformers训练脚本中使用DeepSpeedfrom transformers import Trainer, TrainingArguments, AutoModelForCausalLM model AutoModelForCausalLM.from_pretrained(meta-llama/Llama-2-70b-chat-hf) #如果需要在这里使用PEFT包装模型与LoRA training_args TrainingArguments( output_dirout-model, per_device_train_batch_size1, gradient_accumulation_steps8, fp16True, deepspeedds_config_zero2.json # DeepSpeed配置文件路径 ) trainer Trainer(modelmodel, argstraining_args, train_datasetmy_data) trainer.train()使用deepspeed参数当调用trainer.train()时它将初始化DeepSpeed。一个简单的DeepSpeed配置ds_config_zero2.json可能包含{ zero_optimization: { stage: 2, offload_optimizer: { device: cpu } }, fp16: { enabled: true } }这将使用ZeRO阶段2在GPU上分片优化器状态和梯度并将优化器卸载到CPU节省GPU内存。结果你的700亿参数模型的梯度和优化器部分存在于CPU内存中允许训练在例如2个GPU上进行每个GPU保存权重的分片。DeepSpeed在后台处理所有同步和交换。4、Axolotl让配置驱动的微调变得有趣Axolotl是一个专注于简单性和灵活性的开源框架。它经常被描述为*“使用单个YAML配置进行微调”*。其理念是让你在配置文件中指定什么你想微调以及如何哪个模型、数据、方法、超参数Axolotl的CLI将处理其余一切从预处理到训练再到保存模型。4.1 易用性开始使用Axolotl通常涉及通过pip或Docker安装它然后使用示例配置文件之一作为你任务的模板。例如安装后你可以运行axolotl fetch examples axolotl train examples/llama-3/lora-1b.yml这将下载一堆示例YAML涵盖不同的模型和方法。你可以修改YAML以指向你的数据集或更改超参数。YAML配置方法意味着你不为每次微调编写代码你只需编辑字段。配置文件通常包括以下部分模型预训练模型名称/路径、数据数据集路径或HuggingFace数据集名称、训练参数批次大小、轮次、学习率、LoRA参数如果适用秩、alpha以及任何特殊设置例如启用FlashAttention、梯度检查点等。这种设计使其**非常可重现**你可以与其他人共享配置他们可以准确地重新运行微调。Axolotl缺乏GUI但其控制台输出清晰它会定期打印训练损失等。如果配置它还支持记录到WandB。因为它是配置驱动的Axolotl非常适合在云实例或无头服务器上运行不需要笔记本或GUI。4.2 功能尽管占用空间小Axolotl是功能丰富的模型支持它可以微调几乎任何Hugging Face模型。它提到GPT-OSS、LLaMA、Mistral、Pythia等。它还支持新模型如Kimi、Plano、InternVL 3.5、Olmo-3、Trinity等。多模态和超越大语言模型Axolotl不限于聊天大语言模型。它支持视觉语言模型如LLaMA-Vision、Qwen-VL和音频模型如语音识别或TTS带有图像/视频/音频输入。它甚至有用于扩散模型微调的扩展文本到图像。训练方法你可以进行完整微调或各种参数高效方法。它支持LoRA和QLoRA有一些独特的优化。Axolotl支持GPTQ训练GPTQ通常是推理量化但在这里它可能意味着你可以加载GPTQ量化模型也许可以微调或至少将LoRA合并到其中。Axolotl还支持**量化感知训练QAT**以允许使用量化模拟进行int4/int8训练以提高最终量化精度。在偏好优化方面它支持如DPO、IPO、ORPO等方法这些是不使用RL的偏好对齐微调方法。对于RL它集成了GRPO引导正则化策略优化一种较新的RLHF变体支持。对于奖励模型它也可以进行奖励模型微调。4.3 优化在底层Axolotl捆绑了许多技巧FlashAttention和xFormers以加快注意力Liger内核高效融合内核序列打包他们称之为Multipack以充分利用上下文空间序列并行性全分片数据并行FSDP多GPU的DeepSpeed集成。本质上Axolotl试图为你提供DeepSpeed/Accelerate的好处而无需你编写这些代码你可以在配置中翻转一个开关来打开DeepSpeed ZeRO阶段2或3例如。它就像一个元框架根据YAML编排PyTorch、Transformers、PEFT、DeepSpeed等。4.4 集成它可以从本地文件、HF Hub甚至云存储桶S3、GCS加载数据集。训练完成后你可以轻松地将模型推送到Hugging Face Hub通过huggingface_hub库通过提供你的token。Axolotl还提供Docker镜像来封装环境这对于确保跨设置的一致性很方便。其他功能支持FP8微调通过PyTorch的原型FP8使用torch.ao后端启用使其成为首批允许FP8的开源工具之一这对新GPU所有者很棒。N-D并行性在一个中结合张量、管道和数据并行策略用于极端多GPU扩展。支持大量新研究模型如MagistralMistral变体、Granite 4、HunYuan等。它还实现了用于长上下文训练的序列并行性通过跨GPU分割序列实现超出单个GPU容纳范围的上下文长度。你还可以在Axolotl中使用Unsloth的打包数据加载器。4.5 Axolotl YAML示例LoRA微调假设我们想使用QLoRA在自定义指令数据集上微调Mistral 70亿参数模型。我们可以创建mistral_qlora.ymlbase_model: lmsys/mistral-7b-v0.1 datasets: - path: data/my_instructions.json type: alpaca # 数据格式Alpaca风格 training: num_epochs: 2 batch_size: 16 lr: 2e-4 peft: method: qlora lora_r: 16 lora_alpha: 32 target_modules: - q_proj - v_proj #要在模型的哪些部分附加LoRA hardware: mixed_precision: bf16 deepspeed: zero2 # 启用DeepSpeed ZeRO阶段2然后运行axolotl train mistral_qlora.yml将根据这些设置开始微调。Axolotl将处理转换数据集、加载模型、应用LoRA、使用BF16的DeepSpeed等。LoRA配置中的target_modules让我们指定我们只希望在某些层上使用LoRA对于Mistral和LLaMA通常针对Q和V线性层。这种细节级别是可配置的而其他工具可能会硬编码默认值。5、结束语每个框架和工具都带有真实的社区和广泛的文档帮助你实现为你的产品或研究定制大语言模型的最佳结果。微调愉快原文链接4个领先的大模型微调工具 - 汇智网