NoteLLM: 大语言模型在小红书推荐系统的落地应用

NoteLLM:大语言模型在小红书推荐系统的应用 如何利用LLM生成更好的embedding用于i2i召回链路? 阅读详情

今天分享一篇小红书今年3月的论文,介绍了大语言模型在小红书笔记推荐场景下的落地应用,主要是围绕如何利用LLM的表征能力来生成更适用于i2i召回的文本embedding,思路简单,落地也容易,个人觉得实践价值非常高,值得学习。

在这里插入图片描述

  • NoteLLM: A Retrievable Large Language Model for Note Recommendation
  • https://arxiv.org/abs/2403.01744

背景

为了解决推荐中的物品冷启动问题,在召回阶段中往往会增加一路使用 内容多模态表征的i2i召回 ,这路召回由于只使用了纯内容的特征,和老物品便可以公平比较,不会产生因为新物品后验行为少而导致无法被召回的问题。

现有的多模态i2i召回方法在文本侧一般都是用一个BERT经过预训练后生成embedding然后基于embedding的相似度来进行召回,但是这样可能也会存在一些问题:

  1. BERT表征能力不足 。相较于BERT,使用参数量更大的LLM来生成embedding可能可以学习到一些更为长尾的信息,同时仅使用Bert生成的embedding只能代表文本的语义信息,和下游推荐任务的目标存在一定的不一致;
  2. 标签类别信息利用不够充分 。一篇图文笔记的标签和类别往往代表他的中心思想,对于确定两个笔记是否相关至关重要,但现有的Bert方法只是将标签和类别视为内容的一个组成部分(实际上BERT做预训练时除了MLM任务应该也会有标题预测标签/类别这种任务,这个论述感觉站不住脚)。而文章发现,使用笔记内容生成标签和类别的过程和生成笔记的embedding十分类似,都是讲笔记的关键信息压缩成有限的内容,因此引入一个生成标签和类别的任务可能会提升最终embedding的质量。

因此,文章提出了一种多任务学习的方法,称为 NoteLLM, 使用Llama 2作为backbone,旨在生成更适用于推荐任务的文本embedding 。

具体来说,首先为每个样本构造一个统一的笔记压缩Prompt,然后使用两个预训练任务来生成更好的文本embedding。

  • 一个任务称为 生成式对比学习 (Generative-Contrastive Learning),该任务会将笔记的内容压缩到一个特殊的token中,使用该token生成的向量便可以作为笔记的文本表征。这个任务使用了推荐中的协同过滤信号作为标签来进行对比学习,首先会统计所有笔记对的共现分数,然后使用共现分数高的笔记对视为相关性高的笔记,作为正样本,batch内负样本,用对比学习的方式进行训练,由于引入了协同过滤的信号,所以最终生成的embedding可以更适用于下游推荐任务。
  • 另外一个任务是用笔记标题和内容来生成笔记的标签和类别,称为 协同监督微调 (Generative-Contrastive Learning),这个任务不仅可以生成标签和类别,同时,由于它和生成embedding的过程类似,都是可以提取笔记文本中的关键信息,因此,引入该任务也可以增强第一个任务生成的笔记embedding。

方法介绍

方法分为三个部分,一个输入的prompt构建和训练时用到的两个预训练任务:

  • 笔记压缩prompt构建
  • 生成式对比学习(Generative-Contrastive Learning)
  • 协同监督微调(Collaborative Supervised Fine-Tuning)

笔记压缩prompt构建用来定义模型在训练时的输入,生成式对比学习和协同监督微调分别对应两个预训练任务,前者引入了推荐中的协同过滤信号作为标签进行对比学习来训练更好的文本表征,后者其实就是根据笔记内容来生成对应的标签和类别。

具体流程如下,首先在离线训练阶段,首先根据用户行为构建出很多的相关笔记对,作为训练样本,然后使用LLaMA 2作为backbone进行训练,在训练时一方面使用相关笔记对进行对比学习,另一方面还加入了一个标题和标签生成任务来提高前者embedding生成的质量,而在线则使用模型生成的笔记embedding做ANN召回相关的笔记,同时也可以生成笔记的标签和类别来辅助其他任务。

在这里插入图片描述

笔记压缩prompt

这里在构建prompt的时候同时考虑到了两个预训练任务,一方面为了能够借助将笔记的文本内容压缩到一个token中,再使用这个token映射的向量来进行生成式对比学习,也作为最终输出的文本表征,另一方面也想通过标签和类别生成任务,用来加强前者文本表征的能力,具体的prompt模板如下:

Prompt: [BOS] The compression word is:“[EMB]”. [EOS]

[BOS]代表句子开头,[EOS]代表句子结尾,[EMB]则代表最终要输出文本表征所对应的那个token,最终会将这个token对应的隐向量经过一个全连接层映射后得到最终的表征向量。

同时,针对类别生成和标签生成使用了不同的prompt,但是模板都是同一个,具体来说,如果是做类别生成,那么prompt就是这样的:

: Extract the note information in json format, compress it into one word for recommendation, and generate the category of the note. : {’title’: , ’topic’: , ’content’: }. : The category is: :

如果是用来做标签生成,那么prompt就是这样的:

: Extract the note information in json format, compress it into one word for recommendation, and generate topics of the note. : {’title’: , ’content’: }. : The topics are: : topics from

由于标签有很多,大模型可以不断生成,所以这里从原始标签里随机采样j个标签作为生成的内容,并且在prompt里规定了只能生成j个标签。

在prompt构建输入完成后,便可以把[EMB]这个特殊token最终输出的隐向量当成笔记的文本表征,同时也能够根据笔记的内容生成对应的标签和类别。

生成式对比学习(Generative-Contrastive Learning)

虽然大模型通过SFT和RLHF预训练之后能够表征的语义信息是非常丰富的,但是直接用在下游推荐任务中却不一定好,主要是因为大模型的预训练任务是为了获取语义信息,而下游推荐的目标却是为了点击率,两个目标存在差距,所以这个生成式对比学习就是为了在大模型的预训练中引入推荐的协同过滤信号,从而使得生成的embedding更适用于下游的推荐任务。

具体来说,首先统计一周时间窗口内每个用户点击笔记A后再点击笔记B的次数,然后算出一个共现分数,作为协同过滤的信号,计算两篇笔记共现分数的公式如下:

这里 U 是用户的个数, 代表用户的点击次数,实际上就是对活跃用户进行了降权,防止某些高活用户什么笔记都点导致计算的共现分数不准确。

在计算得到所有笔记两两之间的共现分后,然后再卡阈值,将低于或高于某个阈值的笔记进行过滤,最后对于每个笔记,都会得到和其相关的笔记集合,再两两构建笔记对作为输入的正样本。

进一步,对于每个笔记,都使用这个特殊token的隐向量经过全连接层映射得到的向量作为文本表征向量 ,便可以采用对比学习的方式来进行学习,正样本就是构建好的相关笔记对,对应向量记作 ,负样本采用batch内负采样,对应向量记作 ,损失函数使用对比学习的Info-NCE:

相似度计算采用余弦相似度, sim(a,b)=a^\top b/(|a||b|)

通过这种方式进行训练,便可以使得LLM学到一些用户行为相关的信息,从而生成更好的文本表征服务于下游推荐任务。

顺便说一下,这个思路其实和小红书之前发的另一篇论文提到的CB2CF其实是一脉相承的,只不过另外一篇同时用了文本和图像特征,损失函数用的交叉熵。

图片

协同监督微调(Collaborative Supervised Fine-Tuning)

这个任务实际上就是一个做标签/类别生成任务的SFT,加了协同两个字可能是因为要跟前面引入了协同过滤信号的GCL对应起来,为什么要加这样一个任务呢? 文章提到了两个原因:

  1. 只用LLM生成句子embedding有点像大炮打蚊子的感觉,没有充分发挥LLM强大的生成能力。这边猜测应该是因为生成的标签和类别还可以用于一些其他场景,比如当一些笔记缺乏标签,或者类别不正确是可以使用LLM为其补充信息。
  2. 可以提高上一步生成式对比学习生成的embedding的质量。这是由于生成标签/类别和生成笔记embedding一样,都是旨在总结整个笔记内容。所以加了这个预训练任务可能可以提高生成最终生成的embedding的质量

具体来说,在CSFT里面要同时做类别和标签预测,文章提到为了提高训练效率并防止遗忘问题,会从每个批次中选择 r 个笔记用于标签生成任务,而剩余的笔记则分配用于类别生成任务。CSFT的损失函数如下,其实就是把输出部分的token计算下loss:

图片

最终模型的loss由两项加起来,并且用 作为超参控制两个loss的权重:

实验结果

离线实验

离线实验主要是和线上的SentenceBERT基线以及其他几种用大模型生成文本嵌入的方法对比,用recall@k做评价指标,效果都要更好,结论就是:NoteLLM>=其他方法微调的LLM>>BERT微调>>LLM zero-shot

图片

同时,通过对不同曝光水平的笔记对指标进行了拆分,发现NoteLLM在不同曝光水平的笔记上提升都较为一致,另外可以发现各个方法在低曝光笔记上的召回率都要远高于高曝光的,说明基于内容embedding的方法能够更有效地召回冷启动物品。

图片

消融实验

文章这边也做了消融实验,分别把CSFT任务以及GCL任务去掉,以及在GCL内部对标签类别生成取不同的数据比例,结果发现就是两部分缺一不可,这里可以发现起到最关键作用的是GCL任务,类别预测和标签生成的任务好像对整体效果是可有可无的感觉,看起来只用协同过滤的目标来做对比学习也能效果很好。

图片

在线实验

文章说做了一周的ab实验,跟之前的SentenceBERT基线相比,NoteLLM的点击率提高了16.20%,评论数量增加了1.10%,平均每周发布者数量(WAP)增加了0.41%。结果表明将LLM引入i2i推荐任务可以提高推荐性能和用户体验。此外,还观察到单日对新笔记的评论数量显着增加了3.58%。这表明LLM的引入有利于冷启动。NoteLLM最终推全上线。

总结

尽管现在LLM用来做推荐的论文层出不穷,但是真正能够落地的工作能有几个呢?目前大模型在像搜索推荐这种业务算法中最好落地的还是用来打标以及为下游任务生成可用的embedding或者其他特征,这篇文章就为后者提供了一个非常好的值得参考的范例,不仅能够生成更好的文本表征服务于下游推荐任务,也可以生成一些标签和类别可以用来辅助一些其他场景的任务,整体落地还是非常简单的

​

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

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

ReLLa: Retrieval-enhanced Large Language Models LLM在推荐领域中无法从长用户行为序列的文本上提取有用信息,即使文本长度远远没有达到LLM的文本长度限制。 阅读详情

相关推荐

LLM应用实践: NoteBookLM初次使用

本文主要介绍了NoteBookLM的初次使用,对于提高学习效率,有质的飞升,而且目前处于试用阶段,请各位看官速速试用。

MENGERN的专栏 2728

小红书独家:NoteLLM——智能笔记推荐与标签生成的革命性工具!

随着社交媒体平台如小红书和 Lemon8(字节) 的流行,用户生成内容(UGC)中的 Note 分享变得越来越普遍。这些平台鼓励用户分享产品评价、旅行博客和生活经历等,Note 推荐因此成为提升用户参与度的关键部分。现有的 Online 方法仅将 Note 输入基于 BERT 的模型以生成 Note Embedding 来评估相似性。然而,这些方法可能未能充分利用一些重要线索,例如话题标签(Hashtag)或类别(Category)。

2401_84204413的博客 2618

LaTex的下载与安装(2024小白+windows系统)

本文主要介绍了Latex的下载与安装,还包括安装过程中遇到的小问题的解决。

m0_53096519的博客 2万+

NoteLLM-2来袭:用LLM重塑推荐系统,比多模态大模型更高效!

小红书团队最新提出NoteLLM-2多模态推荐模型,突破传统推荐系统局限。该模型创新性地结合大语言模型和视觉编码器,采用"多模态上下文学习+延迟融合"机制,有效解决图像信息衰减问题。实验表明,该模型在召回率上提升2.47%,线上实测点击率增长8.08%,且训练成本更低、推理速度更快。NoteLLM-2为大模型在多模态推荐领域的应用提供了高效、低成本的解决方案,未来可扩展至视频等复杂模态场景。

2401_84204207的博客 1195

基于 WebGoat 平台的 SQL 注入攻击

基于 WebGoat 平台的 SQL 注入攻击

Labulongdong的博客 3522

计算机考研408复试题汇总

TCP连接是全双工的,两端都可以先挥手 其中一端完成数据发送任务后,发送一个FIN包来终止,另一端针对这个FIN包回复确认包, 直到另一端也发送请求终止数据包FIN,另一端作出确认应答,并且还要发送一个ACK=1表示确认号有效,如果没有收到这个就可以进行重传.

ca1m4n的博客 1万+

小红书的AI推荐引擎进化论:从RAG到Graph RAG的技术与产品思考 | 附AI大模型常用和核心专业术语表(吐血整理!)

RAG 是基础框架,DeepSeek-OCR 加强输入端,Graph RAG 加强检索端。从产品经理的角度,这三种技术解决的问题是层级递进的:技术解决的问题优先级部署难度RAG如何快速找到相似内容🔴 必须⭐ 简单如何高效处理多模态内容🟡 重要⭐⭐ 中等Graph RAG如何理解内容的深层关系🟢 优化⭐⭐⭐ 复杂。

Python_0011的博客 1372

Qt Creator 启动慢、卡顿、无响应 终极解决教程

<think>我们需根据内容生成≤150字的摘要。摘要要涵盖问题、原因、解决方案和效果。注意字数限制。</think>Qt Creator启动慢、卡顿、无响应,主因是配置文件QtCreator.ini膨胀至数十MB(正常<100KB)。删除%APPDATA%\QtProject下的膨胀配置、崩溃备份及qtcreator.db即可,启动从几十秒降至几秒,内存占用恢复正常。辅助优化:关闭有道词典取词、禁用无用插件、调整clangd设置。定期检查配置文件大小,避免多版本共用配置。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 70

LEARN: LLM在快手电商广告推荐场景的应用

作者|Lukan整理|NewBeeNLP今天继续分享一篇大模型在推荐系统中的落地应用工作,是快手今年5月份发表的论文《Knowledge Adaptation from Large Language Model to Recommendation for Practical Industrial Application》。太长不看版这篇文章主要做了两个工作:工作1:使用冻结的LLM提取...

Kaiyuan_sjtu的博客 1889

LDO参数解读、特性、参考设计

目录 一、工作原理 二、基本参数解释 三、LDO的一些特性 1、输出自放电 2、软启动 3、LDO效率 4、动态负载调整(∆VOUT) 5、线性瞬态响应 6、压差(Dropout Voltage) 四、参考设计 1、输入输出电容选择 2、Layout参考 一、工作原理 LDO是Low Dropout Regulator的缩写,意思是低压差线性稳压器,下面是LDO的内部框图,大致的工作原理就是:参考电压Vref和反馈电压FB(VOUT通过两个电阻分压)分别接在误差放大器的反向和正向

记得诚 1万+

uniapp(全端兼容) - 实现点击输入框时完美顶起键盘,获取键盘高度动态计算顶起距离,解决软键盘弹出时输入框被覆盖问题,uniapp微信小程序/移动端h5网页/安卓苹果app(示例代码,一键复制

uniapp,支付宝微信小程序,移动端H5网页网站,软键盘弹出位置不对,软键盘挡住了输入框怎么办,获取键盘高度计算弹出距离,uniapp如何解决输入框input激活后键盘弹出遮挡问题,uniapp输入框偶尔被键盘遮挡,解决uniapp在App环境下输入框被软键盘遮挡的问题,uniapp 完美解决苹果和安卓input框遮挡兼容问题,uniapp输入框拉起软键盘时,输入框显示不全,被软键盘挡住一半,input被键盘遮挡的解决方案,软键盘遮挡输入框,uniapp软键盘顶不起来输入框,输入框没有被软键盘弹出来怎么办

✅ 精选推荐文章 1万+

推荐大模型系列-NoteLLM: A Retrievable Large Language Model for Note Recommendation(二)

本文提出NoteLLM框架,用于同时处理图像推荐和标签/分类生成任务。该框架包含三个核心组件:1)笔记压缩提示构建,将笔记内容压缩为特殊标记;2)生成式对比学习(GCL),通过对比学习捕获笔记间的协同信号;3)协同监督微调(CSFT),结合语义和协同信息生成标签/分类。GCL利用用户行为数据构建相关笔记对,CSFT则联合优化标签生成和分类任务。实验表明,NoteLLM能有效整合语义和协同信息,在推荐和生成任务中表现优异。

flying_1314的博客 946

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2370

小红书NoteLLM-2 : 多模态大模型表征赋能推荐

现阶段, 大语言模型(LLM)由于其在自然语言理解上的突出表现&优势, 在文本表征任务上有很多应用, 但鲜有工作能利用LLM来辅助提升多模态表征任务。比如小红书的多模态I2I推荐召回场景就是一个多模态表征任务场景。将LLM应用于多模态I2I可以大致分成两种:一种最直接的方式是预训练多模态大语言模型(MLLMs)表征, 对应图中灰色箭头的流程, 但这需要依赖高质量&大规模的训练数据, 训练过程及训练成本都非常高, 业务上可能难以接受。

m0_59164304的博客 2706

AI挖矿技术全景解析:从智能勘探到自主开采的2025年度技术演进与产业变革

随着全球关键矿产资源需求激增与开采难度加剧,人工智能(AI)技术正在重塑矿业全生命周期。本文系统综述了2025年AI挖矿技术的最新进展,涵盖从地质勘探、资源评估到自主开采、安全监控的完整技术链条。基于Elsevier 2025年发表的最新研究成果及IEEE会议前沿动态,本文深入分析了深度学习、强化学习、计算机视觉等核心技术在矿物识别、品位预测、设备维护等场景的应用机制。研究数据显示,AI技术已使勘探成功率提升45%,设备停机时间减少35%,整体运营效率提高40%以上。

nmdbbzcl的博客 2083

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

推荐大模型系列-NoteLLM: A Retrievable Large Language Model for Note Recommendation(三)

本文提出NoteLLM,一个基于大语言模型的可检索笔记推荐系统。研究在小红书商品数据集上验证了模型有效性,采用MetaLLaMA2作为基础模型,通过笔记压缩提示、生成式对比学习(GCL)和协同监督微调(CSFT)三个核心组件实现I2I推荐和标签/类别生成任务。实验表明,NoteLLM在召回率指标上优于现有方法,对高低曝光笔记均有效,在线实验点击率提升16.2%。消融研究证实CSFT模块的关键作用,同时发现标签与类别生成任务存在权衡关系。模型已部署于小红书平台,有效提升推荐效果和用户体验。

flying_1314的博客 1201

Camera2Demo

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

推荐大模型系列-NoteLLM: A Retrievable Large Language Model for Note Recommendation(一)

摘要: 本文提出NoteLLM框架,创新性地利用大语言模型(LLMs)解决社交媒体笔记推荐(I2I)问题。针对现有基于BERT的方法仅将标签/分类作为内容组成部分的局限,该框架通过多任务学习同时优化笔记推荐和标签/分类生成任务。核心创新包括:1)设计笔记压缩提示生成特殊标记作为嵌入;2)采用生成-对比学习识别相关笔记;3)通过协同监督微调生成标签/分类以增强嵌入质量。实验表明,该方案在小红书平台显著优于基线方法,为LLMs在I2I推荐中的应用提供了新思路。

flying_1314的博客 1293

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

当推荐系统遇见大语言模型:通往未来的三条路径

©作者 | 张月鹏单位 |得物研究方向 | 搜推算法前言自从大语言模型爆火之后,大家对大语言模型(LLM)如何成功应用在推荐系统进行了不少尝试。个人一直觉得 LLM 在工业界推荐系统大部分情况还是离线应用,生成一些特征或者文本。至于其直接用作召回和排序模块,个人对这块的观点一直是比较悲观的。出于两点考虑:1)推理耗时问题,大模型的推理耗时难以满足推荐系统快速响应的体验要求;2)基于 ID 和用户...

Paper weekly 2556

论文速读|NoteLLM: A Retrievable Large Language Model for Note Recommendation.WWW24

人们喜欢在在线社区中分享“笔记”,包括他们的经验。因此,推荐符合用户兴趣的笔记已成为一项至关重要的任务。现有的在线方法仅将笔记输入到基于BERT的模型中,以生成用于评估相似性的笔记嵌入。然而,它们可能没有充分利用一些重要的线索,例如主题标签或类别,它们代表了笔记的关键概念。事实上,学习生成主题标签/类别可以潜在地增强笔记嵌入,这两种方法都将关键笔记信息压缩到有限的内容中。此外,大型语言模型(LLM)在理解自然语言方面明显优于BERT。将LLM引入笔记推荐很有希望。

科研笔记 1966

推荐大模型系列-NoteLLM-2: Multimodal Large Representation Models for Recommendation(一)

本文提出NoteLLM-2框架,旨在解决大语言模型(LLMs)在多模态商品推荐(I2I)中的视觉信息忽视问题。研究发现直接微调的LLMs存在文本偏向性,为此创新性地设计了两种方法:基于提示词的多模态上下文学习(mICL)分离视觉与文本内容,以及晚期融合技术直接整合视觉信息。实验表明,该框架显著提升了多模态表征性能,在召回任务中优于传统方法。研究首次探索了LLM辅助的多模态表征在推荐场景的应用,为跨模态表征学习提供了新思路。

flying_1314的博客 1282

小红书&中科大 | LLM在笔记推荐中的首次落地

image-20240619172414638https://arxiv.org/pdf/2403.01744v2简介本文来自小红书和中科大, 首次尝试了将LLM应用到笔记推荐(Note Recommendation)中. 更具体的,本文在推荐链路(召回->粗排->精排->重排)的召回环节, 新上(或替换了)一路现有的I2I(Item2Item, 这里item其实是Note)召回...

weixin_45519842的博客 1500
上一篇: 降价潮背后:大模型落地门槛真的降了吗?
下一篇: 在大模型落地这件事上,智谱玩出花了
少喝冰美式
博客等级 码龄3年 6839粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值