llama_factory微调QWen1.5

news2025/1/19 17:05:48

GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100+ LLMsUnify Efficient Fine-Tuning of 100+ LLMs. Contribute to hiyouga/LLaMA-Factory development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/hiyouga/LLaMA-FactoryQwen1.5 介绍 | QwenGITHUB HUGGING FACE MODELSCOPE DEMO WeChat简介 最近几个月,我们专注探索如何构建一个真正「卓越」的模型,并在此过程中不断提升开发者的使用体验。农历新年到来之际,我们推出通义千问开源模型1.5版本: Qwen1.5。我们开源了包括0.5B、1.8B、4B、7B、14B和72B共计6个不同规模的Base和Chat模型,, 以及一个MoE模型(点击博客 了解详情),并同步放出了各尺寸模型对应的量化模型。此次更新中,我们不仅像之前一样提供Int4和Int8的GPTQ模型,还提供了AWQ以及GGUF量化模型。为了提升开发者体验,我们将Qwen1.5的代码正式合并到HuggingFace transformers代码库中,所以现在可以直接使用 transformers>=4.37.0 原生代码,而无需指定 trust_remote_code 选项即可进行开发。我们已经与vLLM、SGLang(用于部署)、AutoAWQ、AutoGPTQ(用于量化)、Axolotl、LLaMA-Factory(用于微调)以及llama.cpp(用于本地 LLM 推理)等框架合作,所有这些框架现在都支持 Qwen1.5。Qwen1.5 系列可在 Ollama 和 LMStudio 等平台上使用。此外,API 服务不仅在 DashScope 上提供,还在 together.ai 上提供,全球都可访问。请访问here开始使用,我们建议您试用Qwen1.5-72B-chat。相较于以往版本,本次更新我们着重提升Chat模型与人类偏好的对齐程度,并且显著增强了模型的多语言处理能力。在序列长度方面,所有规模模型均已实现 32768 个 tokens 的上下文长度范围支持。同时,预训练 Base 模型的质量也有关键优化,有望在微调过程中为您带来更佳体验。这次迭代是我们朝向「卓越」模型目标所迈进一个坚实的步伐。模型效果 为了全面洞悉 Qwen1.5 的效果表现,我们对 Base 和 Chat 模型在一系列基础及扩展能力上进行了详尽评估,包括如语言理解、代码、推理等在内的基础能力,多语言能力,人类偏好对齐能力,智能体能力,检索增强生成能力(RAG)等。基础能力 关于模型基础能力的评测,我们在 MMLU(5-shot)、C-Eval、Humaneval、GS8K、BBH 等基准数据集上对 Qwen1.5 进行了评估。Model MMLU C-Eval GSM8K MATH HumanEval MBPP BBH CMMLU GPT-4 86.4 69.9 92.0 45.8 67.0 61.8 86.7 71.0 Llama2-7B 46.icon-default.png?t=N7T8https://qwenlm.github.io/zh/blog/qwen1.5/

我在4卡1080ti上用lora微调的,1.8B用deepspeed的4卡,bs=1还是会爆显存,因此最终采用了0.5B的版本来训练。

1.数据

新定义的数据格式要在dataset_info.json中,通常我们定义的都是alpaca的格式:

    {
        "instruction": "三原色是什么?",
        "input": "",
        "output": "三原色通常指的是红色、绿色和蓝色(RGB)。它们是通过加色混合原理创建色彩的三种基础颜色。在以发光为基础的显示设备中(如电视、计算机显示器、智能手机和平板电脑显示屏), 三原色可混合产生大量色彩。其中红色和绿色可以混合生成黄色,红色和蓝色可以混合生成品红色,蓝色和绿色可以混合生成青色。当红色、绿色和蓝色按相等比例混合时,可以产生白色或灰色。\n\n此外,在印刷和绘画中,三原色指的是以颜料为基础的红、黄和蓝颜色(RYB)。这三种颜色用以通过减色混合原理来创建色彩。不过,三原色的具体定义并不唯一,不同的颜色系统可能会采用不同的三原色。"
    }

在dataset_info.json中注册:

  "alpaca_gpt4_data_zh_retained": {
    "file_name": "alpaca_gpt4_data_zh.json",
    "file_sha1": ""
  },
  "sft_gpt4_livestreaming_data_20240105": {
    "file_name": "sft_gpt4_data.json",
    "file_sha1": ""
  }

数据包括:alpaca的通用数据,直播带货文案,商品主题词抽取,场景问答,选择题,客服问答,标题扩展,商品介绍seo,写文章,短标题抽取,小红书文案,根据参数扩写,文章总结,人设。

2.训练

在examples中有很多示例:

qwen1.5-1.8b-sft:

#!/bin/bash

deepspeed --num_gpus 4 ../../src/train_bash.py \
    --deepspeed ../deepspeed/ds_z3_config.json \
    --stage sft \
    --do_train \
    --model_name_or_path /root/e_commerce_llm/weights/Qwen1.5-0.5B/ \
    --dataset alpaca_gpt4_data_zh,sft_gpt4_data \
    --dataset_dir ../../data \
    --template qwen \
    --finetuning_type lora \
    --lora_target q_proj,v_proj  \
    --output_dir ../../saves/Qwen1.5_0.5B_Base/lora/sft \
    --overwrite_cache \
    --overwrite_output_dir \
    --cutoff_len 1024 \
    --preprocessing_num_workers 16 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 2 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --warmup_steps 20 \
    --save_steps 100 \
    --eval_steps 100 \
    --evaluation_strategy steps \
    --learning_rate 5e-5 \
    --num_train_epochs 3.0 \
    --max_samples 3000 \
    --val_size 0.1 \
    --ddp_timeout 180000000 \
    --plot_loss

1080ti不支持fp16,去掉了。

3.lora合并

#!/bin/bash
# DO NOT use quantized model or quantization_bit when merging lora weights

CUDA_VISIBLE_DEVICES=0 python ../../src/export_model.py \
    --model_name_or_path /root/lgd/e_commerce_llm/weights/Qwen1.5-0.5B/ \
    --adapter_name_or_path /root/lgd/e_commerce_llm/llama_factory/saves/Qwen1.5_0.5B_Base/lora/sft/ \
    --template qwen \
    --finetuning_type lora \
    --export_dir ../../models/qwen1.5_0.5B_base_sft \
    --export_size 2 \
    --export_legacy_format False

4.前向推理

inference下的sh

#!/bin/bash

CUDA_VISIBLE_DEVICES=0 python ../../src/cli_demo.py \
    --model_name_or_path /root/lgd/e_commerce_llm/weights/Qwen1.5-0.5B/ \
    --adapter_name_or_path /root/lgd/e_commerce_llm/llama_factory/saves/Qwen1.5_0.5B_Base/lora/sft/ \
    --template qwen \
    --finetuning_type lora

5.结论

我在自己的数据集上用lora微调了qwen-0.5B-Base和qwen-0.5B-Chat:

5.1 效果都不太好;

5.2 base版本出现过很多和提问无关的内容;

5.3 就人格注入来讲,chat一点都注入不进去,但base版本好很多;

5.4 推理显存占用1080ti没问题;

5.5 base版本会不断重复内容;

5.6 chat版本也会不断重复内容;

感觉微调之后chat版本还差一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EEG基础

01 简介 脑电图(EEG)因其低成本、无创、便携以及毫秒级的高时间分辨率等特点,成为了研究大脑功能、异常和神经生理动力学的可靠且广泛使用的测量工具。 在神经信号处理领域,EEG通常作为一种非侵入性的脑成像技术用于诊断脑部疾病,而正常EE…

50.基于SpringBoot + Vue实现的前后端分离-酒店管理系统(项目 + 论文PPT)

项目介绍 本站是一个B/S模式系统,采用SpringBoot Vue框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SpringBoot Vue技术的酒店管理系统设计与实现管理工作系统…

VMware最新下载安装

1、打开浏览器 搜索VMware官网,点进去。如图: 这里有两种下载方法,便洁就是我这种,还有一种就是注册账号之后下载就完全没有必要了,而且基本注册不了,不太好注册。 2、选择"产品"第二个选项 …

深度剖析扫雷游戏的各个知识点(2)

小伙伴们,大家好。这次继续上次的剖析扫雷游戏的知识点。 那么本次咱们主要是讲扫雷中的宏定义,也就是#define这些 首先#define是用来定义一个宏,后面就是类似于和变量一样的常量名,以及最后的数字就是它的值。 定义规则 #def…

被Claude3的图生代码技术秀到了,前端开发效率,提升到秒级

被Claude3的图生代码技术秀到了!前端开发效率,提升到秒级 上传一张网站图片,用Claude3 生成实现这个网站的代码的教程来啦! 在Claude3 的中文网站上一分钟就能实现,生成前端代码。中文网站地址是https://askmanyai.c…

【银角大王———Django学习DAY0——基础准备】

银角大王——Django学习前情提要 (1)在pycharm中下载Flask(2)使用Flask(3)下载BootStrap框架(4) 使用BootStrap框架 (1)在pycharm中下载Flask 在设置——项目…

【cmu15445c++入门】(14)C++的 =delete和=default

一、定义 (1)default 在C中, default 是一种特殊的语法,用于显式地请求编译器生成一个函数的默认实现。当应用于构造函数时, default 告诉编译器生成一个默认构造函数。默认构造函数是一个不接受任何参数的构造函数。…

Linux给磁盘扩容(LVM方式)

Linux给磁盘扩容(LVM方式) 最近测试性能,在本地打数据时,发现磁盘空间不足,于是想手动给/挂载点添加空间。这里介绍通过LVM方式快速给磁盘扩容。 LVM:是一种技术,方便管理磁盘。如果不用LVM,那…

经典网络解读—IResNet

论文:Improved Residual Networks for Image and Video Recognition(2020.4) 作者:Ionut Cosmin Duta, Li Liu, Fan Zhu, Ling Shao 链接:https://arxiv.org/abs/2004.04989 代码:https://github.com/iduta…

IK分词器安装、配置、分词自定义、Rest使用、SpringBoot使用

文章目录 1. 概述2. 安装配置3. 自定义拆分文本4. 调用4.1 拆分规则4.2 Rest 调用4.3 SpringBoot 调用 1. 概述 IK分词器是ElasticSearch(es)的一个最最最有名插件,能够把一段中文或者别的语句划分成一个个的关键字,进而在搜索的时候对数据库中或者索引库…

并发场景下 缓存击穿 穿透 雪崩如何解决

最近建了一个技术交流群,欢迎志同道合的同学加入,群里主要讨论:分享业务解决方案、深度分析面试题并解答工作中遇到的问题,同时也能为我提供写作的素材。 群号 208236931,欢迎进群交流学习,一起进步、进步、…

3.4 海思SS928开发 - 烧写工具 - BurnTool Emmc 烧写

3.4 烧写工具 - BurnTool Emmc 烧写 BurnTool 工具提供了多种烧写方式,这里只介绍最常用的 烧写emmc方式。 环境准备 PC 与单板之间连接好调试串口以及网线。 将厂商提供的出厂镜像拷贝至 PC 硬盘上,解压后得到的文件如下: . ├── boot_…

ARM学习(26)链接库的依赖查看

笔者今天来聊一下查看链接库的依赖。 通常情况下,运行一个可执行文件的时候,可能会出现找不到依赖库的情况,比如图下这种情况,可以看到是缺少了license.dll或者libtest.so,所以无法运行。怎么知道它到底缺少什么dll呢&…

收藏这份方案,制造业营销管理快人一步【内附下载链接】

随着“中国制造2025”等政策的实施,制造业正经历着技术革新和产业升级,尤其在智能化和绿色制造领域取得了显著进展。 然而, 制造业面临着消费者需求日益多样化和个性化的挑战,迫切需要从生产导向转变为市场导向。与此同时&#…

Transformer中的位置编码详解

什么是位置编码 位置编码概述 位置编码的目的是为了补充序列的位置信息,这是因为自注意力机制本身不包含位置的概念(例如顺序信息)。位置编码的具体作用是,对于不同的输入序列成分,赋予其不同的位置标识,确…

RIP小实验配置及缺省路由下发

配置如下: IP配置: IP配置完先查看RIP协议学习到的路由表,没有内容则代表没有开启RIP 启用RIP:这里的rip后跟的ID只具有本地意义,可以在1-65535之间随便取,不同路由器之间都可以取用不同的,为了…

宿舍预付费管控云平台

1.宿舍预付费管控云平台概述 宿舍预付费管控云平台是一种创新的智能管理系统,专为学校、公寓等住宿环境设计,旨在提升管理效率,优化用户体验,并实现资源的高效利用。通过云端技术,该平台可以实现远程充值、实时消费记…

Day 30 回溯总结

重新安排行程(*) 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必…

设置表格高度后,数值改变但实际不变

1.选中表格 2.点击“开始”——>“段落设置”的选项启动按钮,设置为单倍行距 3.可以看到,表格的行高被调小了。

【SLAM】在Win10上实现Nerf-Pytorch【GPU版】

文章目录 ReadMe安装依赖运行下载两个示例数据集:lego和fern训练一个低分辨率的Lego NeRF:训练一个低分辨率蕨类植物NeRF:更多数据集预训练模型可复现实现1、下载nerf-pytorch工程2、安装依赖3、下载数据4、运行lego NeRF:ReadMe Github链接 NeRF (神经辐射场)是一种在合成…