小白也能看懂 | 大模型的6个评估指标,大语言模型如何准确预测下一个词?为软件开发生命周期而生开源代码大模型CodeFuse,以及支持 VS Code 插件的国产代码大模型CodeShell

小白也能看懂 | 大模型的6个评估指标,大语言模型如何准确预测下一个词?为软件开发生命周期而生开源代码大模型CodeFuse,以及支持 VS Code 插件的国产代码大模型CodeShell,若干个可以在代码编辑器中免费安装使用的智能AI大模型插件进行代码生成、代码纠错、代码排查等等。

在这里插入图片描述

近年来,随着深度学习技术的飞速发展,大型神经网络模型如BERT、GPT-3等已经成为自然语言处理、计算机视觉、语音识别等领域的重要工具。这些模型之所以称为"大型",是因为它们通常包含数十亿甚至数千亿的参数,比以往的模型要庞大得多。然而,模型的规模庞大并不总是意味着性能更好,因此我们需要一套有效的方法来评估这些大型神经网络的性能。本文将探讨为什么要评估大型神经网络模型,以及如何使用一系列关键指标来评估它们。

为什么要评估大型神经网络模型?

在深度学习领域,大型神经网络模型已经成为各种应用的核心。这些模型不仅在自然语言处理领域表现出色,还在计算机视觉、语音识别、推荐系统等领域取得了显著的成功。然而,这些模型的复杂性和规模也带来了一系列挑战,因此需要进行全面的评估。评估的原因及价值主要有以下4点:

  1. 模型选择

在开始一个机器学习或深度学习项目时,选择合适的模型是至关重要的一步。不同的任务和数据集可能需要不同类型的模型。通过评估各种大型神经网络模型,我们可以确定哪种模型最适合我们的任务,从而节省了时间和资源。

  1. 模型比较

有时候,我们可能面临多个不同模型的选择,这些模型的规模和结构各异。通过评估它们的性能,我们可以直观地了解它们在特定任务上的表现优劣,进而选择最合适的模型。

  1. 模型改进

即使我们已经选择了一个模型,也需要不断改进它的性能。通过评估模型,我们可以识别出其弱点,并采取措施来改进它们。这有助于不断提升模型的性能,使其更适用于实际应用。

  1. 解释模型行为

了解大型神经网络模型的性能不仅仅是为了选择和改进模型,还有助于我们理解模型的行为。这对于深入探索模型的内部决策过程、提高可解释性以及排查模型的不良行为都至关重要。

最后,评估是研究人员推动领域进步的关键工具。通过评估不同模型的性能,可以发现新的方法和技术,推动深度学习领域的发展。

如何评估大型神经网络模型?

要评估大型神经网络模型,我们需要使用一系列关键指标,这些指标提供了有关模型性能的重要信息。以下是一些常用的6个评估指标。为了让大家更能明白各个指标的含义,为每个指标加了一些比喻和示例。

  1. 准确性:射箭的精确度

准确性是评估大型神经网络模型性能的基本指标,它衡量了模型的预测与真实数据之间的接近程度。准确性通常以百分比表示,范围在0%到100%之间。更高的准确性表示模型在任务中表现更好。

示例:图像分类任务

假设我们有一个图像分类任务,需要将动物图像分为猫、狗和鸟三个类别。我们使用一个大型神经网络进行图像分类,并将其应用于100张测试图像。如果模型成功分类了95张图像,那么它的准确性就是95%。这意味着模型在这个任务中的表现非常接近真实分类。

  1. 效率:汽车的燃油效率

效率是评估大型神经网络模型性能的另一个关键方面,类似于汽车的燃油效率。它考量了模型在完成任务时所需的资源,通常以具体的数值来表示。

示例:语言模型生成

假设我们有两个语言模型,模型A和模型B,它们都可以生成自然语言文本。模型A在生成一段文本时需要消耗10分钟的时间,而模型B只需要1分钟。虽然两者都能够生成高质量的文本,但模型B更加高效,因为它在相同时间内完成了更多的工作,类似于一辆更省油的汽车能在同样的油箱容量下跑得更远。

  1. 鲁棒性:体育选手的稳定表现

鲁棒性是模型在不同情境下的表现稳定性,就像一名体育选手在各种比赛中表现的一致性。这个指标通常以具体的数值或者定性描述来衡量。一个鲁棒优秀的大型神经网络模型能够在处理各种输入时都能够产生一致的结果。

示例:语音识别模型

考虑一个语音识别模型,它必须在不同的背景噪声下识别说话者的话语。如果该模型在安静环境和嘈杂环境下都能够准确地识别说话者,那么它就被认为具有鲁棒性。这就像一名运动员在雨天和晴天都能保持出色的表现一样。

  1. 可解释性:拆解复杂机器的组成部分

可解释性是我们能够理解模型内部工作方式的程度,有点像我们是否能够拆解复杂机器的各个组成部分并理解它们的功能。这个指标通常以定性描述为主,因为可解释性不容易用具体数值来衡量。

示例:自动驾驶汽车决策模型

假设有一辆自动驾驶汽车,它需要决定何时刹车、何时加速以及何时转向。可解释性意味着我们可以追溯到模型的决策,理解为什么它做出了特定的驾驶决策,而不仅仅是只看到一个黑匣子式的结果。这就像我们能够了解汽车为何选择在某个时刻刹车,是因为它探测到前方有障碍物。

  1. 多样性:美食菜单的多样性

多样性是评估模型输出多样性和创造性的指标,就像一份美食菜单上有多种不同的菜肴供顾客选择一样。在大型神经网络中,多样性意味着模型可以生成不同的输出而不仅仅是一个固定的答案。这个指标通常通过具体的数值或者文本示例来衡量。

示例:生成式对话模型

假设我们有一个生成式对话模型,它可以根据相同的提示生成多个不同的回复。这意味着模型可以在不同情境下产生多样化的答案,而不是每次都提供相同的回复。就像一家餐厅的菜单上有各种口味的披萨可供选择。

  1. 泛化能力:学生在考试和实际应用中的表现

泛化能力是一个大型神经网络模型在之前未见过的数据上表现良好的能力,就像一个学生在考试和实际应用中的表现之间的关系一样。这个指标通常以定性描述为主,因为泛化能力不容易用具体数值来衡量。

示例:机器翻译模型

假设我们有一个机器翻译模型,它在训练时只见过英语到法语的翻译数据。如果这个模型在真实世界中的新的翻译任务(如英语到德语)上表现很好,那么它就具有较强的泛化能力。这就像一名学生在数学考试中学会了解决一类问题后,能够在实际生活中运用这些数学知识解决新的问题。

指标的数值范围

在前面的内容中,我们详细介绍了各种大型神经网络模型评估指标的含义和重要性。然而,对于许多读者来说,可能还会有一个疑问:这些指标的数值范围是什么样的?具体来说,哪些数值是好的,哪些是不好的?我们再汇总说明一下。

准确性:通常以百分比表示,范围在0%到100%之间。较高的准确性表示模型在任务中表现更好。但需要注意,准确性不能完全反映模型性能,特别是在类别不平衡的情况下。

效率:效率指标通常与模型的大小、计算成本和推理速度有关。较小的模型和较短的推理时间通常被视为更高效。但效率也与任务和部署环境有关,没有一个通用的数值范围。

鲁棒性:鲁棒性是一个相对的概念,通常通过在不同数据集或噪声条件下的性能稳定性来评估。较稳定的性能表示模型具有更好的鲁棒性。

可解释性:可解释性通常不是一个具体的数值,而是指模型是否能够提供清晰的决策解释或可视化结果。越容易理解模型的决策过程,可解释性越高。

多样性:多样性通常通过生成文本的多样性度量来评估,例如文本生成中不同输出的差异程度。更高的多样性表示模型能够生成更多不同的结果。

泛化能力:泛化能力通常难以用具体数值来衡量,而是通过模型在未见数据上的性能来评估。较好的泛化能力意味着模型能够适应新的数据和任务。

需要强调的是,每个任务和应用场景都可能对这些指标有不同的要求。因此,理解指标的含义远比简单地追求特定数值更为重要。在实际应用中,通常需要综合考虑多个指标,并根据具体情况进行权衡和优化。

指标的综合分析

在大型神经网络模型的评估中,通常不会仅仅依赖于单一指标,而是综合考虑多个指标来全面评估模型性能。不同的任务和应用场景可能需要不同的权重分配给这些指标。

例如,对于一个语音识别系统,我们可能更关注准确性和鲁棒性,因为用户希望系统能够正确识别他们说的话,无论环境条件如何。但对于一个聊天机器人,我们可能更关注多样性和可解释性,因为用户希望机器人能够产生富有创造性的回复,并且能够解释它的决策。

因此,在实际评估中,我们常常会进行综合分析,权衡不同指标之间的关系,以确定模型是否适合特定任务和应用场景。这种综合分析需要综合考虑任务需求、性能目标以及资源约束等因素。

大型神经网络模型的评估是深度学习领域的一个关键任务。准确性、效率、鲁棒性、可解释性、多样性和泛化能力等指标为我们提供了评估模型性能的重要工具。理解这些指标的含义和数值范围,以及进行综合分析,有助于我们更好地评估和利用大型神经网络模型。希望本文为您提供了关于评估大型神经网络模型的清晰指导,并激发了更多的研究和创新。无论是在自然语言处理、计算机视觉还是其他领域,深刻理解这些指标将有助于我们更好地评估和利用大型神经网络。


当大型语言模型进行文本生成时,其中一个关键步骤是计算每个可能的下一个词的条件概率分布。这一步骤非常重要,因为它决定了在给定上下文时,每个词汇或标记出现的可能性有多大。下面更详细地讲解这个概率分布计算的过程,以一个生动的示例来说明。

上下文编码:

首先,让我们考虑以下上下文信息,这是一个科幻小说的开头:

在一个遥远的星球上,有一片神秘的森林。这片森林里住着一种叫做…
在生成文本之前,模型首先会将上下文信息进行编码。这个上下文信息可以包括前文的所有词汇、句子,甚至前一段文字,具体取决于任务和模型的设计。编码过程将上下文信息转化为一个向量或矩阵,以便模型能够处理它。

词汇表和嵌入层:

大语言模型拥有一个庞大的词汇表,其中包括了各种词汇和标记,比如动词、名词、形容词等。每个词汇都与一个唯一的嵌入向量相关联,这个向量包含了有关词汇的语义和语法信息。这些嵌入向量是通过模型的训练过程学习得到的。

上下文与词汇表的交互:

接下来,模型会将上下文信息与词汇表中的词汇进行交互。在这个示例中,模型会将上下文信息编码成一个向量,表示“在一个遥远的星球上,有一片神秘的森林。这片森林里住着一种叫做”的语境。

然后,模型会计算每个词汇与这个上下文的相关性。这通常涉及计算上下文编码向量与词汇表中每个词汇嵌入向量之间的相似度或关联度。这些相似度分数反映了每个词汇在给定上下文下的可能性。

Softmax函数:

一旦计算出了每个词汇与上下文的关联度,接下来的步骤是将这些关联度转化为概率分布。通常使用Softmax函数来执行这一转化。Softmax函数将一系列分数映射为概率,确保所有分数之和等于1。

概率分布:

最终的结果是一个概率分布,其中包含了词汇表中每个词汇或标记的概率值。这些概率表示了在给定上下文条件下,每个词汇出现的可能性。

下面是一个示例,展示了生成下一个词的概率分布的一部分:

{
“梦幻兽”: 0.30,
“奇幻生物”: 0.25,
“魔法精灵”: 0.20,
“神秘生灵”: 0.15,
“异世界生物”: 0.10,
}
在这个示例中,模型计算了给定上下文后生成不同词汇的可能性。例如,生成“梦幻兽”的概率最高,为0.30,而生成“异世界生物”的概率最低,为0.10。

总之,概率分布计算是大语言模型预测下一个词的关键步骤之一。它将上下文信息与词汇表中的词汇进行交互,并将结果转化为一个概率分布,使模型能够选择最有可能的词汇来生成连贯的文本。这个过程结合了深度学习、嵌入表示、相似度计算和Softmax函数,为文本生成提供了坚实的数学基础。


CodeFuse,蚂蚁集团正式开源的代码大模型,可以根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释、自动生成测试用例、修复和优化代码等。

目前现已上架 Hugging Face:https://huggingface.co/codefuse-ai。

CodeFuse的使命是开发专门设计用于支持整个软件开发生命周期的大型代码语言模型(Code LLMs),涵盖设计、需求、编码、测试、部署、运维等关键阶段;致力于打造创新的解决方案,让软件开发者们在研发的过程中如丝般顺滑。

模型集合包括 CodeFuse-13B 和 CodeFuse-CodeLlama-34B。其中,CodeFuse-CodeLlama-34B基于CodeLlama作为基础模型,并利用MFT框架进行微调。在HumanEval Python pass@1评估中取得高达的74.4%(贪婪解码)的好成绩,甚至超过了GPT-4(67%)的表现。

目前,已开源的下内容:

MFT(多任务微调)框架,也称为MFTCoder;

两个用于增强LLMs编码能力的数据集,包括Code Exercise和Evol-Instruction;

基于FasterTransformer的更快速、更可靠的部署框架。


CodeShell 是多语言代码大模型,具有 70 亿参数,采用五千亿 Tokens 进行了训练,上下文窗口长度为 8192。

CodeShell 的原始训练数据基于自己爬取的 GitHub 数据、Stack 和 StarCoder 数据集,以及少量高质量的中英文数据。

在权威的代码评估 Benchmark(HumanEval 与 MBPP)中,CodeShell 取得同等规模最好的性能。

本次开源的模型如下:

CodeShell Base:CodelShell 底座模型,具有强大的代码基础能力。

CodeShell Chat:CodelShell 对话模型,在代码问答、代码补全等下游任务重性能优异。

CodeShell Chat 4bit:CodelShell 对话模型 4bit 量化版本,在保证模型性能的前提下内存消耗更小,速度更快。

CodeShell CPP:CodelShell 对话模型 CPP 版本,支持开发者在没有 GPU 的个人电脑中使用。注意,CPP 版本同样支持量化操作,用户可以在最小内存为 8G 的个人电脑中运行 CodeShell。

地址:https://gitee.com/mirrors/CodeShell


目前,有许多AI公司和开源社区提供了支持VS Code插件的代码开发大模型工具。这些插件通常集成了代码补全、智能提示、代码分析等功能,旨在提高开发人员的编码效率。以下是一些支持VS Code插件化的代码开发大模型工具:

  1. GitHub Copilot

    • 简介:由GitHub提供的AI配对程序员,使用OpenAI的Codex模型,提供代码自动补全功能。
    • 访问链接:GitHub Copilot
  2. Kite

    • 简介:一个AI驱动的代码补全工具,支持多种编程语言,并集成到VS Code中。
    • 访问链接:Kite
  3. TabNine

    • 简介:使用深度学习为多种编程语言提供代码补全的插件。
    • 访问链接:TabNine
  4. IntelliCode

    • 简介:Visual Studio IntelliCode使用机器学习提供更准确的智能代码补全。
    • 访问链接:IntelliCode
  5. AI Assistant

    • 简介:一个VS Code插件,提供代码片段建议、代码审查等功能。
    • 访问链接:AI Assistant
  6. Polacode

    • 简介:使用机器学习帮助开发者编写代码的VS Code插件。
    • 访问链接:Polacode
  7. Codeium

    • 简介:一个智能代码分析工具,提供代码质量反馈和改进建议。
    • 访问链接:Codeium
  8. CodeWhisperer

    • 简介:一个AI编程助手,通过自然语言理解提供代码建议。
    • 访问链接:CodeWhisperer
  9. DeepCode

    • 简介:使用深度学习来识别代码中的深层安全和质量问题的插件。
    • 访问链接:DeepCode
  10. AI-CodeEditor

    • 简介:一个集成了机器学习模型的代码编辑器,提供代码补全和错误检测。
    • 访问链接:AI-CodeEditor
  11. CodeGPT

    • 简介:一个基于GPT模型的代码生成插件,支持多种编程语言。
    • 访问链接:CodeGPT
  12. CodeSwing

    • 简介:一个AI驱动的代码补全工具,提供代码片段和模板。
    • 访问链接:CodeSwing
  13. CodeStream

    • 简介:一个团队协作和代码审查工具,提供智能代码建议。
    • 访问链接:CodeStream
  14. CodeMakr

    • 简介:一个AI编程助手,提供代码补全和调试建议。
    • 访问链接:CodeMakr
  15. AI-Pair

    • 简介:一个AI编程助手,提供代码补全和错误检测。
    • 访问链接:AI-Pair
  16. CodeTamer AI

    • 简介:一个智能代码分析工具,提供代码质量反馈和改进建议。
    • 访问链接:CodeTamer AI
  17. SmartCode

    • 简介:一个AI驱动的代码补全和重构工具。
    • 访问链接:SmartCode
  18. AI-DevTools

    • 简介:一套AI开发工具,包括代码补全、错误检测和性能分析。
    • 访问链接:AI-DevTools
  19. CodeSmart

    • 简介:一个智能代码分析工具,提供代码质量反馈和改进建议。
    • 访问链接:CodeSmart
  20. AI-CodeReview

    • 简介:一个AI代码审查工具,提供代码质量反馈和改进建议。
    • 访问链接:AI-CodeReview

一些工具可能需要注册账号或订阅服务才能使用全部功能,而一些工具可能完全免费。在使用这些工具时,请确保遵守相应的使用条款和隐私政策。同时,由于技术发展迅速,一些工具可能会更新或推出新的功能,建议直接访问官方网站或VS Code Marketplace获取最新信息。

对于VS Code插件,很多基础功能是免费的,但某些高级功能可能需要付费或订阅。以下是一些提供至少部分免费功能的VS Code插件,这些插件中的一部分或全部功能可以免费使用:

  1. GitHub Copilot

    • 基础版提供免费使用,但某些高级功能可能需要付费。
    • 访问链接:GitHub Copilot
  2. Kite

    • 提供免费的代码补全功能。
    • 访问链接:Kite
  3. TabNine

    • 基础版免费,但有一些付费计划提供额外的功能。
    • 访问链接:TabNine
  4. IntelliCode

    • Visual Studio IntelliCode作为Visual Studio订阅的一部分提供,但对于VS Code用户基础版是免费的。
    • 访问链接:IntelliCode
  5. AI Assistant

    • 提供免费的AI编程助手功能。
    • 访问链接:AI Assistant
  6. NLTK

    • NLTK是一个流行的自然语言处理库,其VS Code插件通常免费提供基本功能。
    • 访问链接:NLTK
  7. Python

    • 由Microsoft提供的官方Python插件为VS Code用户提供了丰富的免费功能。
    • 访问链接:Python
  8. C/C++

    • 微软为C和C++提供的插件包括免费的智能感知和代码分析功能。
    • 访问链接:C/C++
  9. JavaScript (ES6) Code Snippets

    • 提供常用的JavaScript代码片段,这是一个免费的插件。
    • 访问链接:JavaScript Snippets
  10. GitLens

    • 一个强大的Git和GitHub助手,提供了许多免费的版本控制功能。
    • 访问链接:GitLens
  11. Bracket Pair Colorizer

  12. Path Intellisense

  13. ES7+ React/Redux/GraphQL/React-Native snippets

  14. Polacode

    • 使用机器学习帮助开发者编写代码的VS Code插件,提供免费版本。
    • 访问链接:Polacode
  15. CodeWhisperer

    • 一个AI编程助手,通过自然语言理解提供代码建议,提供免费服务。
    • 访问链接:CodeWhisperer

插件的具体功能和免费政策可能会随时间变化,建议直接访问VS Code Marketplace或插件的官方网站获取最新信息。此外,一些插件可能提供免费和付费版本,付费版本通常提供额外的高级功能。

目前市面上有多个VS Code插件结合了AI技术来提升编程效率。这些插件通过提供智能代码补全、代码审查、自动化重构建议等功能,帮助开发者提高工作效率。以下是一些结合AI技术的VS Code插件:

  1. GitHub Copilot

    • 简介:由GitHub和OpenAI合作开发的AI配对程序员,提供基于深度学习的代码补全和建议。
    • 访问链接:GitHub Copilot
  2. Kite

    • 简介:Kite使用机器学习来提供实时的代码补全和文档查找,支持多种编程语言。
    • 访问链接:Kite
  3. TabNine

    • 简介:TabNine是一个由深度学习驱动的代码补全工具,支持多种编程语言。
    • 访问链接:TabNine
  4. IntelliCode

    • 简介:Visual Studio IntelliCode使用深度学习来提供更准确的智能代码补全。
    • 访问链接:IntelliCode
  5. AI Assistant

    • 简介:这个VS Code插件使用AI来提供代码片段建议、错误检测和代码审查。
    • 访问链接:AI Assistant
  6. Polacode

    • 简介:Polacode是一个AI驱动的代码补全工具,旨在帮助开发者快速编写代码。
    • 访问链接:Polacode
  7. CodeWhisperer

    • 简介:CodeWhisperer通过分析代码模式提供个性化的代码补全建议。
    • 访问链接:CodeWhisperer
  8. DeepCode

    • 简介:DeepCode使用深度学习来识别代码中的深层安全和质量问题。
    • 访问链接:DeepCode
  9. AI-CodeEditor

    • 简介:这个插件集成了机器学习模型,提供代码补全和错误检测。
    • 访问链接:AI-CodeEditor
  10. Codeium

    • 简介:Codeium是一个智能代码分析工具,提供代码质量反馈和改进建议。
    • 访问链接:Codeium

这些插件通过AI技术帮助开发者在编写代码时节省时间,减少错误,并提高代码质量。在选择插件时,请确保它与您使用的编程语言和开发环境兼容,并且满足您的特定需求。同时,由于技术发展迅速,新的插件和功能可能会不断出现,建议定期查看VS Code Marketplace以获取最新信息。

有许多VS Code插件可以帮助开发者自动检测代码中的错误。这些插件通常利用静态代码分析技术来识别潜在的问题,包括语法错误、逻辑错误、代码风格问题等。以下是一些流行的VS Code插件,它们提供代码错误检测功能:

  1. ESLint

    • 简介:一个插件化的工具,用于识别和报告JavaScript代码中的错误。
    • 访问链接:ESLint
  2. Pylance

    • 简介:由Microsoft提供的一个Python语言服务器,它使用Pylance引擎来提供高性能的Python语言功能,包括错误检测。
    • 访问链接:Pylance
  3. Pyright

    • 简介:一个由Microsoft开发的Python语言服务器,专注于提供高质量的Python类型检查和错误检测。
    • 访问链接:Pyright
  4. SonarLint

    • 简介:一个静态代码分析工具,用于检测Java、C#、JavaScript、Python等多种语言中的代码错误。
    • 访问链接:SonarLint
  5. Go Language Support

    • 简介:由Go团队提供的官方Go语言支持插件,包括错误检测、代码格式化、智能感知等功能。
    • 访问链接:Go Language Support
  6. PHP Intelephense

    • 简介:一个为PHP语言提供智能感知、错误检测和代码自动完成的插件。
    • 访问链接:PHP Intelephense
  7. Ruby Solargraph

    • 简介:一个为Ruby语言提供静态代码分析和自动完成功能的插件。
    • 访问链接:Ruby Solargraph
  8. C/C++

    • 简介:由Microsoft提供的C和C++插件,包括编译器错误检测、智能感知和代码导航。
    • 访问链接:C/C++
  9. **TypeScript Vue Plugin (Volar)

    • 简介:一个为Vue单文件组件提供TypeScript支持的插件,包括错误检测和自动完成。
    • 访问链接:TypeScript Vue Plugin (Volar)
  10. Java Extension Pack

    • 简介:一个集成了多个Java开发工具的扩展包,包括错误检测、代码重构和性能分析。
    • 访问链接:Java Extension Pack
  11. C# Extension Pack

    • 简介:一个集成了多个C#开发工具的扩展包,包括OmniSharp和C#语言服务。
    • 访问链接:C# Extension Pack
  12. Ruby Language Server

    • 简介:一个为Ruby语言提供语言服务的插件,包括错误检测、代码格式化和自动完成。
    • 访问链接:Ruby Language Server

这些插件通过集成现代编程语言服务,为开发者提供了强大的代码错误检测能力。使用这些工具可以帮助开发者在编写代码时及时发现并修复错误,从而提高代码质量和开发效率。在选择插件时,请确保它与您的编程语言和开发环境兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码讲故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值