OpenCSG技术深度解析|SORA封神之路:多模态大模型的前世今生

今年2月,OpenAI推出了Sora,以其“世界模拟器”功能引发了全球的关注。他能够使得Sora能够像人类一样理解、学习和推理,模拟复杂世界事件。这种能力的提升让人们对AI的潜力和未来影响产生了深刻的思考和一定程度的担忧。很多人对Sora使用的什么技术而感到惊奇。开放传神(OpenCSG)将给大家带来深度的技术解析,关于Sora以及其背后的多模态大模型技术的前世今生。

通过本篇文章你能够了解到以下信息:

Sora是什么?

大语言模型是什么?他的优点和缺点?

多模态大模型是什么?有哪些经典的方法?

扩散模型是什么?他的优点,缺点。

Sora的可能采用的技术

Sora是什么?

Sora是OpenAI推出的文生视频大模型,根据提供的文字,生成具有连贯性、复杂的、稳定的、清晰度高的、真实的、能理解语意且时间大概在60s左右的视频,当然这些词只能泛泛的概括Sora,这也是为什么将Sora称为世界模拟器。

从Open AI官方发布的视频我们可以捕捉到的信息是炸裂的,而且结合OpenAI自家的ChatGPT的能力,推理、学习、感知物理世界等,已经让Sora的能力甩开其他的文生视频大模型一大截,官方并没有给出太多的信息,以及开放权限试用。具体的技术也是基于相关的资料推测,开放传神继续揭秘大模型的秘密。

当我们谈论多模态大模型时,我们实际上是在谈论一种能够理解和处理多种类型信息的能力,这些信息可以包括文本、图像、音频、视频等。而Sora,作为OpenAI在这一领域的杰出代表,已经展现出了令人瞩目的实力。

从技术角度来看,Sora的强大之处在于其深度学习算法和大规模数据训练的完美结合。通过利用OpenAI强大的计算资源,Sora得以在海量数据中挖掘出有价值的信息,进而形成自己独特的理解和表达方式。这种理解和表达方式不仅让Sora能够生成连贯、复杂的视频内容,还让其能够准确地理解并响应人类的语义。下面,让我们首先深入多模态大模型技术的前世今生,探索Sora成名的背后基石。

大语言模型

基于transformer架构的大语言模型生成视频技术路线,这是视为生成视频领域中扩散模型之外的另外一种解法和出路,那么它是怎么个原理呢?

首先OpenCSG给大家先科普一个词:Token,Token是深度学习模型处理数据的基本单元。它是指一组符号或标识符,用于表示数据或信息中的一个特定元素。在视频和声音编码中,token可以理解为视频的“单词”和声音的“单词”,即将连续的媒体数据切分成离散的、可以被模型处理的小块。记住这个词,后面会用到。

大语言模型生成视频是通过理解视频内容的时间和空间关系来实现的。

大语言模型(Large Language Models)是一类使用深度学习技术训练的人工智能模型,它们专门设计用于处理和理解自然语言数据。这些模型通常基于神经网络架构,如Transformer,能够捕捉和学习语言的复杂结构和模式。大语言模型的特点和功能包括:

  1. 大规模数据训练: 大语言模型使用大量文本数据进行训练,这些数据可能包括书籍、文章、网页内容等,以学习语言的广泛用法和语境。

  2. 高容量参数: 这些模型通常包含数十亿甚至数千亿个参数,使得它们能够学习和存储大量的语言信息和知识。

  3. 自注意力机制: 大多数大语言模型采用Transformer架构,这种架构通过自注意力机制(Self-Attention Mechanism)允许模型在处理一个词时考虑到句子中的其他词,从而更好地理解上下文。

  4. 多功能性:大语言模型不仅能够执行文本分类、情感分析等任务,还能够生成连贯和有意义的文本,进行机器翻译、问答系统、摘要生成等多种语言任务。

  5. 上下文理解: 这些模型能够根据上下文生成或理解文本,这意味着它们可以根据给定的文本片段预测下一个最可能的词或短语。

  6. 预训练和微调: 大语言模型通常先在大规模数据集上进行预训练,学习语言的通用表示,然后在特定任务上进行微调,以适应特定的应用场景。

大语言模型对于大家来说并不陌生。大语言模型运用到视频上如下:

大语言模型让它以去做一些视频的任务或者是文本的一些任务,基于大语言模型的video point是这样运作的。视频和声音编码成离散的token,token在video point的例子中,通俗一点可以理解成视频的单词和声音的单词,模型训练和内容生成那么有了这些token词汇,就可以根据用户给的输入像学习文本token那样,模型就会开始生成内容,对于视频生成,这意味着模型需要创建连贯的帧序列,这些帧不仅在视觉上符合逻辑,还要在时间上保持连贯性。

在用大语言模型生成的视频的相比于扩散模型,又有一样的优缺点:

优点:

  1. 高度理解能力:能够处理和理解大量数据,包括复杂的文本和图像信息。

  2. 处理长序列数据:由于自注意力机制,能够处理长序列数据,对视频生成尤为重要。

  3. 可扩展性:模型越大,拟合能力越强,transformer模型能够持续增长。

缺点:

  1. 资源密集型:生成高质量视频需要大量计算资源。

  2. 质量波动:输出质量可能不稳定,尤其是对于复杂或未充分训练的模型。

  3. 数据依赖性:模型性能依赖于训练数据的质量和多样性。

  4. 理解和逻辑限制:可能难以完全把握复杂的人类情感或社会文化信号。

  5. 伦理和偏见问题:可能无意中复制或放大训练数据中的偏见。

OpenCSG揭秘多模态基础模型

视觉理解

ViT: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

图片

概述将transformer引入视觉任务,并借助大规模数据的预训练,在几乎所有视觉下游任务上屠榜。

核心点:

  1. 将2D图像(大多数情况下为RGB 3D矩阵)转换为token序列:

    · [b, 224, 224, 3] --> conv2d(3, 768, kernel_size=16, stride=16) --> [b, 14, 14, 768] --> flatten(2) --> [b, 196, 768]

    · img_feat [b, 196, 768] concat cls_token [b, 1, 768] --> [b, 197, 768] + pos_embed [b, 197, 768] --> [b, 197, 768]

  2. 将转换后的token序列送入transformer encoder,最后提取出cls_token完成分类任务

影响:

  1. 扭转了自从2012年AlexNet发布以来,CNN在CV领域的统治地位

  2. 由于采用 transformer 来完成视觉任务,也为多模态大模型挖了一个小坑

CLIP: Learning Transferable Visual Models From Natural Language Supervision

概述:首次引入400M量级的图文对,利用对比学习对视觉和语言模型进行预训练,在30个下游任务上实现了媲美监督训练的zero-shot性能

图片

核心点:

  1. 对比学习预训练:将逐字预测任务(图片描述可能性非常多,任务难度极大),转换为配对任务(只需要判断文字和图片是否配对),简化训练目标,极大提升训练效率。

  2. zero-shot推理:设计巧妙的文本prompt,将可能的文本特征和推向特征计算相似度,最终分数最高的文本为预测结果。

影响:将多模态大模型这个坑变得更大了。

SAM: Segment Anything

概述:首次引入11M images + 1B masks量级的数据集,在CV领域引入大模型的概念,实现了革命性的2D图像分割解决方案

图片

核心点

  1. 提示分割任务:基于不同prompt完成 segment anything 任务

  2. 多模态大模型:基于VIT搭建image encoder,轻量化的prompt encoder和decoder 

  3. 数据标注策略:

    a. Assisted-manual stage:人工在交互式界面中按照顺序标注出尽可能多的mask,但是并没有相应的文本标签,一共4.3M masks from 120k images

    b. Semi-automatic stage:在第一阶段的基础上,图像被预先标注了高置信度的mask(简单且常见的mask),随后人工介入标注剩余比较困难的mask,一共additional 5.9M masks in 180k images (for a total of 10.2M masks

    c. Fully automatic stage:全部由模型来预测全图的mask,并且按照32x32点阵,每个点预测3类mask(subpart, part, and whole object),最终是获得了 11M images in our dataset, producing a total of 1.1B high-quality masks

图片

影响:引起了人们对视觉大模型的极大兴趣,进一步推动了多模态大模型的发展

生成模型

要讲Sora就一定要讲生成模型,而扩散模型则是当前最主流的一种生成模型。扩散这个词语来源于物理现象,将一滴墨水滴入到水中,这个墨水会扩散到水中的这个过程,且这个过程不可逆,但是我们可以学习这个过程,墨水扩散的过程,将其想象成电影倒叙播放的过程,一步一步他如何在变回之前的那一滴墨水一样,它是一个扩散的一个逆过程,这个过程放在图片中,出现一个新的词,叫做噪声。

扩散模型(Diffusion Models)的核心思想是通过模拟物质从高浓度区域向低浓度区域扩散的物理过程来生成数据,特别是在图像和视频生成领域。在AI中,这个过程被逆向应用,从而实现从随机噪声生成有意义的图像或视频。以下是扩散模型的几个关键步骤:

  1. 初始化噪声:扩散模型从一个随机噪声图像开始,这个图像是完全随机的,没有任何结构或模式。

  2. 前向扩散(正向过程): 接下来,模型通过一系列操作使图像变得更加模糊和无序,这个过程类似于物理中的扩散过程,其中噪声逐渐增加,图像逐渐失去结构。

  3. 反向扩散(逆向过程): 这是生成过程的核心,模型通过逐步减少噪声来恢复图像的结构和细节。这个过程需要一个神经网络来预测在每一步中应该去除哪些噪声,从而逐步恢复出清晰的图像。

  4. 迭代优化: 通过重复反向扩散过程,模型不断优化图像,直到生成满足条件的高质量图像或视频。

扩散模型的几个关键步骤就是一张图片及多张图片反复迭代多张以后的。图片是2D,只有宽度和高度,而视频是基于图片的基础上增加一个时间轴,学习这个扩散的逆过程,以前相当于以2D的一个逆过程,现在变成一个3D的过程。这也是为什么生成视频要比生成图片困难这么多?

扩散模型的优点:

  1. 稳定性:训练过程更稳定,不易陷入模式崩溃。

  2. 高质量生成:能够生成高质量的图像或视频。

  3. 无需特定架构:不依赖于特定的网络结构,兼容性强。

扩散模型的缺点:

  1. 高训练成本:训练过程可能比较昂贵,需要在不同噪声程度下进行去噪。

  2. 生成时间长:生成一张图片可能占用显存,生成多张图片时需要考虑显存限制。

下面让我们来学习3个经典的扩散模型方法。

Diffusion:Denoising Diffusion Probabilistic Models, DDPM

动机:一个分布可以通过不断地添加噪声变成另一个分布

图片

核心点:

  1. 编码过程:一系列不可学习(固定)的加噪声操作

  2. 解码过程:一系列可学习的去噪声操作

  3. 学习目标:让第t步去噪声和第t步加噪声的逆操作尽可能相似

影响:后续stable diffusion,DiT等工作的基础

缺点:DDPM始终会对同一个尺寸的数据进行操作,图像的尺寸极大地影响了DDPM的运行速度,用DDPM生成高分辨率图像需要耗费大量计算资源

DDPM直接在图像像素空间进行操作,而现有大多数生成模型选择在latent space中进行操作,也就是先用预训练好的自编码器(AE)将图像编码到latent space中,再使用DDPM进行加噪和去噪过程,生成压缩后的图像(latent space),最后使用预训练好的decoder进行解码,生成高分辨的图像

图片

Stable Diffusion:High-Resolution Image Synthesis with Latent Diffusion Models

摘要:扩散模型的生成效果很好,但是,在像素空间上训练和推理扩散模型的计算开销都很大。为了在不降低质量与易用性的前提下用较少的计算资源训练扩散模型,我们在一个预训练过的自编码器的隐空间上使用扩散模型。相较以往的工作,在这种表示下训练扩散模型首次在减少计算复杂度和维持图像细节间达到几近最优的平衡点,极大地提升了视觉保真度。通过向模型架构中引入交叉注意力层,我们把扩散模型变成了强大而灵活的带约束图像生成器,它支持常见的约束,如文字、边界框,且能够以纯卷积方式实现高分辨率的图像合成。我们的隐扩散模型(latent diffusion model, LDM) 在使用比像素扩散模型少得多的计算资源的前提下,在各项图像合成任务上取得最优成果或顶尖成果。

模型框架:

  1. 输入图片首先经过预训练好的AE进行编码,变成latent space中的压缩图像、

  2. 压缩图像经过T层的加噪,变成接近正态分布的噪声

  3. 之后经过可训练的U-Net进行去噪,使得预测的噪声和真实的噪声一致

  4. 最后去噪生成的latent space中的压缩图片,经过预训练好的decoder,生成最终高分率的图像

约束机制:

  1. 直接concat:把额外的信息和扩散模型原本的输入拼接起来。如果约束是一个值,就把相同的值拼接到的每一个像素上;如果约束本身具有空间结构(如语音分割图片),就可以把约束重采样至和一样的分辨率,再逐像素拼接

  2. cross-attention:把K和V换成来自约束的信息,实现带约束图像生成

根据论文中实验的设计,对于作用于全局的约束,如文本描述,使用交叉注意力较好;对于有空间信息的约束,如语义分割图片,则用拼接的方式较好。

图片

摘要总结:论文提出了一种叫LDM的图像生成模型。

  1. 论文想解决的问题是减少像素空间扩散模型的运算开销。

  2. 为此,LDM借助了VQVAE「先压缩、再生成」的想法,把扩散模型用在AE的隐空间上,在几乎不降低生成质量的前提下减少了计算量。

  3. 另外,LDM还支持带约束图像合成及纯卷积图像超分辨率。

DIT:Scalable Diffusion Models with Transformers

动机:以往的diffusion以CNN为主,transformer是否可以用于diffusion架构?

核心点:模型架构设计为主

1. 图像输入:[224, 224, 3] --> AE --> [I, I, C] --> patchify --> [(I/p)^2, d]

图片

2.条件控制:前两种和SD中的类似,第三种则是使用adapter LN替换transformer中标准的LN层,来回归缩放和平移系数,且使用全零初始化

图片

影响:利用transformer将diffusion模型变成了可扩展的形式,成为后续更大规模文生图,文生视频的基础模型架构。

OpenCSG对多模态的理解

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

动机:如何在降低模型训练成本的同时,获得很好的性能。

贡献:针对VLP模型训练导致计算代价过高的问题,提出了一种借助现成的冻结参数的预训练视觉模型和LLM的高效VLP方法。

图片

核心点:设计 Querying Transformer (Q-Former) 可学习模块,用于提取对文本有用的视觉表征,并传递至LLM,减轻LLM学习视觉-文本对齐的负担。

  • 阶段 1:冻结图像编码器,学习视觉-语言 (vision-language) 一致性的表征

  • 阶段 2:冻结语言大模型,提升视觉到语言 (vision-to-language) 的生成能力

图片

mPLUG-Owl: Modularization Empowers Large Language Models with Multimodality

动机:大多数方法如BLIP2、LLaVA、Kosmos-1、MiniGPT4,都会冻住视觉编码器,而mPLUG-Owl则认为冻住视觉模块会限制模型关联视觉知识和文本知识的能力,而训练视觉模块可以得到更好的跨模态理解能力

贡献:

  1. mPLUG-Owl训练范式:作者提出了一种新颖的模块化训练范式,名为mPLUG-Owl,它通过模块化学习基础LLM、视觉知识模块和视觉抽象器模块,为LLMs赋予多模态能力。这种方法支持多种模态,并能通过模态间的协作提升模型的单模态和多模态能力。

  2. 两阶段对齐方法:mPLUG-Owl采用两阶段方法对齐图像和文本,第一阶段通过冻结LLM模块训练视觉知识模块和抽象器模块来获取全面的视觉知识;第二阶段使用仅限语言和多模态指令数据集,通过冻结视觉知识模块,共同微调LLM和抽象器模块上的低秩适应(LoRA)模块,有效整合了文本和视觉信息。

  3. OwlEval评估集:为了评估模型在视觉相关任务中的表现,作者精心构建了一个视觉相关指令评估集OwlEval,该评估集包含多种能力测试,如指令理解、视觉理解、知识转移和多轮对话能力。

图片

CogVLM: Visual Expert for Pretrained Language Models

背景:现有shallow alignment方法使用Q-Former或者linear层对齐视觉和语言特征,虽然收敛快,但是视觉性能较差且幻觉明显

动机:能否在保持LLM语言能力的同时,获得强大的视觉理解能力?

核心点:

  • shallow alignment性能差的根本原因在于缺少视觉和语言信息的深度融合

  • 受p-tuning和lora的启发,shallow alignment就像p-tuning一样使用prefix embeddings表示图像特征,对齐到文本特征空间,而lora在每一层都设计了可学习的参数,因此表现更好且更稳定

  • CogVLM提出在LLM的每一层中加入视觉模块,实现视觉和语言的深度融合

图片

DeepSeek-VL: Towards Real-World Vision-Language Understanding

数据构建:广泛覆盖现实世界的场景,包括 web截图,pdf,OCR,图表和基于知识的内容 (专家知识,教科书)

模型架构:使用两路image encoder,分别对低分辨率提取 high-level 特征和高分辨率提取 low-level 特征 [576, 2048]

  • SigLIP-L:[224, 224, 3] 图片编码成 [576, 1024] 的低分辨率视觉token形式 (low-level)

  • SAM-B:将图片resize成 [1024, 1024, 3],然后经过SAM-B提取 [64, 64, 256] 特征,之后经过一层MLP和两层卷积模块,处理成 [24, 24, 1024] 的特征,最后reshape成 [576, 1024] 大小的高分辨率视觉token形式 (high-level)

训练策略:第一阶段使用VL预训练数据对projector进行预热,第二阶段对projector+LLM进行联合预训练,第三阶段SFT。

图片

多模态的生成

Next-GPT:Any-to-Any Multimodal LLM

动机:现有MLLM大多受到输入侧多模态理解的限制,无法以多模态生成内容

核心点:

  • Encoding:使用 Imagebind 对文本,图像,视频和语音输入进行编码,然后各自通过linear层,将不同的输入embedding对齐到文本空间

  • LLM:使用开源的Vicuna,直接输出 文本响应每个情态的信号标记(作为指令来指示解码层是否生成多模态内容,以及如果生成,生成什么内容)

  • Multimodal Generation:接收带有 specific instruction 的多模态信号,使用基于Transformer的输出投影层将信号标记表示 映射为后续多模态解码器可理解的表示

图片

轻量级多模态模型

TinyLLaVA: A Framework of Small-scale Large Multimodal Models

动机:训练MLLM需要承担昂贵的计算资源和费用

核心点:更高质量数据+更好训练方法

  • 模型:现有模型的排列组合

  • 训练策略:预训练(image-caption)+SFT(multi-turn conversation)

  • base:PT阶段只训练P层,SFT阶段只训练P和部分LLM

  • share:在PT阶段,projector由base中的参数初始化,并且只冻结image encoder中的前12层,其余参数参与训练,在SFT阶段,只训练projector和部分LLM层

缺点:

  • 提出Tiny-MLLM基线方法,但没有从更高质量的数据,更好的训练策略角度深入分析

  • 完成的任务还是仅限于图文理解,缺乏多模态任务的泛化性

图片

MobileVLM: Vision Language Model for Mobile Devices

动机:在实现资源受限的边缘设备高效视觉感知

模型架构:为边缘设备定制的LLM(MobileLLaMA)

设计了一个高效的投影器(称为“轻量级下采样投影器”,LDP),在减少推理预算的同时更好地对齐多模态特征。

训练策略:

  • 纯文本LLM预训练+多轮对话SFT

  • 多模态VLM预训练+微调

图片

Efficient Multimodal Learning from Data-centric Perspective

动机:弥合大小模型性能差距的另一个方向是数据优化

有工作:利用现成的轻量级LLM主干(如Phi)和小视觉编码器,或者针对定制轻量级 MLLM 设计的模型架构

核心点:通过数据集压缩构建更多信息的训练数据

Pre-training:从LAION-2B中构建了一个高质量的预训练数据 Bunny-pretrain-LAION0-2M的核心集,利用CLIP embedding设计了一个three-step核心集选择方案

  • 对图像进行过滤:使用k-means对所有2B图像的CLIP embedding进行排序,然后设置阈值,当两个embedding的余弦相似度大于阈值时形成无向图,最后每个子图中只有1个样本可以被保留,获得952M子集

  • 对图文对进行过滤:图文embedding的余弦相似度进行排序,选择前40%-60%,获得190M子集

  • 对图像与聚类中心进行过滤:图像与聚类中心的embedding余弦相似度进行排序,选择前15%-35%获得38M子集

  • 最后在剩余的38M子集中随机选取2M样本

Fine-tuning:基于智源自己的DataOptim仓库,利用SVIT-mix-665K,将其中的ShareGPT-40K替换为wizardlmevolution -instruct- 70k,得到Bunny695K

图片

Sora的可能采用的技术?

经过OpenCSG的介绍多模态大语言模型之后,有没有一种大彻大悟的感觉。你是否会和OpenAI的观点一致,把这两者技术结合在一起,那不是封神了!没错,Sora之所以这么厉害,可能是扩散模型和大语言模型的结合。

图片

OpenAI结合了扩散模型和基于transformer架构的大语言模型的AI视频生成技术旨在通过结合这两种技术的优势,提高视频生成的质量和稳定性。Sora在处理可变持续时间、分辨率和宽高比的视频和图像上进行联合训练,利用时空补丁(space-time patches)进行操作,以及transformer架构来增强视频生成的能力。

最后OpenCSG来做一个总结,Sora相对于Pika(Stable Diffusion)可能的优势:

  1. 技术融合:Sora结合了扩散模型和基于transformer架构的大语言模型,这种融合可能使得Sora在处理视频内容时更加高效和稳定。而Pika可能主要依赖于扩散模型来生成图像和视频。

  2. 视频生成的连贯性和稳定性:Sora在生成视频时可能更加注重画面物体的稳定性和一致性,这得益于transformer模型的自注意力机制,它能够理解前后时间线的关系。相比之下,Pika可能在这方面的表现稍逊一筹。

  3. 语义理解能力:由于Sora使用了GPT模型来增强文本理解,它可能在将用户的文本描述转换成视频内容时表现得更加准确和相关。Pika虽然也能够根据文本提示生成图像,但可能在语义理解的深度和广度上不如Sora。

  4. 处理长序列数据的能力:Sora的transformer架构特别适合处理长序列数据,这对于视频生成尤为重要,因为视频本质上是由一系列连续帧组成的。Pika可能在这方面的处理上不如Sora灵活和高效。

  5. 创新性和涌现特性:Sora在大规模训练时可能表现出许多有趣的涌现功能,这些功能使Sora能够模拟现实世界中的人物、动物和环境,这可能是Pika所不具备的。

  6. 行业领先地位:OpenAI作为Sora的开发者,拥有强大的技术背景和资源,这可能使得Sora在行业中占据领先地位,尤其是在生成式AI视频领域。

PS:OpenCSG已经帮您整理好了Sora的相关资料,关注微信公众号「传神社区」,回复sora关键字,一键领取关于Sora学习资料(来自OpenCSG的算法团队,成员清华、北大、港科大、中科院等大牛们的心血之作),养成大神必修手册。

参考资料

https://arxiv.org/abs/2010.11929

https://arxiv.org/abs/2103.00020

https://ai.meta.com/research/publications/segment-anything/

https://arxiv.org/abs/2006.11239

https://arxiv.org/abs/2112.10752

https://arxiv.org/abs/2212.09748

https://arxiv.org/abs/2301.12597

https://arxiv.org/abs/2304.14178

https://arxiv.org/abs/2311.03079

https://arxiv.org/pdf/2403.05525.pdf

https://arxiv.org/pdf/2309.05519.pdf

https://arxiv.org/abs/2402.14289

https://arxiv.org/abs/2312.16886

https://arxiv.org/abs/2402.11530

https://www.bilibili.com/video/BV14F4m1c7RC/?spm_id_from=333.788&vd_source=3f020637bb31d79c22c18d05f6c067c8

https://www.woshipm.com/evaluating/5998857.html

https://zhuanlan.zhihu.com/p/687936273

https://mp.weixin.qq.com/s/PMYAGAHGbi04wzgNRYkj6A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值