【模型手术室】第四篇:全流程实战 —— 使用 LLaMA-Factory 开启你的第一个微调任务

专栏进度:04 / 10 (微调实战专题)
很多初学者卡在环境配置和复杂的 torch.train 逻辑上。LLaMA-Factory 的核心优势在于它集成了几乎所有主流国产模型(DeepSeek, Qwen, Yi)和海外模型(Llama 3, Mistral),并且原生支持 Gradio 可视化面板,让你在网页上点点鼠标就能“炼丹”。

一、 环境搭建:打造你的“炼丹炉”

为了保证训练不因版本冲突而崩溃,建议使用 Conda 进行物理隔离。

Bash

  1. 克隆项目

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

  1. 安装核心依赖 (针对 CUDA 12.1 环境)

pip install -e .[metrics,bitsandbytes,qwen]

  1. 验证是否安装成功

llamafactory-cli version

二、 准备食材:注册你的“行业黑话”数据集

LLaMA-Factory 有一套自己的数据集管理逻辑。你需要把上一篇生成的 security_expert_data.jsonl 放入 data/ 目录,并在 data/dataset_info.json 中注册它。

注册示例:

JSON

“my_security_data”: {
“file_name”: “security_expert_data.jsonl”,
“columns”: {
“prompt”: “instruction”,
“query”: “input”,
“response”: “output”
}
}

三、 点火炼丹:WebUI 模式与脚本模式

  1. 初学者推荐:WebUI 模式
    在终端执行 llamafactory-cli webui。
    你会看到一个极其直观的界面。你需要设置:

模型名称:选择 DeepSeek-V3 或 Qwen2.5-7B。

微调方法:选择 lora。

数据集:勾选你刚刚注册的 my_security_data。

学习率:建议 5e-5。

计算精度:显存够选 bf16,不够选 fp16 或 int4。

  1. 高阶推荐:命令行模式 (CLI)
    一旦参数调优确定,建议使用脚本运行,更稳定且方便记录。

Bash

llamafactory-cli train
–stage sft
–do_train
–model_name_or_path /path/to/your/model
–dataset my_security_data
–template qwen
–finetuning_type lora
–output_dir ./saves/security_agent_v1
–per_device_train_batch_size 4
–gradient_accumulation_steps 4
–lr_scheduler_type cosine
–logging_steps 10
–save_steps 100
–learning_rate 5e-5
–num_train_epochs 3.0
–plot_loss
–fp16

四、 关键指标:如何看懂“炼丹炉”里的 Loss 曲线

在训练过程中,你会看到一个不断下降的 Loss(损失值) 曲线。

理想曲线:平稳下降,最后在某个数值(如 0.5 - 1.2 之间)开始横向震荡。

警报曲线:Loss 突然降到 0(过拟合,模型只会背书)或者 Loss 突然飙升(梯度爆炸,模型疯了)。

对策:如果 Loss 不降,调大 learning_rate;如果 Loss 波动太大,调小 learning_rate 并增大 batch_size。

五、 避坑指南:显存溢出的“救命稻草”

如果你运行报错 OutOfMemoryError:

开启量化:使用 --quantization_bit 4。

降低长度:将 --cutoff_len 从 1024 降到 512。

梯度检查点:确保开启了 --gradient_checkpointing。

Read more

Sublime配置verilog开发环境-具备语法高亮、代码补全、自定义代码段及语法检查等功能,提升FPGA开发效率!

Sublime配置verilog开发环境-具备语法高亮、代码补全、自定义代码段及语法检查等功能,提升FPGA开发效率!

对于在学习FPGA开发之前使用过其他集成开发工具如VS、pycharm、keil或编辑工具如Sublime、VScode、Notepad的朋友,在使用Vivado时可能会像博主一样感觉自带编辑器用起来不太舒服,比如不支持语法高亮显示,不支持代码自动补全等功能。因次,使用第三方编辑器来编写Verilog代码是很有必要的。 本文将详细介绍如何在文本编辑器Sublime中配置verilog开发环境,最终实现语法高亮、代码补全、自定义代码段及语法检查等功能,使得可以在Sublime中高效编写verilog代码,大幅提升FPGA开发效率!附带自己在配置中的踩坑经验,希望朋友们按着下面的流程走可以一步配置到位!下面两图为使用Vivado编写代码及使用Sublime编写代码的对比图。 1.Sublime的介绍与安装配置         Sublime Text,是一款由 Sublime HQ 开发的跨平台轻量级代码编辑器,以 “启动快、插件丰富、自定义性强” 为核心特点,广泛用于代码编写、文本编辑和开发效率提升,支持 Windows、macOS、Linux 三大操作系统。

机器人-六轴机械臂的正运动学

机器人-六轴机械臂的正运动学

在机器人运动学建模领域,D-H(Denavit-Hartenberg)参数法绝对是绕不开的核心技术。它以极简的4个参数,就能清晰描述机械臂各连杆间的相对位姿关系,是实现正运动学求解、轨迹规划的基础。本文将从理论原理出发,一步步拆解六轴机械臂的D-H法建模流程,最后结合代码实现让理论落地,适合机器人初学者或技术爱好者深入学习。 一、为什么选择D-H法?—— 机械臂建模的“通用语言” 六轴机械臂作为工业场景中最常用的机器人构型,其连杆与关节的空间关系复杂。如果直接用三维坐标系叠加计算,不仅公式繁琐,还容易出现坐标混乱的问题。而D-H法的核心优势的在于“标准化”: * 简化参数:用仅4个参数(关节角、连杆偏移、连杆长度、连杆扭转角)描述相邻连杆的位姿,替代复杂的三维坐标变换; * 通用性强:适用于所有串联机械臂,无论是六轴、四轴还是协作机械臂,都能套用同一套建模逻辑; * 计算高效:通过齐次变换矩阵的乘积,可快速求解末端执行器相对于基坐标系的位姿,为后续运动学分析奠定基础。 简单来说,学会D-H法,就掌握了串联机械臂建模的“通用语言”。 二、D-H法核心:4个

基于FPGA的CARRY4 抽头延迟链TDC延时仿真

基于FPGA的CARRY4 抽头延迟链TDC延时仿真

基于FPGA的CARRY4 抽头延迟链TDC延时仿真 1 摘要 基于 FPGA 的 CARRY4 抽头延迟链 TDC,核心是利用 Xilinx FPGA 中 CARRY4 进位单元的固定、低抖动级联延迟构建抽头延迟线,通过锁存信号传播位置实现亚纳秒级时间测量,单级进位延迟约 10–30 ps,级联后可覆盖更大时间量程并结合粗计数拓展动态范围。TDC设计利用FPGA的专用进位链硬件,实现了亚纳秒级的时间测量精度,这是传统数字方法无法达到的。虽然需要校准,但其性能优势和数字集成的便利性使其成为高精度时间测量的首选方案。 2 CARRY4 核心结构与抽头延迟链原理 2.1 CARRY4 单元结构(Xilinx 7 系列 / UltraScale) 每个 CARRY4 包含 4 个 MUXCY 进位选择器与 4 个 XORCY 异或门,

Verilog 零基础入门:语法、仿真与 FPGA 实战

一、入门前提 Verilog 是 FPGA 开发的核心硬件描述语言,学习需具备两大基础:一是数字电子技术常识(理解逻辑门、时序 / 组合逻辑等概念),二是 C 语言基础(有助于快速适应语法结构)。学习核心是掌握 “代码→硬件” 的映射逻辑,而非单纯记忆语法。 二、仿真环境选择 根据开发场景选择适配环境,需重点注意路径约束: * FPGA 开发环境:Xilinx Vivado(主流推荐)、Xilinx ISE(已停更)、Intel Quartus II * ASIC 开发环境:Synopsys VCS * 关键约束:电脑用户名、软件安装路径、工程路径必须全英文(无中文 / 特殊符号),否则会导致软件启动失败、编译报错或仿真异常。 三、Verilog 设计流程