本地离线模型搭建指南-LLaMA-Factory训练框架及工具
搭建一个本地中文大语言模型(LLM)涉及多个关键步骤,从选择模型底座,到运行机器和框架,再到具体的架构实现和训练方式。以下是一个详细的指南,帮助你从零开始构建和运行一个中文大语言模型。
本地离线模型搭建指南将按照以下四个部分展开
- 中文大语言模型底座选择依据
- 本地运行显卡选择
- RAG架构实现
- LLaMA-Factory训练框架及工具
4 训练架构及工具
4.1 为什么要使用LLaMA-Factory进行训练
LLaMA-Factory是一个专为大模型训练设计的开源平台,具有以下几个优势:
- 快速学习和应用: 对于没有微调大模型经验的用户,通过学习LLaMA-Factory后,可以快速地训练出自己需要的模型。
- 理解微调技术: 对于技术人员,LLaMA-Factory提供了一个很好的学习平台,通过阅读源码,可以深入了解大模型的微调技术。
- 捷径: LLaMA-Factory为用户提供了一条走向大模型微调的捷径,使用户能够快速掌握相关概念和技术。
4.2 LLaMA-Factory训练所能解决的问题
- 大模型的实际应用: 企业想要利用大模型进行实际应用时,必须懂得微调的过程,而LLaMA-Factory提供了一个实用的平台来实现这一点。
- 个性化模型训练: 用户可以通过LLaMA-Factory快速训练出适合自己需求的模型,满足不同领域的具体要求。
- 技术理解和提升: 技术人员可以通过LLaMA-Factory的源码学习,进一步理解大模型的微调技术,并应用于实际项目中。
4.3 LLaMA-Factory的训练步骤和方法
4.3.1 模型训练阶段
- 预训练阶段(Pre-Training):
预训练是大模型训练的初始阶段,主要目的是通过大规模数据集训练基础模型。这一步是最消耗计算资源的,通常需要使用大量的计算集群。 - 监督微调阶段(Supervised Finetuning, SFT):
这个阶段的训练数据质量较高,通常由人工筛选或生成。经过这个阶段的模型已经具备上线的能力。 - 基于人类反馈的强化学习(RLHF):
- 奖励建模阶段(Reward Modeling): 在这个阶段,模型不仅输出预测的内容,还输出一个奖励值(评分值),用于后续的强化学习。
- 强化学习阶段(Reinforcement Learning): 通过奖励模型对多个输出进行评分,并基于评分进行加权,反向传播调整模型参数。
4.3.2 模型训练模式
根据具体需求,可以选择不同的训练模式:
- 模式一: 基于base模型 + 领域任务的SFT
- 模式二: 基于base模型 + 领域数据 continue pre-train + 领域任务SFT
- 模式三: 基于base模型 + 领域数据 continue pre-train + 通用任务SFT + 领域任务SFT
- 模式四: 基于base模型 + 领域数据 continue pre-train + 通用任务与领域任务混合SFT
- 模式五: 基于base模型 + 领域数据 continue pre-train(混入SFT数据 + 通用任务与领域任务混合SFT)
- 模式六: 基于chat模型 + 领域任务SFT
- 模式七: 基于chat模型 + 领域数据 continue pre-train + 领域任务SFT
4.3.3 是否需要继续预训练(continue pre-train)
- 数据集差异大: 如果领域任务的数据集与预训练的数据集差异较大,建议进行continue pre-train。
- 数据量较大: 如果领域任务的数据量较大(token在1B以上),并且只追求领域任务的效果,也建议进行continue pre-train。
4.3.4 选择chat模型还是base模型
- base模型: 如果希望模型的通用能力不下降,建议选择base模型进行多任务混合训练。
- chat模型: 如果只追求领域任务的效果,可以选择chat模型进行领域任务的SFT。
4.4 实践建议
- 资源充足: 如只考虑领域任务效果,建议选择模式二;如考虑模型综合能力,建议选择模式五。
- 资源有限: 建议选择模式六。
- 一般情况下: 不进行RLHF微调。
4.5 开发工具库
LLaMA-Factory使用了一些关键的开发工具库,包括Transformers和PEFT库,后者提供了多种高效的微调方法,如LoRA、AdaLoRA、P-tuning等。
通过以上步骤和方法,用户可以有效地使用LLaMA-Factory进行大模型的微调训练,满足不同领域和任务的需求。
4.6 本地LLaMA-Factory训练模型实践运行配置
底座 | 包含模型 | 模型参数大小 | 机器配置 | 显存大小 | 是否可运行 |
---|---|---|---|---|---|
ChatGLM | ChatGLM3-6B | 6B | CPU 16核心 32G内存 | 无 | 未测试 |
ChatGLM | ChatGLM3-6B | 6B | 显卡4070Ti | 16G | 可以 |
ChatGLM | ChatGLM4-9B | 9B | 显卡4070Ti | 16G | 未测试 |
LLaMA | Chinese-LlaMA2 | 7B | 显卡3060Ti | 8G | 未测试 |
Qwen | Qwen1.5 | 7B | 显卡4070Ti | 16G | 可以 |
更多详细信息,请访问
从LLaMA-Factory项目认识微调
LLaMA-Factory QuickStart
5 结论
搭建本地中文大语言模型是一个复杂而系统的工程,涉及模型选择、硬件配置、框架选择、架构实现、训练工具和方法等多个方面。通过合理选择和配置,可以在本地成功搭建并运行一个高性能的中文大语言模型。
更多详细信息,请访问
从LLaMA-Factory项目认识微调
LLaMA-Factory QuickStart
相关文章:
本地离线模型搭建指南-LLaMA-Factory训练框架及工具
搭建一个本地中文大语言模型(LLM)涉及多个关键步骤,从选择模型底座,到运行机器和框架,再到具体的架构实现和训练方式。以下是一个详细的指南,帮助你从零开始构建和运行一个中文大语言模型。 本地离线模型搭…...
数智化金融采购系统特点
数智化金融采购系统是郑州信源公司结合众多金融行业采购特点,采用流程优化再造的理念,为银行、保险、证券、交易所等金额机构打造的细分行业产品,助力金融行业采购合规管理、风险防范、成本管理和效率提升。 系统特点 1、全业务覆盖&#x…...

使用 SwiftUI 为 macOS 创建类似于 App Store Connect 的选择器
文章目录 前言创建选择器组件使用选择器组件总结前言 最近,我一直在为我的应用开发一个全新的界面,它可以让你查看 TestFlight 上所有可用的构建,并允许你将它们添加到测试群组中。 作为这项工作的一部分,我需要创建一个组件,允许用户从特定构建中添加和删除测试群组。我…...

Python26 Lambda表达式
1.什么是lambda表达式 lambda 是 Python 中的一个关键字,用于定义简单的匿名函数。与 def 关键字定义的标准函数不同,lambda 函数主要用于需要一个函数对象作为参数的简短操作。lambda 函数的设计哲学是简洁,因此它只能包含一条表达式&#…...

2024年数据、自动化与智能计算国际学术会议(ICDAIC 2024)
全称:2024年数据、自动化与智能计算国际学术会议(ICDAIC 2024) 会议网址:http://www.icdaic.com 会议地点: 厦门 投稿邮箱:icdaicsub-conf.com投稿标题:ArticleTEL。投稿时请在邮件正文备注:学生投稿&#…...

cuda 学习笔记4
一 基本函数 在GPU上开辟空间,无论定义的数据是float还是int ,还是****gpu_int,分配空间的函数都是下面固定的形式 (void**)& 1.函数定义,global void 是配套使用的,是在GPU上定义,也就是GPU上执行,CPU上调用的函数…...

ZSWatch 开源项目介绍
前言 因为时不时逛 GitHub 会发现一些比较不错的开源项目,突发奇想想做一个专题,专门记录开源项目,内容不限于组件、框架以及 DIY 作品,希望能坚持下去,与此同时,也会选取其中的开源项目做专题分析。希望这…...

Ansible-综合练习-生产案例
斌的招儿 网上教程大多都是官网模板化的教程和文档,这里小斌用自己实际生产环境使用的例子给大家做一个详解。涉及到一整套ansible的使用,对于roles的使用,也仅涉及到tasks和files目录,方便大家快速上手并规范化管理。 0.环境配置…...
lombok关于构造器的注解的坑【避坑】
文章目录 背景问题问题解决 背景 平时,我们不定义构造器时,会自动创建一个无参的构造器。 当我们提供了任意有参构造器后,将不再自动创建无参构造器。 问题 为了方便创建对象并同时赋值,使用了全参构造器的注解NoArgsConstruct…...

指针并不是用来存储数据的,而是用来存储数据在内存中地址(内存操作/函数指针/指针函数)
推荐:1、4、5号书籍 1. 基本概念 首先,让小明了解指针的基本概念: 指针的定义:指针是一个变量,它存储的是另一个变量的地址。指针的声明:例如,int *p表示一个指向整数的指针变量p。 2. 形象…...
iso21434认证的意义
ISO 21434认证对于汽车行业具有深远的意义,主要体现在以下几个方面: 确保汽车网络安全:ISO 21434认证旨在确保汽车在设计和制造过程中能够抵御潜在的网络威胁和攻击。通过遵循该标准,汽车制造商能够开发出具备可靠网络安全能力的…...

分页处理封装+分页查询题目列表
文章目录 1.sun-club-common封装分页1.com/sunxiansheng/subject/common/eneity/PageInfo.java2.com/sunxiansheng/subject/common/eneity/PageResult.java 2.sun-club-application-controller1.SubjectInfoDTO.java 继承PageInfo并新增字段2.SubjectController.java 3.sun-clu…...
每天一个项目管理概念之WBS
项目管理中的工作分解结构(Work Breakdown Structure,简称WBS)是规划和管理项目的核心工具之一,它通过将复杂的项目任务细分为更小、更易管理的部分来提高项目执行的效率与效果。WBS不仅有助于明确项目范围,还为时间管…...
linux安装mysql8并查看密码
1. **下载RPM包**: wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 2. **安装RPM包**: sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm 3. **更新YUM缓存**: sudo yum makecache 4. **安装…...

[渗透测试] 任意文件读取漏洞
任意文件读取漏洞 概述 漏洞成因 存在读取文件的功能(Web应用开放了文件读取功能)读取文件的路径客户端可控(完全控制或者影响文件路径)没有对文件路径进行校验或者校验不严格导致被绕过输出文件内容 漏洞危害 下载服务器中的…...

sudo: /etc/init.d/ssh: command not found
在 WSL 中尝试启动 SSH 服务时遇到 sudo: /etc/init.d/ssh: command not found 错误 安装 OpenSSH 服务器 更新软件包列表 sudo apt update安装 OpenSSH 服务器 sudo apt install openssh-server启动 SSH 服务 在 WSL 2 上,服务管理与传统 Linux 系统有所不同。你可以手动启动…...

秋招倒计时?到底需要准备到什么程度?
秋招倒计时?需要准备到什么程度? 秋招,面向全国的毕业生,招聘的激烈程度可想而知!按照往年时间,秋招通常从八月初开始,九月黄金期,十月中后期。距今刚好差不多60天,时间其…...
6.26.4.1 基于交叉视角变换的未配准医学图像多视角分析
1. 介绍 许多医学成像任务使用来自多个视图或模式的数据,但很难有效地将这些数据结合起来。虽然多模态图像通常可以在神经网络中作为多个输入通道进行配准和处理,但来自不同视图的图像可能难以正确配准(例如,[2])。因此,大多数多视…...

62.指针和二维数组(2)
一.指针和二维数组 1.如a是一个二维数组,则数组中的第i行可以看作是一个一维数组,这个一维数组的数组名是a[i]。 2.a[i]代表二维数组中第i行的首个元素的地址,即a[i][0]的地址。 二.进一步思考 二维数组可以看作是数组的数组,本…...
学生表的DDL和DML
DDL -- 创建学生表 CREATE TABLE students (student_id INT PRIMARY KEY AUTO_INCREMENT,studentname VARCHAR(50),age INT,gender VARCHAR(10) );-- 创建课程表 CREATE TABLE courses (course_id INT PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(50) );-- 创建教师表 CR…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...