首页 > 其他分享 >Qwen1.5大语言模型微调实践

Qwen1.5大语言模型微调实践

时间:2024-11-11 10:48:19浏览次数:3  
标签:训练 模型 微调 学习 数据 可以 Qwen1.5

在人工智能领域,大语言模型(Large Language Model,LLM)的兴起和广泛应用,为自然语言处理(NLP)带来了前所未有的变革。Qwen1.5大语言模型作为其中的佼佼者,不仅拥有强大的语言生成和理解能力,而且能够通过微调(fine-tuning)来适应各种特定场景和任务。本文将带领大家深入实战,探索如何对Qwen大语言模型进行微调,以满足实际应用的需求。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

一、了解Qwen1.5大语言模型

Qwen1.5模型是Qwen的升级版,也是Qwen2的测试版。它与Qwen类似,是只有一个decoder解码器的 transformer 模型,具有SwiGLU激活、RoPE、multi-head attention多头注意力。

  • Qwen1.5有7个模型尺寸:0.5B, 1.8B, 4B, 7B, 14B, 72B 模型,还外加 14B (A2.7B) MoE 模型。
  • chat 聊天模型的质量得到明显提高
  • 在 base 模型和 chat 模型支持多语言的能力(中文,英文等)
  • 支持 32768 tokens 的上下文长度
  • 所有模型启用System prompts,可以进行角色扮演
  • 不再需要 trust_remote_code
二、微调GPU资源评估和环境准备

这里我使用 Llama-Factory 训练框架来对 Qwen1.5 来进行微调,微调的方法可以使用 LoRA 或 QLoRA,可以大大节省GPU资源。具体的 Llama-Factory 环境搭建方法可以看官方链接:https://github.com/hiyouga/LLaMA-Factory

三、准备微调数据集和预训练模型

(1)数据集准备

微调数据集是微调过程中的关键。我们需要根据具体任务的需求,收集并整理相关的数据。这些数据应该包含输入和对应的输出,以便模型在训练过程中学习如何从输入中生成期望的输出。这里我使用一些公开的数据集来进行微调。

更多的数据集请看链接:GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100+ LLMs

(2)Pre-training 模型准备

直接在 huggingface 下载,下载地址:Qwen

如果自己网络无法访问 huggingface ,也可以使用 HF-Mirror - Huggingface 镜像站 来进行下载也可以。

四、模型微调训练
(1)运行打开web ui 界面
按照 LLaMA-Factory 里面的教程搭建好环境之后就可以开始对模型进行微调了,执行以下命令来启动web ui 界面来进行微调:
cd LLaMA-Factory

export CUDA_VISIBLE_DEVICES=0  # use gpu0
python src/train_web.py        # or python -m llmtuner.webui.interface

如果想修改 网页服务的地址和端口号,直接在 src/train_web.py 修改就可以了。这里也可以代码中的 share 设置为True ,就可以把本地网络的web ui 界面作为一个 public 链接分享出去。

from llmtuner import create_ui


def main():
    create_ui().queue().launch(server_name="127.0.0.1", server_port=6006, share=True, inbrowser=True)


if __name__ == "__main__":
    main()

(2)配置训练参数

然后根据的要求来进行配置,我的配置如下:

模型名称: Qwen1.5-7B-Chat

模型路径: 填写自己本地下载的模型的路径,或者 Hugging Face 路径

微调方法: 可以选用 lora, freeze, full 等

量化等级: 选择 none,不进行量化,也可以启用 4/8 bit 模型量化(即 QLoRA)

提示模板: qwen

训练阶段: Supervised Fine-Tuning,也可以选 Reward Modeling, PPO, DPO, Pre-training等

数据路径: 数据所在文件夹,默认为项目中的 data 文件夹

数据集: 提取了 data 文件夹中的 *.json 文件,可直接选择。选择完成之后点一下**“预览数据集”**确认自己的数据是否正确。

其他的参数比如 学习率、训练轮数(epoch)、批处理大小、学习率调节器 等都是深度学习训练常见的参数,可以根据自己的情况选择就好。这里我使用默认的参数。

LoRA 参数设置中,可以修改 lora 秩的大小,缩放系数,权重随机丢弃的概率等参数,这里我保持默认。

所有的参数都配置好之后,点一下 “预览命令”,确认命令没有问题之后,就可以点击 “开始” 进行训练了。训练的过程中可以看到 loss的变化曲线、训练耗时等。

五、模型微调效果测试

微调完成后,我们需要对微调后的模型进行评估,以了解其在实际任务中的性能表现。也可以在web ui 界面直接进行对话体验。

“模型路径” 中输入原始模型路径,然后在 “适配器路径” 中选择自己微调得到的 adapter 路径,然后点击 “加载模型”,就可以开始对话聊天了。

通过终端窗口,可以看到模型成功加载

对话聊天:

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

标签:训练,模型,微调,学习,数据,可以,Qwen1.5
From: https://blog.csdn.net/lvaolan168/article/details/143675374

相关文章

  • 深度学习中模型轻量化及具体方案应用
    模型轻量化介绍在深度学习中,模型轻量化是一项关键技术,用于在不显著损失模型精度的前提下减少模型的计算量和存储需求。轻量化技术尤其适用于资源受限的设备(如移动设备、嵌入式系统)上部署模型。模型轻量化的核心目标是提高推理速度、降低功耗、减少内存占用,以便在边缘设备上实......
  • 基于MCMC的贝叶斯营销组合模型评估方法论: 系统化诊断、校准及选择的理论框架
    贝叶斯营销组合建模(BayesianMarketingMixModeling,MMM)作为一种先进的营销效果评估方法,其核心在于通过贝叶斯框架对营销投资的影响进行量化分析。在实践中为确保模型的可靠性和有效性,需要系统地进行模型诊断、分析和比较。本文将重点探讨这些关键环节,包括:通过后验预测检验评估......
  • CLIPFit:不绕弯子,直接微调比提示微调和适配器微调更好 | EMNLP'24
    来源:晓飞的算法工程笔记公众号,转载请注明出处论文:Vision-LanguageModelFine-TuningviaSimpleParameter-EfficientModification论文地址:https://arxiv.org/abs/2409.16718论文代码:https://github.com/minglllli/CLIPFit创新点提出了一种CLIPFit方法以高效地微......
  • 人工智能模型训练:从不同格式文件中读取训练数据集
    上一篇:《研发LLM模型,如何用数值表示人类自然语言?》序言:人工智能数据工程师在采集数据时往往会使用不同的工具,因此最终得到的原始数据结构各不相同。市场上已知的数据采集和分析工具所输出的文件格式大致有几种。前面我们介绍了如何从谷歌的TFDS中提取支持的格式数据,今天将为大家......
  • 一个模型让所有汽车都能漂移:基于物理的极限驾驶条件扩散模型
    来自TRI和RPI的CoRL‘24最佳论文之一“OneModeltoDriftThemAll:Physics-InformedConditionalDiffusionModelforDrivingattheLimits“。让自动驾驶汽车在操控极限(轮胎力饱和)下可靠运行将提高其安全性,特别是在紧急避障或恶劣天气条件等情况下。然而,由于该任务......
  • 书生大模型实训营第4期基础岛第一关:书生大模型全链路开源体系介绍
    书生大模型实训营第4期基础岛第一关:书生大模型全链路开源体系介绍1.书生·浦语的开源之路1.1模型发展历程1.2核心技术思路1.2.1模型训练迭代技术1.2.2基于规划和搜索解决复杂问题1.3书生·浦语开源模型谱系2.书生·浦语全链路开源体系结构2.1数据开源:书生·万......
  • 使用YOLO 模型进行线程安全推理
    使用YOLO模型进行线程安全推理一、了解Python线程二、共享模型实例的危险2.1非线程安全示例:单个模型实例2.2非线程安全示例:多个模型实例三、线程安全推理3.1线程安全示例四、总结4.1在Python中运行多线程YOLO模型推理的最佳实践是什么?4.2为什么每个线程都要有......
  • Word2Vec,此向量维度,以及训练数据集单条数据的大小,举例说明;Skip-gram模型实现词嵌入;热
    目录Word2VecWord2Vec,此向量维度,以及训练数据集单条数据的大小,举例说明一、Word2Vec的词向量维度二、训练数据集单条数据的大小综上所述热编码(One-HotEncoding)和词向量一、表示方式二、维度与计算效率三、语义捕捉能力四、举例说明Skip-gram模型实现词嵌入Skip-g......
  • 推荐模型梳理
    Summary目录Summary标准序列推荐模型其他推荐模型FPMCDNN(Pooling)GRU4Rec(RNN-based)GRU4Rec+(RNN-based)Caser(CNN-based)SASRec(Transformer-based)DIN(Transformer-based)BERT4Rec(Transformer-based)TiSASRec(Transformer-based)FMLP-Rec(Transformer-based)CLS4Rec(ContrastiveLearnin......
  • 刚入门大模型该如何快速上手?
    前言在AI技术日新月异的今天,大模型成为了引领科技浪潮的明星产品。它们凭借强大的数据处理能力和深度学习能力,正在改变着我们的工作和生活方式。对于初学者来说,如何快速上手大模型,成为了一个迫切而又具有挑战性的问题。前排提示,文末有大模型AGI-CSDN独家资料包哦!一、了......