论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
分布式数据库
›
9、LLaMA-Factory项目微调介绍
9、LLaMA-Factory项目微调介绍
写过一篇
金牌会员
|
2024-9-5 01:01:28
|
显示全部楼层
|
阅读模式
楼主
主题
971
|
帖子
971
|
积分
2913
1、LLaMA Factory 介绍
LLaMA Factory是一个在GitHub上开源的项目,该项目给自身的定位是:提供一个易于使用的大语言模型(LLM)微调框架,支持LLaMA、Baichuan、Qwen、ChatGLM等架构的大模型。更细致的看,该项目提供了从预练习、指令微调到RLHF阶段的开源微调解决方案。截止目前(2024年3月1日)支持约120+种不同的模型和内置了60+的数据集,同时封装出了非常高效和易用的开发者使用方法。而其中最让人喜欢的是其开发的LLaMA Board,这是一个零代码、可视化的一站式网页微调界面,它答应我们通过Web UI轻松设置各种微调过程中的超参数,且整个练习过程的实时进度都会在Web UI中进行同步更新。
简单明白,通过该项目我们只需下载相应的模型,并根据项目要求准备符合标准的微调数据集,即可快速开始微调过程,而这样的操作可以有效地将特定领域的知识注入到通用模型中,增强模型对特定知识领域的明白和认知能力,以达到“通用模型到垂直模型的快速变化”。
LLaMA Factory的GitHub地点如下:https://github.com/hiyouga/LLaMA-Factory/tree/main
LLaMA-Factory目前支持微调的模型及对应的参数量:
模型名模型大小TemplateBaichuan 27B/13Bbaichuan2BLOOM/BLOOMZ560M/1.1B/1.7B/3B/7.1B/176B-ChatGLM36Bchatglm3Command R35B/104BcohereDeepSeek (Code/MoE)7B/16B/67B/236BdeepseekFalcon7B/11B/40B/180BfalconGemma/Gemma 2/CodeGemma2B/7B/9B/27BgemmaGLM-49Bglm4InternLM2/InternLM2.57B/20Bintern2Llama7B/13B/33B/65B-Llama 27B/13B/70Bllama2Llama 3/Llama 3.18B/70Bllama3LLaVA-1.57B/13BvicunaMiniCPM1B/2BcpmMistral/Mixtral7B/8x7B/8x22BmistralOLMo1B/7B-PaliGemma3BgemmaPhi-1.5/Phi-21.3B/2.7B-Phi-34B/7B/14BphiQwen/Qwen1.5/Qwen2 (Code/Math/MoE)0.5B/1.5B/4B/7B/14B/32B/72B/110BqwenStarCoder 23B/7B/15B-XVERSE7B/13B/65BxverseYi/Yi-1.56B/9B/34ByiYi-VL6B/34Byi_vlYuan 22B/51B/102Byuan 可以看到,当前主流的开源大模型,包括ChatGLM3、Qwen的第一代以及最新的2版本,还有Biachuan2等,已经完全支持不同规模的参数量。针对LLaMA架构的系列模型,该项目已经基本实现了全面的适配。而其支持的练习方法,也主要围绕(增量)预练习、指令监督微调、奖励模型练习、PPO 练习和 DPO 练习展开,具体情况如下:
方法全参数练习部分参数练习LoRAQLoRA预练习(Pre-Training)✅✅✅✅指令监督微调(Supervised Fine-Tuning)✅✅✅✅奖励模型练习(Reward Modeling)✅✅✅✅PPO 练习(PPO Training)✅✅✅✅DPO 练习(DPO Training)✅✅✅✅ 最后且最关键的一点需特别指出:固然LLaMA-Factory项目答应我们在120余种大模型中机动选择并快速开启微调工作,但运行特定参数量的模型是否可行,仍然取决于本地硬件资源是否富足。因此,在选择模型进行实践前,大家必须细致参照下表,团结本身的服务器配置来决定,以避免因硬件资源不敷导致的内存溢出等标题。不同模型参数在不同练习方法下的显存占用情况如下:
练习方法精度7B13B30B65B全参数16160GB320GB600GB1200GB部分参数1620GB40GB120GB240GBLoRA1616GB32GB80GB160GBQLoRA810GB16GB40GB80GBQLoRA46GB12GB24GB48GB 关于微调治论我们会在背面专门写文章解释
2、LLaMA-Factory私有化部署
作为GitHub上的开源项目,LLaMA-Factory的本地私有化部署过程与我们之前介绍的大模型部署大要相同,主要包括创建Python虚拟环境、下载项目文件及安装所需的依赖包。这一过程相对直观。但在开始部署之前,我们需要先相识LLaMA-Factory私有化部署对本地软硬件环境的具体要求:
Python >= 3.8版本,发起Python3.10版本以上
PyTorch >= 1.13.1版本,发起 Pytorch 版本为 2.2.1
transformers >= 4.37.2,发起 transformers 版本为 4.38.1
CUDA >= 11.6,发起CUDA版本为12.2
2.1 创建虚拟环境
创建LLaMA-Factory的Python虚拟环境
conda create --name llama_factory python==3.11
复制代码
如上所示,新创建了一个名为LLaMA-Factory的Python虚拟环境,其Python版本为3.11。创建完成后,通过如下下令进入该虚拟环境,实行后续的操作:
conda activate llama_factory
复制代码
2.2 安装Pytorch
发起先本身根据CUDA版本要求安装Pytorch,如果按照llama_factory官网安装默认是支持CPU的版本,地点:https://pytorch.org/get-started/previous-versions/**
这里根据本身电脑显卡驱动的CUDA版本要求,在Pytorch官网中找到适合本身的Pytorch安装下令。
conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia
复制代码
待安装完成后,如果想要查抄是否成功安装了GPU版本的PyTorch,可以通过几个简单的步骤在Python环境中进行验证:
import torch
print(torch.cuda.is_available())
复制代码
如果输出是 True,则表示GPU版本的PyTorch已经安装成功而且可以使用CUDA,如果输出是False,则表明没有安装GPU版本的PyTorch,大概CUDA环境没有正确配置,此时根据教程,重新查抄本身的实行过程。
2.3 下载LLaMA-Factory项目文件
进入LLaMA-Factory的官方Github,地点:https://github.com/hiyouga/LLaMA-Factory , 在 GitHub 上将项目文件下载到有两种方式:克隆 (Clone) 和 下载 ZIP 压缩包。推荐使用克隆 (Clone)的方式。我们首先在GitHub上找到其堆栈的URL。
实行克隆下令,将LLaMA-Factory Github上的项目文件下载至本地的当前路径下,如下:
git clone https://github.com/hiyouga/LLaMA-Factory.git
复制代码
如果网络不通大概其他原因无法下载,就下载zip文件解压到本地目次,大概上传到服务器。
发起在实行项目标依赖安装之前升级 pip 的版本,如果使用的是旧版本的 pip,大概无法安装一些最新的包,大概大概无法正确解析依赖关系。升级 pip 很简单,只需要运行下令如下下令:
python -m pip install --upgrade pip
复制代码
2.4 安装LLaMA-Factory项目代码运行的项目依赖
在LLaMA-Factory中提供的 requirements.txt文件包含了项目运行所必须的全部 Python 包及其正确版本号。使用pip一次性安装全部必须的依赖,实行下令如下:
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
复制代码
如果不具备科学上网环境,还想通过在线的方式下载大模型,可以将模型下载源指向国内的ModelScope社区。这需要先制止当前的LLaMA-Board的背景服务,具体操作如下:
# Linux操作系统, 如果是 Windows 使用 `set USE_MODELSCOPE_HUB=1`
export USE_MODELSCOPE_HUB=1
CUDA_VISIBLE_DEVICES=0 llamafactory-cli webui
复制代码
通过上述步骤就已经完成了LLaMA-Factory模型的完备私有化部署过程。接下来,我们将详细介绍如何借助LLaMA-Factory项目实行ChaGLM3、Qwen和Baichuan2系列模型的微调和使用。
2.5 chat
先选择一个简单的模型进行测试,我们选择Qwen2-0.5B-Chat
可以在界面进行简单的对话
2.6 微调
选择数据集,留意我们启动下令时一定要在LLaMA-Factory目次下,不然数据会加载失败。选择预置的数据,支持预览查看,需要特定的数据格式,如果是自定义数据也需要按照这种格式来进行配置。
界面展示
练习过程
显存占用
显存全部占满
经过LoRA微调天生的Adapter权重和其相对应的配置文件,其存放在服务器下
/root/LLaMA-Factory-main/saves/Qwen2-0.5B-Chat/lora/train_2024-08-28-15-12-01
复制代码
2.7 使用微调模型
对于LoRA微调,练习结束后如果想使用其微调后的模型,在LLaMA Board上也可以非常方便的加载,具体使用的过程如下:
通过上述步骤,我们可以完备地实现微调流程,且整个过程均可通过页面端完成,整体用户体验非常良好。大家也可以根据上述的流程,实验对ChatGLM3-6B和Biachuan2系列模型进行LoRA或QLoRA微调,大概其他支持的系列模型。
2.8 归并导出
当然,除了分步加载微调后得到的Adapter 和 原始模型,在LLaMA Board上还可以一键进行模型权重的归并,具体操作如下:
导出后可以在主目次中查看
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
写过一篇
金牌会员
这个人很懒什么都没写!
楼主热帖
hibernate入门
kubernetes数据持久化StorageClass动态 ...
回忆我的第一个软件项目
Debian/Ubuntu使用apt安装php8.x
Java EnumMap putAll()方法具有什么功 ...
26基于java的电影院售票管理系统设计 ...
OpenHarmony开源鸿蒙与HarmonyOS商业鸿 ...
Jvm调优
管理软件定制公司 广州管理软件定制开 ...
基于LSTM的多变量多输出温湿度预测 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
IOS
Oracle
快速回复
返回顶部
返回列表