首页 > 其他分享 >使用LLaMA-Factory快速训练自己的专用大模型

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

时间:2024-10-17 21:18:27浏览次数:7  
标签:LLama 训练 模型 Factory 专用 LLaMA LoRA

转自:萤火架构

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

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

想要掌握如何将大模型的力量发挥到极致吗?2024年10月26日叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。

留言“参加”即可来叶老师的直播间互动,1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。互动交流,畅谈工作中遇到的实际问题。

环境准备

本地使用

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

https://github.com/hiyouga/LLaMA-Factory

云镜像

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

可以试试我的云镜像,开箱即用:https://www.haoee.com/applicationMarket/applicationDetails?appId=40&IC=XLZLpI7Q

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

镜像已经内置了几个基础模型,大都在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,来源:https://huggingface.co/datasets/LooksJuicy/ruozhiba

图片

大家准备自己的数据的时候,也一定要按照指定的格式来。

训练参数设置

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

图片

数据集:请根据你的需要选择,这里选择我上边定义的 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 的使用还是挺顺利的,没有太多的坑。

听不如见,见不如做,自己动手,才能真正有所感悟!

标签:LLama,训练,模型,Factory,专用,LLaMA,LoRA
From: https://blog.csdn.net/yetzi1975/article/details/143023296

相关文章

  • Ollama + LangChain: 本地运行LLM大语言模型
    简介在大型语言模型(LLM)领域,Ollama和LangChain已经成为开发人员和研究人员的强大工具。Ollama提供了一种无缝本地运行开源LLM的方式,而LangChain提供了将模型灵活集成到应用程序中的框架。本文将介绍如何设置和使用Ollama和LangChain,以便能够在项目中利用LLM的强大功能。搭建Ollam......
  • 亿配芯城(ICGOODFIND)教你外贸(海外)推广电子元器件芯片的专用词语
    在电子元器件行业,海外推广是企业拓展市场、提升竞争力的重要手段。而在海外推广过程中,恰当运用专用词语能够准确传达产品信息、吸引客户关注,提升推广效果。本文将详细介绍亿配芯城(ICGOODFIND)电子元器件海外推广中的专用词语。一、产品描述类专用词语IntegratedCircuit(集成电......
  • Chinese-LLaMA-Alpaca-2: 新一代开源中文大语言模型
    Chinese-LLaMA-Alpaca-2:新一代开源中文大语言模型近日,由哈尔滨工业大学讯飞联合实验室推出的Chinese-LLaMA-Alpaca-2项目引起了广泛关注。该项目是中文LLaMA&Alpaca大模型的第二期,基于Meta发布的可商用大模型Llama-2进行开发,推出了一系列全新的中文大语言模型。本文将对这个......
  • 了解专用代理服务器的功能
    在当今数字化的环境中,确保安全高效的互联网连接变得至关重要。这种需求催生了专用代理服务器,这是一种确保在线隐私、安全和可访问性的强大工具。了解专用代理服务器的细微差别和功能对于寻求增强在线保护和访问的个人和企业是十分重要的。一、什么是专用代理服务器?专用代理服......
  • FactoryBean(利用工厂制造复杂的bean)
    可以说FactoryBean创建的对象的生命周期管理取决于其是否为单例对象以及是否实现了特定的生命周期管理接口。对于单例对象,生命周期由Spring容器管理;而对于多例对象,生命周期由Java虚拟机管理。容器仅负责管理FactoryBean实例的生命周期,而不负责FactoryBean所创建对象......
  • LLAMAFACTORY:一键优化大型语言模型微调的利器
    人工智能咨询培训老师叶梓转载标明出处模型适配到特定的下游任务,通常需要进行微调(fine-tuning),这一过程往往需要大量的计算资源。为了解决这一问题,来自北京航空航天大学和北京大学的研究人员共同开发了LLAMAFACTORY,这是一个统一的框架,集成了多种前沿的高效训练方法,使得用户可......
  • 使用LLaMA-Factory训练LLM大模型并用ollama调用
    环境搭建系统环境需要Nvidia显卡,至少8G显存,且专用显存与共享显存之和大于20G建议将非安装版的环境文件都放到非系统盘,方便重装或移植以Windows11为例,非安装环境文件都放在E盘下设置自定义Path文件夹创建E:\mypath文件夹,将其添加进用户环境变量Path中,之后会用CMake下载......
  • GDSFactory dbbox() and bbox() 用法
    GDSFactorydbboxandbbox用法引言正文引言今天遇到一个问题,本人发现GDSFactory中获取box对象的边界点时可以使用dbbox(),也可以使用bbox()函数。于是对这两个函数进行了探索,发现了它们之间的微小差异,这里特来记录一下。正文首先,我们可以采用如下代码生......
  • 部署Ollama(在LInux上进行部署)
    1.介绍Ollama:是一款旨在简化大型语言模型本地部署和运行过程的开源软件。网址:OllamaOllama提供了一个轻量级、易于扩展的框架,让开发者能够在本地机器上轻松构建和管理LLMs(大型语言模型)。通过Ollama,开发者可以访问和运行一系列预构建的模型,或者导入和定制自己的模型,无需关注......
  • LLaVA++: 扩展LLaVA的视觉能力与LLaMA-3和Phi-3
    LLaVA++:视觉语言AI的新里程碑在人工智能快速发展的今天,多模态AI系统正在成为研究的热点。近日,来自MohamedbinZayed人工智能大学(MBZUAI)的研究团队推出了LLaVA++项目,这是对原有LLaVA(LargeLanguageandVisionAssistant)模型的重大升级,通过整合最新发布的LLaMA-3和Phi-......