llamafactory微调

一、部署

  • 环境macbookpro Apple M3
  • 创建python3.9或者3.10环境
    conda create -n llamafactory python=3.9 -y
    
  • 激活环境
    conda activate llamafactory
    
  • 源码安装
    git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
    cd LLaMA-Factory
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install -e ".[torch,metrics]" --no-build-isolation
    

二、webui

llamafactory-cli webui
  • 访问 http://127.0.0.1:7860/
  • 模型Qwen3-0.6B-Base
  • 数据集alpaca_zh
    在这里插入图片描述

三、llamafactory-cli train训练

  • train
    # Use `CUDA_VISIBLE_DEVICES` (GPU) or `ASCEND_RT_VISIBLE_DEVICES` (NPU) to choose computing devices.
    export CUDA_VISIBLE_DEVICES=
    export ASCEND_RT_VISIBLE_DEVICES=
    # 开启 CPU fallback(Mac M 系列可能默认 MPS)
    export PYTORCH_ENABLE_MPS_FALLBACK=1
    export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
    export HF_TOKEN=*******
    
    # 基础训练 CPU
    # --flash_attn auto 仅CPU支持
    # --fp16 True CPU/MPS 不支持 fp16
    llamafactory-cli train \
        --stage sft \
        --do_train True \
        --model_name_or_path Qwen/Qwen3-0.6B \
        --finetuning_type lora \
        --template default \
        --dataset_dir data \
        --dataset alpaca_zh \
        --cutoff_len 512 \
        --learning_rate 5e-05 \
        --num_train_epochs 1 \
        --max_samples 2000 \
        --per_device_train_batch_size 1 \
        --gradient_accumulation_steps 2 \
        --lr_scheduler_type cosine \
        --max_grad_norm 1.0 \
        --logging_steps 5 \
        --save_steps 200 \
        --output_dir ./output/yanlp/Qwen3-0.6B-alpaca-lora \
        --gradient_checkpointing False \
        --enable_thinking True \
        --optim adamw_torch \
        --lora_rank 4 \
        --lora_alpha 8 \
        --lora_dropout 0 \
        --lora_target q_proj,v_proj \
        --report_to none \
        --plot_loss True	
    
  • ls ./output/yanlp/Qwen3-0.6B-alpaca-lora
    在这里插入图片描述
  • training_loss.png
    在这里插入图片描述
  • 参数说明
参数名含义示例值 / 建议备注
stage训练阶段sftSupervised Fine-Tuning(有监督微调)阶段
do_train是否执行训练TrueFalse 时仅执行评估或推理
model_name_or_path预训练模型路径或 Hugging Face 模型Qwen/Qwen3-0.6B支持本地路径或远程模型
finetuning_type微调方式loraLoRA 微调(轻量级高效微调)
templatePrompt 模板类型default用于对话、指令类数据
dataset_dir数据集所在目录data指定数据集存放路径
dataset使用的数据集名称alpaca_zh中文 Alpaca 数据集
cutoff_len最大文本长度512超过则截断(CPU 建议小一点)
learning_rate学习率5e-05参数更新幅度,建议 1e-5 ~ 5e-5
num_train_epochs训练轮数1训练的完整遍历次数
max_samples最大样本数2000控制数据量,方便快速测试
per_device_train_batch_size每设备 batch size1CPU 建议较小值,GPU 可适当增大
gradient_accumulation_steps梯度累积步数2模拟更大的 batch size
lr_scheduler_type学习率调度策略cosine使用余弦退火策略
max_grad_norm最大梯度范数1.0防止梯度爆炸(梯度裁剪)
logging_steps日志打印间隔5每 N 步打印一次训练信息
save_steps模型保存间隔200每 N 步保存模型快照
output_dir模型输出目录./output/yanlp/...训练产物保存位置
gradient_checkpointing是否启用梯度检查点False开启可节省显存但降低速度
enable_thinking是否启用“思考模式”True启用中间推理机制(部分模型支持)
optim优化器类型adamw_torchPyTorch 原生 AdamW
lora_rankLoRA 低秩矩阵维度4值越小,参数越少,速度越快
lora_alphaLoRA 缩放系数8控制 LoRA 学习率放大比例
lora_dropoutLoRA dropout 概率0可防止过拟合,0 为关闭
lora_targetLoRA 作用模块q_proj,v_proj只微调注意力层的 q/v 投影矩阵
report_to日志上报平台none禁用 wandb/tensorboard 等
plot_loss是否绘制损失曲线True输出 loss 曲线以便可视化训练进展

model_name_or_path本地模型目录(需包含 config.json、权重文件、tokenizer 等)例如:
/Users/yanlp/.cache/openmind/hub/models--Qwen--Qwen3-0.6B/snapshots/<hash>

四、llamafactory-cli export合并、导出

  • 合并(merge)LoRA 权重 到原始模型;
  • 导出(export) 成标准 Hugging Face 格式;
  • export
    llamafactory-cli export \
        --model_name_or_path Qwen/Qwen3-0.6B \
        --adapter_name_or_path ./output/yanlp/Qwen3-0.6B-alpaca-lora  \
        --template default \
        --finetuning_type lora \
        --export_dir ./merged/yanlp/Qwen3-0.6B-train \
        --export_size 2 \
        --export_device cpu \
        --export_legacy_format False
    
  • ls ./merged/yanlp/Qwen3-0.6B-train
    在这里插入图片描述

五、llamafactory-cli train push_to_hub上传

  • llamafactory-cli train ... --push_to_hub True
  • export HF_TOKEN=*******

六、clone 并查看commit

在这里插入图片描述

一种利雅普诺夫方法用于分布式端口-哈密顿系统的鲁棒调节研究(Matlab代码实现)内容概要:本文围绕“一种利雅普诺夫方法用于分布式端口-哈密顿系统的鲁棒调节研究”,介绍了基于Matlab的代码实现方案。该研究聚焦于复杂动态系统的稳定性控制问题,采用利雅普诺夫函数方法对分布式端口-哈密顿系统进行建模与分析,旨在实现系统在外部扰动和不确定性影响下的鲁棒调节。文中详细阐述了控制策略的设计思路、数学推导过程以及Matlab仿真实验的构建方式,验证了所提方法在保证系统稳定性和动态性能方面的有效性。此外,文档还列举了大量相关科研方向与Matlab/Simulink仿真案例,涵盖智能优化算法、机器学习、电力系统控制、路径规划、信号处理等多个领域,展示了Matlab在科研仿真中的广泛应用。; 适合人群:具备一定自动控制理论基础、非线性系统分析背景以及Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事系统稳定性分析、鲁棒控制、能源系统建模等相关领域的研究人员。; 使用场景及目标:① 学习和掌握利用利雅普诺夫方法分析非线性系统稳定性的理论与实现技巧;② 借鉴Matlab代码实现分布式端口-哈密顿系统的建模与鲁棒控制器设计;③ 拓展科研思路,参考文中提供的多领域仿真案例进行算法复现与创新研究。; 阅读建议:建议读者结合控制理论教材深入理解利雅普诺夫稳定性判据的数学原理,在Matlab环境中动手复现文中的代码,并通过调整系统参数和扰动条件观察仿真结果变化,以加深对鲁棒调节机制的理解。同时,可参考文中列出的相关研究方向,寻找交叉创新点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

it&s me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值