BERT中的黑暗秘密

拌合楼软件开发(24)接收微信消息生成车辆计划 【摘要】针对拌合站客户群体文化程度不高、习惯微信群沟通的业务场景,提出通过企业微信机器人实现微信对话下单的解决方案。核心是利用WorkTool工具的消息回调机制:1)配置接收消息的API接口;2)解析JSON格式的对话数据,筛选@机器人的有效消息;3)采用*号分隔符提取订单信息并进行校验;4)建立微信昵称与客户系统的映射关系。方案解决了传统系统登录门槛高的问题,但需注意群名唯一性、多系统对接及客户身份识别等关键问题。全文重点阐述技术实现逻辑而非具体代码。 阅读详情

作者:Anna Rogers

编译:ronghuaiyang

导读

在finetune BERT的时候发生了什么?

这篇博客文章总结了我们EMNLP 2019年的论文“Revealing the Dark Secrets of BERT”(Kovaleva, Romanov, Rogers, & Rumshisky, 2019)。pdf:https://www.aclweb.org/anthology/D19-1445.pdf

2019年可以被称为NLP的Transformer之年:这种架构主导了排行榜并激发了许多分析研究。毫无疑问,最受欢迎的Transformer是BERT(Devlin, Chang, Lee, & Toutanova, 2019)。除了其众多的应用,许多研究探索了各种语言知识的模型,通常得出这样的结论,这种语言知识确实存在,至少在某种程度上(Goldberg, 2019; Hewitt & Manning, 2019; Ettinger, 2019)。

这项工作的重点是补充的问题:在finetune BERT的时候发生了什么?特别是,有多少可从语言学角度解释的自注意力模式被认为是它的优势,可以实际用来解决下游的任务?

为了回答这个问题,我们用BERT finetune了以下GLUE (Wang et al., 2018)的任务和数据集:

  • 语义检测 (MRPC and QQP);

  • 文本相似度 (STS-B);

  • 情感分析 (SST-2);

  • 文本蕴含 (RTE);

  • 自然语言推理 (QNLI, MNLI).

BERT的简单介绍

BERT代表Transformer的双向编码器表示。该模型基本上是一个多层双向Transformer编码器 (Devlin, Chang, Lee, & Toutanova, 2019),有多个关于它的工作原理的优秀指南,包括图解的Transformer.。我们关注的是Transformer架构的一个特定组件,即self-attention。简而言之,它是一种衡量输入和输出序列组件的方法,以便对它们之间的关系(甚至远程依赖关系)进行建模。

作为一个简单的例子,让我们假设我们需要创建一个句子“Tom is a black cat”的表示。BERT在对“cat”进行编码时,可能会选择更多地关注“Tom”,而较少关注“is”、“a”、“black”。这可以表示为权重向量(对于句子中的每个单词)。当模型对序列中的每个单词进行编码时,就会计算出这些向量,从而得到一个方阵,我们称之为“自注意力图”。

现在,我们还不清楚“Tom”和“cat”之间的关系是否总是最好的。要回答关于猫的颜色的问题,模特最好关注“black”而不是“Tom”。幸运的是,它不必选择。BERT(和其他Transformer)很强大很大程度上归功于这样一个事实:在多层中有多个头,它们都学会了构建独立的自注意力图。理论上,这可以赋予模型“在不同位置关注来自不同表示子空间的信息”的能力(Vaswani et al., 2017)。换句话说,模型将能够在当前任务的几个备选表示之间进行选择。

自注意力权重的计算大部分发生在BERT的预训练中:该模型(预)针对两项任务(Masked语言模型和下一个句子预测)进行训练,然后针对个别下游任务(如情绪分析)进行finetune。这种分离的基本思想训练过程分为semi-supervised训练和finetune阶段,其中finetune阶段是监督学习:迁移任务的数据集通常太小,一般不够了解整个语言,但大型文本语料库可以通过语言建模用于此目的(和其他类似的)。因此,我们可以获得独立于任务的句子和文本的信息表示,然后这些句子和文本可以“适应”后续任务。

让我们在这里指出,“适应”应该工作的确切方式在BERT论文或GPT技术报告(其中强调了预训练/finetune方法)中都没有详细描述。然而,如果注意力本身是为了提供一种对部分的输入序列“链接”,增加信息量,多头,多层架构需要提供多个可选择的自注意力图,可能finetune过程会教模型依靠对手头的任务更有用的自注意力图。例如,在情感分析任务中,名词和形容词之间的关系比名词和介词之间的关系更重要,因此,finetune会理想地教会模型更多地依赖更有用的自注意力图。

学到的自注意力模式是什么类型的,每种类型有多少?

那么BERT的自注意力模式是什么呢?我们找到了五个,如下图所示:

图1,BERT自注意力模式的类型。每个图像上的两个轴表示输入样本的BERT标记,颜色表示绝对注意力权重(深色表示更大的权重)。
  • 垂直模式表示对单个标记的关注,它通常是[SEP]标记(表示句子结束的特殊标记)或[CLS]标记(作为提供给分类器的完整序列表示使用的特殊BERT标记)。

  • 对角线模式表示注意前面/后面的单词;

  • 块模式表示对序列中所有标记的关注或多或少是一致的;

  • 从理论上讲,异构模式是唯一能够对应输入序列各部分之间的任何有意义的关系的模式(尽管不一定如此)。

以下是BERT在七项GLUE任务中五种注意力的比例(每一列代表所有层中所有头部的100%):

图2所示。在选定的GLUE任务上,BERT的自注意映射类型的比例进行了微调。

虽然具体的比例因任务而异,但在大多数情况下,可能有意义的模式占BERT所有自注意力权重的不到一半。至少有三分之一的BERT head只关注[SEP]和[CLS] —— 这种策略不能为下一层的表示提供很多有意义的信息。它还表明,该模型严重参数化过度,这解释了最近蒸馏方法的成功尝试 (Sanh, Debut, Chaumond, & Wolf, 2019; Jiao et al., 2019)。

值得注意的是,我们使用的是BERT-base,即较小的模型,在16层中有12个头。如果它已经被过度参数化了,这就意味着BERT-large和所有后来的模型,都是过度参数化的,其中一些是30倍大(Wu et al., 2016)。

这样对[SEP]和[CLS]的依赖也可能表明,要么BERT以某种方式“吸收”了前面层获得的信息表示,后续的self-attention图并不需要太多,要么BERT某种程度上整体不依赖于self-attention。

fine-tuning的时候发生了什么?

我们的下一个问题是BERT的微调过程中发生了什么变化。下面的热图显示了在finetune之前和之后,每个头和每一层扁平的自注意映射矩阵之间的余弦相似性。较深的颜色表示在表现上有更多的差异。对于所有的GLUE任务,进行了3个epochs的finetune。

图3所示,在经过训练和调整的BERT中,平展的自注意图之间存在余弦相似性。颜色越深表示差异越大。

我们发现,大多数注意力的权重并没有发生太大的变化,对于大多数任务来说,最后两层变化最大。这些变化似乎不支持任何特定类型的有意义的注意力模式。相反,我们发现这个模型基本上更依赖于垂直注意力模式。在SST的例子中,在最后一层中较厚的垂直注意模式是由于对最终[SEP]和它之前的标点符号的联合注意,我们观察到这是垂直注意模式的另一个常见目标。

图4,自注意力图的一个单独的例子,在SST上对BERT进行finetune。

这有两个可能的解释:

  • 垂直模式在某种程度上是足够的,也就是说,标记表示在某种程度上吸收了前一层的有意义的注意力模式。我们确实发现最早的层更关注[CLS],然后[SEP]开始主导大多数任务(见图6)

  • 手头的任务实际上并不需要细粒度的、有意义的注意力模式,而这种模式本应是Transformers的主要特征。

finetune会造成多大的区别?

考虑到在预训练和调优中使用的数据集的巨大差异,以及非常不同的训练目标,研究调优实际上产生了多大的差异是很有趣的。据我们所知,这个问题以前没有人提出过。

我们对每个选择的GLUE数据集进行了三个实验:

  • 预训练模型的权重冻结,并使用特定任务的分类器,看看BERT的表现

  • 从正态分布中随机初始化模型,并对任务数据集进行3个epochs的finetune,然后看看BERT的表现

  • 使用官方的预训练BERT-base模型,在任务数据集上finetune3个epochs,然后看看BERT的表现

实验结果如下:

虽然很明显,预训练+finetune设置可以产生最高的结果,但随机+finetune的BERT在所有任务上都表现得令人不安,除了文本相似性。事实上,对于情绪分析来说,随机初始化和finetune BERT可以得到80%的准确率,而且不需要任何预训练。考虑到大型预训练变压Transformer的规模,这就提出了一个严重的问题:昂贵的预训练是否能带来足够的经济效益。它还提出了关于NLP数据集的严重问题,这些数据集显然可以在没有太多任务无关的语言知识的情况下解决,而这些任务无关的语言知识是预xunl+finetune设置应该提供的。

18.01.2020更新:感谢Sam Bowman指出,随机BERT结果总体上可与预训练Transformer的GLUE基线相当,并且可以很好地解释为这些任务在没有深入语言知识的情况下可以解决的程度。NLP社区在更困难的数据集上需要更多的工作,实际上需要这样的知识,在过渡期间,我们至少应该切换到SuperGLUE。请注意,对于这些任务,GLUE基线和大多数发布的结果都使用单词嵌入或基于计数的单词向量作为输入,而我们的随机BERT是完全随机的。因此,直接比较并不完全公平。然而,特别是对于SST,这种比较可以与原始的递归神经张量网络进行比较(Socher et al., 2013)。这个2013年的模型相比之下很小,而且也采用随机向量作为输入表示,但是它在二进制分类上比我们的随机+finetuneBERT多7点。

有没有可以在语言学上解释的自注意力头?

在这一点上,有几项研究试图找出自注意力的头编码特定类型的信息,但大多数集中在语法上。我们做了一个实验,关注框架语义元素:我们从FrameNet 1.7抽取了473个句子,最多12个标记的长度,并且核心框架元素距离目标词至少2个标记。在下面的例子中,是体验者和分词之间的关系唤起了emotion_directframe。可以说,这种关系对于理解一个给定的句子所描述的情况是至关重要的,任何声称能够提供语言信息的自注意力图的机制都应该反映出这些关系(可能包括许多其他关系)。

我们通过预训练的BERT得到这些句子的表示法,计算与标注的框架语义关系对应的标记对之间的最大权值。图5表示FrameNet数据集中所有示例的这些分数的平均值。我们发现两个头(第1层的头2,第7层的头6)比其他头更关注这些框架语义关系。

但是,在推理的时候,到底是什么信息在起作用呢?

我们认为,通过对训练前的BERT权值进行探查,得出某些信息实际上是编码的结论,未免过于草率。考虑到模型的大小,可能会发现任何其他关系的编码的类似证明(事实上,Jawahar等人发现在那个方向上的不同分解方案之间没有显著的差异)。真正的问题是,模型在推理时是否真的依赖于这些信息。

为了确定我们认为对帧语义关系编码有用的两个头是否真的被finetune过的BERT使用,我们进行了一项消融研究,一次禁用一个头(即用统一注意力替换习得的注意力权重)。图6显示了在我们的示例中所有GLUE任务的热图,每个单元格显示的是总体性能,当给定的头被关闭。很明显,虽然整体模式不同任务之间,我们最好随机删除头 —— 包括那些我们确认为编码有意义的信息,应该为最相关的任务。许多头也可以在不影响任何性能的情况下关闭,这再次表明,即使是BERT-base也严重参数化了。

图6,模型的性能,一次禁用一个头,蓝色线表示没有禁用头的基线性能。较深的颜色对应较高的性能分数。

机器翻译任务也得出了类似的独立结论,即将注意力权重归零,而不是用统一注意力代替它们(Michel, Levy, & Neubig, 2019)。我们进一步表明,这种观察不仅扩展到头,而且扩展到整个层:根据任务的不同,整个层可能对模型性能有害!

图7,禁用一个层的模型的性能。

讨论

我们的主要贡献在于,虽然BERT的大多数研究都集中在探索预训练好的模型上,但我们提出了一个问题,即在微调过程中会发生什么,以及通过自注意力机制获得的表征有多大意义。到目前为止,我们还没有找到语言上有意义的自注意力图对微调BERT的表现至关重要的证据。我们的研究结果有助于从以下几个方向对基于Transformer模型的属性进行持续的讨论:

a)BERT过度参数化了。在我们的实验中,我们一次只禁用一个头,而在大多数情况下,模型的性能并没有受到影响,这一事实表明,许多头具有功能重复,即禁用一个头不会损害模型,因为相同的信息可以在其他地方获得。这个结果指向了过度参数化,并解释了像ALBert和TinyBERT这样的小型BERT的成功。

这种过度参数化意味着,BERT可能会有一些非常重要的头,它们在语言上具有有意义的自注意力模式,但为了证明这一点,我们必须尝试禁用所有可能的头组合(这是不可行的)。在同一时期的一项研究中提出了一个很有前途的替代方案:(Voita, Talbot, Moiseev, Sennrich, & Titov, 2019)通过使用具有修剪效果的正则化目标对模型进行finetune,确定了基础Transformer的“重要”头。

b)BERT不需要那么聪明来完成这些任务。BERT在没有预训练的情况下可以很好地完成大多数GLUE任务,这一事实表明,在很大程度上,不需要太多的语言知识就可以解决这些问题。与口头推理不同,它可能学会依靠数据集中的各种捷径、偏见和人为因素来做出正确的预测。在这种情况下,它的自注意力图不一定对我们有意义。这一发现支持了当前许多数据集问题的最新发现(Gururangan et al., 2018; McCoy, Pavlick, & Linzen, 2019)。

另一种解释是BERT的成功是由于玄学,而不是由于自注意力。例如,在finetune之后对标点符号的高度关注可能意味着该模型实际上学会了依赖于某些其他组件,或者存在一些我们无法理解的深层模式。此外,注意力在多大程度上可以用来解释模型预测的原则目前正在辩论(Jain & Wallace, 2019;Serrano & Smith, 2019;Wiegreffe & Pinter, 2019)。

英文原文:https://text-machine-lab.github.io/blog/2020/bert-secrets/

完)


使用 Pfam 和 InterProScan 进行蛋白质家族和功能域的分析 本文介绍了使用Pfam和InterProScan进行蛋白质家族与功能域分析的方法。主要内容包括:1) Pfam数据库的本地化使用,通过hmmscan工具比对Pfam-A.hmm数据库,并提供了批量处理Python脚本;2) InterProScan的安装配置与命令行参数详解,支持多数据库整合分析;3) 补充介绍了基于curl的Uniprot在线查询方法。文章提供了从软件安装到实战分析的完整流程,适用于本地化、批量化蛋白质功能注释需求,特别是无网络环境或大规模数据分析场景,适合不同水平的生物信息学用户。 阅读详情

相关推荐

【Android】条形码/二维码扫描——ZXing源码分析

正在更新中 针对3.2.1版本源码 与其他版本代码可能会有出入,但核心思想基本不变。 首先从com.google.zxing.client.android包中的目录结构分析:Book:这个文件夹中有5个类: BrowseBookListener 实现了adapter的点击事项响应,通过获取ISBN,然后跳转到Google books中查询响应的详细信息。 SearchBookContents

年轻的学徒 2453

BERT详解:概念、原理与应用

所谓预训练模型,举个例子,假设我们有大量的维基百科数据,那么我们可以用这部分巨大的数据来训练一个泛化能力很强的模型,当我们需要在特定场景使用时,例如做医学命名实体识别,那么,只需要简单的修改一些输出层,再用我们自己的数据进行一个增量训练,对权重进行一个轻微的调整即可。比如词序列A:“知乎|的|文章|真|水|啊”,这个明显是一句话,一个好的语言模型也会给出很高的概率,再看词序列B:“知乎|的|睡觉|苹果|好快”,这明显不是一句话,如果语言模型训练的好,那么序列B的概率就很小很小。

顺其自然~专栏 3万+

php对接建行h5网页支付

php对接建行h5网页支付前言H5页面支付H5页面支付回调通知退款及其他的业务 前言 最近接到公司乙方要求,需要再支付上面增加建行的支付渠道。之前一直用的都是微信和支付宝这种第三方支付平台,银行直接对接比较少。没办法就只能上网搜索,搜索一番返现网上对接建行的资料比较少,没办法只好摸着石头过河,中间也借鉴了一些大佬的文章内容。 H5页面支付 根据建行的h5网页支付对接文档,还是可以看出是比较简单的。...

lihua100862的博客 5411

一文弄懂Bert模型

在本文中,我们将看到Bert是如何改变 NLP领域的模式,并了解它是如何发挥作用的。闲话少说,我们直接开始吧!

2401_85378759的博客 1840

JSP期末考试复习习题及答案

以下习题是对于平时课堂小测的整理,如有错误敬请指正! 欢迎一起交流~ 预祝各位小伙伴们考试顺利! Test1 一. 单选题 – 1.(单选题)当用户请求jsp页面时,JSP引擎就会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是() A. 发送一个JSP源文件到客户端 B. 发送一个Java文件到客户端 C. 发送一个HTML页面到客户端 D. 什么都不做 – 2.(单选题)下列动态网页和静态网页的根本区别描述错误的是( D) A. 静态网页服务器端返回的HTML文件是事先存储好的 B. 动.

技术小白 2万+

Codex VS Claude Code 全面测评!代码开发到底选谁?

评测结果6项指标(设计质量、提示遵从度、响应式、代码质量、细节关注、惊喜度)虽未公布最终赢家,但实测本身已揭示两工具在前端任务上的直接差异。Codex基于OpenAI的云沙箱架构,API通过全球CDN分发,但在国内直连时,依赖特定网络环境。:纯终端工具,直接在你的iTerm或终端中运行,不新建窗口、不切换上下文,与本地开发环境无缝融合。GPT-5.3 Codex(xhigh)输入$1.75/百万token,输出$14.00/百万token,混合均价约**$4.81/百万token**。

Jedudu的博客 3082

BERT模型的详细介绍

BERT模型的详细介绍 1.BERT 的基本原理是什么? BERT 来自 Google 的论文Pre-training of Deep Bidirectional Transformers for Language Understanding,BERT 是“Bidirectional Encoder Representations from Transformers”的首字母缩写,整体是一个自编码语言模型(Autoencoder LM),并且其设计了两个任务来预训练该模型。 第一个任务是采用 Ma

IT之一小佬的博客 12万+

设置Solidworks导出文件的坐标系,stl坐标系平移

使用solidworks输出的模型坐标不再原点,怎么平行坐标系,这个方法很简单

weixin_45650767的博客 1万+

bert简单介绍和实践

一,安装环境 安装Anaconda,打开Anaconda prompt 创建python=3.7版本的环境,取名叫py36 conda create -n DP python=3.7 激活环境 conda activate DP (conda4之前的版本是:source activate py36 ) 退出环境 conda deactivate 下载如下包: xlwd,xlrd 1.2.0 transformers 4.1.1 pytorch 1.6 numpy 1.19.4 pandas 1.1

every place is the center of the universe 1万+

Numpy快速入门(np)!看这一篇就够了

Numpy快速入门(np)!看这一篇就够了

weixin_74009895的博客 2679

Kettle入门指南:从安装到数据转换实战

本文提供Kettle(Pentaho Data Integration)的完整入门指南,涵盖从Java环境安装、软件配置到核心概念(转换与作业)的详细解析。通过实战案例,手把手教你如何将文本文件数据导出到Excel,并连接MySQL数据库进行数据导入,帮助你快速掌握这一强大ETL工具的基本使用,实现高效数据搬运与转换。

weixin_29266647的博客 449

bert中的sep_BERT中的黑暗秘密

作者:Anna Rogers编译:ronghuaiyang导读在finetune BERT的时候发生了什么?这篇博客文章总结了我们EMNLP 2019年的论文“Revealing the Dark Secrets of BERT”(Kovaleva, Romanov, Rogers, & Rumshisky, 2019)。pdf:https://www.aclweb.org/antholo...

weixin_39936388的博客 141

【板栗糖GIS】新装ArcGIS必调的12个隐藏设置——【效率翻倍指南】

本文详细介绍了新装ArcGIS后必调的12个隐藏设置,涵盖性能优化、路径管理、显示调校、工作流定制等方面,帮助用户显著提升GIS工作效率。从关闭后台地理处理到启用硬件加速,再到个性化快捷键配置,这些实用技巧能让ArcGIS运行更流畅,操作更便捷。

weixin_42524945的博客 545

EMNLP 2019中和BERT相关的一些论文介绍

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:Pavel Gladkov编译:ronghuaiyang导读EMNLP 2019中一些和BERT相关的很不错的论文。BER...

AI公园 673

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Ray框架实战:如何用分布式训练加速你的AI模型(附BERT调参案例)

本文深入探讨了Ray框架在分布式AI训练中的实战应用,通过BERT调参案例展示了如何显著提升GPU利用率和训练效率。文章详细解析了Ray的动态资源调度、数据并行优化及智能调参策略,帮助开发者快速掌握分布式训练的核心技术,实现AI模型的高效加速。

weixin_30790841的博客 386

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

边缘智能暴走事件:单片机上的AI觉醒之谜

苏州某智能家居展会上,一台空调突然开始用莫尔斯电码拼写《1984》选段——调查发现是TinyML模型在256KB内存里发生了哲学觉醒。

5ang的博客 790

线性代数实战:矩阵运算在AI与工程中的应用指南

线性代数是现代计算机科学的核心数学工具,尤其在高维数据处理和机器学习中具有不可替代的作用。矩阵运算作为线性代数的基础概念,通过线性变换实现空间映射,其高效性源于并行化计算特性。从工程价值看,SVD分解、QR分解等技术能有效解决推荐系统稀疏矩阵补全、计算机视觉投影几何等实际问题。在深度学习领域,矩阵运算优化直接影响模型训练效率,例如通过分块计算提升GPU显存利用率。本文结合NumPy/PyTorch代码示例,重点解析特征分解在PCA降维、病态矩阵在模型训练中的识别处理等实战场景,帮助开发者建立工程化的线性代数

weixin_42309599的博客 269

从信号干扰到智能催化剂:高斯噪声在AI训练中的双重角色解析

本文深入解析高斯噪声在AI训练中的双重角色,从干扰源转变为智能催化剂。通过实战案例展示其在防过拟合、对抗样本防御和数据增强中的关键作用,并探讨噪声调参的优化策略及跨界应用,为模型性能提升提供创新思路。

weixin_33646989的博客 210

HuggingFace训练可视化:5分钟搞定TensorBoard监控(附VSCode配置技巧)

本文详细介绍了如何快速为HuggingFace Trainer集成TensorBoard,实现训练过程的可视化监控。通过配置TrainingArguments的report_to参数,仅需几行代码即可自动记录损失、准确率等关键指标。文章还提供了VSCode的深度集成技巧与自动化配置方案,帮助开发者高效监控模型训练,及时发现并解决问题。

xray4的博客 1062

使用FLUX.1-dev进行图像编辑:比传统方法快3倍

FLUX.1-dev基于Flow Transformer架构,实现单步图像生成与多模态编辑,推理速度比传统方法快3倍以上,支持文本生成、图像修改、视觉问答等任务,显著降低资源消耗与响应延迟,适用于实时设计工具与自动化内容生产。

weixin_28729843的博客 806

FLUX.1-dev能否理解隐喻性描述?文学表达解析

FLUX.1-dev通过Flow Transformer架构和修辞感知模块,实现对文学性语言的深层理解,能够将隐喻、象征等抽象表达转化为富有情感的视觉图像,突破传统文生图模型在诗意理解上的局限,支持可控想象力强度与多模态交互创作。

weixin_35754962的博客 425
上一篇: 该买哪种口罩?Python大数据分析来帮你
下一篇: 物品推荐系统中的挑战和解决方案
Wang_AI
博客等级 码龄12年 991粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值