北航发布LlamaFactory,零代码大模型微调平台,一键快速实现大模型训练/微调/评估

LLama-Factory使用教程 注意,本地数据只能改成LLama-Factory接受的形式,即本地数据只能支持”promtp/input/output“这种对话的格式,不支持传统的文本分类/实体抽取/关系抽取等等schema数据,如果需要,请想办法改成对话形式的数据。和其他可选的改动信息,例如save_steps,per_device_train_batch_size等等。​ 你需要参考其中的一个文件和它的配置,例如:alpaca_gpt4_data_zh.json,训练和验证数据同样改成这种格式,并在。​ 基本流程/原理:将。 阅读详情

在大模型发展如火如荼的今天,训练和微调一个大模型对于绝大部分普通工程师来说仍然是一个难题。为了降低大模型训练、微调门槛,北航发布了LLAMA FACTORY,一个旨在普及LLMs微调的框架。

LLAMA FACTORY通过可扩展的模块统一了多种高效微调方法,使得数百种语言模型能够在资源有限的情况下进行高吞吐量的微调。此外,该框架还简化了常用的训练方法,如生成式预训练、监督式微调、基于人类反馈的强化学习以及直接偏好优化等。用户可以通过命令行或Web界面,以最小或无需编码的方式自定义和微调他们的语言模型。

论文地址:https://arxiv.org/pdf/2403.13372.pdf

Github地址:https://github.com/hiyouga/LLaMA-Factory

摘要

本文提出LLAMA FACTORY,一个集成了一套高效训练方法的统一大型语言模型微调框架。它允许用户灵活定制100+ LLM的微调,而无需通过内置的web UI LLAMA板进行编码。实证验证了该框架在语言建模和文本生成任务上的效率和有效性。目前已在Github上开源,地址https://github.com/hiyouga/LLaMA-Factory。

简介

LLAMA FACTORY是一个可以让大众轻松微调LLM的框架。它通过可扩展的模块统一了各种高效的微调方法,使数百个LLM能够以最小的资源和高吞吐量进行微调。此外,它简化了常用的训练方法,包括生成式预训练、监督式微调(SFT)、从人工反馈中强化学习(RLHF)和直接偏好优化(DPO)。用户可以利用命令行或web界面自定义和微调他们的LLM,只需很少或不需要编码工作。

LLAMA FACTORY由三个主要模块组成:Model Loader,Data Worker和Trainer。最小化了这些模块对特定模型和数据集的依赖,使该框架可以灵活扩展到数百个模型和数据集。首先建立一个模型注册中心,模型加载器可以通过识别精确的层,将适配器精确地附加到预训练模型。然后,我们开发了一个数据描述规范,允许数据工作者通过对齐相应的列来收集数据集。提供了高效微调方法的即插即用实现,使训练器能够通过替换默认方法来激活。这些设计允许这些模块在不同的训练方法中重用,显著降低了新方法的集成成本。

LLAMA FACTORY基于PyTorch实现。在此基础上,我们提供了一个具有更高抽象级别的开箱即用框架。此外,我们构建了LLAM,一个Gradio的界面,实现了在不需要编码工作的情况下对llm进行微调。

LLAMA FACTORY遵循Apache-2.0许可证开源。它已经在GitHub上开源,获得了13000多个stars和1600个fork,并在Hugging Face Hub上的LLAMA FACTORY上构建了数百个开源模型。

高效的微调技术

高效的LLM微调技术可以分为两大类:专注于优化的和旨在计算的。高效优化技术的主要目标是在保持成本最低的同时调整LLM的参数。另一方面,有效的计算方法寻求减少LLM中所需的计算的时间或空间。

高效优化

LLAMA FACTORY使用了多种高效的优化技术,包括freeze-tuning方法、gradient low-rank projection方法、low-rank adaptation方法、weight-decomposed low-rank adaptation方法和LoRA+方法。这些方法可以提高模型的训练效率和内存使用效率。

高效计算

LLAMA FACTORY是一个整合了多种高效计算技术的框架,包括混合精度训练、激活检查点、闪存注意力、S2注意力、量化策略和适配器技术。通过这些技术的结合,LLAMA FACTORY能够显著提高LLM的效率,将内存占用从每个参数18字节或8字节降低到仅为0.6字节。

LLAMA FACTORY架构

LLAMA FACTORY是由三个主要模块组成:Model Loader、Data Worker和Trainer。Model Loader为微调准备了各种架构,支持100多个LLM。Data Worker通过一个精心设计的流水线处理来自不同任务的数据,支持50多个数据集。Trainer统一了高效的微调方法,以适应不同的任务和数据集,提供了四种训练方法。LLAMA BOARD为上述模块提供了友好的可视化界面,使用户能够以无代码的方式配置和启动单独的LLM微调过程,并实时监控训练状态。

Model Loader

Model Loader是一个用于加载和初始化模型参数的框架。它包括四个组件:模型初始化、模型修补、模型量化和适配器附加。模型初始化使用Transformers库的AutoModel API来加载和初始化模型参数。模型修补通过替换模型的前向计算来实现flash attention和S 2 attention。模型量化可以将模型动态量化为8位或4位,支持多种后训练量化方法。适配器附加根据模型注册表自动识别适配器应该附加的层,并使用PEFT库来附加适配器。精度适应根据设备的能力处理预训练模型的浮点精度,使用不同的精度来加载模型参数。

Data Worker

LLAMA FACTORY是一个数据处理管道,包括数据集加载、数据集对齐、数据集合并和数据集预处理。它将不同任务的数据集标准化为统一格式,使我们能够在各种格式的数据集上微调模型。我们使用datasets库加载数据集,设计数据描述规范来统一数据集格式,提供多个聊天模板和分层序列打包等预处理方法。

Trainer

**高效训练。**将最先进的高效微调方法集成到Trainer中,包括LoRA+、GaLore。利用transformer的Trainer进行预训练和SFT,而采用TRL的Trainer进行RLHF和DPO。

**模型共享RLHF。**提出模型共享RLHF,使整个RLHF训练不需要多于一个预训练模型。我们首先训练一个适配器和一个 value head,该 value head具有奖励建模的目标函数,允许模型计算奖励分数。然后我们初始化另一个适配器和 value head,并用PPO算法训练它们。在训练期间,通过PEFT的set_adapter和disable_adapter api动态切换适配器和 value head,使预训练模型同时作为策略、值、参考和奖励模型。据我们所知,这是第一个在消费设备上支持RLHF训练的方法。

**分布式训练。**我们可以将上述Trainer与DeepSpeed 结合起来进行分布式训练。利用DeepSpeed ZeRO优化器,可以通过分区或卸载进一步减少内存消耗。

其他工具

推理加速**。**在推理过程中,我们重用data worker中的聊天模板来构建模型输入。我们提供了使用transformer对模型输出进行采样的支持和vLLM,两者都支持流解码。实现了一个openai风格的API,利用vLLM的异步LLM引擎和分页注意力来提供高吞吐量的并发推理服务,便于将微调的LLM部署到各种应用程序中。

**综合评价。**评估指标包括多项选择任务,如MMLU、CMMLU和C-Eval,以及计算文本相似度分数,如BLEU-4和ROUGE。

LLAMA BOARD:LLAMA FACTORY统一接口

LLAMA BOARD是一个基于Gradio的统一用户界面,允许用户在不编写任何代码的情况下自定义LLM的微调。它提供了简化的模型微调和推理服务,使用户可以轻松地利用100多个LLM和50多个数据集。LLAMA BOARD具有易于配置、可监控的训练、灵活的评估和多语言支持等特点。用户可以通过与Web界面交互来自定义微调参数,并可以实时监视训练进度。此外,LLAMA BOARD支持自动评估模型的文本相似度分数或通过与模型聊天进行人工评估。目前,LLAMA BOARD支持英语、俄语和中文三种语言。

实证研究

本文从两个角度对LLAMA FACTORY进行评估:1)训练效率,包括内存使用、吞吐量和困惑度;2)适应下游任务的效果。

训练效率

本文利用PubMed数据集进行实验,提取了约400,000个标记用于构建训练样本。通过fine-tune Gemma-2B、Llama2-7B和Llama2-13B模型,使用不同的fine-tuning方法进行比较。结果表明,QLoRA具有最低的内存占用,LoRA具有更高的吞吐量,GaLore在大型模型上具有更低的PPL,而LoRA在小型模型上具有优势。

下游任务微调

通过在下游任务上微调各种模型并比较它们的性能来进行评估。使用来自CNN/DM、XSum和AdGen三个代表性文本生成任务的2,000个示例和1,000个示例构建训练集和测试集。选择几个经过指令微调的模型,并使用不同的微调方法进行微调,包括全微调(FT)、GaLore、LoRA和4位QLoRA。微调后,计算每个任务的测试集上的ROUGE分数。将原始指令微调模型的分数作为基准。实验结果表明,LoRA和QLoRA在大多数情况下表现最佳,除了Llama2-7B和ChatGLM36B模型在CNN/DM和AdGen数据集上。这一现象突出了这些高效微调方法在适应特定任务中的有效性。此外,观察到Mistral-7B模型在英语数据集上表现更好,而Qwen1.5-7B模型在中文数据集上获得更高的分数。这些结果表明,微调模型的性能也与其在特定语言上的内在能力有关。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总结和未来工作

LLAMA FACTORY是一个统一的框架,可用于高效微调超过100个LLM模型。通过模块化设计,最小化模型、数据集和训练方法之间的依赖关系,并提供一种集成的方法来进行微调。此外,LLAMA BOARD提供了一个灵活的Web UI,可以在不需要编码的情况下进行自定义微调和评估LLM。该框架在语言建模和文本生成任务上得到了实证验证。未来,LLAMA FACTORY将与最先进的模型和高效微调技术保持同步,并探索更高级的并行训练策略和多模态高效微调LLM的可能性。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

Llama-factory详细基础使用说明 对于初入算法的童鞋来说,有的可能还不知道llama-factory是什么,只知道大模型用到了这个框架,这是不行的。LLaMA-Factory 是一个低代码的大规模语言模型(LLM)训练框架,它主要面向研究人员和开发者,旨在简化大型语言模型的微调、评估和部署过程。白话说就是集合了当下LLM领域各种好用的开源或者自研的框架以及工具,进行封装以及优化,简化使用方法,方便大家对大模型进行微调和评估部署等工作,降低了使用难度。包括推理框架vllm等(具体可以看官网哈,下面有地址)易用性 vs. 性能。 阅读详情

相关推荐

快速上手!LLaMa-Factory最新微调实践,轻松实现专属大模型

近日,源2.0开源大模型与LLaMA-Factory框架完成全面适配,用户通过LLaMA-Factory,即可快捷、高效地对不同参数规模的源2.0基础模型进行全量微调及高效微调,轻松实现专属大模型。

浪潮圈 1万+

一文彻底搞懂大模型 - LLaMA-Factory

提供了一套完整的工具和接口,使得用户能够轻松地对。

Python_cocola的博客 4442

LLaMA-Factory可视化界面微调chatglm2;LoRA训练微调模型 简单案例

lore模型训练 参考:https://github.com/huggingface/peft。

weixin_42357472的博客 7798

用通俗易懂的方式讲解大模型:一个强大的 LLM 微调工具 LLaMA Factory

LLM 微调,也叫做 Fine-tuning,是深度学习领域中常见的一种技术,用于将预先训练好的模型适配到特定的任务或数据集上。这个过程包括几个主要步骤:基础模型选择:选择一个通用文本数据的基础语言模型,使其能够理解基本的语言结构和语义。准备训练数据集:选择一个与目标任务相关的较小数据集。微调:在此数据集上训练模型,但通常使用较低的学习率,以保留基础模型学到的知识,同时学习目标任务的特定知识。评估:在目标任务的验证集上评估模型的性能,需要准备评估数据集。

2301_78285120的博客 1万+

腾讯会议视频过期了怎么办?亲测可用:用这个免费插件抢救你的会议录制与回放

本文提供了三种亲测有效的腾讯会议视频过期恢复方案,包括浏览器缓存提取、专业工具组合及预防性措施。特别推荐使用免费插件抢救过期会议录制与回放,帮助职场人解决重要视频资料丢失的难题。

weixin_33686714的博客 265

ANSYS ACT插件开发实战指南:从IronPython脚本到XML界面设计

本文提供了一份详尽的ANSYS ACT插件开发实战指南,重点讲解如何利用IronPython脚本实现仿真自动化,并通过XML设计用户友好的向导界面。内容涵盖从环境搭建、脚本编写(如自动创建材料)、界面控件绑定到调试打包的全流程,旨在帮助仿真工程师和团队负责人将重复性工作流程标准化,显著提升ANSYS软件的使用效率。

weixin_29310605的博客 457

北航开源:大模型教程 LLaMA-Factory大语言模型微调框架(附教程文档)

LLaMA-Factory 是一个国内北航开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计。

瓦罗兰特顶级C位的博客 1159

【kubeEdge】离线部署

根据k8s的这个规则,可以将节点通过 label 的方式进行分组,比如将某几个节点都打上标签为 name=edge,当调度应用到 edge 节点时,会找到 label 为 edge 的所有节点,根据设置的副本数,将应用启动起来,如果设置的副本数超过了设置 edge 标签的节点数,则多出的将会显示 pending 状态,从而无法启动。清除 keadm init 或 keadm join 造成的影响均可使用 keadm reset,这个操作会删除 /etc/kubeedge 下的文件,如有需要请提前备份。

qq_42944740的博客 1717

一键微调上百个国内外大模型:LLaMA-Factory(附文档)

LLaMA-Factory 是一个国内北航开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计。

huang9604的博客 1879

DevEco Studio在初始化时出现Installing pnpm@8.13.1...npm ERR! code ETIMEDOUTnpm ERR! syscall connectnpm E

npm的仓库源设置的有问题,下载不了鸿蒙相关组件,所以你的启动依赖都没有,或者以前下载过npm,使用的源改的乱七八糟了。以前安装过前端相关的node.js的话,启动的时候记得使用管理远权限。(DevEco Studio)就出错,npm显示超时。

qq_56392862的博客 2629

自动驾驶轨迹规划算法——Apollo Lattice Planner

Apollo Lattice Planner是百度Apollo自动驾驶系统中的一种基于采样的实时轨迹规划算法。其核心思想是在离散化的状态空间中,对终端状态进行采样,并通过多项式曲线连接当前状态与候选终端状态,形成候选轨迹集,最后基于代价函数选择最优轨迹。该算法将车辆可达状态按纵向距离、横向偏移和速度等维度规则离散化,形成"格点"状态空间。 Lattice Planner通过三个主要步骤实现轨迹规划:1)终端状态采样,在规划时域内枚举多种驾驶意图;2)轨迹生成,使用五次多项式连接起点与各终

swaggytiger的博客 1624

大模型必学微调项目:LLaMA-Factory,大语言模型微调框架,大模型入门到精通,收藏这篇就足够了!

LLaMA-Factory 是一个国内北航开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计

DEVELOPERAA的博客 1060

【Unity程序技巧】Unity中单例模式管理器

单例模式(Singleton Pattern)是 最简单的设计模式之一

秩沅 1660

LLaMA-Factory:大语言模型微调框架(附开源教程)

LLaMA-Factory 是一个国内北航开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计

Y525698136的博客 1444

ESP32-CAM 赋能 AI 视觉巡检小车:自主避障与目标追踪实现全解析

本文基于 ESP32-CAM 实现了低成本 AI 视觉巡检小车的核心功能,硬件成本<100 元,兼顾自主避障与目标追踪。算法升级:移植 YOLOv5nano 量化模型(INT8),提升目标检测精度(如识别巡检场景中的 “异常物体”“人员”);无线拓展:通过 MQTT 协议将巡检图像、距离数据上传到阿里云 / 腾讯云,实现远程监控;多传感器融合:增加温湿度(DHT11)、红外测温(MLX90614)模块,扩展巡检维度;路径规划:结合 SLAM 算法,实现自主建图与路径巡检。

weixin_42300449的博客 368

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Llama-Factory的baichuan2微调

现有的获得这种可控性的方法是收集人工对模型生成相对质量的标签,并且通过人类反馈强化学习(RLHF)对无监督的 LM 进行微调,以使其与人类偏好相一致。然而,RLHF 是一个复杂且经常不太稳定的过程,它首先拟合一个反应人类偏好的奖励模型,然后通过强化学习对大型无监督 LM 进行微调以最大化评估奖励,并避免与原始模型相差太远。值得注意的是,用 DPO 进行微调在控制生成结果的情感以及改善摘要和单轮对话的响应质量方面表现出更好的能力,同时在实现和训练时的难度大大降低。,从本质上解决了人类偏好数据上的分类问题。

man_Xue_hao的博客 9414

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LLaMA-Factory 大模型微调平台

微调是指在已经训练好的大型预训练模型的基础上,进一步训练该模型以适应特定任务或特定领域的数据。尽管完全微调可以对模型的能力进行深度改造,但要带入模型全部参数进行训练,需要消耗大量的算力,且有一定的技术门槛。由于微调需要消耗大量的显存,因此参数规模超过 30B 的大模型往往无法在 32GB 消费级 GPU 上运行,但却可以轻松在拥有 128GB UMA 的 PGX 上随时进行。其中,GGUF 是大模型的存储格式,可以对模型进行高效的压缩,减少模型的大小与内存占用,从而提升模型的推理速度和效率。

烟云的计算 5520

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LLAma-Factory框架详细使用方法-0.8.3版本

注:如果你的模型比较大,一台显卡无法加载你的模型,你可以选择使用deepspeed单机多卡,DeepSpeed stage选择zero3,如果你一张显卡能够微调,但你有多张显卡的话,这里建议你使用zero2,可以提高接近两倍的训练速度,也就是节省一半的时间。如果你的模型参数比较大,一张卡无法加载你的模型参数,那么你就需要使用单机多卡来训练模型,你可选择deepspeed的zero3,如果你的一张显卡能够加载模型参数,你又有多张卡,可以选择zero2,使数据并行,这样可以大大减少训练时间。

2301_76361504的博客 1万+

llama-factory使用教程

│├── data/│└── saves/其中data文件夹下面的 [your_dataset].json 是自定义微调任务中训练集,dataset_info.json用于定义数据集名称examples文件夹下面的train_lora、train_qlora和train_full表示不同的微调方式,相应文件夹下面存在微调任务的配置文件;inference表示使用训练好的模型来进行推理saves文件夹需要自己新建,用于保存微调后的模型。

Conan的博客 5951

LLama Factory 安装部署实操记录(二)

使用`web_demo.py`,部署网页端示例,报错`RuntimeError: probability tensor contains either `inf`, `nan` or element < 0` · Issue #1642 · hiyouga/LLaMA-Factory · GitHub。(2)另一种说法是,要更新代码,当前测试的是0.4.0版本的源码,未更新,大家有兴趣可以尝试一下,放在评论区。(1)一种说法是,原因是双卡推理,当前的确也出现该问题,A100上正常,双4090有问题。

梦想是要有的,万一实现了呢! 7552

20K star!搞定 LLM 微调的开源利器LLaMA Factory

在人工智能领域,大型语言模型(LLM)微调(Fine-Tuning)是当下最热门的话题之一。总体来说LLaMA Factory 是一个非常优质的工具,在LLM微调中帮助用户节省了大量的精力。这些模型拥有惊人的语言理解和生成能力,但要微调和部署它们以适应特定任务,往往需要大量计算资源和专业知识,代码调试还得有深厚的技术功底。

深入Java世界:探索编程之美与技术深度 4906
上一篇: 超全网络安全面试题汇总(2024版)零基础入门到精通,收藏这一篇就够了
下一篇: 干货|SQL注入思路总结(非常详细)零基础入门到精通,收藏这一篇就够 了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值