LLaMA-Factory(二)界面解析

这里写目录标题

  • 1. 基础选项
    • 语言
    • 模型选择
    • 模型路径
    • 微调方法
    • 检查点路径
    • 量化等级
    • 量化方法
    • 提示模板
    • RoPE
    • 加速方式
  • 2.模型训练界面
    • 训练方式
    • 数据集
    • 超参数设置
    • 其他参数
    • 部分参数设置
    • LoRA参数设置
    • RLHF参数设置
    • GaLore参数设置
    • BAdam参数设置
    • 训练
  • 3.评估预测界面
  • 4.Chat界面
  • 5.导出Export界面

1. 基础选项

在这里插入图片描述

语言

可以选择英文、俄语、中文、韩语四种
在这里插入图片描述

模型选择

可以选择不同模型,选择后若不配置路径默认从Hugging face上下载
在这里插入图片描述

模型路径

此处可以配置自己下载的路径而不使用Huggingface上下载的
在这里插入图片描述

微调方法

  1. Full微调:Full微调是指在微调过程中更新整个模型的所有参数。这意味着所有的层和参数都会被更新,并且在微调期间都会参与训练。Full微调通常用于对模型进行全面的调整,以适应新的任务或领域。

  2. Freeze微调:Freeze微调是指在微调过程中冻结(不更新)部分模型的参数。这些被冻结的参数在微调期间将保持不变。通常,我们会选择冻结模型的底层(低级的)部分,而只更新模型的高层(高级的)参数。这样做是因为底层参数包含了一些通用的语言表示,而高层参数则更负责进行特定任务的学习。

  3. LORa微调:LORa(Layer-wise Optimal Relevance Adjustment)是一种特定的微调策略。它通过在不同层之间引入可学习的关联系数,来调整模型在每个层级上的相关性。这种方法允许不同层级之间的信息传递和调整,以更好地适应微调任务。LORa微调可以通过在微调过程中训练这些关联系数来实现。

这些微调策略的选择取决于不同的需求和情况。Full微调适用于全面调整模型的情况,而Freeze微调适用于只关注特定任务的情况。LORa微调则提供了一种更加灵活的方式来调整模型在不同层级上的相关性。
在这里插入图片描述

检查点路径

待更新

在这里插入图片描述

量化等级

模型量化(Quantization)是一种用于通过修改权重的精度来减小大型神经网络(包括大型语言模型)大小的技术。但在某些情况下,可以使用明显较低的精度(例如INT8)来减小模型的总体大小,从而允许其使用功能较弱的硬件来运行,同时其能力和准确性可接受地降低。实际上,对于大模型最常见的就是8bits量化(FP8/INT8)和4bits量化(FP4/NF4/INT4)。

可以根据模型Readme.md中查看对应使用的量化等级。也可以使用Chat界面查看哪种读取方式可以正确加载。如果不确定一版可以选择None。
在这里插入图片描述

量化方法

上一篇文章有下载bitsandbytes包,其余HQQ与EETQ方法待定更新。
在这里插入图片描述

提示模板

根据模型选择不同模板,此处选择通义千问的Qwen。
在这里插入图片描述

RoPE

RoPE的目标:构建一个位置相关的投影矩阵, 使得
( R m q ) ⊤ ( R n k ) = q ⊤ R m ⊤ R n k = q ⊤ R n − m k \left(\mathbf{R}_m\mathbf{q}\right)^\top\left(\mathbf{R}_n\mathbf{k}\right)=\mathbf{q}^\top\mathbf{R}_m^\top\mathbf{R}_n\mathbf{k}=\mathbf{q}^\top\mathbf{R}_{n-m}\mathbf{k} (Rmq)(Rnk)=qRmRnk=qRnmk

对位置编码的转换称为位置插值。在这一步中,我们将位置索引从 [ 0 , L ′ ) \left[0, L^{\prime}\right)[0,L

)减小到 [ 0 , L ) [0, \mathrm{~L})[0, L),以匹配计算 RoPE 之前的原始索引范围。
因此,作为 RoPE 的输入,任意两个标记之间的最大相对距离从 L ′ L^{\prime}L

减小到 L LL 。由于我们在扩展之前和之后对位置索引和相对距离的范围进行了对齐,减轻了上下文窗口扩展对注意力得分计算的影响,这使得模型更容易适应。
为了进一步证明这一点,下面的定理表明插值后的注意力得分具有良好的性质:

此处我们一般选择none
在这里插入图片描述

加速方式

选择auto
在这里插入图片描述

2.模型训练界面

在这里插入图片描述

训练方式

SFT:
监督微调(Supervised Fine-Tuning, SFT)是对已经预训练的模型进行特定任务的训练,以提高其在该任务上的表现。预训练模型通常在大量通用数据上进行训练,学到广泛的语言知识和特征。在SFT过程中,利用特定任务的数据,对模型进行进一步调整,使其更适合该任务。
PPO:
PPO算法的具体步骤是基于对策略梯度方法的改进,它主要包括以下几个关键的步骤:
1、收集数据:通过在环境中执行当前策略(policy)来收集一组交互数据。这些数据包括状态(state)、动作(action)、奖励(reward)以及可能的下一个状态。
2、计算优势估计:为了评价一个动作相对于平均水平的好坏,需要计算优势函数(advantage function)。这通常是通过某种形式的时间差分(TD)估计或者广义优势估计(GAE)来完成的。
3、优化目标函数:PPO算法使用一个特殊设计的目标函数,这个函数涉及到概率比率
表示旧策略。目标函数的形式通常为:
其中,是优势函数的估计是一个小的正数(如0.1或0.2),clip 函数限制了概率比率
(θ)的变化范围,防止更新步骤过大。
4、更新策略:使用梯度上升方法来更新策略参数,即 ,其中是学习率。
5、重复步骤:使用新的策略参数重复以上步骤,直到满足某些停止准则,比如策略性能不再提升或者已经达到了一定的迭代次数。
DPO:
irect Preference Optimization (DPO) 是一种专为大型语言模型(LLMs)设计的训练方法,旨在通过人类偏好数据来优化模型,而无需使用复杂的强化学习算法(如Proximal Policy Optimization, PPO)。DPO 的核心思想是通过偏好数据直接调整模型参数,绕过显式奖励模型的拟合以及复杂的强化学习优化过程。这种简化的训练方法不仅提高了训练效率,还避免了传统 RLHF 方法中常见的不稳定性。
KTO:
本文受前景理论(prospect theory)启发,提出人类感知损失函数(human-aware loss functions)的概念,并进一步提出了KTO(Kahneman-Tversky Optimization)算法。KTO不需要偏好数据,可以直接利用二元信号标记的数据来训练算法,对于负样本更加敏感。实验表明,KTO算法在一定参数范围内能够超过DPO算法,并且KTO可以处理数据正负样本不平衡的情况。同时,在跳过SFT阶段的情况下,直接使用KTO相比于直接使用 DPO,效果有很大提升。在数据正负样本比例失衡/偏好数据有非传递性/偏好数据有噪声/的情况下,使用KTO可能是更好的选择。
在这里插入图片描述

数据集

选择数据的文件夹及对应数据集这里选择中文微调数据集alpaca_zh_demo
数据集存放在data文件夹下,添加新数据集需要修改data_info.json以及其他json文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

超参数设置

深度学习超参数根据习惯修改,采用默认
批处理大小*梯度累积=每多少个样本更新一次参数
在这里插入图片描述

其他参数

预热选择4
在这里插入图片描述

部分参数设置

在这里插入图片描述

LoRA参数设置

在这里插入图片描述

RLHF参数设置

在这里插入图片描述

GaLore参数设置

在这里插入图片描述

BAdam参数设置

在这里插入图片描述

训练

在这里插入图片描述
点击保存训练参数后按开始就可以开始训练
预览命令
在这里插入图片描述

3.评估预测界面

待定更新

4.Chat界面

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.导出Export界面

模型训练后导出
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SRE 与 DevOps记录

flashcat https://flashcat.cloud

Python入门:4.Python中的运算符

引言 Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。 1. 算术运…

蓝桥杯物联网开发板硬件组成

第一节 开发板简介 物联网设计与开发竞赛实训平台由蓝桥杯大赛技术支持单位北京四梯科技有限公司设计和生产,该产品可用于参加蓝桥杯物联网设计与开发赛道的竞赛实训或院校相关课程的 实践教学环节。 开发板基于STM32WLE5无线微控制器设计,芯片提供了25…

ARM异常处理 M33

1. ARMv8-M异常类型及其详细解释 ARMv8-M Exception分为两类:预定义系统异常(015)和外部中断(1616N)。 各种异常的状态可以通过Status bit查看,获取更信息的异常原因: CFSR是由UFSR、BFSR和MMFSR组成: 下面列举HFSR、MMFSR、…

百度热力图数据处理,可直接用于论文

数据简介1、CSV点数据2、SHP数据3、TIF数据4、png图片或标准经纬度出图5、案例6、论文的参考方向 其他数据处理/程序/指导!!!(1)街景数据获取(2)街景语义分割后像素提取,指标计算代码…

利用Gurobi追溯模型不可行原因的四种方案及详细案例

文章目录 1. 引言2. 追溯不可行集的四种方法2.1 通过约束增减进行判断2.2 通过computeIIS函数获得冲突集2.3 利用 feasRelaxS() 或 feasRelax() 函数辅助排查2.4 利用 IIS Force 属性1. 引言 模型不可行是一个让工程师头疼的问题,对于复杂模型而言,导致模型不可行的原因可能…

数据流图和流程图的区别

在结构化建模中,数据流图和流程图都是非常重要的工具,它们为开发人员提供了强大的手段来分析和设计系统。尽管两者在表面上看起来有些相似,但它们在功能、用途和表达方式上存在显著的区别。本文将详细探讨数据流图和流程图的区别,…

《计算机组成及汇编语言原理》阅读笔记:p48-p81

《计算机组成及汇编语言原理》学习第 4 天,p48-p81 总结,总计 34 页。 一、技术总结 1.CISC vs RISC p49, complex instruction set computing For example, a complex instruction set computing (CISC) chip may be able to move a lar…

GitLab的安装与卸载

目录 GitLab安装 GitLab使用 使用前可选操作 修改web端口 修改Prometheus端口 使用方法 GitLab的卸载 环境说明 系统版本 CentOS 7.2 x86_64 软件版本 gitlab-ce-10.8.4 GitLab安装 Gitlab的rpm包集成了它需要的软件,简化了安装步骤,所以直接…

LAUNCHXL_F28379D_Workspace_CCS124

/// 安装 controlSUITE C:\ti\controlSUITE\device_support\F2837xD\v210 /// /// /// /// /// 删除 /// /// /// >> Compilation failure source_common/subdir_rules.mk:9: recipe for target source_common/F2837xD_Adc.obj failed "C:/ti/controlSUITE/devic…

封装(2)

大家好,今天我们来介绍一下包的概念,知道包的作用可以更好的面对今后的开发,那么我们就来看看包是什么东西吧。 6.3封装扩展之包 6.3.1包的概念 在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组…

Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印

图样: 就可以导入了 上代码 import tkinter as tk from tkinter import ttk import sqlite3 from datetime import datetime from tkinter import messagebox, filedialog import pandas as pd import reclass OrderSystem:def __init__(self, root):self.root r…

C++---------随机库,standfor库

意外修改原始数据 问题描述 由于引用参数允许函数直接修改原始变量,这可能会导致意外的修改。如果函数的使用者没有意识到函数会修改传入的参数,就可能引发错误。例如,有一个函数看起来只是用于打印一个变量的值,但实际上却修改了…

维克日记:私密写作新选择,轻松记录生活点滴

作为一款专注于私密写作的数字日记本,维克日记以其独特的设计理念和全面的功能特性,正在重新定义现代人记录生活的方式。这款软件不仅提供了清新简约的界面设计,更重要的是它完全不需要繁琐的设置就能立即开始写作。对于热爱写作的用户来说&a…

0009.基于springboot+layui的ERP企业进销存管理系统

一、系统说明 基于springbootlayui的ERP企业进销存管理系统,系统功能齐全, 代码简洁易懂,适合小白学编程,课程设计,毕业设计。 二、系统架构 前端:html| layui 后端:springboot | mybatis| thymeleaf 环境:jdk1.8 |…

3.4 stm32系列:定时器(PWM、定时中断)

一、定时器概述 1.1 软件定时原理 使用纯软件(CPU死等)的方式实现定时(延时)功能; 不精准的延迟: /* 微秒级延迟函数* 不精准* stm32存在压出栈过程需要消耗时间* 存在流水线,执行时间不确定…

【XSSed】攻防实战全记录

最后救你一次,不要让欲望击溃你的意志 首先整体浏览网站 进入Level1 Basic XSS 首先整体浏览网站 对源码进行分析 漏洞产生于如下代码段: echo($_GET[‘q’]); 直接将用户输入插入了html页面,没有任何过滤。 构造普通payload&#xff1…

2.6 网络面试问题

tcp 与 udp的区别 1.tcp 是基于连接的 UDP是基于数据包 2.处理并发的方式不通 a.tcp用epoll进行监听的 b. udp是模拟tcp的连接过程,服务端开放一个IP端口,收到连接后,服务端用另一个IP和端口发包给客户端。 3.tcp根据协议MTU黏包及…

在Visual Studio 2022中配置C++计算机视觉库Opencv

本文主要介绍下载OpenCV库以及在Visual Studio 2022中配置、编译C计算机视觉库OpenCv的方法 1.Opencv库安装 ​ 首先,我们需要安装OpenCV库,作为一个开源库,我们可以直接在其官网下载Releases - OpenCV,如果官网下载过慢&#x…

【恶意软件检测】一种基于API语义提取的Android恶意软件检测方法(期刊等级:CCF-B、Q2)

一种基于API语义提取的Android恶意软件检测方法 A novel Android malware detection method with API semantics extraction 摘要 由于Android框架和恶意软件的持续演变,使用过时应用程序训练的传统恶意软件检测方法在有效识别复杂演化的恶意软件方面已显不足。为…