用通俗易懂的方式讲解大模型:一个强大的 LLM 微调工具 LLaMA Factory

快速上手!LLaMa-Factory最新微调实践,轻松实现专属大模型 近日,源2.0开源大模型与LLaMA-Factory框架完成全面适配,用户通过LLaMA-Factory,即可快捷、高效地对不同参数规模的源2.0基础模型进行全量微调及高效微调,轻松实现专属大模型。 阅读详情

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为环境配置而放弃了。

今天我们来介绍一个可以帮助大家快速进行 LLM 微调的工具——LLaMA Factory,它可以帮助大家快速进行 LLM
微调,而且还可以在微调过程中进行可视化,非常方便。

什么是 LLM 微调

LLM 微调,也叫做 Fine-tuning,是深度学习领域中常见的一种技术,用于将预先训练好的模型适配到特定的任务或数据集上。这个过程包括几个主要步骤:

  • 基础模型选择:选择一个通用文本数据的基础语言模型,使其能够理解基本的语言结构和语义。

  • 准备训练数据集:选择一个与目标任务相关的较小数据集。

  • 微调:在此数据集上训练模型,但通常使用较低的学习率,以保留基础模型学到的知识,同时学习目标任务的特定知识。

  • 评估:在目标任务的验证集上评估模型的性能,需要准备评估数据集。

  • 应用:如果性能满意,则可以将模型应用于实际任务。

这种方法的优势在于,通过微调可以快速并且以较低的计算成本将模型适配到特定任务,而不需要从头开始训练模型。同时,由于预训练模型已经学到了很多通用的语言知识,微调通常能够获得不错的性能。

前沿的微调策略

  • LoRA:LoRA 是一种用于微调大型语言模型的技术,通过低秩近似方法降低适应数十亿参数模型(如 GPT-3)到特定任务或领域的计算和财务成本。

  • QLoRA:QLoRA 是一种高效的大型语言模型微调方法,它显著降低了内存使用量,同时保持了全 16 位微调的性能。它通过在一个固定的、4 位量化的预训练语言模型中反向传播梯度到低秩适配器来实现这一目标。

  • PEFT:PEFT 是一种 NLP 技术,通过仅微调一小部分参数,高效地将预训练的语言模型适应到各种应用,降低计算和存储成本。它通过调整特定任务的关键参数来对抗灾难性遗忘,并在多种模式(如图像分类和稳定扩散梦展台)中提供与全微调相当的性能。这是一种在最少的可训练参数情况下实现高性能的有价值方法。

目前 LLM 微调的最佳实践是采用 LoRA 或 QLoRA 策略进行 LLM 微调。

LLaMA Factory 介绍

LLaMA Factory[1]是一个 LLM 微调工具,支持预训练(Pre-Training)、指令监督微调(Supervised Fine-
Tuning)、奖励模型训练(Reward Modeling)等训练方式,每种方式都支持 LoRA 和 QLoRA 微调策略。它的前身是ChatGLM-
Efficient-Turning[2],是基于 ChatGLM 模型做的一个微调工具,后面慢慢支持了更多的 LLM 模型,包括
BaiChuan,QWen,LLaMA 等,于是便诞生了 LLaMA Factory。

它的特点是支持的模型范围较广(主要包含大部分中文开源 LLM),集成业界前沿的微调方法,提供了微调过程中需要用到的常用数据集,最重要的一点是它提供了一个
WebUI 页面,让非开发人员也可以很方便地进行微调工作。

部署安装

LLaMA Factory 的部署安装非常简单,只需要按照官方仓库中的步骤执行即可,执行命令如下:

​

# 克隆仓库
git clone https://github.com/hiyouga/LLaMA-Factory.git
# 创建虚拟环境
conda create -n llama_factory python=3.10
# 激活虚拟环境
conda activate llama_factory
# 安装依赖
cd LLaMA-Factory
pip install -r requirements.txt

接下来是下载 LLM,可以选择自己常用的 LLM,包括 ChatGLM,BaiChuan,QWen,LLaMA 等,这里我们下载 BaiChuan
模型进行演示:

​

# 方法一:开启 git lfs 后直接 git clone 仓库
git lfs install
git clone https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat

# 方法二:先下载仓库基本信息,不下载大文件,然后再通过 huggingface 上的文件链接下载大文件
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat
cd Baichuan2-13B-Chat
wget "https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat/resolve/main/pytorch_model-00001-of-00003.bin"
...

方法一的方式会将仓库中的 git 记录一并下载,导致下载下来的文件比较大,建议是采用方法二的方式,速度更快整体文件更小。

注意点:

  • 如果你是使用 AutoDL[3] 进行部署的话,在conda activate llama_factory之前需要先执行一下conda init bash命令来初始化一下 conda 环境,然后重新打开一个终端窗口,再执行conda activate llama_factory命令。

  • 如果使用的是 BaiChuan 的模型,需要修改transformers的版本为4.33.2,否则会报AttributeError: 'BaichuanTokenizer' object has no attribute 'sp_model'的错误。

开始微调

启动 LLaMA Factory 的 WebUI 页面,执行命令如下:

​

CUDA_VISIBLE_DEVICES=0 python src/train_web.py

启动后的界面如下:

在这里插入图片描述

界面分上下两部分,上半部分是模型训练的基本配置,有如下参数:

  • 模型名称:可以使用常用的模型,包括 ChatGLM,BaiChuan,QWen,LLaMA 等,我们根据下载的模型选择Baichuan2-13B-Chat。

  • 模型路径:输入框填写我们之前下载的 Baichuan 模型的地址。

  • 微调方法有三种:

  • full:将整个模型都进行微调。

  • freeze:将模型的大部分参数冻结,只对部分参数进行微调。

  • lora:将模型的部分参数冻结,只对部分参数进行微调,但只在特定的层上进行微调。

  • 模型断点:在未开始微调前为空,微调一次后可以点击刷新断点按钮,会得到之前微调过的断点。

  • 高级设置和模型设置可以不用管,使用默认值即可。

下半部分是一个页签窗口,分为Train、Evaluate、Chat、Export四个页签,微调先看Train界面,有如下参数:

  • 训练阶段:选择训练阶段,分为预训练(Pre-Training)、指令监督微调(Supervised Fine-Tuning)、奖励模型训练(Reward Modeling)、PPO 、DPO 五种,这里我们选择指令监督微调(Supervised Fine-Tuning)。

  • Pre-Training:在该阶段,模型会在一个大型数据集上进行预训练,学习基本的语义和概念。

  • Supervised Fine-Tuning:在该阶段,模型会在一个带标签的数据集上进行微调,以提高对特定任务的准确性。

  • Reward Modeling:在该阶段,模型会学习如何从环境中获得奖励,以便在未来做出更好的决策。

  • PPO Training:在该阶段,模型会使用策略梯度方法进行训练,以提高在环境中的表现。

  • DPO Training:在该阶段,模型会使用深度强化学习方法进行训练,以提高在环境中的表现。

  • 数据路径:指训练数据集文件所在的路径,这里的路径指的是 LLaMA Factory 目录下的文件夹路径,默认是data目录。

  • 数据集:这里可以选择数据路径中的数据集文件,这里我们选择self_cognition数据集,这个数据集是用来调教 LLM 回答诸如你是谁 、你由谁制造 这类问题的,里面的数据比较少只有 80 条左右。在微调前我们需要先修改这个文件中的内容,将里面的<NAME>和<AUTHOR>替换成我们的 AI 机器人名称和公司名称。选择了数据集后,可以点击右边的预览数据集按钮来查看数据集的前面几行的内容。

在这里插入图片描述

  • 学习率:学习率越大,模型的学习速度越快,但是学习率太大的话,可能会导致模型在寻找最优解时跳过 最优解,学习率太小的话,模型学习速度会很慢,所以这个参数需要根据实际情况进行调整,这里我们使用默认值5e-5。

  • 训练轮数:训练轮数越多,模型的学习效果越好,但是训练轮数太多的话,模型的训练时间会很长,因为我们的训练数据比较少,所以要适当增加训练轮数,这里将值设置为30。

  • 最大样本数:每个数据集最多使用的样本数,因为我们的数据量很少只有 80 条,所以用默认值就可以了。

  • 计算类型:这里的fp16 和 bf16 是指数字的数据表示格式,主要用于深度学习训练和推理过程中,以节省内存和加速计算,这里我们选择bf16

  • 学习率调节器:有以下选项可以选择,这里我们选择默认值cosine。

  • linear(线性): 随着训练的进行,学习率将以线性方式减少。

  • cosine(余弦): 这是根据余弦函数来减少学习率的。在训练开始时,学习率较高,然后逐渐降低并在训练结束时达到最低值。

  • cosine_with_restarts(带重启的余弦): 和余弦策略类似,但是在一段时间后会重新启动学习率,并多次这样做。

  • polynomial(多项式): 学习率会根据一个多项式函数来减少,可以设定多项式的次数。

  • constant(常数): 学习率始终保持不变。

  • constant_with_warmup(带预热的常数): 开始时,学习率会慢慢上升到一个固定值,然后保持这个值。

  • inverse_sqrt(反平方根): 学习率会随着训练的进行按照反平方根的方式减少。

  • reduce_lr_on_plateau(在平台上减少学习率): 当模型的进展停滞时(例如,验证误差不再下降),学习率会自动减少。

  • 梯度累积和最大梯度范数:这两个参数通常可以一起使用,以保证在微调大型语言模型时,能够有效地处理大规模数据,同时保证模型训练的稳定性。梯度累积允许在有限的硬件资源上处理更大的数据集,而最大梯度范数则可以防止梯度爆炸,保证模型训练的稳定性,这里我们使用默认值即可。

  • 断点名称:默认是用时间戳作为断点名称,可以自己修改。

  • 其他参数使用默认值即可。

参数设置完后点击预览命令按钮可以查看本次微调的命令,确认无误后点击开始按钮就开始微调了,因为数据量比较少,大概几分钟微调就完成了(具体时间还要视机器配置而定,笔者使用的是
A40 48G GPU),在界面的右下方还可以看到微调过程中损失函数曲线,损失函数的值越低,模型的预测效果通常越好。

在这里插入图片描述

模型试用

微调完成后,进入Chat页签对微调模型进行试用。首先点击页面上的刷新断点按钮,然后选择我们最近微调的断点名称,再点击加载模型按钮,等待加载完成后就可以进行对话了,输入微调数据集中的问题,然后来看看微调后的
LLM 的回答吧。

在这里插入图片描述

模型导出

如果觉得微调的模型没有问题,就可以将模型导出并正式使用了,点击Export页签,在导出目录中输入导出的文件夹地址。一般模型文件会比较大,右边的最大分块大小参数用来将模型文件按照大小进行切分,默认是10GB,比如模型文件有
15G,那么切分后就变成 2 个文件,1 个 10G,1 个
5G。设置完成后点击开始导出按钮即可,等导出完成后,就可以在对应目录下看到导出的模型文件了。

在这里插入图片描述

总结

LLaMA Factory 是一个强大的 LLM
微调工具,今天我们只是简单地介绍了一下它的使用方法,真正的微调过程中还有很多工作要做,包括数据集的准备,微调的多个阶段,微调后的评估等,笔者也是刚接触微调领域,文中有不对的地方希望大家在评论区指出,一起学习讨论。

​

如何学习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

四、AI大模型商业化落地方案

img

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

【AI时代】可视化训练模型工具LLaMA-Factory安装与使用 一款进行模型可视化训练、推理的神器。 阅读详情

相关推荐

用 LLama-Factory 训练和微调 LLama3,打造你的专属 AI 模型!

微调模型涉及调整预训练或基础模型的参数,使其能够用于特定任务或数据集,从而提升其性能和准确性。这个过程包括为模型提供新的数据,并修改其权重、偏差和某些参数以最小化损失和成本。通过这样做,这个新模型可以在任何新任务或数据集上表现良好,而无需从头开始,从而节省时间和资源。通常,当一个新的大型语言模型(LLM)创建时,它会在一个大型文本数据语料库上进行训练,其中可能包含潜在有害或不良内容。在预训练或初始训练阶段之后,模型会被微调加入安全措施,确保其避免生成有害或不良的响应。然而,这种方法并非完美无缺。

数智笔记 2997

Llama-Factory的baichuan2微调

现有的获得这种可控性的方法是收集人工对模型生成相对质量的标签,并且通过人类反馈强化学习(RLHF)对无监督的 LM 进行微调,以使其与人类偏好相一致。然而,RLHF 是一个复杂且经常不太稳定的过程,它首先拟合一个反应人类偏好的奖励模型,然后通过强化学习对大型无监督 LM 进行微调以最大化评估奖励,并避免与原始模型相差太远。值得注意的是,用 DPO 进行微调在控制生成结果的情感以及改善摘要和单轮对话的响应质量方面表现出更好的能力,同时在实现和训练时的难度大大降低。,从本质上解决了人类偏好数据上的分类问题。

man_Xue_hao的博客 9414

LLaMA-Factory可视化界面微调chatglm2;LoRA训练微调模型 简单案例

lore模型训练 参考:https://github.com/huggingface/peft。

weixin_42357472的博客 7797

【转载】用通俗易懂的方式讲解大模型:一个强大的 LLM 微调工具 LLaMA Factory

LLM 微调,也叫做 Fine-tuning,是深度学习领域中常见的一种技术,用于将预先训练好的模型适配到特定的任务或数据集上。这个过程包括几个主要步骤:基础模型选择:选择一个通用文本数据的基础语言模型,使其能够理解基本的语言结构和语义。准备训练数据集:选择一个与目标任务相关的较小数据集。微调:在此数据集上训练模型,但通常使用较低的学习率,以保留基础模型学到的知识,同时学习目标任务的特定知识。评估:在目标任务的验证集上评估模型的性能,需要准备评估数据集。

Working harder, getting stronger! 497

保姆级教程:在RK3588开发板上配置USB-C PD充电(基于HUSB311芯片与DTS详解)

本文详细介绍了在RK3588开发板上配置USB-C PD充电的完整流程,重点解析了HUSB311芯片的硬件原理与DTS安全配置。通过实战案例和调试技巧,帮助开发者避免常见错误,实现稳定可靠的Type-C PD快充功能,适用于从基础开发板到工业设备的多场景需求。

weixin_42552315的博客 522

保姆级教程:用GEE(Google Earth Engine)复现CASA模型计算NPP,附完整数据集清单与Python代码

本文提供了一份详细的保姆级教程,指导如何使用GEE(Google Earth Engine)复现CASA模型计算NPP(净初级生产力)。教程涵盖环境准备、关键数据集获取与处理、Python代码实现全流程,以及结果验证与常见问题解决方案,帮助生态学研究者高效完成NPP计算。

weixin_28707365的博客 334

LLaMA-Factory:手把手教你从零微调大模型!

在深度学习领域,模型微调通常指的是在预训练模型的基础上进行的进一步训练。预训练模型是在大量数据上训练得到的,它已经学习到了语言的基本规律和丰富的特征表示。然而,这些模型可能并不直接适用于特定的任务或领域,因为它们可能缺乏对特定领域知识的理解和适应性。模型微调通过在特定任务的数据集上继续训练预训练模型来进行,使得模型能够学习到与任务相关的特定特征和知识。这个过程通常涉及到模型权重的微幅调整,而不是从头开始训练一个全新的模型。

php源码 1万+

iOS反编译-hook微信之艾特所有人

all。

2501_90243249的博客 759

10 分钟,教你如何用 LLama-Factory 训练和微调 LLama3 模型

10 分钟,教你如何用 LLama-Factory 训练和微调 LLama3 模型

瓦罗兰特顶级C位的博客 1621

matlab 点云可视化(1)——pcshow()函数可视化单个点云

matlab可视化单个点云常用方法汇总。

点云侠的博客 5359

在Simulink中构建永磁同步电机的网络化控制模型,并分析通信网络对系统性能的影响

核心优势通过仿真验证了网络延迟和丢包对PMSM控制性能的影响。提供了改进PI参数或引入自适应控制的解决方案。扩展方向抗干扰控制:结合卡尔曼滤波或滑模控制抑制网络噪声。时间敏感网络(TSN)建模:参考知识库[2]的中断触发方式,实现确定性通信。网络安全仿真:模拟恶意攻击(如数据篡改)对控制系统的威胁。

xiaoheshang_123的博客 168

用LLama-Factory训练和微调 LLama3,打造你的专属 AI 模型!

微调模型涉及调整预训练或基础模型的参数,使其能够用于特定任务或数据集,从而提升其性能和准确性。这个过程包括为模型提供新的数据,并修改其权重、偏差和某些参数以最小化损失和成本。通过这样做,这个新模型可以在任何新任务或数据集上表现良好,而无需从头开始,从而节省时间和资源。通常,当一个新的大型语言模型(LLM)创建时,它会在一个大型文本数据语料库上进行训练,其中可能包含潜在有害或不良内容。在预训练或初始训练阶段之后,模型会被微调加入安全措施,确保其避免生成有害或不良的响应。然而,这种方法并非完美无缺。

m0_59163425的博客 3203

Linux 内核参数:meminfo

内存管理是一个相对复杂的内核模块,错综复杂的数据结构和管理逻辑。Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。本文要分析的节点meminfo是Linux 操作系统中查看系统内存最准确(meminfo 中有内存黑洞)的方法,它包含当前时刻系统的所有物理页面的信息。

私房菜 2414

小白学大模型:LLaMA-Factory介绍与使用

Efficient fine-tuning对于将大型语言模型(LLMs)调整到下游任务中至关重要。然而要在不同模型上实现这些方法需要付出相当大的努力。多种精度:32 比特全参数微调、16 比特冻结微调、16 比特 LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8 的 2/4/8 比特 QLoRA 微调。先进算法:GaLore、DoRA、LongLoRA、LLaMA Pro、LoRA+、LoftQ 和 Agent 微调。

2401_85373691的博客 1022

Xilinx ISE系列教程(2):LED点灯工程、仿真、bit下载和mcs固化

bit流生成配置选项很多,支持生成bit/bin/ascii格式的bin文件,是否压缩,配置速度,配置管脚的上下拉,用户ID,数据加载速度,SPI总线宽度,是否支持Readback,程序加密等等。,在之后的文章,我们会以Xilinx Spartan-6系列FPGA XC6SLX16为例,不涉及FPGA开发知识,仅仅是工具的使用,介绍Xilinx ISE开发环境的使用教程和使用技巧。bit文件下载之后,可以看到LED按照我们设计的1s周期闪烁起来了,但是此时如果断电,重新上电程序就丢失了。...

whik1194的博客 2279

Open3D DBSCAN聚类

DBSCAN算法做为一种有名的密度聚类算法,它是通过邻域参数(Distance,MinPts)来刻画样本分布的紧密程度。而在真正开始之前,首先要理解下面这几个概念:更为具体的内容也可参考这篇文章点云DBSCAN聚类算法。...

dayuhaitang1的博客 1798

小白学大模型:LLaMA-Factory 介绍与使用

Efficient fine-tuning对于将大型语言模型(LLMs)调整到下游任务中至关重要。然而要在不同模型上实现这些方法需要付出相当大的努力。多种精度:32 比特全参数微调、16 比特冻结微调、16 比特 LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8 的 2/4/8 比特 QLoRA 微调。先进算法:GaLore、DoRA、LongLoRA、LLaMA Pro、LoRA+、LoftQ 和 Agent 微调。

2401_85328934的博客 1769

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大模型微调实战指南:从LoRA/QLoRA原理到LLaMA-Factory工程实践

大语言模型微调是使通用预训练模型适应特定领域或任务的关键技术。其核心原理是在不显著改变原始模型庞大参数的前提下,通过引入少量可训练参数(如LoRA的低秩适配器)或结合量化技术(如QLoRA的4-bit量化),高效地调整模型行为,实现低成本、高性能的定制化。这项技术的核心价值在于,它弥合了通用大模型能力与垂直场景需求之间的鸿沟,让开发者能够利用有限算力,为客服、内容生成、代码辅助等具体应用打造专属AI助手。本文以吴恩达的经典课程框架为理论基础,结合LLaMA-Factory等现代工具链,深入讲解从环境搭建、数

weixin_34174422的博客 300

Camera2Demo

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

从零到一:基于LLaMA-Factory与Ollama的大模型微调与部署实战指南

大语言模型(LLM)的微调与部署是当前AI工程实践的核心环节。其核心原理在于,通过在通用预训练模型的基础上,使用特定领域数据进行额外训练,使模型获得新的能力或适应特定任务。这一过程的技术价值在于,能以相对较低的算力成本,将强大的基础模型定制化为解决实际业务问题的专用工具。常见的应用场景包括智能客服、代码生成、内容创作和领域知识问答等。本文聚焦于参数高效微调(PEFT)技术,特别是QLoRA方法,它能大幅降低显存需求,使得在消费级GPU上微调大模型成为可能。通过结合LLaMA-Factory这一集成微调框架和

weixin_30482181的博客 547

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大模型微调实战:从LoRA/QLoRA原理到LLaMA-Factory工程实践

大模型微调是自然语言处理中的关键技术,其核心原理是在预训练模型的基础上,使用特定领域数据对模型参数进行有目的的调整,从而实现从通用能力到垂直领域专精的转变。这项技术的核心价值在于,它能以相对较低的成本,显著提升模型在特定业务场景下的准确性、专业性和可控性,是企业级AI应用落地的关键环节。在工程实践中,高效微调方法如LoRA和QLoRA已成为主流,它们通过仅训练少量新增参数或结合量化技术,在保证效果的同时大幅降低了计算和存储开销。本文以流行的LLaMA-Factory框架为例,系统性地展示了从环境配置、数据准

weixin_33796177的博客 325

基于Llama-Factory的博物馆导览语音生成项目

本文介绍如何利用Llama-Factory框架,通过LoRA微调Qwen-7B模型,构建低成本、可交互的博物馆导览语音系统。涵盖数据构建、高效训练、部署优化及系统架构设计,实现高质量文物讲解与实时语音交互。

weixin_42298164的博客 1477
上一篇: 大语言模型训练部署流程及步骤
下一篇: 小白也能微调大模型:LLaMA-Factory使用心得
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值