LLamaFactory:当下最容易上手的大模型微调工具

【LLaMAFactory】LoRa + 魔搭 微调大模型实战 因为这个数据集是我们下载下来的。所以得让LLaMA-Factory项目认识它。在data目录下的再次正常打开如果只是微调大模型,其实方法很简单,但是要微调到符合业务要求,做好大模型,还需要不断的打磨,要掌握各种参数,对于如过拟合的情况,需要重点注意。 阅读详情

近日,国内的一款微调框架发布了自己的论文《LLAMAFACTORY: Unified Efficient Fine-Tuning of 100+ Language Models》,对他们的框架做了系统性的总结。该框架自推出后迅速出圈,现已斩获15.6k的star,逐步成为当下微调的首选工具。

喜欢本文记得收藏、点赞、关注。文末参与技术讨论

在这里插入图片描述

https://arxiv.org/pdf/2403.13372.pdf

大模型实战

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

突出表现

模型微调相较于上下文学习来讲,存在比较高的门槛,但又是模型专业化,领域化不可或缺的技术手段。而其复杂性突出表现在这些方面:

1)理论基础,如果说基于大模型写prompt 根据一定范式来构建RAG或者Agent不需要太多机器学习理论知识,然而微调就必须要对这些有理解,比如样本,学习率,logloss等。

2)数据准备,对于普通开发者,高质量的数据是微调成功的关键保证,而如何预处理,清洗,标注这些样本本身就很复杂,更因此诞生了大模型数据工程这样的领域来解决这一问题。

3)基座模型存在分化,虽然当下很多模型都参考llama和huggingface的一些规范,但是仍然都有一些特殊之处,想要微调也需要针对性地去分析和构建相应的策略。

4)超参数优化,微调本身是一个“炼丹”过程,如何能够找到合适的超参数,达到一个最佳性能,是一个重大挑战。

5)AI工程复杂性,涉及到硬件\软件\复杂流程的协同配合以及系统优化,在有限的成本、资源和时间要求下完成模型训练过程。

正是因为这些原因,对于预训练微调,需要一个类似于工厂的工业化手段来降低门槛,提升效率。

因此,行业内出现了很多微调框架,而LLamaFactory(https://github.com/hiyouga/LLaMA-Factory)便是其中之一,从起名上就可以看出它们的目标是成为模型微调的工厂。

在这里插入图片描述

架构

它得以流行主要得益于支持当下主流的大模型百川、千问、LLaMA等,不仅集成了大模型预训练、监督微调和强化微调等阶段的主流的微调技术(支持 LoRA 和 QLoRA 等参数高效微调策略),还提供了预训练、指令微调等丰富的数据集,方便参考使用,最重要的是提供了一个无代码的图形界面,大幅降低使用门槛,非开发者也可以方便地完成模型微调。

该框架架构上由四个模块构成:模型加载器、数据工作器和训练器,以及用户界面LlamaBoard。

在这里插入图片描述

在根据官方文档安装好LLamaFactory后,可以有三种方式进行操作,WebUI、CLI或者Python。

1.webUI。

CUDA_VISIBLE_DEVICES=0 python src/train_web.py

在这里插入图片描述

2.CLI,由于有时候界面限制,可能需要命令行的方式进行微调。如果不知道具体格式,可以在界面上配置好,再复制到命令行中调整使用。

在这里插入图片描述

在example目录中有大量的示例可供参考。

examples/
├── lora_single_gpu/
│   ├── pretrain.sh: 进行预训练
│   ├── sft.sh: 进行指令监督微调
│   ├── reward.sh: 进行奖励模型训练
│   ├── ppo.sh: 进行 PPO 训练
│   ├── dpo.sh: 进行 DPO 训练
│   ├── orpo.sh: 进行 ORPO 训练
│   ├── prepare.sh: 保存预处理后的数据集
│   └── predict.sh: 进行批量预测
├── qlora_single_gpu/
│   ├── bitsandbytes.sh: 微调 4/8 比特 BNB 模型
│   ├── gptq.sh: 微调 4/8 比特 GPTQ 模型
│   ├── awq.sh: 微调 4 比特 AWQ 模型
│   └── aqlm.sh: 微调 2 比特 AQLM 模型
├── lora_multi_gpu/
│   ├── single_node.sh: 使用 Accelerate 进行单节点训练
│   └── multi_node.sh: 使用 Accelerate 进行多节点训练
├── full_multi_gpu/
│   ├── single_node.sh: 使用 DeepSpeed 进行单节点训练
│   └── multi_node.sh: 使用 DeepSpeed 进行多节点训练
├── merge_lora/
│   ├── merge.sh: 将 LoRA 权重合并到预训练模型中
│   └── quantize.sh: 使用 AutoGPTQ 量化模型
├── inference/
│   ├── cli_demo.sh: 启动命令行推理接口
│   ├── api_demo.sh: 启动 OpenAI 风格 API
│   ├── web_demo.sh: 启动浏览器推理接口
│   └── evaluate.sh: 在 MMLU 数据集上评测模型
└── extras/
    ├── galore/
    │   └── sft.sh: 使用 GaLore 训练模型
    ├── loraplus/
    │   └── sft.sh: 使用 LoRA+ 训练模型
    ├── llama_pro/
    │   ├── expand.sh: 扩展模型中的层
    │   └── sft.sh: 训练扩展后的模型
    └── fsdp_qlora/
        └── sft.sh: 使用 FSDP 微调量化模型

3)编程方式。

from llmtuner import run_exp
run_exp(dict(
  stage="sft",
  do_train=True,
  model_name_or_path="Qwen/Qwen1.5-0.5B-Chat",
  dataset="identity,alpaca_gpt4_en,alpaca_gpt4_zh",
  template="qwen",
  finetuning_type="lora",
  lora_target="all",
  output_dir="test_identity",
  per_device_train_batch_size=4,
  gradient_accumulation_steps=4,
  lr_scheduler_type="cosine",
  logging_steps=10,
  save_steps=100,
  learning_rate=1e-4,
  num_train_epochs=5.0,
  max_samples=500,
  max_grad_norm=1.0,
  fp16=True,
))

对于用户来讲,准备正确高质量的数据是用好该工具的关键。在使用自定义数据集时需要在 dataset_info.json 文件中按照以下格式提供数据集定义,数据集格式支持两种:alpaca 和 sharegpt,具体可参考其官方文档。

"数据集名称": {
  "hf_hub_url": "Hugging Face 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)",
  "ms_hub_url": "ModelScope 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)",
  "script_url": "包含数据加载脚本的本地文件夹名称(若指定,则忽略 file_name)",
  "file_name": "该目录下数据集文件的名称(若上述参数未指定,则此项必需)",
  "file_sha1": "数据集文件的 SHA-1 哈希值(可选,留空不影响训练)",
  "subset": "数据集子集的名称(可选,默认:None)",
  "folder": "Hugging Face 仓库的文件夹名称(可选,默认:None)",
  "ranking": "是否为偏好数据集(可选,默认:False)",
  "formatting": "数据集格式(可选,默认:alpaca,可以为 alpaca 或 sharegpt)",
  "columns(可选)": {
    "prompt": "数据集代表提示词的表头名称(默认:instruction)",
    "query": "数据集代表请求的表头名称(默认:input)",
    "response": "数据集代表回答的表头名称(默认:output)",
    "history": "数据集代表历史对话的表头名称(默认:None)",
    "messages": "数据集代表消息列表的表头名称(默认:conversations)",
    "system": "数据集代表系统提示的表头名称(默认:None)",
    "tools": "数据集代表工具描述的表头名称(默认:None)"
  },
  "tags(可选,用于 sharegpt 格式)": {
    "role_tag": "消息中代表发送者身份的键名(默认:from)",
    "content_tag": "消息中代表文本内容的键名(默认:value)",
    "user_tag": "消息中代表用户的 role_tag(默认:human)",
    "assistant_tag": "消息中代表助手的 role_tag(默认:gpt)",
    "observation_tag": "消息中代表工具返回结果的 role_tag(默认:observation)",
    "function_tag": "消息中代表工具调用的 role_tag(默认:function_call)",
    "system_tag": "消息中代表系统提示的 role_tag(默认:system,会覆盖 system 列)"
  }
}

经过以上的步骤,剩下的就是需要耐心的调参和评估了。下面是一个利用webui进行微调操作示例。

小结

相较于其他方法,目前,LlamaFactory可以说是当下最简单快捷又功能强大的一种微调工具,值得大家学习使用。

​

如何学习AI大模型?

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

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

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

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

img

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

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

img

三、AI大模型经典PDF籍

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

img

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

img

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

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

相关推荐

12 大模型学习——LLaMA-Factory微调

Alpaca 格式由斯坦福大学的研究人员提出,主要用于单轮指令微调任务。针对不同任务,数据集的格式要求不同。应用场景:- 适用于单轮任务,如问答、文本生成、摘要、翻译等。- 结构简洁,任务导向清晰,适合低成本的指令微调。

weixin_54388827的博客 4623

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

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

Python_cocola的博客 4442

使用LlamaFactory进行模型微调:参数详解

在使用LlamaFactory进行模型微调时,理解和合理设置各个参数至关重要。确保了输入序列的合理长度,优化了注意力机制的实现,和则通过低秩矩阵和权重更新比例来提高微调效率和效果,而和则进一步细化了模型的训练策略。通过这些参数设置,您可以在计算资源有限的情况下,充分发挥预训练模型的性能,实现高效的模型微调。如果您对这些技术感兴趣,可以尝试在自己的项目中应用,并根据实际情况进行调整和优化。

kjzd123的博客 1万+

LLaMA-Factory训练DeepSeek大模型+本地部署

前面我们介绍了基于硅基流动训练私有大模型《10分钟教你微调自己的私有大模型》,该平台有三个不好的点就是可选的模型有限,训练时间需要排队等待耗时长,另外还要 给钱。今天我们换一个平台,使用:魔搭平台 + llamaFactory训练私有模型。平台会赠送服务器时长这样我们就可以不用花钱就可以训练自己的大模型了(学习使用)

墨家巨子@俏如来 5869

服务器部署LLaMAFactory进行LoRA微调

仓库已经成功克隆下来了。Factory支持的格式。LLaMA-Factory支持多种格式,对于文本分类任务,我们可以使用alpaca格式。包含了所有可用的数据集。使用刚刚自定义三个数据采集数据集,需要在文件中添加数据集描述,并通过修改配置来使用数据集。现在让我们添加我们的三个自定义数据集。数据已经成功转换并保存到了正确的位置。接下来可以开始使用这些数据进行训练了。

qq_60245590的博客 4019

LlamaFactory可视化微调大模型 - 参数详解

是一个用于微调大型语言模型的强大工具,特别是针对LLaMA系列模型。可以适应不同的模型架构和大小。支持多种微调技术,如全参数微调、LoRA)、QLoRA)等。还给我们提供了简单实用的命令行接口。支持多cpu训练,多任务微调,还有各种内存优化技术,如梯度检查点、梯度累积等。支持混合精度训练,提高训练效率。本文不再赘述的安装过程在的webui里面,一切微调都是可视化,方便我们入手。我们可以不用了解每个参数背后的具体实现手段,但一定要知道每个参数的含义,大模型的微调不是一蹴而就,而是不断更新和优化。

python122_的博客 1716

当下最容易上手的大模型微调工具是谁?LLamaFactory或是其中之一

近日,国内的一款微调框架发布了自己的论文《LLAMAFACTORY: Unified Efficient Fine-Tuning of 100+ Language Models》,对他们的框架做了系统性的总结。该框架自推出后迅速出圈,现已斩获15.6k的star,逐步成为当下微调的首选工具。模型微调相较于上下文学习来讲,存在比较高的门槛,但又是模型专业化,领域化不可或缺的技术手段。

ytt0523_com的博客 1310

当下最容易上手的大模型微调工具是谁?LLamaFactory或是其中之一,零基础入门到精通,收藏这一篇就够了

它得以流行主要得益于支持当下主流的大模型百川、千问、LLaMA等,不仅集成了大模型预训练、监督微调和强化微调等阶段的主流的微调技术(支持 LoRA 和 QLoRA 等参数高效微调策略),还提供了预训练、指令微调等丰富的数据集,方便参考使用,最重要的是提供了一个无代码的图形界面,大幅降低使用门槛,非开发者也可以方便地完成模型微调。2)数据准备,对于普通开发者,高质量的数据是微调成功的关键保证,而如何预处理,清洗,标注这些样本本身就很复杂,更因此诞生了大模型数据工程这样的领域来解决这一问题。

881

大模型微调实战:基于 LLaMAFactory 通过微调修改模型自我认知

本文主要分享如何使用 LLaMAFactory 实现大模型微调,基于 Qwen1.5-1.8B-Chat 模型进行 LoRA 微调,修改模型自我认知。本文的一个目的:基于模型进行微调,修改模型自我认证。

大模型工程师老蓝的博客 1329

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

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

weixin_42357472的博客 7798

Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全

本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。

view3的博客 504

LLAMAFACTORY:一键优化大型语言模型微调的利器

模型适配到特定的下游任务,通常需要进行微调(fine-tuning),这一过程往往需要大量的计算资源。为了解决这一问题,来自北京航空航天大学和北京大学的研究人员共同开发了LLAMAFACTORY,这是一个统一的框架,集成了多种前沿的高效训练方法,使得用户可以灵活地自定义100多种大型语言模型的微调过程

人工智能前沿分享 1972

大模型部署之二--vllm+docker部署

本文介绍了在openEuler系统上快速本地部署Qwen3-8B、DeepSeek-R1、Qwen2.5deng 大模型的完整流程。通过modelscope管理模型,采用vllm+docker模式实现部署。主要步骤包括:1)安装conda环境;2)配置docker;3)下载模型;4)编写docker compose配置文件;5)启动服务。特别针对2卡4090服务器提供了参数配置建议,并给出常用命令和参考资料。文档还提示不同系统和平台可能存在差异,为开发者提供了本地部署大型语言模型的实用指南。

weixin_39279863的博客 1133

大模型培训讲师叶梓LlamaFactory模型微调培训提纲

叶梓,上海交通大学计算机专业博士毕业,在校期间的主研方向为数据挖掘、机器学习、人工智能。

人工智能讲师分享前沿技术 2043

Kubernetes+EdgeX:构建企业级AI边缘推理平台

设备:工业摄像头(RTSP协议,输出1920x1080视频流);AI模型:YOLOv8训练的轴承裂纹检测模型(识别“裂纹”“正常”两种类型);目标:摄像头采集图像→EdgeX传输数据→K8s推理服务检测→结果反馈到报警器(HTTP协议)。Kubernetes+EdgeX的组合,为企业构建AI边缘推理平台提供了标准化、可扩展标准化:K8s的容器编排和EdgeX的设备管理,都是行业标准,避免“重复造轮子”;可扩展:支持从单边缘节点到 thousands of nodes 的规模,满足企业的增长需求;

AI算力网络与通信的博客 1345

传统芯片封装工艺流程简介

塑封是将工件和树脂安装在模具中,加热模具,使树脂液化充满模具,降温保持一定时间后,树脂凝结为固态即可取出。它将一个大的晶圆切割成许多单独的小块,每个小块是一个“芯片”(Chip,die),这些芯片是单个集成电路的基本单位。对裸露在外的引线框架外脚电镀Sn-Pb合金,这样不仅可以提高外脚的抗氧化性,还有利于后续与印刷电路板的焊接。导电胶粘贴法:将含有银粉的环氧树脂(银浆)涂敷在框架或基板上,再将芯片放置其上,固化后可以将芯片牢牢粘接。引线框架的各腿是用筋连接着的,起支撑作用,塑封固化后,需要将其连筋切掉。

芯想是陈的博客 3192

LlamaFactory微调大模型参数介绍

在的webui里面,一切微调都是可视化,方便我们入手。我们可以不用了解每个参数背后的具体实现手段,但一定要知道每个参数的含义,大模型的微调不是一蹴而就,而是不断更新和优化。我们可能要调试各种参数之间的搭配,最后得到一个接近我们任务的大模型。

m0_71240768的博客 2015

Oracle MCP Server实战:自然语言如何重塑数据库交互体验

本文深入探讨了Oracle MCP Server如何通过自然语言交互技术革新数据库操作体验。作为Oracle数据库的革命性工具,MCP Server集成了先进的Text-to-SQL技术,允许用户使用自然语言直接查询数据库,大幅降低使用门槛。文章详细介绍了从环境搭建、实战案例到企业级部署的全流程,特别强调了中文自然语言处理能力和安全最佳实践,为DBA和开发者提供了从传统SQL到智能交互的转型指南。

u9v0w的博客 287

大模型微调实战:基于 LLaMAFactory 通过 LoRA 微调修改模型自我认知

本文主要分享如何使用 LLaMAFactory 实现大模型微调,基于 Qwen1.5-1.8B-Chat 模型进行 LoRA 微调,修改模型自我认知。本文的一个目的:基于模型进行微调,修改模型自我认证。修改前对于模型,用户问你是谁?时模型一般会回答我们希望在微调之后,对于同样的问题,模型能回答。

2401_85375186的博客 3165

利用python语言进行相机标定

利用python语言进行相机标定 目录利用python语言进行相机标定一、相机标定相关原理1.相机标定简介2.坐标映射2.1图像坐标系1)图像坐标系(Pixel coordinate system)2)成像平面坐标系(Retinal coordinate system)3)摄像机坐标系(Camera coordinate system)4)世界坐标系(World coordinate system)二、相机标定算法流程1.镜头畸变1.1径向畸变1.2切向畸变2.相机标定算法求解外参内参和单应矩阵关系求解(张

qq_44818951的博客 4700

DO-178C详解:机载软件开发、验证与适航标准指南

DO-178C将软件划分为五个等级(A到E),这些等级是基于失效状态对航空器安全的影响而定。

qq_41854911的博客 2855
上一篇: 基于LangChain+LLM的本地知识库问答:从企业单文档问答到批量文档问答
下一篇: 大模型增量预训练新技巧:解决灾难性遗忘
爱喝白开水a
博客等级 码龄3年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值