LLaMA-Factory 微调训练

devtools/2024/9/22 11:11:49/

LLaMA-Factory 微调训练

该框架功能,标注-微调-导出-合并-部署,一整条流程都有,而且训练时消耗的gpu算力也会小一些

一,安装(推荐在linux中训练,win可以用wsl+docker

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory# 根据cuda版本选择安装pytoch版本
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 提前把gpu版本的torch安装好
pip install -e .[torch,metrics]# 遇到包冲突时,使用 pip install --no-deps -e . 解决
python"># 测试torch是否可用gpu
命令行输入pythonimport torch
print(torch.cuda.is_available())  #返回True则说明torch可用gpu

二,训练
1,数据集的准备和配置
参考:https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md

# 我自己使用的是 角色对话 的数据集格式[{"conversations": [{"from": "human","value": "人类指令"},{"from": "gpt","value": "模型回答"}],"system": "系统提示词(选填)",}
]

需要同步修改 dataset_info.json 中的配置(开始训练时会根据这个文件去找定义好的存放数据的json文件)

 "yi_6b_chat": {"file_name": "yi_6b_chat_520_24000.json","formatting": "sharegpt", # 表示数据使用的格式"tags": { # 和数据集中的格式一一对应 "role_tag": "from","content_tag": "value","user_tag": "human","assistant_tag": "gpt"}},

2,训练,启动web ui界面(ui 界面训练只支持单卡,多卡只能通过命令行训练)

训练命令:

CUDA_VISIBLE_DEVICES=0 GRADIO_SHARE=1 llamafactory-cli webui

三,vllm部署(不一定是llama3的模型,自己根据 llama3_vllm.yaml 配置修改就行,配置文件中也可用修改用huggingface部署)
1,vllm安装很多坑,pytorch版本和cuda版本必须保持一致兼容,使用pytoch的docker镜像可用省事很多,先看pytorch的版本,pytorch版本11.8,12.1,最好是cuda11.8版本的cuda和torch
2,vllm启动会预先分配一定的显存,也可用自行修改,如还有其他应用要启动,可用调低一些

启动命令:

CUDA_VISIBLE_DEVICES=0,1 API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml

http://www.ppmy.cn/devtools/44502.html

相关文章

新书速览|Golang+Vue.js商城项目实战

架构师一步一步教你做项目,从架构设计到技术实现完整解析 本书内容 《GolangVue.js商城项目实战》以Gin和Vue.js为核心框架,以全栈商城项目开发为主线,详尽介绍前后端分离架构开发Web网站项目的关键阶段和技术细节。全书共9章,第…

滑动窗口模板(Java)

题目描述 有一个长为 𝑛 的序列 𝑎,以及一个大小为 𝑘 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如,对于序列 [1,3,−1,−3,5,3,6,7] …

军工行业运维解决方案

一、引言 随着军工行业的快速发展,信息化建设已成为提高作战效能、保障信息安全的重要支撑。然而,军工行业面临着多战区、跨区域、多阵地、多数据中心的复杂运维挑战。为了满足这些挑战,我们提出了一套基于美信时代的军工行业运维解决方案&am…

java小技能: 数字和字母组合的验证码图片(生成验证码字符并加上噪点,干扰线)

文章目录 引言I 验证码的作用1.1 验证使用计算机的是一个人,而非计算机程序。1.2 提供一个很短的时间窗的一次性密码。II 数字和字母组合的验证码图片2.1 获取验证码图片2.2 生成验证码字符并加上噪点,干扰线see also引言 世界上没有绝对的信息安全,但是有防范得好和坏的分…

人脸识别--DeepFace(五)

DeepFace 是由 Facebook 于 2014 年开发的一种深度学习模型,用于人脸识别和验证。它是当时最先进的人脸识别系统之一,展示了深度学习在计算机视觉任务中的巨大潜力。DeepFace 的主要贡献在于它使用了深度卷积神经网络(CNN)来学习人…

【AHK V2】设计模式之命令模式

目录 情景剧场什么是命令模式优缺点优点缺点 使用命令模式的步骤命令模式代码示例合理使用AI工具自动生成代码 情景剧场 我们来设想一个场景: 你进入一家餐馆,餐馆只有老板一个人(老板即厨师)。 “老板,一份小炒肉&am…

QWidget For Android之QDialog中QLineEdit无法编辑问题

项目场景: QWidget For Android 问题描述 QDialog打开对话框时,QLineEdit输入框无法输入 this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint);this->setAttribute(Qt::WA_TranslucentBackground);原因分析&a…

51单片机学习(4)3-1 独立按键控制LED亮灭

#include<REGX52.H> void main() { //P20xFE; P2_01; while(1) { if(P3_10) { P2_00&#xff1b; } else { P2_01&#xff1b; } } }