百度硅谷人工智能实验室开源高性能计算代码

美国时间2月22日,百度硅谷人工智能实验室(SVAIL)宣布向深度学习领域开源了 Ring Allreduce算法库,以实现在多个GPU之上更快速地训练神经网络模型。

Ring Allreduce是高性能计算领域的著名算法,但在深度学习领域应用不足。该技术可以实现近乎线性的加速,以及几十个甚至上百个GPU的扩展。比如,运用Ring Allreduce算法,百度硅谷人工智能实验室将神经网络的训练扩展至40个GPU并且训练速度提高31倍。
图片描述

过去几年里,神经网络迅猛发展,其训练所需的数据量和计算资源也越来越大。为了提供所需的计算能力,更多GPU被用在训练之中。

在多个GPU之上训练神经网络通常比较困难,因为比较普遍的做法是向单个GPU发送数据,这样就形成了通讯瓶颈。而Ring Allreduce算法可以大大减少GPU用于发送数据的时间,用更多的时间进行有效运算,以此来消除瓶颈。

“Ring Allreduce算法让我们可以在神经网络的众多设备和节点之间进行更加高效的梯度分级,这是一种针对带宽优化的算法,能够大大减少运算时间,从而实现更多设备的扩展,同时还能保留同步随机梯度下降的确定性与可预测的收敛性质。百度研究员Andrew Gibiansky表示。

百度Ring Allreduce (https://github.com/baidu-research/baidu-allreduce )C类库可在Github上下载使用。

同时Github上还提供与TensorFLow共同使用时所需的补丁 (https://github.com/baidu-research/tensorflow-allreduce)。

相关推荐

人工智能实验室

人工智能实验室

SSM智能一体化实验室管理系统 计算机毕设源码00397

智能一体化实验室管理系统主要功能模块包括:员工用户管理、主管用户管理、实验室仪器、器材借用、器材归还、实验耗材、耗材申请、耗材归还、实验室管理、项目立项、项目进度、项目异常、异常处理、项目成果、员工打卡、请假申请等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取Mysql作为后台数据的主要存储单元,采用SSM框架、JSP技术、Ajax技术进行业务系统的编码及其开发,实现了平台全部功能.....

weixin1_ZYKJ985的博客 310

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

国内外顶尖人工智能实验室

随着科技的快速发展,人工智能领域的关注度在不断上升,越来越多的前沿学术院校和科技企业都已将目光和战略转移到了人工智能领域,国内外的顶级人工智能实验室代表着人工智能领域的发展方向和顶尖技术。因此了解国内外人工智能实验室的发展现状,对于想要投身人工智能行业的企业或是个人都有着极大的帮助。 将结合知名度、典型性、综合性等多种因素,以国内国外、企业院校等4个维度为标准,每个维度...

ejinxian的专栏 7958

Protege入门指南:从下载到本体构建实战

本文是Protege的入门实战指南,详细介绍了如何从官网下载安装这款由斯坦福大学开发的免费本体构建工具,并通过经典的“披萨本体”案例,系统讲解了类、属性、个体和公理四大核心要素。文章还深入解析了Protege的工作界面,并引导读者亲手创建一个简易的“公司人员组织”本体,完成从定义概念、建立关系到逻辑推理的全流程,是知识图谱与本体建模初学者的理想教程。

weixin_29093169的博客 699

ollama环境变量配置:修改ollama的数据路径(安装路径)

ollama安装模型,如果很大,会占用C盘空间,影响系统运行速度,通过设置环境变量,来改变ollama放目录的地址。

正经教主是个热衷于正经学习分享的教主。 1万+

百度研究院在硅谷新设两大实验室,三名AI科学家加盟

李根 发自 纽约 量子位 报道 | 公众号 QbitAI百度研究院再次扩军。今日,百度研究院在硅谷召开全员大会,宣布设立商业智能实验室(Business Intelligence Lab,BIL)和机器人与自动驾驶实验室(Robotics and Autonomous Driving Lab,RAL)。同时,三位世界级人工智能领域科学家加盟。分别是:Kenneth Ward Church、浣军、熊

量子位 1317

「API取数」FDL获取金蝶云星空的单据数据

本文介绍了如何使用FDL实现金蝶云API取数以及如何有效应对复杂的API数据处理场景。

oOBubbleX的博客 2032

百度硅谷人工智能实验室开源高性能计算代码 加速分布式深度学习训练

美国时间2月22日,百度硅谷人工智能实验室(SVAIL)宣布向深度学习领域开源了 Ring Allreduce算法库,以实现在多个GPU之上更快速地训练神经网络模型。 Ring Allreduce是高性能计算领域的著名算法,但在深度学习领域应用不足。该技术可以实现近乎线性的加速,以及几十个甚...

chuangqiayu2390的博客 324

vue2/3 - element表格组件el-table实现懒加载树型(上下级)数据、默认展开和隐藏层级,支持对表格进行修改|新增|删除,解决完成操作后树节点不刷新问题(提供示例代码,一键复制开箱即用

vue2,vue3,elementui,elementPlus,el-table,Table表格组件,表格懒加载数据,element table表格数中的树形结构懒加载,增加后数据不同步更新问题,el-table树形与el-tree树形结构的一键折叠与展开,elementui中el-tree懒加载数据 默认展开最外层节点,Element-plus Table组件树表结构默认展开一级目录,vue实现element table表格树形结构-使用懒加载时-解决子节点增删改后,不刷新子节点数据问题,解决el-tre

✅ 精选推荐文章 1万+

planning模块(6)-参考线的平滑(二次规划)

上一篇已经介绍了采样点生成锚点数据的过程,并且将所有采样点生成的锚点数据设置到了平滑器中.接下来继续介绍使用二次规划平滑参考线的算法过程.从锚点数据中提取坐标存入raw_point2d,提取横向边界存入anchorpoints_lateralbound,将起点和终点的横向边界设置为0,防止车在起点和终点位置偏离车道中心线.

让复杂的问题变得更容易理解 790

百度开源了它的人工智能技术

转载自:https://blog.youkuaiyun.com/OnafioO/article/details/533828309 月初,百度首席科学家吴恩达宣布将开源该公司的人工智能综合平台“百度大脑”底层的深度学习平台Paddle 。该平台全称为 Parallel Distributed Deep Learning(并行分布深度学习),已经在百度内部投入到生产环境,驱动了该公司旗下超过 30 个商业或非商...

qq_27742869的博客 1829

29、网络支持技术:CDN、覆盖网络与无标度网络解析

本文详细解析了CDN路由方式与性能指标,探讨了覆盖网络与无标度网络的特性及其在云计算和现代网络中的应用。文章分析了CDN的关键技术与挑战,介绍了覆盖网络与小世界网络的基本原理,并深入讨论了无标度网络的构建算法、性能优化策略以及在多个领域的应用案例。最后,文章展望了未来网络技术发展趋势与无标度网络的结合潜力。

night的博客 92

百度开源的Warp-CTC人工智能技术,到底是什么鬼?

摘要:Warp-CTC开源有什么意义 百度硅谷AI实验室(SVAIL)近日宣布,百度已开源关键人工智能Warp-CTC的关键代码,并且已向GitHub上传了Warp-CTC的C语言代码库,共享给了开发者,引起了美国业内的广泛关注。 好的,那么问题来了。 一,百度开源的Warp-CTC是什么? 解释这个事情极为复杂,我们需要一步步说起。 1)什么是深度学习

huobanjishijian的专栏 998

把开源 Skills 集成到 LangGraph 项目

1. 定义智能体状态(必须包含 messages,其他字段按需扩展)messages: List[HumanMessage | AIMessage | ToolMessage] # 消息流(核心)skill_output: Optional[str] # 存储 Skill 执行结果next_node: str # 控制流程跳转# 2. 定义智能体决策节点(决定是否调用 Skill)"""智能体决策逻辑:根据用户输入判断是否调用开源 Skill"""# 获取最后一条用户消息。

lpfasd123的博客 906

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

百度开源的Warp-CTC人工智能技术

百度开源的Warp-CTC人工智能技术,到底是什么鬼? 百度硅谷AI实验室(SVAIL)近日宣布,百度已开源关键人工智能Warp-CTC的关键代码,并且已向GitHub上传了Warp-CTC的C语言代码库,共享给了开发者,引起了美国业内的广泛关注。 好的,那么问题来了。 一,百度开源的Warp-CTC是什么? 解释这个事情极为复杂,我们需要一步步说起。 1)什么是深度学习 如何让人工智

qinfendejiayou的博客 771

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

号外:百度开源了它的人工智能技术

9 月初,百度首席科学家吴恩达宣布将开源该公司的人工智能综合平台“百度大脑”底层的深度学习平台Paddle 。 该平台全称为 Parallel Distributed Deep Learning(并行分布深度学习),已经在百度内部投入到生产环境,驱动了该公司旗下超过 30 个商业或非商业产品:小到优化百度网盘的性能,大到提供更准确和健康的搜索结果,甚至还驱动无人车的一部分功能。就连百度外卖也

N的专栏 4955

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上海内推 | 上海人工智能实验室浦视开源体系团队招聘音频生成方向实习生

合适的工作难找?最新的招聘信息也不知道?AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职!上海人工智能实验室上海人工智能实验室(上海AI实验室)浦视开源体系团队(原OpenMMLab团队)作为通用人工智能的探路者和开源社区的引领者,围绕大模型开展多方面前沿技术探索,研究方向覆盖自然语言处理、计算机视觉、生成模型等,集学术研究、开源开放、应用研发为一体,攻关核心技术,...

Paper weekly 888

人工智能的动作来看这四家:百度、谷歌、微软、Facebook

人工智能的动作来看这四家:百度、谷歌、微软、Facebook 人工智能已经成了兵家必争之地,但说句实在话,也都是准备的姿势。不过,瞭望未来的AI大战,积极的人才、设施、技术储备都是刚需。近日,美国《财富》杂志(Fortune)发表题为“Why deep learning is suddenly changing your life“的文章,文中深入介绍了包括百度、谷歌、微软、Facebo

科技创新与颠覆者 1万+

高性能计算技术也能助推大规模深度学习(百度实践)

更多深度文章,请关注:https://yq.aliyun.com/cloud 作者简介: Tiffany Trader,毕业于圣地亚哥州立大学和加州州立大学,长期致力于高性能计算、云计算、绿色计算新闻报道和分析,2015年开始担任全球知名高性能计算新闻网站HPCwire的总编辑。Tiffany Trader 的LinkedIn主页,Twitter主页。...

weixin_34219944的博客 335

百度AI实验室的warp-ctc实践:大规模语音识别性能提升的终极指南

连接时序分类(CTC)技术作为端到端语音识别的核心组件,正在革命性地改变深度学习在序列数据处理中的应用方式。今天,我们将深入探讨百度AI实验室开发的warp-ctc项目,这个高性能并行CTC实现如何在大规模语音识别系统中发挥关键作用。 ## 🔥 warp-ctc:语音识别的新引擎 warp-ctc是百度硅谷AI实验室推出的一个**高效并行CTC代码库**,支持CPU和GPU两种计算环境。CT

gitblog_00380的博客 732

【完结】中国12大AI研究院,高调的低调的你pick谁

文章首发于微信公众号《有三AI》 【完结】中国12大AI研究院,高调的低调的你pick谁 专栏国内的《AI研究院》正式完结了,在这个专题中,我们和大家一起分享了国内12大研究院的背景,从最开始介绍的历史最悠久的微软亚洲研究院,到最后介绍的低调务实的网易人工智能,我们带大家领略了每个研究院的研究方向,团队情况,欣赏了各大研究院的拳头产品。话不多说,这一次做一个回顾。 作者|言有三汤兴旺...

hacker_long的专栏 9167

百度宣布开放源码 网友:老李你的程序员离开谷歌还会写代码吗?

早前,百度宣布公开人工智能代码,希望在人工智能技术发展中,可以掌握主动权。据悉,百度硅谷的实验室,已经将Warp-CTC C代码库上传到GitHub。而且在一篇博客中,百度也鼓励开发人员,可以对这些代码进行使用。 百度宣布开源这个软件的消息来得太突然,很多人感到很意外。百度方面宣称,以前的代码,在训练端到端时,它的速度很慢,这个做的主要目的是使端到端的学习更加的快速、简单,为了使研究者更...

weixin_33804990的博客 173

百度二次上市,其中一位敲钟人只有12岁

本文转载自 燃次元 今天,港交所响起了属于百度的锣声,BAT聚首一堂。 中概股回港上市的潮流是从2018年开始的,在百度之前,阿里巴巴、网易、京东等,已先行一步。 以252港元发行价计算,回港二次上市的百度总市值将达到7129亿港元。 在仪式现场,三位AI时代新职业的代表与小度机器人及百度高管共同敲响了上市锣声。这三位新职业的代表有着不同的年龄和背景,但却同样因为AI技术的进步而有了共同的新身份。 授人以渔 33岁之前,郭梅从来没想过,有一天自己的工作会跟“人工智能”联系在一起。她更没有想到,有

m0_46163918的博客 9980

这届百度AI究竟什么水平?

2019-12-16 14:16:41 乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这届百度AI究竟啥水平? 作为布局最早、声量最高,也最受国内外关注的中国头号玩家,此问已非一日。 今天,波士顿咨询在密集调研后,给出了“平台”视角下的观察和答案。 这家全球知名的第三方咨询机构,认为以AI为核心的“智能时代”正在迈步产业化阶段,而该阶段最迫切需求的,就是智能化平台。 ...

喜欢打酱油的老鸟 1070

百度飞桨(PaddlePaddle):国内唯一开源开放的产业级深度学习平台| 百万人学AI评选

2020 无疑是特殊的一年,而 AI 在开年的这场”战疫“中表现出了惊人的力量。站在“新十年”的起点上,优快云【百万人学AI】评选活动正式启动。本届评选活动在前两届的基础上再度升级,设立了「AI优秀案例奖Top 30」、「AI新锐公司奖Top 10」、「AI开源贡献奖Top 5」三大奖项。我们相信,榜样的力量将成为促进AI行业不断发展的重要基石,而优快云将与这些榜样一起,助力AI时代的”新基建“。 活动官网:https://bss.youkuaiyun.com/m/topic/ai_selection/in...

weixin_37986590的博客 1万+
上一篇: 2017年全球应用性能与业务运维市场发展前瞻
下一篇: 拆解滴滴大脑 叶杰平谈出行领域算法技术
AI早餐汇
博客等级 码龄21年 759粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值