使用LLama-Factory的简易教程(Llama3微调案例+详细步骤)
引言:一套快速实现 Llama3 中文微调的教程
主要参考:胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》
✅
笔者简介:Wang Linyong,西工大,2023级,计算机技术
研究方向:文本生成、大语言模型
笔者的实验环境:
| 版本 | |
|---|---|
| Ubuntu | 22.04.4 |
| CPU | Intel® Core™ i9-14900KF |
| Driver(驱动) | 535.171.04 |
| GPU(一张) | NVIDIA GeForce RTX 4090 |
| CUDA | 12.4 |
| Python | 3.10.14 |
| Pytorch | 2.2.1 |
文章目录
- 1. 配置 Hugging Face 的国内镜像网站
- 2. 安装 LLaMA-Factory 框架
- 3. 启动可视化窗口
- 4. 数据集构建方式
- 5. 模型微调的流程
- 6. 参考资料
- 7. 补充说明
1. 配置 Hugging Face 的国内镜像网站
● 如果不配置的话,我们在后续下载 15G 的 Llama3 的模型权重文件会很慢很慢。
● 第一步: 安装 huggingface_hub 包。这个包是 Hugging Face 提供的 Python 客户端库,用于与 Hugging Face Hub 进行交互。
pip install huggingface_hub
● 第二步: 配置 Hugging Face API 的镜像端点,可以加快模型的下载速度,尤其是在中国大陆网络环境。
export HF_ENDPOINT=https://hf-mirror.com
● 第三步: 使用 huggingface-cli 工具从 Hugging Face Hub 下载指定的模型文件。
huggingface-cli download --resume-download meta-llama/Llama-3.2-3B-Instruct --local-dir ./models/Qwen2.5-7B-Instruct/
指令解释:
--resume-download:启用断点续传。如果下载中断,下次继续下载时将从中断的位置开始,而不是重新下载。- shenzhi-wang/Llama3-8B-Chinese-Chat:这是模型的仓库路径,表示从
Hugging Face上下载shenzhi-wang(作者)发布的Llama3-8B-Chinese-Chat模型。 --local-dir ./models/Llama3-8B-Chinese-Chat/:将下载的模型文件保存到本地的./models/Llama3-8B-Chinese-Chat/目录中。
结果展示(我安装在 ~/llama/models/Llama3-8B-Chinese-Chat 目录下的):

2. 安装 LLaMA-Factory 框架
● 【关于 LLaMA-Factory 的简介】LLaMA-Factory 是一个开源工具,旨在简化大型语言模型(LLMs)的微调和推理过程,特别是针对 LLaMA(Large Language Model Meta AI)系列模型。它提供了用户友好的接口和高效的工具,帮助研究者和开发者快速上手并定制化 LLM 模型,适用于各种自然语言处理任务。
● 首先进入 ~/llama 的同级目录,从 GitHub 克隆 LLaMA-Factory 仓库到本地。再进入该仓库目录。接着使用 pip 安装该项目作为一个可编辑的 Python 包,方便开发和修改。
cd ~/llama
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
3. 启动可视化窗口
● 启动命令:
cd LLaMA-Factory
llamafactory-cli webui
● UI界面执行步骤: 注意第 ③ 步要将模型路径换成你所下载的路径。

● 一个简单的调用案例:
问题:工作多长一段时间后没有签订劳动合同,公司的做法是违法的?我们应该怎么维权?

4. 数据集构建方式
● 在 LLaMA-Factory/data/dataset_info.json 中添加自己的数据格式。比如下述名为 Laws_QA 的数据集(对应的文件是 Laws_QA.json )。其中,各字段的含义:
instruction告诉模型要解释法律条款。input提供了具体的法律条款。output是模型生成的解释。
"Laws_QA": {"file_name": "Laws_QA.json","columns": {"prompt": "instruction","query": "input","response": "output",}
}
● 然后需要把你的数据集对应的文件 Laws_QA.json 放入到 LLaMA-Factory/data/ 目录下。在这里 举一个数据样例:
{"instruction": "解释一下以下法律条款","input": "《中华人民共和国合同法》第52条","output": "《中华人民共和国合同法》第52条规定了合同无效的情形,包括一方以欺诈、胁迫的手段订立合同,损害国家利益;恶意串通,损害国家、集体或者第三人利益;以合法形式掩盖非法目的;损害社会公共利益;违反法律、行政法规的强制性规定。"
}
● 这是我构造的数据样例: 我只构造了简单的 “问答对”,所以 input 字段为空。

● 这里我贴 20 个 Laws_QA.json 的样例,以供大家上手测试:
[{"instruction": "在法律中定金与订金的区别订金和定金哪个受","input": "","output": "“定金”是指当事人约定由一方向对方给付的,作为债权担保的一定数额的货币,它属于一种法律上的担保方式,目的在于促使债务人履行债务,保障债权人的债权得以实现。签合同时,对定金必需以书面形式进行约定,同时还应约定定金的数额和交付期限。给付定金一方如果不履行债务,无权要求另一方返还定金;接受定金的一方如果不履行债务,需向另一方双倍返还债务。债务人履行债务后,依照约定,定金应抵作价款或者收回。而“订金”目前我国法律没有明确规定,它不具备定金所具有的担保性质,可视为“预付款”,当合同不能履行时,除不可抗力外,应根据双方当事人的过错承担违约责任。"},{"instruction": "盗窃罪的犯罪客体是什么,盗窃罪的犯罪主体","input": "","output": "盗窃罪的客体要件本罪侵犯的客体是公私财物的所有权。侵犯的对象,是国家、集体或个人的财物,一般是指动产而言,但不动产上之附着物,可与不动产分离的,例如,田地上的农作物,山上的树木、建筑物上之门窗等,也可以成为本罪的对象。另外,能源如电力、煤气也可成为本罪的对象。盗窃罪侵犯的客体是公私财物的所有权。所有权包括占有、使用、收益、处分等权能。这里的所有权一般指合法的所有权,但有时也有例外情况。根据《最高人民法院关于审理盗窃案件具体应用法律若干问题的解释》(以下简称《解释》)的规定:“盗窃违禁品,按盗窃罪处理的,不计数额,根据情节轻重量刑。盗窃违禁品或犯罪分子不法占有的财物也构成盗窃罪。”"},{"instruction": "非法微整形机构构成非法经营罪吗","input": "","output": "符合要件就有可能。非法经营罪,是指未经许可经营专营、专卖物品或其他限制买卖的物品,买卖进出口许可证、进出口原产地证明以及其他法律、行政法规规定的经营许可证或者批准文件,以及从事其他非法经营活动,扰乱市场秩序,情节严重的行为。"},{"instruction": "入室持刀行凶伤人能不能判刑","input": "","output": "对于入室持刀伤人涉嫌故意伤害刑事犯罪,一经定罪,故意伤害他人身体的,处三年以下有期徒刑、拘役或者管制。犯前款罪,致人重伤的,处三年以上十年以下有期徒刑;致人死亡或者以特别残忍手段致人重伤造成严重残疾的,处十年以上有期徒刑、无期徒刑或者死刑。相关法律规定《中华人民共和国刑法》第二百三十四条故意伤害他人身体的,处三年以下有期徒刑、拘役或者管制。犯前款罪,致人重伤的,处三年以上十年以下有期徒刑;致人死亡或者以特别残忍手段致人重伤造成严重残疾的,处十年以上有期徒刑、无期徒刑或者死刑。本法另有规定的,依照规定。"},{"instruction": "我在辅道正常右转进主道,主道有两个车,后面的车占用对向车道超车,撞了是谁的责任","input": "","output": "发生交通事故,及时报警,有交警划分责任,出具交通事故认定书,根据责任的划分和损害情况协商解决,协商不成的必要时可以诉讼处理。"},{"instruction": "对交通事故责任认定书不服怎么办,交通事故损","input": "","output": "事故认定书下发后,如果你对认定不满意,可在接到认定书3日内到上一级公安机关复议。"},{"instruction": "喝完就又去唱歌回家时去了车祸去唱歌我同意了车是我开的","input": "","output": "需要结合具体情况判断,看是否酒驾和交通事故责任的划分,根据责任承担责任,赔偿损失。"},{"instruction": "二审一般要多久","input": "","output": "《民事诉讼法》对二审的审限作出了规定,一般会在立案一个月内开庭,在三个月内审结,但最长也可以超过三个月。《民事诉讼法》第一百七十六条人民法院审理对判决的上诉案件,应当在第二审立案之日起三个月内审结。有特殊情况需要延长的,由本院院长批准。人民法院审理对裁定的上诉案件,应当在第二审立案之日起三十日内作出终审裁定。"},{"instruction": "欠钱没有欠条有录音能起诉吗","input": "","output": "录音资料经过鉴定证实未经剪辑、拼凑、篡改和臆造,并有其他相关证据相印证的,可以认定其效力。"},{"instruction": "帮助别人套花呗违法吗","input": "","output": "帮别人“花呗套现”并且收取手续费,这是违法犯罪行为。"},{"instruction": "关于吃药死亡正常不通过法律手段如何追究申诉,解决赔偿","input": "","output": "不通过法律手段可以双方协商索赔。"},{"instruction": "关于吃药死亡正常不通过法律手段如何追究申诉,解决赔偿","input": "","output": "找医院协商,去卫*委投诉,"},{"instruction": "因工作被三处烫伤,伤为三级烫伤,三处都需要植皮,鉴定能达到几级?","input": "","output": "伤残等级需要去专业鉴定机构鉴定的,根据伤残等级申请工伤认定,要求工伤赔偿。"},{"instruction": "从合伙经营公司撤资,只给欠条有用吗","input": "","output": "欠条是债权凭证,欠条依据的基础法律关系有事实、不违法的,欠条有效。解除合伙关系,如果经合伙人清算,产生合法欠款,欠条有效。"},{"instruction": "我是事业单位在一九八八年工作中左手食指和中指、缺失一节、单位当时就给送进医院还派人护理、当时找单位","input": "","output": "已经三十年了,已经超过诉讼时效了,无法主张权利,"},{"instruction": "我是事业单位在一九八八年工作中左手食指和中指、缺失一节、单位当时就给送进医院还派人护理、当时找单位","input": "","output": "扯淡,是必备技能。"},{"instruction": "事故中我摩托车付次要责任,自行车付主要责任,我怎赔他医药费","input": "","output": "有交强险的,在交强险的1####元医疗费额度中,由机动车方全部支付,超过1####元部分,由双方按责任程度各自分担."},{"instruction": "事故中我摩托车付次要责任,自行车付主要责任,我怎赔他医药费","input": "","output": "医药费的30%左右你需要承担"},{"instruction": "车祸小脑出血昏迷了5天怎么办","input": "","output": "及时报警,有交警出具交通事故认定书,根据责任的划分和实际损害情况协商索赔,协商不成的可以诉讼处理。"},{"instruction": "哪些情况可以先行刑事拘留","input": "","output": "有下列情形之一的,可以先行拘留:(一)正在预备犯罪、实行犯罪或者在犯罪后即时被发觉的;(二)被害人或者在场亲眼看见的人指认他犯罪的;(三)在身边或者住处发现有犯罪证据的;(四)犯罪后企图自杀、逃跑或者在逃的;(五)有毁灭、伪造证据或者串供可能的;(六)不讲真实姓名、住址,身份不明的;(七)有流窜作案、多次作案、结伙作案重大嫌疑的。公安机关拘留人的时候,必须出示拘留证。"}
]
5. 模型微调的流程
● 一图胜千言,按照下图的步骤设置就行:
- 微调中文模型就选
zh - 选择模型名称
- 选择对应的模型参数路径
- 选择微调方法,一般是 LoRA
- 训练方式如果是有监督的微调,就选择
Supervised Fine-Tuning - 选择对应的数据集(我这里选的就是之前我构造的
Laws_QA) - 设置对应的超参数
- 开始训练
备注:量化等其他设置可自行抉择。
● 微调完后,当需要调用时,可参考本文前面写的 “3. 启动可视化窗口” 的内容。

6. 参考资料
[1] 胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》,感谢Up主:胖虎遛二狗
7. 补充说明
● 若有写得不对、欠妥的地方,或有疑问,欢迎评论交流。
⭐️ ⭐️ 完稿于 2025年3月21日 14:36 教研室工位 💻
相关文章:
使用LLama-Factory的简易教程(Llama3微调案例+详细步骤)
引言:一套快速实现 Llama3 中文微调的教程 主要参考:胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》 ✅ 笔者简介:Wang Linyong,西工大,2023级,计算机技术 研究方向&am…...
LabVIEW发电平台数据采集系统
本文详细介绍了基于LabVIEW的摇臂式波浪发电平台数据采集系统的设计与实现。通过整合LabVIEW软件与多种传感器技术,本系统能够有效提升数据采集的准确性和效率,为波浪能的利用和发电设备的优化提供科学依据。 项目背景 随着全球能源需求增长和环境保…...
气象可视化卫星云图的方式:方法与架构详解
气象卫星云图是气象预报和气候研究的重要数据来源。通过可视化技术,我们可以将卫星云图数据转化为直观的图像或动画,帮助用户更好地理解气象变化。本文将详细介绍卫星云图可视化的方法、架构和代码实现。 一、卫星云图可视化方法 1. 数据获取与预处理 卫星云图数据通常来源…...
abaqus 二次开发 No module named ‘abaqusConstants
在 Python 中遇到 “No module named ‘abaqusConstants’” 错误通常意味着 Python 无法找到名为 abaqusConstants 的模块。这可能是由以下几个原因造成的: 拼写错误:首先确认模块名是否正确。通常在 Abaqus 的 Python 环境中,正确的模块名…...
【蓝桥杯】每日练习 Day7
目录 前言 领导者 分析 代码 空调 分析 代码 面包店 分析 代码 前言 今天是第一部分的最后一天(主打记忆恢复术和锻炼思维),从明天开始主播会逐步更新从位运算到dp问题的常见题型。 领导者(分类讨论) 分析 …...
贪心算法(11)(java)加油站
题目:在一条环路上有n个加油站,其中第i个加油站有汽油 gas[i]升.。 你有一辆油箱容量无限的的汽车,从第i个加油站开往第i1个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发,开始时油箱为空。 给定…...
Python(4)Python函数编程性能优化全指南:从基础语法到并发调优
目录 一、Lambda性能优化原理1.1 内联执行优势1.2 并行计算加速 二、工程级优化策略2.1 内存管理机制2.2 类型提示增强 三、生产环境最佳实践3.1 代码可读性平衡3.2 异常处理模式 四、性能调优案例4.1 排序算法优化4.2 数据管道加速 五、未来演进方向5.1 JIT编译优化5.2 类型系…...
本地部署Stable Diffusion生成爆火的AI图片
直接上代码 Mapping("/send") Post public Object send(Body String promptBody) { JSONObject postSend new JSONObject(); System.out.println(promptBody); JSONObject body JSONObject.parseObject(promptBody); List<S…...
qiankun微前端的使用
qiankun使用时注意以下几个点 1,子应用项目框架(react,vue)使用的打包格式需要为 umd 格式 2,子应用项目最好配置不受同源策略(跨域)的影响 3,子应用最好使用的路由模式是 histor…...
从国家能源到浙江交通投资,全息技术在能源交通领域的创新应用
一、3D全息技术行业应用参数及设计制作要求 全息投影 全息投影技术通过激光器、全息片等设备,将物体的三维信息记录下来,并在特定条件下再现。应用参数包括投影距离、投影面积、投影亮度等。设计制作要求:高清晰度、高亮度、低噪音、稳定性好…...
PageHiOffice网页组件(WebOffice文档控件)开发集成技巧专题一
PageHiOffice网页组件作为最新一代的WebOffice文档控件,这是目前市场上唯一能做到在Chrome等最新版浏览器中实现内嵌网页运行的商用文档控件,是OA及ERP等系统处理各种文档的福音。从发布到完善已经超过3年,不管是功能性还是稳定性都已经有了长…...
【人工智能】机器学习中的评价指标
机器学习中的评价指标 在机器学习中,评估指标(Evaluation Metrics)是衡量模型性能的工具。选择合适的评估指标能够帮助我们更好地理解模型的效果以及它在实际应用中的表现。 一般来说,评估指标主要分为三大类:分类、…...
本地安装deepseek大模型,并使用 python 调用
首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步,就可以 点击搜索 Models : https://ollama.com/search然后点击下载: 选择后复制: ollama run deepseek-r1:32b例如: 让它安装完成后࿱…...
Android:蓝牙设置配套设备配对
一、概述 在搭载 Android 8.0(API 级别 26)及更高版本的设备上,配套设备配对会代表您的应用对附近的设备执行蓝牙或 Wi-Fi 扫描,而不需要 ACCESS_FINE_LOCATION 权限。这有助于最大限度地保护用户隐私。使用此方法执行配套设备&am…...
AI知识补全(二):提示工程(Prompting)是什么?
名人说:人生如逆旅,我亦是行人。 ——苏轼《临江仙送钱穆父》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(一):tokens是什么? 目录 一、什么是提示工程?二、为什么提示工程如此重要?三、核心提示工程技术1. 少样本学习(Few-Sho…...
Python 变量作用域、global 关键字与闭包作用域深度解析 第三部分
## 三、闭包作用域的存在原因及适用场景 ### 3.1 闭包作用域存在的原因 #### 3.1.1 数据封装与隐藏 闭包可以把数据封装在外部函数的作用域中,只有内部函数能够访问这些数据,这有助于实现数据的隐藏和保护。 python def counter(): count 0 def incre…...
zookeeper使用
下载 官网 链接 1. 2. 然后解压: 启动 先复制一份这个文件, 双击启动 默认占用8080,和Tomcat冲突, 解决方法:链接 然后重启...
【性能优化点滴】odygrd/quill 中一个简单的标记位作用--降低 IO 次数
在 StreamSink 类中,成员变量 _write_occurred 的作用是 跟踪自上次刷新(Flush)以来是否有写入操作发生,其核心目的是 优化 I/O 性能。以下是详细解析: _write_occurred 的作用 1. 避免不必要的刷新(Flush…...
Java面试黄金宝典11
1. 什么是 JMM 内存模型 定义 JMM(Java Memory Model)即 Java 内存模型,它并非真实的物理内存结构,而是一种抽象的概念。其主要作用是规范 Java 虚拟机与计算机主内存(Main Memory)之间的交互方式&#x…...
使用BootStrap 3的原创的模态框组件,没法弹出!估计是原创的bug
最近在给客户开发一个CRM系统,其中用到了BOOTSTRAP的模态框。版本是3。由于是刚开始用该框架。所以在正式部署到项目中前,需要测试一下,找到框架中的如下部分。需要说明的是。我用的asp.net mvc框架开发。测试也是在asp.net mvc环境下。 复制…...
【Azure 架构师学习笔记】- Azure Networking(1) -- Service Endpoint 和 Private Endpoint
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Networking】系列。 前言 最近公司的安全部门在审计云环境安全性时经常提到service endpoint(SE)和priavate endpoint(PE)的术语,为此做了一些研究储备。 云…...
Excel第41套全国人口普查
2. 导入网页中的表格:数据-现有链接-考生文件夹:网页-找到表格-点击→变为√-导入删除外部链接关系:数据-点击链接-选中连接-删除-确定(套用表格格式-也会是删除外部链接)数值缩小10000倍(除以10000即可&am…...
VUE2导出el-table数据为excel并且按字段分多个sheet
首先在根目录下建一个文件夹export用来存储export.js import * as XLSX from xlsxfunction autoWidthFunc(ws, data) {// 设置每列的最大宽度const colWidth data.map(row > row.map(val > {var reg new RegExp([\\u4E00-\\u9FFF], g) // 检测字符串是否包含汉字if (v…...
PDF文件转Markdown,基于开源项目marker
首先我们来问下deepseek 为啥要选marker呢 基于深度学习,一看就逼格拉满。搞科研必备,效果应该不会太差。 看下官网 https://github.com/VikParuchuri/marker 一看头像是个印度佬,自吹——又快又好。那就试试吧。 安装步骤 安装…...
深入理解 HTML5 Web Workers:提升网页性能的关键技术解析
深入理解 HTML5 Web Workers:提升网页性能的关键技术解析 引言1. 什么是 Web Workers?Web Workers 的特点: 2. Web Workers 的使用方式2.1 创建一个 Web Worker步骤 1:创建 Worker 文件步骤 2:在主线程中调用 Worker 3…...
【蓝桥杯速成】| 9.回溯升级
题目一:组合综合 问题描述 39. 组合总和 - 力扣(LeetCode) 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返…...
【uni-app】引用公共组件
目录 一、建立公共组件 1.1新建vue文件 1.2编写公共文件代码 1.3使用 注意事项 一、建立公共组件 1.1新建vue文件 在公共组件文件目录下新建所需要的功能文件 1.2编写公共文件代码 按需求写对应功能的代码 1.3使用 在需要使用的文件下引用公共组件 注意事项 想要使用s…...
API-Arrays
Arrays 操作数组的工具类 1.tostring import java.util.Arrays;public class demo1 {public static void main(String[] args) {Integer[] arr {2, 3, 1, 5, 6, 7, 8, 4, 9};System.out.println(Arrays.toString(arr));//[2, 3, 1, 5, 6, 7, 8, 4, 9]} } 2.binarySearch 二…...
尝试在软考62天前开始成为软件设计师-信息系统安全
安全属性 保密性:最小授权原则(能干活的最小权限)、防暴露(隐藏)、信息加密、物理保密完整性(防篡改):安全协议、校验码、密码校验、数字签名、公证 可用性:综合保障( IP过滤、业务流控制、路由选择控制、审计跟踪)不可抵赖性:数字签名 对称加密 DES :替换移位 3重DESAESR…...
dsPIC33CK64MC105 Curiosity Nano|为高性能数字电源与电机控制而生
「dsPIC33CK64MC105 Curiosity Nano」面向高性能数字电源与电机控制而生 dsPIC33CK64MC105 Curiosity Nano 该评估套件是一个经济高效的硬件平台,用于评估dsPIC33CK系列高性能数字信号控制器(DSC)。该板采用 100 MHz dsPIC33CK64MC105 DSC&am…...
