在Ubuntu上用Llama Factory命令行微调Qwen2.5的简单过程
半年多之前写过一个教程:在Windows上用Llama Factory微调Llama 3的基本操作_llama-factory windows-CSDN博客
如果用命令行做的话,前面的步骤可以参考上面这个博客。安装好环境后, 用自我认知数据集微调Lora模块:data/identity.json,里面的格式也很好理解:
{
"instruction": "你是谁?",
"input": "",
"output": "您好,我是 { {name}},一个由 { {author}} 发明的人工智能助手。我可以回答各种问题,提供实用的建议和帮助,帮助用户完成各种任务。"
},
可以直接用VS Code将上面的name和author替换,另存为一个文件,并且在data/dataset_info.json增加这个,类似于我这里(另存的文件名为identity_tpri.json):
"identity_tpri": {
"file_name": "identity_tpri.json"
},
将文件examples/train_qlora/llama3_lora_sft_awq.yaml另存为一个文件并且重命名,然后配置对应一下已经下载下来的模型文件(顺便说一句,模型文件可以在:魔搭社区 这里下载,应该速度都很快),我这里是这样修改的(标红的是更新的内容,除了微调数据集和模型位置以及Lora模块位置,需要注意的就是num_train_epochs,之前默认的值是3,经过测试以后太小了):
### model
model_name_or_path: /home/quyu/Qwen2.5-7B-Instruct/
trust_remote_code: true
### method
stage: sft
do_train: true
finetuning_type: lora
lora_rank: 8
lora_target: all
### dataset
dataset: identity_tpri
template: qwen
cutoff_len: 2048
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16
### output
output_dir: saves/qwen-7b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 20.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
### eval
# val_size: 0.1
# per_device_eval_batch_size: 1
# eval_strategy: steps
# eval_steps: 500
然后运行一下(重命名的文件是qwen_lora.yaml):
llamafactory-cli train examples/train_qlora/qwen_lora.yaml
如果显存不够可能会报错(例如训练32B的时候),这个我在后一篇博客里再总结。如果显存够,那么可以直接得到微调后的lora模块,我这里用两个3090训练只需要一分多钟。我们将examples/inference/llama3_lora_sft.yaml复制以后重命名,并且将其内容改为:
model_name_or_path: /home/quyu/Qwen2.5-7B-Instruct
adapter_name_or_path: saves/qwen-7b/lora/sft
template: qwen
infer_backend: huggingface # choices: [huggingface, vllm]
trust_remote_code: true
然后运行(重命名的文件是qwen2_lora.yaml,看自己喜好重命名即可):
llamafactory-cli chat examples/inference/qwen2_lora.yaml
然后再问大模型“你是谁?”,就可以看到修改之后的效果了。
相关文章:
在Ubuntu上用Llama Factory命令行微调Qwen2.5的简单过程
半年多之前写过一个教程:在Windows上用Llama Factory微调Llama 3的基本操作_llama-factory windows-CSDN博客 如果用命令行做的话,前面的步骤可以参考上面这个博客。安装好环境后, 用自我认知数据集微调Lora模块:data/identity.j…...
ThinkPhp伪静态设置后,访问静态资源也提示找不到Controller
ThinkPhp没有配置伪静态时,除了默认的IndexController能访问,其他路由Controller都访问不到,提示404错误。配置了伪静态后就解决了这个问题。 但是当我的ThinkPhp后台项目中有静态资源放在public目录(或子目录)中需要…...
JavaScript赋能智能网页设计
构建AI驱动的实时风格迁移系统 案例概述 本案例将实现一个基于深度学习的实时图像风格迁移系统,通过浏览器端神经网络推理实现以下高级特性: WebAssembly加速的ONNX模型推理 WebGL Shader实现的风格混合算法 WebRTC实时视频流处理 基于Web Workers的…...
基于STM32的阿里云智能农业大棚
目录 前言: 项目效果演示: 一、简介 二、硬件需求准备 三、硬件框图 四、CubeMX配置 4.1、按键、蜂鸣器GPIO口配置 4.2、ADC输入配置 4.3、IIC——驱动OLED 4.4、DHT11温湿度读取 4.5、PWM配置——光照灯、水泵、风扇 4.6、串口——esp8266模…...
80,【4】BUUCTF WEB [SUCTF 2018]MultiSQL
53,【3】BUUCTF WEB october 2019 Twice SQLinjection-CSDN博客 上面这个链接是我第一次接触二次注入 这道题也涉及了 对二次注入不熟悉的可以看看 BUUCTF出了点问题,打不开,以下面这两篇wp作为学习对象 [SUCTF 2018]MultiSQL-CSDN博客 …...
深入探索imi框架:PHP Swoole的高性能协程应用实践
摘要 本文将介绍 imi 框架,这是一个基于 PHP Swoole 的高性能协程应用开发框架。imi 支持 HttpApi、WebSocket、TCP 和 UDP 等多种服务类型,利用 Swoole 的优化技术,使得在处理请求时响应速度远超传统的 php-fpm 方式。通过丰富的代码示例&a…...
【算法篇·更新中】C++秒入门(附练习用题目)
一.二分 1.二分查找 我们来看这样一道题: 有一个保证有序的数组a,它的长度为n。现在我们需要知道这个序列是否含有x。 数据范围:保证n<1e9 我们看到这道题之后,第一时间想到的就是暴力枚举了,可是我们发现直接枚举…...
对神经网络基础的理解
目录 一、《python神经网络编程》 二、一些粗浅的认识 1) 神经网络也是一种拟合 2)神经网络不是真的大脑 3)网络构建需要反复迭代 三、数字图像识别的实现思路 1)建立一个神经网络类 2)权重更新的具体实现 3&am…...
存储基础 -- SCSI命令格式与使用场景
SCSI命令格式与使用场景 1. SCSI命令描述符块(CDB) 1.1 CDB基本概念 SCSI命令通过**命令描述符块(CDB, Command Descriptor Block)**表示。 CDB长度:SCSI命令根据使用场景有不同长度的CDB,常见的有6字节…...
从崩溃难题看 C 标准库与 Rust:线程安全问题引发的深度思考
在软件开发的世界里,每一次技术的变革和尝试都伴随着未知的挑战。EdgeDB 团队在将部分网络 I/O 代码从 Python 迁移到 Rust 的过程中,就遭遇了一场棘手的问题,这个问题不仅暴露了 C 标准库的线程安全隐患,也让我们对 Rust 的 “安…...
【CSS入门学习】Flex布局设置div水平、垂直分布与居中
水平平均分布 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>…...
9. 神经网络(一.神经元模型)
首先,先看一个简化的生物神经元结构: 生物神经元有多种类型,内部也有复杂的结构,但是可以把单个神经元简化为3部分组成: 树突:一个神经元往往有多个树突,用于接收传入的信息。轴突:…...
R 语言 | future 包,非阻塞的执行耗时脚本
目的:有一段代码,后面暂时用不到,但是又很耗时,占了当前R session,难道只能等半个小时,等到它结束才能画图? 可以使用R多线程,在支线进程中执行耗时任务,同时不阻塞当前…...
UE学习日志#12 Niagara特效大致了解(水文,主要是花时间读了读文档和文章)
1 核心组件(官方文档阅读) 一些介绍主要来自官方文档Niagara概述 1.1 Systems 官方文档中的描述: Niagara系统是一种容器,可以放入你要构建该效果的所有内容。在这个系统中,你可以搭建不同的构建块来实现总体效果。…...
【数据结构】_链表经典算法OJ:合并两个有序数组
目录 1. 题目描述及链接 2. 解题思路 3. 程序 3.1 第一版 3.2 第二版 1. 题目描述及链接 题目链接:21. 合并两个有序链表 - 力扣(LeetCode) 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给…...
Mongodb副本集群为什么选择3个节点不选择4个节点
一、容错能力的定义 在副本集中,容错能力是指系统能够容忍多少个节点故障而仍然能够保持服务可用性的能力。这通常与选举机制中的多数投票原则密切相关。 二、三节点副本集的容错能力 在三节点的副本集中,通常有一个主节点和两个从节点。当主节点故障…...
基于 WEB 开发的手机销售管理系统设计与实现内容
标题:基于 WEB 开发的手机销售管理系统设计与实现 内容:1.摘要 摘要:随着智能手机的普及和电子商务的快速发展,手机销售行业面临着越来越多的挑战和机遇。为了提高销售效率和管理水平,本文设计并实现了一个基于 WEB 的手机销售管理系统。该系…...
LeetCode - Google 大模型校招10题 第1天 Attention 汇总 (3题)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145368666 GroupQueryAttention(分组查询注意力机制) 和 KVCache(键值缓存) 是大语言模型中的常见架构,GroupQueryAttention 是注意力…...
Vue3 provide/inject用法总结
1. 基本概念 provide/inject 是 Vue3 中实现跨层级组件通信的方案,类似于 React 的 Context。它允许父组件向其所有子孙组件注入依赖,无论层级有多深。 1.1 基本语法 // 提供方(父组件) const value ref(hello) provide(key, …...
Linux——网络基础(1)
文章目录 目录 文章目录 前言 一、文件传输协议 应用层 传输层 网络层 数据链路层 数据接收与解封装 主机与网卡 数据传输过程示意 二、IP和MAC地址 定义与性质 地址格式 分配方式 作用范围 可见性与可获取性 生活例子 定义 用途 特点 联系 四、TCP和UDP协…...
Flow错误处理与监控:集成Sentry实现生产级错误追踪
Flow错误处理与监控:集成Sentry实现生产级错误追踪 【免费下载链接】flow Browser-based ePub reader 项目地址: https://gitcode.com/gh_mirrors/flo/flow Flow作为一款基于浏览器的ePub阅读器,为用户提供流畅的电子书阅读体验。在开发过程中&am…...
2026届必备的六大AI写作助手推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在现在这个人工智能生成内容已经被广泛运用的当下,降低AIGC检测概率的工具顺势冒…...
雯雯的后宫-造相Z-Image-瑜伽女孩部署避坑指南:xinference.log日志错误排查大全
雯雯的后宫-造相Z-Image-瑜伽女孩部署避坑指南:xinference.log日志错误排查大全 部署一个AI文生图模型,最让人头疼的往往不是写提示词,而是服务启动时那一串串让人摸不着头脑的日志。特别是当你满怀期待地部署“雯雯的后宫-造相Z-Image-瑜伽…...
告别手动压缩!用Python的shutil.make_archive()自动备份你的项目文件
告别手动压缩!用Python的shutil.make_archive()自动备份你的项目文件 深夜赶项目时,你是否经历过这样的崩溃瞬间——修改了三天的重要代码突然消失,而上次备份还是一周前的手动压缩包?作为开发者,我们常陷入"明天…...
终极指南:使用SMU Debug Tool释放AMD Ryzen处理器的隐藏性能
终极指南:使用SMU Debug Tool释放AMD Ryzen处理器的隐藏性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...
开发提效新思路:用快马平台打造你的个性化qoderwork代码片段工厂
今天想和大家分享一个提升前端开发效率的实用思路 - 用InsCode(快马)平台打造自己的代码片段工厂。作为一个经常需要重复编写UI组件的前端开发者,我发现这个方案能显著减少重复劳动。 痛点分析 每次新项目都要从零开始写导航栏、页脚这些基础组件特别浪费时间。虽然…...
挖掘机伸缩臂的原理
挖掘机伸缩臂是装载于挖掘机上的一种特殊工作装置,旨在灵活扩展挖掘机的作业半径、挖掘深度。它集挖掘机、起重机、抓木器等多种工程机械结构的优点于一体,结构紧凑且重量轻,操作简便,作业效率高。挖掘机伸缩臂的工作原理主要依赖…...
Pixel Couplet Gen实操手册:像素春联生成结果自动同步至微信公众号图文素材库
Pixel Couplet Gen实操手册:像素春联生成结果自动同步至微信公众号图文素材库 1. 项目介绍与核心功能 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成工具。通过ModelScope大模型的文本生成能力,结合精心设计的8-bit复古游戏…...
千问3.5-2B在内容审核中的应用:自动识别敏感图文组合,降低人工复核成本
千问3.5-2B在内容审核中的应用:自动识别敏感图文组合,降低人工复核成本 1. 内容审核的挑战与机遇 每天,互联网上产生数以亿计的图文内容,如何高效识别其中的敏感信息成为平台运营者的重大挑战。传统人工审核方式面临三大痛点&am…...
探索iPad Pro的深度数据获取
在iOS开发中,获取深度数据是一个非常有趣的话题,特别是在使用双摄像头设备时。然而,当我们尝试将这些技术应用到iPad Pro上时,可能会遇到一些独特的挑战和限制。下面我们将深入探讨如何在iPad Pro上获取深度数据,以及为什么有些功能在iPad上不可用。 背景介绍 Apple在WW…...
