2025/12/29 10:19:36
网站建设
项目流程
怎么制作网站下载软件,微信号商城平台,国外展柜网站,电子商务网站的建设心得本文在前期实践基础上#xff0c;进一步补充和详细解读了使用 LLaMA Factory 工具#xff0c;在国产DCU#xff08;海光 K100-AI#xff09;上对 Meta-Llama-3-8B-Instruct 模型进行 LoRA 微调、推理及导出各阶段的关键日志输出和核心测试信息。旨在为大模型技术爱好者提供…本文在前期实践基础上进一步补充和详细解读了使用 LLaMA Factory 工具在国产DCU海光 K100-AI上对 Meta-Llama-3-8B-Instruct 模型进行 LoRA 微调、推理及导出各阶段的关键日志输出和核心测试信息。旨在为大模型技术爱好者提供一份更具体、更具参考价值的实践指南。关键词LLaMA Factory, Llama 3, LoRA, DCU, K100-AI, 模型微调, SFT, ROCm, 日志解读一、前言随着大语言模型LLM的飞速发展如何在特定领域或任务上对预训练模型进行高效微调已成为业界关注的焦点。LLaMA Factory 作为一个功能强大且易于上手的 LLM 微调框架受到了广泛关注。本文将聚焦于在国产 DCU 平台上利用 LLaMA Factory 对 Llama 3 模型进行 LoRA 微调的实践过程并分享其中的关键步骤与经验。二、环境准备与 LLaMA Factory 安装本次实践的环境基于国产海光 DCU K100-AIDTK 版本为 25.04。核心软件栈包括 Python 3.10 以及针对 DCU 优化的PyTorch(torch2.4.1das.opt2.dtk2504) 及其相关深度学习库如lmslim,flash-attn,vllm,deepspeed的特定版本。1. 创建虚拟环境conda create -n dcu_llm_fine python3.10conda activate dcu_llm_fine2. 安装 DCU 特定深度学习库根据文档指引从光合开发者社区下载并安装适配 DCUK100-AI(DTK 25.04,Python 3.10) 的PyTorch,lmslim,flash-attn,vllmdeepspeed等whl包。确保各组件版本严格对应。3. 安装 LLaMA Factorygit clone http://developer.hpccube.com/codes/OpenDAS/llama-factory.gitcd /your_code_path/llama_factorypip install -e .[torch,metrics]注意如遇包冲突可尝试pip install --no-deps -e .。三、Llama 3 LoRA 微调实战我们以Meta-Llama-3-8B-Instruct模型为例采用 LoRA (Low-Rank Adaptation) 方法进行监督式微调 (SFT)。1. 微调配置文件解析 (llama3_lora_sft.yaml)以下是核心配置参数### modelmodel_name_or_path:/root/.cache/modelscope/hub/models/LLM-Research/Meta-Llama-3-8B-Instruct# 模型路径trust_remote_code:true### methodstage:sft # 微调阶段监督式微调do_train:truefinetuning_type:lora # 微调方法LoRAlora_rank:8 # LoRA 秩lora_target:all # LoRA 应用目标所有线性层### datasetdataset:identity,alpaca_en_demo# 使用的数据集template:llama3 # 对话模板cutoff_len:2048 # 序列截断长度max_samples:1000 # 每个数据集最大样本数overwrite_cache:truepreprocessing_num_workers:16 # 预处理进程数### outputoutput_dir:saves/llama3-8b/lora/sft# 输出目录logging_steps:10save_steps:500plot_loss:trueoverwrite_output_dir:truesave_only_model:false # 保存完整checkpoint而非仅模型### trainper_device_train_batch_size:1# 每GPU批大小gradient_accumulation_steps:8# 梯度累积步数learning_rate:1.0e-4 # 学习率num_train_epochs:3.0 # 训练轮次lr_scheduler_type:cosine # 学习率调度器warmup_ratio:0.1 # 预热比例bf16:true # 使用bf16混合精度ddp_timeout:180000000resume_from_checkpoint: null2. 启动微调llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml3. 微调过程关键日志输出与解读环境初始化与分布式设置 (日志时间: 21:16:40 - 21:16:51)•Setting ds_accelerator to cuda (auto detect)•Initializing 8 distributed tasks at: 127.0.0.1:54447• 各 GPU 进程 (如[PG 0 Rank 2]) 初始化 NCCL日志显示size: 8,global rank: 2,TIMEOUT(ms): 180000000000。•各进程确认信息例如Process rank: 2, world size: 8, device: cuda:2, distributed training: True, compute dtype: torch.bfloat16表明已启用bf16混合精度。•Set ddp_find_unused_parameters to False in DDP training since LoRA is enabled.Tokenizer 与模型配置加载 (日志时间: 21:16:51 - 21:16:52)• 加载tokenizer.json,tokenizer.model等文件。• 加载模型配置文件/root/.cache/modelscope/hub/models/LLM-Research/Meta-Llama-3-8B-Instruct/config.json确认模型架构如hidden_size: 4096,num_hidden_layers: 32,torch_dtype: bfloat16。数据集加载与预处理 (日志时间: 21:16:52 - 21:17:01)•Add pad token: |eot_id|Add |eot_id|,|eom_id| to stop words.• 加载数据集identity.json(91条样本) 和alpaca_en_demo.json(1000条样本)。•Converting format of dataset (num_proc16)和Running tokenizer on dataset (num_proc16)共处理 1091 条样本。• 展示了处理后的一个训练样本training example包括input_ids,inputs(已格式化模板) 和label_ids(prompt部分为-100)。基础模型权重加载与 LoRA 适配器设置 (日志时间: 21:17:01 - 21:17:16)•KV cache is disabled during training.•加载模型权重/root/.cache/modelscope/hub/models/LLM-Research/Meta-Llama-3-8B-Instruct/model.safetensors.index.json共4个分片。• 出现警告:Using the SDPA attention implementation on multi-gpu setup with ROCM may lead to performance issues due to the FA backend. Disabling it to use alternative backends.•Gradient checkpointing enabled.•Fine-tuning method: LoRA•Found linear modules: v_proj,q_proj,k_proj,down_proj,o_proj,gate_proj,up_proj(这些是lora_target: all选中的层)。•trainable params: 20,971,520 || all params: 8,051,232,768 || trainable%: 0.2605明确了 LoRA 引入的可训练参数量和占比。Trainer 初始化与训练循环 (日志时间: 21:17:16 - 21:22:15)•***** Running training *****•Num examples 1,091,Num Epochs 3•Instantaneous batch size per device 1,Total train batch size (w. parallel, distributed accumulation) 64•Gradient Accumulation steps 8,Total optimization steps 51•训练日志周期性输出 (每logging_steps: 10次迭代但日志中是按优化步聚合后展示的)•{loss: 1.4091, grad_norm: 1.0385..., learning_rate: 9.8063...e-05, epoch: 0.58}•{loss: 1.0404, grad_norm: 0.6730..., learning_rate: 7.7959...e-05, epoch: 1.17}•{loss: 0.9658, grad_norm: 0.4174..., learning_rate: 4.4773...e-05, epoch: 1.75}•{loss: 0.9389, grad_norm: 0.3942..., learning_rate: 1.4033...e-05, epoch: 2.34}•{loss: 0.894, grad_norm: 0.4427..., learning_rate: 1.2179...e-07, epoch: 2.92}• 训练过程中反复出现UserWarning: 1Torch was not compiled with memory efficient attention. (Triggered internally at /home/pytorch/aten/src/ATen/native/transformers/hip/sdp_utils.cpp:627.)训练完成与模型保存 (日志时间: 15:22:15 - 15:22:17)•Saving model checkpoint to saves/llama3-8b/lora/sft/checkpoint-51•最终训练指标***** train metrics *****•epoch 2.9781•train_loss 1.0481•train_runtime 0:04:56.32(即 296.3281秒)•train_samples_per_second 11.045•train_steps_per_second 0.172•Figure saved at: saves/llama3-8b/lora/sft/training_loss.png• NCCL 通信器关闭各进程资源清理。四、模型推理测试微调完成后我们加载 LoRA 适配器进行推理测试。1. 推理配置文件 (llama3_lora_sft.yaml for inference)model_name_or_path: /root/.cache/modelscope/hub/models/LLM-Research/Meta-Llama-3-8B-Instructadapter_name_or_path: saves/llama3-8b/lora/sft # 加载微调后的LoRA适配器template: llama3infer_backend: huggingface # 推理后端trust_remote_code: true2. 启动推理llamafactory-cli chat examples/inference/llama3_lora_sft.yaml3. 推理过程关键日志输出与测试结果模型加载 (日志时间: 17:30:16 - 17:31:18)• 加载基础模型 Tokenizer, config (torch_dtype: bfloat16,use_cache: true) 和权重 (model.safetensors.index.json, 4个分片)。•KV cache is enabled for faster generation.• 再次出现 SDPA on ROCm 性能警告。•加载 LoRA 适配器:Loaded adapter(s): saves/llama3-8b/lora/sft。•Merged 1 adapter(s).确认 LoRA 权重已合并到基础模型。• 加载后模型参数量all params: 8,030,261,248。交互测试结果• User:plaintext 你是谁Assistant:plaintext我是 {{name}}由 {{author}} 训练的 AI 助手。我旨在为您提供帮助回答问题和完成任务。• 评析输出中的{{name}}和{{author}}占位符表明模型学习了微调数据identity.json中的模板格式。五、模型导出将微调后的 LoRA 权重与基础模型合并并导出为独立模型。1. 导出配置文件 (llama3_lora_sft.yaml for export)### Note: DO NOT use quantized model or quantization_bit when merging lora adapters### modelmodel_name_or_path:/root/.cache/modelscope/hub/models/LLM-Research/Meta-Llama-3-8B-Instructadapter_name_or_path:saves/llama3-8b/lora/sfttemplate:llama3trust_remote_code:true### exportexport_dir:output/llama3_lora_sft# 导出目录export_size:5 # 模型分片大小上限 (GB)export_device:cpu # 导出时使用的设备export_legacy_format:false # 不使用旧格式优先safetensors重要提示配置文件中明确指出合并 LoRA 适配器时不应使用已量化的模型。2. 启动导出llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml3. 导出过程关键日志输出 (日志时间: 18:06:54 - 18:08:22)• 加载基础模型 Tokenizer, config (torch_dtype: bfloat16) 和权重 (4个分片)。• 加载 LoRA 适配器:Loaded adapter(s): saves/llama3-8b/lora/sft。•Merged 1 adapter(s).LoRA 权重与基础模型合并。•Convert model dtype to: torch.bfloat16.• 配置文件保存:Configuration saved in output/llama3_lora_sft/config.json和output/llama3_lora_sft/generation_config.json。• 模型权重保存:The model is bigger than the maximum size per checkpoint (5GB) and is going to be split in 4 checkpoint shards. You can find where each parameters has been saved in the index located at output/llama3_lora_sft/model.safetensors.index.json.(根据配置export_size: 5)• Tokenizer 文件保存:tokenizer config file saved in output/llama3_lora_sft/tokenizer_config.json和special_tokens_map.json。• 额外功能:Ollama modelfile saved in output/llama3_lora_sft/Modelfile。七、总结与展望本次实践完整地展示了使用 LLaMA Factory 在国产 DCU 平台上对 Llama 3 模型进行 LoRA 微调、推理和导出的流程。LLaMA Factory 凭借其清晰的配置和便捷的命令行工具显著降低了 LLM 微调的门槛。通过对各阶段关键日志输出和测试信息的详细解读我们可以更直观地把握模型在训练中的学习动态、在推理中的行为表现以及导出后的结构。想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年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 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容