【大模型实战教程】Qwen2.5 PyTorch模型微调入门实战

Qwen2.5-Omni 部署框架选择指南:PyTorch vs. TensorFlow 深度对比 https://example.com/cat.jpg</image>这是什么动物?keras.models.load_model("qwen_tf_savedmodel") # 需预先转换。inputs = tf.constant(["<image>... 阅读详情
AI摘要

本文介绍Qwen2.5大型语言模型,它相比Qwen2有诸多改进,如增加知识量、提升多方面能力等。还阐述了其环境准备、模型链接下载、推理、微调等操作步骤,最后分享了全套AGI大模型学习路线、640套报告合集、经典PDF籍等AI大模型学习资料。

1 引言

Qwen2.5是Qwen大型语言模型系列的最新成果。对于Qwen2.5,通义千问团队发布了从0.5到720亿参数不等的基础语言模型及指令调优语言模型。Qwen2.5相比Qwen2带来了以下改进:

  • 显著增加知识量,在编程与数学领域的能力得到极大提升,这得益于我们在这些领域的专业专家模型。
  • 在遵循指令、生成长文本(超过8K个token)、理解结构化数据(例如,表格)以及生成结构化输出特别是JSON方面有显著提升。对系统提示的多样性更具韧性,增强了聊天机器人中的角色扮演实现和条件设定。
  • 支持长上下文处理,上限为128K个token,并能生成最多8K个token。
  • 支持超过29种语言的多语言功能,包括中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语、阿拉伯语等。

2 环境准备

2.1 安装Ascend CANN Toolkit和Kernels

安装方法请参考安装教程或使用以下命令。

# 请替换URL为CANN版本和设备型号对应的URL
# 安装CANN Toolkit
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C17SPC701/Ascend-cann-toolkit_8.0.RC1.alpha001_linux-"$(uname -i)".run
bash Ascend-cann-toolkit_8.0.RC1.alpha001_linux-"$(uname -i)".run --install

# 安装CANN Kernels
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C17SPC701/Ascend-cann-kernels-910b_8.0.RC1.alpha001_linux.run
bash Ascend-cann-kernels-910b_8.0.RC1.alpha001_linux.run --install

# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh

2.1 安装openMind Library以及openMind Hub Client

  • 安装openMind Hub Client
pip install openmind_hub

  • 安装openMind Library,并安装PyTorch框架及其依赖。
pip install openmind[pt]

更详细的安装信息请参考openMind官方的环境安装章节。

  • 安装llama-factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch-npu,metrics]"

3 模型链接和下载

Qwen2.5-7B模型系列由社区开发者在魔乐社区贡献,包括:

通过Git从魔乐社区下载模型的repo,以Qwen2.5-7B-Instruct为例:

首先保证已安装git-lfs(https://git-lfs.com)
git lfs install
git clone https://modelers.cn/AI-Research/Qwen2.5-7B-Instruct.git

4 模型推理

用户可以使用openMind Library或者LLaMa Factory进行模型推理,以Qwen2.5-7B-Instruct为例,具体如下:

  • 使用openMind Library进行模型推理

新建推理脚本 inference_qwen2.5_7b_chat.py ,推理脚本内容为:

import argparse
from openmind import AutoModelForCausalLM, AutoTokenizer
from openmind_hub import snapshot_download

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="Path to model",
        default=None,
    )

    args = parser.parse_args()

    return args

def main():
    args = parse_args()
    if args.model_name_or_path:
        model_path = args.model_name_or_path
    else:
        model_path = snapshot_download("AI-Research/Qwen2.5-7B-Instruct", revision="main", resume_download=True,
                                    ignore_patterns=[" .h5", " .ot", "*.mspack"])

    model = AutoModelForCausalLM.from_pretrained(
        model_path,
        torch_dtype="auto",
        device_map="auto"
    )
    tokenizer = AutoTokenizer.from_pretrained(model_path)

    prompt = '你是谁'
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt}
    ]
    text = tokenizer.apply_chat_template(
        messages,
        tokenize=False,
        add_generation_prompt=True
    )
    model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

    generated_ids = model.generate(
        **model_inputs,
        max_new_tokens=512
    )
    generated_ids = [
        output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
    ]

    response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
    print(response)

if __name__ == "__main__":
    main()

执行推理脚本:

python inference_qwen2.5_7b_chat.py

推理结果如下: 在这里插入图片描述

  • 使用LLaMa Factory与模型交互

在LLaMa Factory路径下新建examples/inference/qwen2.5_7b_chat.yaml推理配置文件,文件内容为:

model_name_or_path: xxx # 当前仅支持本地加载,填写Qwen2.5-7B-Instruct本地权重路径
template: qwen

使用以下命令与模型进行交互:

llamafactory-cli chat examples/inference/qwen2.5_7b_chat.yaml

交互结果如下:

在这里插入图片描述

5 模型微调

5.1 数据集

使用Llama-Factory集成的identity数据集

5.2 微调

新建examples/train_lora/qwen2.5_7b_lora_sft.yaml 微调配置文件,微调配置文件如下:

### model
model_name_or_path: xxx/xxx  # 预训练模型路径

### method
stage: sft
do_train: true
finetuning_type: lora
lora_target: all

### dataset
dataset: identity
template: qwen
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: ./saves/qwen2.5_7b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 10.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

使用以下命令进行微调:

llamafactory-cli train examples/train_lora/qwen2.5_7b_lora_sft.yaml

5.3 微调可视化

  • 训练Loss可视化: 在这里插入图片描述

5.4 微调后推理

5.4.1 模型推理

修改examples/inference/qwen2.5_7b_chat.yaml推理配置文件,文件内容为:

model_name_or_path: xxx # 当前仅支持本地加载,填写Qwen2.5-7B-Instruct本地权重路径
adapter_name_or_path: ./saves/qwen2.5_7b/lora/sft
template: qwen

使用以下命令进行推理:

llamafactory-cli chat examples/inference/qwen2.5_7b_chat.yaml

5.4.2推理结果

在这里插入图片描述

6 结语

在之前的华为全联接大会2024上,了解到openMind应用使能套件在AI生态社区中发挥的技术能力。此次Qwen模型的微调经验,也让人看到了openMind在AI模型调优和推理能力。openMind是AI开发者的强有力的助手,它让微调过程变得更加高效和直观。希望每一位开发者都来尝试它,一起交流经验,更好地提升它的能力。

​

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

img

五、大模型面试题大全

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

Qwen大模型Lora微调-Windows Qwen大模型微调 阅读详情

相关推荐

Qwen2.5 模型精调实战:使用 QLoRA + 自定义指令微调

手把手教你如何使用轻量化技术 QLoRA 对 Qwen2.5 模型进行本地微调,包括准备指令数据集、搭建训练环境、训练参数配置、结果推理与评估部署,帮助你快速打造自己的专属国产大模型。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1791

Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!

进行微调。在这里,我们将展示可直接运行的demo。

xxue345678的博客 2万+

[论文笔记] llama-factory 微调qwen2.5、llama3踩坑

【代码】[论文笔记] llama-factory 微调qwen2.5、llama3踩坑。

心宝的博客 2106

手把手带你微调阿里qwen2.5大模型

大模型微调,也称为 Fine-tuning ,是指在已经预训练好的大型语言模型 基础上(一般称为“基座模型”),使用特定的数据集进行进一步的训练,让模型适应特定任务或领域。经过预训练的基座模型其实已经可以完成很多任务,比如回答问题、总结数据、编写代码等。但是,并没有一个模型可以解决所有的问题,尤其是。

python12222_的博客 2万+

别再自己写消息提示了!5分钟用WPF+Material Design打造专业级Snackbar(支持.NET 6)

本文为WPF开发者提供了一份快速集成专业级Snackbar消息提示的实战指南。通过引入MaterialDesignThemes开源库,在.NET 6 WPF项目中,仅需5分钟即可告别传统的MessageBox,实现遵循Material Design规范、动画流畅、支持队列管理的非侵入式Snackbar控件,显著提升应用的用户体验与现代化交互水平。

year5的博客 172

Windows 11“此应用已被管理员阻止运行”解决方案

通过本文介绍的两种方法,你应该能够解决Windows 11中“此应用已被管理员阻止运行”的问题。无论你选择创建新管理员账户还是禁用管理员批准模式,都请确保了解相关操作的风险,并根据你的实际需求做出选择。通过禁用“用户账户控制:以管理员批准模式运行所有管理员”设置,可以解决因系统安全设置导致的应用程序被阻止运行的问题。这种方法适用于那些希望简化管理员账户操作流程的用户,但需要注意可能带来的安全风险。通过创建并登录具有管理员权限的新账户,可以解决因系统安全设置导致的应用程序被阻止运行的问题。

mmoo_python的博客 1万+

Qwen2大模型微调入门实战(完整代码)

是通义千问团队的开源大语言模型,由阿里云通义实验室研发。以Qwen2作为基座大模型,通过指令微调的方式实现高准确率的文本分类,是学习的入门任务。指令微调是一种通过在由(指令,输出)对组成的数据集上进一步训练LLMs的过程。其中,指令代表模型的人类指令,输出代表遵循指令的期望输出。这个过程有助于弥合LLMs的下一个词预测目标与用户让LLMs遵循人类指令的目标之间的差距。在这个任务中我们会使用模型在数据集上进行指令微调任务,同时使用SwanLab进行监控和可视化。本教程参考了。

SoulmateY的博客 3万+

深入SVT SPI VIP配置:如何灵活控制CS间隔、数据帧大小与时钟频率(含代码片段)

本文深入探讨了SVT SPI VIP的高级配置技巧,包括精确控制CS信号间隔、突破数据帧大小限制以及动态时钟频率切换。通过实战代码片段和详细配置步骤,帮助验证工程师灵活应对复杂SPI协议验证场景,提升验证效率和覆盖率。特别适合需要处理非标准SPI时序和特殊数据帧的芯片验证项目。

weixin_27014595的博客 280

Qwen2.5 PyTorch模型微调入门实战

在之前的华为全联接大会2024上,了解到openMind应用使能套件在AI生态社区中发挥的技术能力。此次Qwen模型的微调经验,也让人看到了openMind在AI模型调优和推理能力。openMind是AI开发者的强有力的助手,它让微调过程变得更加高效和直观。希望每一位开发者都来尝试它,一起交流经验,更好地提升它的能力。openMind,一款应用使能开发套件,为各大模型社区提供支持,提供海量模型/数据托管能力、在线推理体验服务,同时具备模型训练、微调、评估、推理等全流程开发能力。

2401_87243659的博客 2051

openEuler系统下安装Google Chrome浏览器全攻略(附依赖问题解决方案)

本文详细介绍了在openEuler系统上安装Google Chrome浏览器的完整指南,包括环境准备、多种安装方式、依赖问题解决方案及性能优化技巧。针对openEuler特有的软件生态和依赖管理机制,提供了实用的命令和配置方法,帮助用户克服安装过程中的常见障碍,实现流畅的Chrome使用体验。

hadoop5ranger的博客 1149

069_死区效应对输出电压畸变的补偿思路

死区效应导致逆变器输出电压在过零点出现台阶畸变,引发THD升高。其本质是死区期间续流二极管钳位造成的非线性误差,与电流方向、负载大小、母线电压耦合。补偿需结合前馈(基于电流方向自适应调整偏置)与反馈(抑制残余谐波),关键在于准确判断电流方向(采用滞环滤波避免跳变)、合理设置补偿量(随负载动态调整),并注意补偿位置、极性及限幅防漂移。调试应通过差分探头、FFT频谱等手段验证效果,最终实现全负载范围内的低畸变输出。

2401_88858637的博客 21

【机器学习】QLoRA:基于PEFT亲手量化微调Qwen2大模型

本文首先对量化和微调的原理进行剖析,接着以Qwen2-7B为例,基于QLoRA、PEFT一步一步带着大家微调自己的大模型,本文参考全网peft+qlora微调教程,一步一排坑,让大家在网络环境不允许的情况下,也能丝滑的开启大模型微调之旅。

人工智能领域博客 9435

点云语义分割:使用Cylinder3D训练SemanticKITTI数据集

将该路径修改到config/semanticktti.yaml文件中的data_path节点下。下载semanticKITTI数据集的点云数据和标签,解压到一起。系统:Ubuntu18。

zhaoguanhua的博客 2597

Qwen2大模型微调入门实战(附完整代码)

大模型指令微调(Instruction Tuning)是一种针对大型预训练语言模型的微调技术,其核心目的是增强模型理解和执行特定指令的能力,使模型能够根据用户提供的自然语言指令准确、恰当地生成相应的输出或执行相关任务。指令微调特别关注于提升模型在遵循指令方面的一致性和准确性,从而拓宽模型在各种应用场景中的泛化能力和实用性。在实际应用中,我的理解是,指令微调更多把LLM看作一个更智能、更强大的传统NLP模型(比如Bert),来实现更高精度的文本预测任务。

m0_59235699的博客 3198

SQL面试题——最大连续登陆问题

最大连续登陆是我们计算比较常用的指标,我们可以将其当成一个经典的SQL模型,后面我们也会陆续总结出其他的模型,你还知道其他的比较经典的SQL 吗?欢迎分享,或者你还知道其他的关于计算连续的指标?最大连续登陆重要的是计算思想,最大连续才是关键,登陆只是一个场景,要学会举一反三。

9012

【LAMMPS学习】八、基础知识(4.5)TIP5P水模型

​ 五点 TIP5P 刚性水模型通过添加两个通常无质量的附加位点 L 来扩展three-point TIP3P model,其中放置与氧原子相关的电荷。这些位点 L 位于距氧原子固定距离处,形成从 HOH 平面旋转 90 度的四面角。因此,这些位点在某种程度上近似于氧的孤对,从而改善了水结构,与four-point TIP4P model相比变得更加“四面体”。

荷塘阅色 1421

最实战的Qwen2微调入门:从文本分类开始

以Qwen2作为基座大模型,通过指令微调的方式实现高准确率的文本分类,是学习的入门任务。指令微调是一种通过在由(指令,输出)对组成的数据集上进一步训练LLMs的过程。其中,指令代表模型的人类指令,输出代表遵循指令的期望输出。这个过程有助于弥合LLMs的下一个词预测目标与用户让LLMs遵循人类指令的目标之间的差距。在这个任务中我们会使用模型在数据集上进行指令微调任务,同时使用SwanLab进行监控和可视化。

SoulmateY的博客 8510

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大模型微调学习笔记Qwen2.5-1.5B

初尝大模型,Qwen2.5-1.5B模型在LLaMa-Factory上进行可视化微调的全流程

M00Rue_的博客 1643

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

基于lora的通义千问qwen大模型微调实战

基于通义千问qwen官方微调实例的1.8b的最小大模型lora微调,目前是基于单卡单机微调最简单实操,Qwen微调

IT大头的博客 9728

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

基于Qwen2.5模型的RAG微调+langchain

本文使用Qwen2.5作为示例,是通义千问最新发布的开源大模型,适合中文场景。同时,我会提供微调步骤和参数设置。

ytt0523_com的博客 2077

Windows系统下本地部署Qwen2.5大模型的实践教程,大模型入门到精通,收藏这篇就足够了!(附教程)

本文将基于Windows系统和CPU环境,使用Qwen2.5系列模型,详细实践从大型语言模型的下载、部署到微调的全过程。

Y525698136的博客 2428
上一篇: 使用LLMs与NebulaGraph进行自然语言图数据库查询指南
下一篇: 求求了!不懂代码真的不要再做AI产品经理了!!!
AI程序猿人
博客等级 码龄3年 6517粉丝 561原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值