当前位置: 首页 > news >正文

LLaMa Factory大模型微调

LLaMa Factory大模型微调

  • 大模型微调
    • 平台&硬件
    • LLaMA-Factory安装
    • hfd下载hugging face模型
    • 自我认知微调
    • Alpaca数据集指令监督微调
    • 断点续训

大模型微调

微调自我认知+微调特定领域数据集。

平台&硬件

  • Ubuntu20.04
  • 显卡:M40 24G + 2080TI 22G
  • 微调框架:LLaMA-Factory

LLaMA-Factory安装

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

启动项目所提供的webui操作界面(因为我这里有两张型号不一样的显卡,经过测试不能混合训练,因此指定使用单卡2080TI):

export CUDA_VISIBLE_DEVICES=0
llamafactory-cli webui

URL:http://localhost:7860/

如果报错ValueError: Unknown scheme for proxy URL URL('socks://127.0.0.1:7897/')
解决方案参考解决openai调用出现的valueerror: unknown scheme for proxy url url(‘socks://127.0.0.1:7890/‘),使用下面命令查看系统的代理设置

env|grep -i proxy

看看有没有出现下面的all_proxy的设置。

no_proxy=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,::1
https_proxy=http://127.0.0.1:7897/
NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,::1
HTTPS_PROXY=http://127.0.0.1:7897/
HTTP_PROXY=http://127.0.0.1:7897/
http_proxy=http://127.0.0.1:7897/
ALL_PROXY=socks://127.0.0.1:7897/
all_proxy=socks://127.0.0.1:7897/

如果有all_proxy的设置,使用下面命令设置为空就行。(原理未知)

export ALL_PROXY=''
export all_proxy=''

hfd下载hugging face模型

以Qwen/Qwen2.5-7B-Instruct为例
不确定模型的名字的话,打开链接https://hf-mirror.com/api/models,搜相应的模型名字,比如我这里直接搜Qwen2.5-7B-Instruct,然后得知模型全称是Qwen/Qwen2.5-7B-Instruct

sudo apt install aria2
pip install -U huggingface_hub
wget https://hf-mirror.com/hfd/hfd.sh
chmod a+x hfd.sh
export HF_ENDPOINT=https://hf-mirror.com
./hfd.sh Qwen/Qwen2.5-7B-Instruct --tool aria2c -x 10

自我认知微调

主要是配置以下参数:

  • 模型名称:Qwen2.5-7B-Instruct
  • 模型路径:配置为fd下载的本地模型路径
    其他参数暂时用默认,训练轮数设置为20。开始训练。
    训练完成后,选择相应的检查点路径,随后测试chat。
    最后export导出模型。

Alpaca数据集指令监督微调

按Alpaca格式准备好数据集

[{"instruction": "人类指令(必填)","input": "人类输入(选填)","output": "模型回答(必填)","system": "系统提示词(选填)","history": [["第一轮指令(选填)", "第一轮回答(选填)"],["第二轮指令(选填)", "第二轮回答(选填)"]]}
]

复制数据集到data目录下,修改data/dataset_info.json
举例:

"数据集名称": {"file_name": "data.json","columns": {"prompt": "instruction","query": "input","response": "output","system": "system","history": "history"}
}

如果数据集没有相应的键,就先去掉data/dataset_info.json对应的键。比如我的数据集没有history,我就把data/dataset_info.json关于history的部分去掉。

断点续训

  1. 配置检查点路径为对应checkpoint对应位置(一般在saves文件夹)
  2. 如果有训练参数文件,加载训练参数(下次开始训练前可以点击保存,在config文件夹可以找到)
  3. 配置输出目录配置路径
  4. 点击预览命令,主要查看adapter_name_or_pathoutput_dir参数

参考:
使用微调神器LLaMA-Factory轻松改变大语言模型的自我认知
使用hfd工具快速下载huggingface模型权重-应该是目前最快的

http://www.xdnf.cn/news/156259.html

相关文章:

  • shell语言核心语法
  • RabbitMQ全栈实践手册:从零搭建消息中间件到SpringAMQP高阶玩法
  • 数据结构和算法(九)--红黑树
  • C++?类和对象(下)!!!
  • 精益数据分析(27/126):剖析用户价值与商业模式拼图
  • 观察者模式 (Observer Pattern)
  • 游戏引擎学习第246天:将 Worker 上下文移到主线程创建
  • 如何给GitHub项目提PR(踩坑记录
  • windows下查看idea运行的进程占的JVM情况工具
  • olama部署deepseek模型
  • 从后端研发角度出发,使用k8s部署业务系统
  • gradle-缓存、依赖、初始化脚本、仓库配置目录详解
  • SpringBoot实现的后端开发
  • Ubuntu20.04 Ollama 配置相关
  • c++初始化数组
  • C语言中位段的应用
  • 【教程】Docker运行gitlab容器
  • 数据结构和算法(八)--2-3查找树
  • 什么时候使用Python 虚拟环境(venv)而不用conda
  • Qt软件开发-摄像头检测使用软件V1.1
  • python 与Redis操作整理
  • 血泪之arduino库文件找不到ArduinoJSON.h: No such file or directory错误原因
  • 学习记录:DAY18
  • AI日报 - 2025年04月26日
  • Yocto项目实战教程-第8章-树莓派启动定制镜像-8.4小节-使用Wic工具创建分区镜像
  • 毕业项目-基于java的入侵检测与防御系统
  • 字节 AI 原生 IDE Trae 发布 v1.3.0,新增 MCP 支持
  • 使用MyBatis注解方式的完整示例,涵盖CRUD、动态SQL、分页、事务管理等场景,并附详细注释和对比表格
  • Java爬虫入门:从网页抓取到数据提取(正则表达式篇)
  • 单例设计模式之懒汉式以及线程安全问题