使用LLaMA-Factory快速训练自己的专用大模型

news2025/3/12 21:32:55

本文聊聊 LLama-Factory,它是一个开源框架,这里头可以找到一系列预制的组件和模板,让你不用从零开始,就能训练出自己的语言模型(微调)。不管是聊天机器人,还是文章生成器,甚至是问答系统,都能搞定。而且,LLama-Factory 还支持多种框架和数据集,这意味着你可以根据项目需求灵活选择,把精力集中在真正重要的事情上——创造价值。

使用LLama-Factory,常见的就是训练LoRA模型,增强模型在某方面的生成能力。本教程将以增强 GLM-4-9B-Chat 模型的脑筋急转弯能力为例,演示LoRA模型的微调方法。

环境准备

本地使用

LLama-Factory 的安装比较简单,大家直接看官网页面就够了:

github.com/hiyouga/LLa…

云镜像

如果你本地没有一张好显卡,也不想费劲的安装,就想马上开始训练。

可以试试我的云镜像,开箱即用:www.haoee.com/application…

平台注册就送一定额度,可以完成本教程的的演示示例。

镜像已经内置了几个基础模型,大都在6B-9B,单卡24G显存即可完成LoRA微调。

如果要微调更大的模型,则需要更多的显卡和显存,请在购买GPU时选择合适的显卡和数量。

已经内置的模型:Yi-1.5-9B-Chat、Qwen2-7B、meta-llama-3.1-8b-instruct、glm-4-9b-chat、chatglm3-6b

如果缺少你需要的模型,可以给我反馈。

假设你已经解决了程序运行环境问题,下边将开始讲解 LLama-Factory 的使用方法。

LLama-Factory 直接命令行和Web页面训练,为了方便入门,这篇文章以Web页面训练为例。

选择基础模型

语言:zh,因为我们要微调的是中文模型。

模型选择:GLM-4-9B-Chat

模型路径:/root/LLaMA-Factory/models/glm-4-9b-chat,默认会自动下载模型,不过速度可能比较慢,我们的镜像中已经下载好这个模型,所以直接填写路径更快。

微调方法:lora

准备训练数据集

LLaMA-Factory自带了一些常用的数据集,如果你使用的数据集不在里边,可以修改 data/dataset_info.json,在其中增加自己的数据集。

这里我使用的是一个弱智吧问答数据集,数据集的格式是 alpaca,来源:huggingface.co/datasets/Lo…

训练参数设置

训练参数需要根据实际训练效果进行调整,这里给出一个参考设置。

数据集:请根据你的需要选择,这里选择我上边定义的 ruozhiba_qa。

学习率:1e-4,设置的大点,有利于模型拟合。

计算类型:如果显卡较旧,建议计算类型选择fp16;如果显卡比较新,建议选择bf16。

梯度累计:2,有利于模型拟合。

LoRA+学习率比例:16,相比LoRA,LoRA+续写效果更好。

LoRA作用模块:all 表示将LoRA层挂载到模型的所有线性层上,提高拟合效果。

开始训练

点击“开始”按钮,可以在页面上看到训练进度和训练效果。

根据训练方法和训练数据的大小,训练需要的时间不定。

推理测试

在“检查点路径”这里加载刚刚训练的LoRA模型,然后切换到“Chat”页签,点击“加载模型”。

测试完毕后,记得点击“卸载模型”,因为模型占用显存比较大,不释放的话,再进行别的任务可能会出错。

对比训练前后的变化:

训练前:

训练后:

这是一个比较感性的测试,如果需要更为正式的效果评估,请使用“Evaluate & Predict” 选择合适的评测数据集进行评估。

合并导出模型

有时候我们需要把模型导出来放在别的地方使用,输出一个完整的模型文件,而不是基础模型+LoRA模型。

检查点路径:训练出来的LoRA模型

导出目录:设置一个服务器上的路径,新的模型会存放到这里。

最后点击“开始导出”就行了。导出完毕后,请前往服务器相关的路径中下载模型。

LLaMA-Factory 架构

最后送大家一张 LLaMA-Factory 的架构图,方便理解其原理。

图片左侧:显示了 LLaMA-Factory 的架构,分为四个主要部分:LlamaBoard、Trainer、Model Loader 和 Data Worker。

  • LlamaBoard:用于参数配置和训练状态监视。
  • Trainer:负责优化和训练方法的选择,如 LoRA+、GaLoRe、Pre-train、SFT 等。
  • Model Loader:负责模型初始化、补丁、量化和适配器等功能。
  • Data Worker:负责加载、对齐、预处理和合并训练数据。

图片右侧:列出了支持的流行语言模型和大小,以及支持的训练方法。

  • 支持的语言模型和大小:LLaMA、LLaMA-2、LLaMA-3、Command-R、Mistral/Mixtral、OLMo、Phi-1.5/2、Qwen、DeepSeek (MoE)、Falcon、Gemma/CodeGemma 和 StarCoder2。
  • 支持的训练方法:全量调整、冻结调整、LoRA、QLoRA、奖励建模、PPO 训练、DPO 训练、ORPO 训练。

总体上来说,LLama-Factory 的使用还是挺顺利的,没有太多的坑。

作者:萤火架构
链接:https://juejin.cn/post/7409974426371047439

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物联网能源管理平台

能源管理平台可以对接各种物联网设备,感兴趣的朋友可根据下方方式联系获取演示账号 1.介绍 2.智慧照明接入 设备远程控制,灯光亮度感应等模式设置,用电耗能分析 3.温控器接入 温控器(空调面板)接入,实现…

GB/T28181规范和JT1078交通部标差异

技术背景 好多开发者区分不太清楚GB/T28181和JT1078规范,实际上,二者在规范定义、技术特点、过检认证以及应用场景等方面均存在显著差异。两者各有其适用领域和优势,但在某些特定场景下也可能需要相互协作以实现更全面的监控和管理。 规范定…

C#复习之封装_静态成员

知识点一 静态成员的基本概念 知识点二 早已出现的静态成员 知识点四 静态成员的使用 知识点五 为什么可以直接点出来 //记住! //程序中是不能无中生有的 //我们要使用的对象,变量,函数都是要在内存中分配内存空间的 //之所以要实例化对象…

TWS蓝牙耳机发展历史以及涉及的相关技术知识

TWS(True Wireless Stereo)蓝牙耳机是近年来迅速发展的消费电子产品之一。它们的诞生和发展经历了多个阶段,并涉及到多项关键技术。以下是 TWS 蓝牙耳机的发展历史及相关技术知识的详细解析。 1. TWS 蓝牙耳机的发展历史 1.1 初期阶段(2014年之前) 在 TWS 蓝牙耳机出现之…

老师怎样用微信发布月考成绩?

每当月考结束,老师们就开始了一项繁琐的任务——将成绩单一一私信给每位学生的家长。这不仅耗时耗力,还容易出错。家长们焦急等待,老师们则在电脑前忙碌着,一张张成绩单,一条条信息,重复的工作让人疲惫不堪…

Unity(2022.3.41LTS) - UI详细介绍-Scrollbar(滚动条)

目录 零.简介 一、基本功能与用途 二、组件介绍 三、使用方法 四、优化和注意事项 五.和滑动条的区别 零.简介 在 Unity 中,滚动条(Scrollbar)是一种用于实现滚动功能的 UI 组件。 一、基本功能与用途 滚动内容:主要用于…

【重学 MySQL】五、MySQL 的卸载

【重学 MySQL】五、MySQL 的卸载 停止MySQL服务卸载MySQL程序删除残余文件清理注册表删除环境变量配置重启电脑 MySQL的卸载过程需要仔细操作,以确保彻底卸载并清理所有相关文件和配置。 停止MySQL服务 打开任务管理器:右键点击任务栏空白处&#xff0…

模组级存储与嵌入式存储的千差万别

雷龙在多年销售CS创世 SD NAND(也称:迷你型eMMC,小尺寸/小容量eMMC,贴片式T卡,贴片式TF卡,贴片式SD卡等)的过程中,经常有被用户问到:SD NAND 与 TF卡 到底有哪些区别呢&a…

动态路由和路由导航守卫及其案例分析

为什么需要动态路由? 动态路由其实用的不多,在实际开发中,如果遇到权限分配问题,比如对于一个公司人员的后台管理系统,那对不同成员的权限肯定不同,对于人事部,他们有权限进入成员表对人员的流…

【网络安全】XSS漏洞挖掘Tip

未经许可,不得转载。 某网页存在错误信息,包含在div标签内: 检查此页面的源代码以获取id属性: 将id属性作为 GET 参数进行测试,例如在 URL 中添加error_messagehelloworld: 可以看到,参数被接受…

流媒体技术革新,EasyCVR视频汇聚平台赋能视频监控全面升级

随着科技的飞速发展,流媒体技术和视频监控正经历着前所未有的变革与融合。本文将从流媒体技术的新兴趋势出发,探讨其与视频监控领域的深度结合,以及这一融合所带来的创新与发展。 一、流媒体技术的新兴趋势 1、5G网络的广泛应用 5G网络以其…

AI驱动测试管理工具会有哪些发展前景呢?

在软件测试领域,人工智能(AI)的出现犹如一场技术革命,改变了传统的测试管理方式。随着AI技术的迅速发展,它将如何进一步提升测试管理的效率与准确性?未来的AI驱动测试管理工具又会带来哪些令人期待的创新呢…

unittest | 使用unittest模块来测试logging日志模块功能

我们在这篇文章实现了在项目工程中编写一个logging模块,但是我们如何确定我们编写的模块功能的是否正常? 你可能想到将全部代码写完后运行测试,但这是一个非常不好的习惯。❌ 最好的方式,是每写出来一个功能或者方法就对它进行测试&#x…

MySQL 存储引擎有哪些?InnoDB 和 MyISAM 存储引擎有什么区别?

MySQL 存储引擎有哪些? MySQL 存储引擎主要负责查询的执行和数据的存储,存储引擎主要有 InnoDB,MyISAM,Memery InnoDB 是 MySQL 默认的存储引擎,支持事务和行级锁,以及外键的约束,具有事务提交…

揭秘推荐算法:深度学习如何读懂你的购物心思

时间:2024年09月03日 作者:小蒋聊技术 邮箱:wei_wei10163.com 微信:wei_wei10 音频:https://xima.tv/1_L8HH40?_sonic0 希望大家帮个忙!如果大家有工作机会,希望帮小蒋内推一下&#xff0c…

帅地:秋招入职腾讯,后裸辞创业年入百万,一位全职程序员博主的第六年

这是《开发者说》的第17期,这次我们采访的是知名的程序员博主:帅地。 帅地从大学开始接触公众号,在大学毕业时就沉淀了10w垂直粉丝,月入近10w。在秋招阶段,帅地靠扎实的算法基础和技术功底顺利入职腾讯。“还没折腾够”…

【分布式注册中心】NACOS_2.3.0部署与实战

部署 一 准备 1 依赖:MYSQL 2 创建数据库 CREATE database if NOT EXISTS nacos default character set utf8mb4 collate utf8mb4_unicode_ci; 3 导入初始化SQL https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/mysql-schema.sql…

了解Spring Data JPA

1、Spring Data JPA 1.1、概述 Spring Data JPA 是 Spring 基于JPA 规范的基础上封装的⼀套 JPA 应⽤框架,可使开发者⽤极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常⽤功能!学习并使⽤Spring Data JPA 可以极⼤提⾼开发效率…

cefsharp128_cef128_chromium6613_x64_h264版本抢险体验

一、本博测试版本cef128及兼容性测试 1.1 版本 128.0.6613.x (全网保持最新更新测试体验) 感谢您:关注我,关注栏目,总有您想要的资源,推荐好友有优惠 1.2 兼容性测试,支持h264 1.3 视频播放测试 版本兼容 cef128.xx.xx <

哈希 详解

目录 1. “哈希”是什么&#xff1f; 2. 哈希冲突 3. 哈希函数 3.1 设计原则 3.2 常见哈希函数 4. 解决哈希冲突的两种常见方法 4.1 闭散列 4.2 开散列 4.3 散列表的扩容问题 5. 哈希表的实现 并 封装模拟实现unordered系列容器 6. 哈希的应用 6.1 位图 -- bitset …