2026/4/6 4:00:46
网站建设
项目流程
郑州五合一网站建设,飞扬世纪网站建设,wordpress 手机 菜单,免费数据统计网站自2022年11月发布以来#xff0c;ChatGPT引发了关于大型语言模型#xff08;LLMs#xff09;和一般人工智能能力的广泛讨论。现在很少有人没听说过ChatGPT或尝试过它。尽管像GPT、Gemini或Claude这样的工具非常强大#xff0c;拥有数百#xff08;甚至数千#xff09;亿的…自2022年11月发布以来ChatGPT引发了关于大型语言模型LLMs和一般人工智能能力的广泛讨论。现在很少有人没听说过ChatGPT或尝试过它。尽管像GPT、Gemini或Claude这样的工具非常强大拥有数百甚至数千亿的参数并在大量文本语料库上进行预训练但它们并非万能。有些特定任务这些模型无法胜任。然而我们并非没有解决这些任务的办法。我们可以利用小型开源模型的力量将它们适应到我们的特定问题上。本博客旨在简要概述一些较小的开源LLMs并解释两个关键的LLM微调概念量化和LoRA。此外我们将介绍一些最受欢迎的微调库以及代码示例以便您能快速将这些概念应用到您的用例中。让我们深入了解微调。目录1、“小”型大型语言模型 2、量化 3、低秩适应LoRA 4、Unsloth 5、监督微调训练器SFT 6、优势比偏好优化ORPO 7、结论 8、参考文献“小”型大型语言模型微调LLMs可能代价昂贵尤其是对于参数数量庞大的模型。根据经验法则通常参数在100亿以下的模型可以进行微调而不会碰到显著的基础设施挑战。然而对于像Llama 3 70B这样的大型模型则需要大量资源。对一个700亿参数的模型如Llama 3进行微调大约需要1.5TB的GPU显存。为了直观比较这个数量级的显存相当于一个大约有20块Nvidia A100组成的集群每块有80GB的显存。假设硬件是可用的这样的设置成本约为40万美元。或者人们可以使用云服务提供商如AWS、Azure或GCP但这种方法同样成本高昂。例如使用AWS上的一块Nvidia A100 GPU一小时的成本是40美元。如果你要在20个GPU上对700亿参数模型进行5天的微调费用大约会是10万美元。由于这些成本大多数实践者主要使用参数少于100亿的较小LLMs。这些模型可以更经济地训练只需要16GB到24GB的显存用于更大的批量大小和更快的训练。例如我在AWS上使用一块Nvidia A100将Mistral 7B微调为塞尔维亚语不到10小时就完成了成本不到20美元。当然如果没有量化特别是4位量化一个70亿参数的模型仍然无法在这么大的显存中完成训练。量化如果使用完整的32位参数我们仍然需要大量的显存来训练LLM——大约需要150GB这对于人类来说是一个荒谬的数字.量化通过将模型参数转换为低精度数据类型如8位或4位来提供解决方案显著降低了内存消耗并提高了执行速度。概念很直接所有可能的32位值都被映射到一个较小的有限值范围例如对于8位转换是256。这个过程可以被视为围绕几个固定点的高精度值分组这些固定点代表了它们附近的值。**低秩适应LoRA**LoRA是一种通过使用矩阵维数约简来更新模型权重的技术。这项技术尤其相关因为广泛应用于LLMs的变压器严重依赖矩阵。关于LoRA在低层次工作的详细解释可以在Jay Alammar的博客文章中找到。在更新模型权重时需要调整这些矩阵内的参数。从概念上讲这种调整可以被视为将一个权重更新矩阵加到原始矩阵上W’ W ΔW。LoRA引入了一种新颖的方法通过将这个更新矩阵分解成两个较小的矩阵当这两个矩阵相乘时接近更新矩阵。在微调过程中LoRA不是创建然后分解更新矩阵而是直接创建这两个较小的矩阵用于乘法运算。下面几张图片中可以看到常规微调和使用LoRA进行微调之间的直观比较。LoRA的关键好处是尽管近似稍微不那么精确但它显著提高了内存和计算效率。例如考虑一个有1000x1000参数的矩阵总共有100万参数。通过使用分解后略微不精确的1000x100乘以100x1000矩阵的版本参数数量减少到只有2*100k实现了80%的参数减少。量化和LoRA通常结合使用形成了所谓的QLoRA。Unsloth如果我重新开始进行LLM微调我会选择Unsloth Python库。Unsloth提供了一系列针对LLM微调的优化并支持包括Mistral、Llama 3、Gemma等在内的多种流行的LLMs。例如他们的免费层级包括了12种不同的针对Mistral的微调优化提供了显著的2.2倍加速。以下是使用Unsloth库微调Llama 3 8B的代码片段。所有这些代码块都取自Unsloth的GitHub完整的用于微调Llama 3 8B的笔记本可以在这里找到。以4位精度导入模型model, tokenizer FastLanguageModel.from_pretrained( model_name unsloth/llama-3-8b-bnb-4bit, max_seq_length max_seq_length, dtype dtype, load_in_4bit load_in_4bit, # token hf_..., # use one if using gated models like meta-llama/Llama-2-7b-hf)安装LORA:model FastLanguageModel.get_peft_model( model, r 16, # Choose any number 0 ! Suggested 8, 16, 32, 64, 128 target_modules [q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj,], lora_alpha 16, lora_dropout 0, # Supports any, but 0 is optimized bias none, # Supports any, but none is optimized # [NEW] unsloth uses 30% less VRAM, fits 2x larger batch sizes! use_gradient_checkpointing unsloth, # True or unsloth for very long context random_state 3407, use_rslora False, # We support rank stabilized LoRA loftq_config None, # And LoftQ)初始化Hugging Face的监督微调训练器trainer SFTTrainer( model model, tokenizer tokenizer, train_dataset dataset, dataset_text_field text, max_seq_length max_seq_length, dataset_num_proc 2, packing False, # Can make training 5x faster for short sequences. args TrainingArguments( per_device_train_batch_size 2, gradient_accumulation_steps 4, warmup_steps 5, max_steps 60, learning_rate 2e-4, fp16 not torch.cuda.is_bf16_supported(), bf16 torch.cuda.is_bf16_supported(), logging_steps 1, optim adamw_8bit, weight_decay 0.01, lr_scheduler_type linear, seed 3407, output_dir outputs, ),)训练模型trainer_stats trainer.train()**监督微调训练器SFT**在预训练一个LLM之后下一个关键步骤是监督微调。这个过程对于开发一个能够理解并生成连贯响应的模型至关重要而不仅仅是完成句子。像Hugging Face的SFT监督微调训练器和PEFT参数高效微调以及Tim Dettmers的BitsAndBytes等工具极大地简化了将LoRA、量化和微调等技术应用到模型的过程。这些库简化了高级优化方法的实施使它们对开发者和研究人员更加易于访问和高效。下面你会注意到Unsloth、SFT和ORPO的代码非常相似。这种相似性源于这些库背后的基本思想大致相同差异主要在于库本身以及可能的一些超参数。以4位精度导入模型# Hugging Face model idmodel_id meta-llama/Meta-Llama-3-8Bmodel_id mistralai/Mistral-7B-v0.1 # BitsAndBytesConfig int-4 config bnb_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_use_double_quantTrue, bnb_4bit_quant_typenf4, bnb_4bit_compute_dtypetorch.bfloat16 if use_flash_attention2 else torch.float16) # Load model and tokenizermodel AutoModelForCausalLM.from_pretrained( model_id, quantization_configbnb_config, use_cacheFalse, device_mapauto, token os.environ[HF_TOKEN], # if model is gated like llama or mistral attn_implementationflash_attention_2 if use_flash_attention2 else sdpa)model.config.pretraining_tp 1 tokenizer AutoTokenizer.from_pretrained( model_id, token os.environ[HF_TOKEN], # if model is gated like llama or mistral)tokenizer.pad_token tokenizer.eos_tokentokenizer.padding_side right安装LORA# LoRA config based on QLoRA paperpeft_config LoraConfig( lora_alpha16, lora_dropout0.1, r64, biasnone, task_typeCAUSAL_LM, target_modules[ q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj, ]) # Prepare model for trainingmodel prepare_model_for_kbit_training(model)初始化Hugging Face的监督微调训练器args TrainingArguments( output_dirmistral-int4-alpaca, num_train_epochs1, per_device_train_batch_size6 if use_flash_attention2 else 2, # you can play with the batch size depending on your hardware gradient_accumulation_steps4, gradient_checkpointingTrue, optimpaged_adamw_8bit, logging_steps10, save_strategyepoch, learning_rate2e-4, bf16use_flash_attention2, fp16not use_flash_attention2, tf32use_flash_attention2, max_grad_norm0.3, warmup_steps5, lr_scheduler_typelinear, disable_tqdmFalse, report_tonone) model get_peft_model(model, peft_config)trainer SFTTrainer( modelmodel, train_datasetdataset, peft_configpeft_config, max_seq_length2048, tokenizertokenizer, packingTrue, formatting_funcformat_instruction, argsargs,)训练模型trainer.train()**优势比偏好优化ORPO**在这篇博客文章中我们专注于大型语言模型LLMs的预训练和监督微调。然而所有最先进的LLMs都经历了另一个关键步骤偏好对齐。这一步骤发生在预训练和微调之后你告知模型哪些生成的输出是可取的哪些不是。流行的偏好对齐方法包括来自人类反馈的强化学习RLHF和直接偏好优化DPO。一种名为优势比偏好优化ORPO的新方法于2024年3月出现结合了监督微调和偏好对齐。这里我们有一部分使用ORPO进行微调和偏好对齐的代码。完整代码可以在此处找到https://colab.research.google.com/drive/1eHNWg9gnaXErdAa8_mcvjMupbSS6rDvi?uspsharing。以4位精度导入模型# Modelbase_model meta-llama/Meta-Llama-3-8Bnew_model OrpoLlama-3-8B # QLoRA configbnb_config BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_quant_typenf4, bnb_4bit_compute_dtypetorch_dtype, bnb_4bit_use_double_quantTrue,) # Load tokenizertokenizer AutoTokenizer.from_pretrained(base_model) # Load modelmodel AutoModelForCausalLM.from_pretrained( base_model, quantization_configbnb_config, device_mapauto, attn_implementationattn_implementation)配置LORA:# LoRA configpeft_config LoraConfig( r16, lora_alpha32, lora_dropout0.05, biasnone, task_typeCAUSAL_LM, target_modules[up_proj, down_proj, gate_proj, k_proj, q_proj, v_proj, o_proj]) model prepare_model_for_kbit_training(model)翻译为初始化Hugging Face的ORPO训练器orpo_args ORPOConfig( learning_rate8e-6, beta0.1, lr_scheduler_typelinear, max_length1024, max_prompt_length512, per_device_train_batch_size2, per_device_eval_batch_size2, gradient_accumulation_steps4, optimpaged_adamw_8bit, num_train_epochs1, evaluation_strategysteps, eval_steps0.2, logging_steps1, warmup_steps10, report_towandb, output_dir./results/,)trainer ORPOTrainer( modelmodel, argsorpo_args, train_datasetdataset[train], eval_datasetdataset[test], peft_configpeft_config, tokenizertokenizer,)训练模型trainer.train()结论尽管像GPT、Gemini或Claude这样的大型语言模型LLMs功能强大但它们的大规模和资源需求使它们在许多任务中不切实际。为了解决这个问题可以使用量化和低秩适应LoRA等技术对较小的开源LLMs进行微调和定制以满足特定需求。这些技术减少了内存消耗并提高了计算效率使得训练模型更加经济尤其是对于那些参数少于100亿的模型。像Unsloth、监督微调训练器SFT和优势比偏好优化ORPO这样的工具简化了微调过程使其更加易于访问。例如Unsloth提供的优化可以显著加速训练而ORPO结合了监督微调和偏好对齐以提高模型性能。通过利用这些技术和工具开发人员和研究人员可以根据特定需求定制LLMs而无需承担与训练大型模型相关的高昂成本。这种方法使得高级语言模型的访问民主化并在不同领域启用了广泛的应用。想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2026 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容2026 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”