生成式AI入门,我推荐这本书

对于生成式AI入门,选择一本合适的书籍是至关重要的。以下是一本备受推荐的书籍,它非常适合作为生成式AI入门的首选:

《生成式AI入门与AWS实战》

专业评论

这本书非常适合用于入门生成式 AI 应用程序开发。互联网上关于这个主题的信息铺天盖地,让人不知从哪里入手。而这本书提供了一个清晰且有条理的指南:它从基础知识 一直讲到高级主题,如参数高效微调和模型部署等。这本书非常实用,还介绍了如何在 AWS 上部署生成式 AI 应用程序。这本书对于数据科学家和工程师是极其宝贵的资源。
——Alexey Grigorev ,OLX 集团首席数据科学家兼 DataTalks.Club 创始人

这是一本关于构建生成式 AI 应用程序的实用图书。Chris 、Antje 和Shelbee 共同整理了 这份出色的学习资源,在未来几年内它都将是非常有价值的——如果可能的话,可以 将其作为大学的学习内容。对任何在 AWS 上大规模构建生成式 AI 应用程序的人来说, 这本书不容错过。
——Olalekan Elesin,HRS 集团数据科学平台总监

如果你正在寻找构建和部署生成式 AI 产品或服务的强大学习资源,那么这本书是你的 不二之选。在 Chris Fregly 、Antje Barth 和 Shelbee Eigenbrode 的专业指导下,你将从生 成式 AI 应用程序开发新手成长为精通训练、微调和应用程序开发等复杂细节的行家。 对每个初出茅庐的 AI 工程师、产品经理、营销人员或商业领袖来说,这本书都是不可 或缺的指南。
——Lillian Pierson,PE,Data-Mania 创始人

这本书深入探讨了创建理解多样化数据类型并开发基于上下文的决策的应用程序所需 的创新技术。通过这本书,读者可以获得全面的视角,将理论与生成式 AI 应用程序所 需的实践工具连接起来。对那些希望充分利用 AWS 在生成式 AI 领域的潜力的人来说, 这本书值得一读。
——Kesha Williams ,Slalom Consulting 总监兼 AWS 机器学习 Hero

本书是专注于如何在 AWS 上开发和应用生成式 AI 的实用指南,旨在为技术领导者、 机器学习实践者、应用开发者等提供深入了解和应用生成式 AI 的策略与方法。本书首 先介绍了生成式 AI 的概念及其在产品和服务中的应用潜力,然后详细阐述了生成式 AI 项目的完整生命周期。作者探讨了多种模型类型,如大语言模型和多模态模型,并提供 了通过提示工程和上下文学习来优化这些模型的实际技巧。此外,本书讨论了如何使用 LoRA 技术对模型进行微调,以及如何通过 RLHF 使模型与人类价值观对齐。书中还介 绍了 RAG 技术,以及如何利用LangChain 和 ReAct 等开发 agent。最后,本书介绍了如 何使用 Amazon Bedrock 构建基于生成式 AI 的应用程序。基于该强大的平台,读者可以 实现自己的创新想法。

本书适合对生成式 AI 感兴趣的学生和研究人员、在 AWS 上开发 AI 应用程序的软件开 发人员和数据科学家、寻求利用 AI 技术优化业务流程的企业决策者以及对技术趋势保 持好奇心的科技爱好者阅读。

本书为人工智能和机器学习爱好者、数据科学家和数据工程师提供了学习生成式AI模型训练、微调以及部署到生产环境的技术基础和实践。我们假设你已经熟悉Python和 深度学习的基本组件,如神经网络、前向传播、激活函数、梯度和反向传播,以便理解本书介绍的概念。

如果你对 Python 和深度学习框架(如TensorFlow 或 PyTorch)有基本的了解,就足以 理解本书中的代码示例。熟悉 AWS 对于学习这些概念并不是必需的,但对于了解某些 特定于 AWS 的示例很有用。

在本书中,首先,你将深入探索生成式 AI 项目生命周期,并学习提示工程、少样本 上下文学习、生成式模型预训练、领域自适应、模型评估、参数高效微调(Parameter- Efficient Fine-Tuning ,PEFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback ,RLHF)等主题。

其次,你将动手实践流行的大语言模型,如 Llama 2 和 Falcon,以及包括 Stable Diffusion 和 IDEFICS 在内的多模态模型。你可以通过 Hugging Face 模型中心、Amazon SageMaker JumpStart 或 Amazon Bedrock 托管的生成式 AI 服务访问这些基础模型。

然后,你还将学习如何实现基于上下文的检索增强生成(Retrieval-AugmentedGeneration ,RAG)1 和基于 agent 的推理工作流 2 。你将探索应用程序框架和库,包括 LangChain 、ReAct3 和程序辅助语言(Program-Aided-Language ,PAL)。你可以利用这些 框架和库来访问自己的定制数据源和 API,或与外部数据源(如网络搜索和合作伙伴数 据系统)进行集成。

最后,你还将在多模态(如文本、图像、音频和视频)生成式 AI 用例中探索与生成式 相关的概念、框架和库。

如果你现在还未能完全理解这些概念,不用担心,本书将深入探讨每一个主题。有了这 些知识和实践经验,你就可以开始构建前沿的生成式 AI 应用程序,这些应用程序有助 于更好地服务客户、超越竞争对手并增加收入。

样章试读:生成式AI用例、基础知识和项目生命周期

在本章中,我们将看到一些生成式 AI 任务和用例的实际应用,了解生成式基础模型, 并探索一个典型的生成式 AI 项目生命周期。我们将看到的生成式 AI 用例和任务包括文 本、问答、对话式界面、内容审查、源代码生成和个性化营销等。

我们还将了解来自 Amazon Web Services(AWS)的一些生成式 AI 服务和硬件选项,包 括 Amazon Bedrock 、Amazon SageMaker 、Amazon CodeWhisperer 、AWS Trainium 和 AWS Inferentia。当在 AWS 上构建端到端、上下文感知、多模态推理应用程序时,这些 服务和硬件选项为生成式 AI 提供了极大的灵活性。

我们从探索一些常见的生成式 AI 用例和任务开始。

1.1 生成式 AI 用例和任务

与深度学习类似,生成式 AI 是一种通用技术,可以满足多个行业和客户群体的多种用 途。目前已有多种类型的多模态生成式 AI 任务,这里列出了常见的任务及相关用例。

文本摘要

生成一段较短的文本,同时保留主要思想。示例包括将新闻文章、法律文件或财务报告 摘要为更少的字数或段落,以便更快地阅读。通常在客户支持中使用摘要功能,以快速 地概述客户与客服代表之间的互动。

重写

修改文本措辞以适应不同的受众、正式程度或语气。例如,可以将正式的法律文件转换为使用较少法律术语的不那么正式的文件,以吸引非法律专业的受众。

信息提取

从文档中提取诸如姓名、地址、事件、数据或数字等信息。例如,将电子邮件转换为 ERP 系统(如 SAP)中的采购订单。

问答(Question Answering,QA)和视觉问答(Visual Question Answering,VQA) 直接针对一组文档、图像、视频或音频提出问题。例如,可以设置一个面向员工的内部 聊天机器人,用于回答有关人力资源和福利的问题。

有害内容检测

作为问答任务的扩展,你可以询问生成式模型一组文本、图像、视频或音频中是否包含 有害内容。

分类和内容审查

为给定的内容(如文档、图像、视频或音频剪辑)分配一个类别。例如,删除电子邮件中的垃圾邮件、过滤不适当的图像及为基于文本的客户服务记录添加标签等。

对话式界面

通过提供类似聊天界面的方式处理多轮对话,以完成相应任务。例如自助的客户支持服 务或用于心理健康治疗的聊天机器人等。

翻译

语言翻译是生成式 AI 最早的用例之一。例如,假设本书的出版商想出版德语翻译版本, 以帮助扩大图书的影响力。或者,你希望将基于 Python 的示例转换为基于 Java 的,以 便用于现有的 Java 的应用程序。

源代码生成

根据自然语言代码注释或者手绘草图生成源代码,如图 1-1 所示。在这里,这个基于 HTML 和JavaScript 的网页是基于餐巾纸背面涂鸦的 UI 草图生成的。

推理

通过问题推理来发现潜在的新解决方案、权衡或隐藏的细节。例如,假设一位 CFO (Chief Financial Officer,首席财务官)向投资者提供基于音频的季度财务报告及更详细的书面报告。通过对这些不同媒介格式的信息进行推理,模型可能会发现一些关于公司 经营状况的结论,而这些结论在原始的音频或文本中并未直接提及。

掩蔽个人身份识别信息

可以使用生成式模型从给定的文本语料库中掩蔽个人身份识别信息(Personally Identifiable Information ,PII)。对于许多需要处理敏感数据并希望从工作流中删除 PII 数据的用例, 这非常有用。

个性化营销和广告

根据用户个人资料特征生成个性化的产品描述、视频或广告。假设一个电子商务网站希 望根据登录用户的年龄或家庭情况为每个产品生成个性化描述。还可以为老年人、儿 童家长或儿童生成个性化的产品图像,以更好地适配和吸引不同特征的用户,如图 1-2 所示。

在这个示例中,每个用户会看到同一产品的独特和高度个性化的图像与描述。这最终可能会带来更多的产品点击和更高的销售额。

在这些生成式的用例和任务中,模型创建的内容已接近于人类对语言的理解,这确实令 人惊叹。这是由一种叫作 Transformer 的神经网络架构来实现的,我们会在第 3 章中学 习 Transformer。

在 1.2 节中,我们将学习如何通过模型中心访问基础模型。

1.2 基础模型和模型中心

基础模型(foundation Model)是由数十亿个参数(又称权重)组成的非常庞大而复杂 的神经网络模型。模型参数是在训练阶段不断优化和学习的——这个阶段通常称为预训 练(pre-training)。基础模型在大量训练数据上进行训练——通常在几周甚至几个月的时 间内,使用大型分布式 CPU 和GPU 集群来训练。在学习数十亿个参数之后,这些基础 模型可以表示诸如人类语言、图像、视频和音频等复杂实体。

在大多数情况下,我们将从模型中心(如 Hugging Face Model Hub 、PyTorch Hub 或 Amazon SageMaker JumpStart)开始生成式 AI 项目。模型中心是模型的集合,通常包含 详细的模型描述以及它们所针对的用例。

在本书中,我们将使用 Hugging Face Model Hub 和 Amazon 。SageMaker JumpStart 来访 问 Meta(原 Facebook)的 Llama 2 、Technology Innovation Institute(TII)的 Falcon 以 及 Google 的 FLAN-T5 等基础模型。我们将在第 3 章中深入了解模型中心和基础模型。

接下来,我们会介绍一个典型的生成式 AI 项目的生命周期,本书后续内容也会大致按 照这个流程来展开。

1.3 生成式 AI 项目生命周期

虽然目前还没有权威的生成式 AI 项目生命周期的定义,但图 1-3 所示的框架可以帮助 你了解生成式 AI 应用程序之旅中最重要的几个环节。通过本书,你将直观地感受该过 程中的每个步骤,并在每个步骤中避免潜在的难题,改进决策。

接下来我们深入介绍一下图 1-3 所示的生命周期中的每个步骤。

确定用例

与任何项目一样,我们首先需要定义项目范围,包括计划通过生成式 AI 应用程序解决的特定生成式用例和任务。我们建议从一个单一的、成熟的用例开始。这将帮助你熟悉 环境,并了解这些模型的能力和局限性,而不必同时优化模型以适配不同的任务。虽然 这些模型能够执行多项任务,但从一开始就在多项任务上评估和优化模型会比较困难。

实验和选择

生成式 AI 模型能够成功地执行许多不同类型的任务。但是,你需要决定现有的基础模 型是否适合你的应用程序需求。在第 2 章中,我们将学习如何使用提示工程(Prompt Engineering)和上下文学习(In-Context Learning),以直接使用已有的基础模型。

我们将从已有的基础模型开始(参见第 3 章),这会大幅缩短由开发到投入使用的时间, 因为这样可以省去预训练的步骤。预训练是一个资源密集型的过程,通常需要数万亿个 单词、图像、视频或音频片段才能开始。运维和管理这种规模的任务需要大量时间、耐 心和计算能力——从头开始预训练通常需要数百万 GPU 计算小时。

你还需要考虑使用的基础模型的规模,这将影响模型训练和推理所需的硬件与成本。虽 然较大的模型往往能更好地支持更多的任务,但情况并非总是如此,这取决于训练和调 优期间使用的数据集。

我们建议你针对生成式用例和任务尝试不同的模型。从已有的、有成熟文档的、规模相 对较小(如 70 亿个参数)的基础模型开始,用较少数量的硬件(与 175 亿个参数以上 的较大模型相比)快速迭代,学习与这些生成式 AI 模型交互的独特方式。

在开发过程中,我们通常会从Amazon SageMaker JumpStart或Amazon Bedrock中的playground 开始。这可以让你快速尝试不同的提示和模型(参见第 2 章)。接下来,我们 可能会使用 Jupyter Notebook、Visual Studio Code(VS Code)或 Amazon SageMaker Studio 这样的集成开发环境(Integrated Development Environment ,IDE)编写 Python 脚本,准备 试验这些生成式模型时使用的自定义数据集。一旦准备好将工作扩展到更大的分布式集 群,你就可以迁移到 SageMaker 分布式训练模块。在该模块中,你可以将任务扩展到更 大的计算集群,使用诸如 NVIDIA GPU 或 AWSTrainium 这样的加速器(参见第 4 章)。

虽然一开始可以避免使用加速器,但你可能需要它们以进行更长期的开发和部署更复杂 的模型。越早学习 NVIDIA GPU 或 AWS Trainium 芯片等加速器的独特(有时有些晦涩) 的开发方法越好。好在硬件提供商通过 NVIDIA CUDA 库和 AWS Neuron SDK 对大部 分复杂性进行了抽象。

适配、对齐和增强

将生成式模型适配到特定的领域、用例和任务非常重要。第 5 章~第 7 章和第 11 章专 门介绍如何使用定制的数据集对多模态生成式 AI 模型进行微调,以满足你的业务目标。

此外,随着这些生成式模型变得越来越像人类(重要的是它们要与人类的价值观和偏好 对齐,并且总体上表现良好),第 7 章和第 11 章探讨了一种称为基于人类反馈的强化学 习(Reinforcement Learning From Human Feedback ,RLHF)的技术,以使你的多模态生 成式 AI 模型有用、诚实、无害(Helpful, Honest, and Harmless ,HHH)。RLHF 是更广 泛的研究领域——负责任的 AI 的一个关键组成部分。

虽然生成式模型包含大量的信息和知识,但它们通常需要使用最新的信息或业务的专有 数据进行增强。在第 9 章中,我们将探索使用外部数据源或 API 进一步增强生成式模 型的方法。

评估

为了正确地构建生成式 AI 应用程序,你需要对模型进行大量迭代。所以,建立明确的 评估指标和基准非常重要,这有助于衡量微调的有效性。我们将在第 5 章中了解如何评 估模型。虽然不像传统机器学习那么直接,但模型评估有助于在适配和对齐阶段衡量模 型的改进情况,特别是模型与业务目标和人类偏好的契合程度。

部署和集成

当最终拥有一个经过良好调整和对齐的生成式模型时,你就可以部署该模型以进行推 理,并将其集成到你的应用程序中。在第 8 章中,我们将了解如何优化模型以进行推理,更好地利用计算资源,减少推理延迟,并更好地服务用户。

我们还将了解如何使用 Amazon SageMaker endpoint(端点)部署模型,这些端点对基于 AWS Inferentia 计算实例的生成式模型的推理任务进行了专门优化。SageMaker endpoint 是服务生成式模型的绝佳选择,因为它们具有高度可扩展性、容错性和可定制性。它们 提供了灵活的部署和扩展选项,如 A/B 测试、影子部署和自动伸缩(参见第 8 章)。

监控

与任何生产系统一样,你应该为生成式 AI 应用程序的所有组件设置适当的指标收集 和监控系统。在第 8 章和第 12 章中,我们将学习如何利用 Amazon CloudWatch 和 Amazon CloudTrail 监控在 AWS 上运行的生成式 AI 应用程序。这些服务高度可定制, 可以从 AWS 控制台或 AWS 软件开发工具包(Software Development Kit ,SDK)中访问 并与每个 AWS 服务集成,包括 Amazon Bedrock,这是一项用于生成式 AI 的托管服务, 我们将在第 12 章中介绍。

1.4 AWS 上的生成式 AI

本节将概述 AWS 提供的专门构建的生成式 AI 服务和功能栈,如图 1-4 所示。

模型提供商包括那些正在构建或预训练基础模型的机构,这些模型需要访问强大且性 价比高的计算和存储资源。为此,AWS 提供了一系列框架和基础设施来构建基础模型。 这包括针对生成式 AI 优化的计算实例,诸如 Amazon EC2 的自行管理选项, 以及像 Amazon SageMaker 这样的托管选项,用于模型训练和模型部署。此外,AWS 还提供了 专门为训练和部署生成式模型而优化的加速器。

AWS Trainium 是一个专为高性能、低成本训练的工作负载而打造的加速器。同样, AWS Inferentia 也是专为高吞吐量、低成本推理而打造的。AWS 上针对生成式 AI 优化 的基础设施选项被模型提供商及模型微调人员使用。

模型微调人员包括那些将基础模型调整或对齐到其特定领域、用例和任务的从业者。这 通常不仅需要访问计算和存储资源,还需要通过多种工具来轻松获取各种基础模型(而 无须管理底层基础设施),从而实现这些特定任务。除了 AWS 上可用的各种优化后的 基础设施以外,微调人员还可以直接访问广泛的流行基础模型,以及用于调整或对齐基 础模型的工具,包括 Amazon Bedrock 和 Amazon SageMaker JumpStart 内置的功能。

AmazonBedrock是一项全托管服务,提供对Amazon(如Titan)和热门第三方提供商(如AI21 Labs、Anthropic、Cohere 和StabilityAI)的模型的访问功能。这使得你可以快速开始试验可用的基础模型。Bedrock 还允许你使用自己的数据私有化地定制基础模型,并且将这些模型集成和部署到生成式AI应用程序中。用于Bedrock的Agent是全托管的,它支持将外部专有数据源和模型执行任务的能力相结合,以进行定制化。

你可以通过 Amazon SageMaker JumpStart 中的模型中心将基础模型部署到 Amazon SageMaker endpoint ,提供对公开和私有基础模型的访问。此外,SageMaker JumpStart 还提供使用 SageMaker 模型训练组件对可用模型进行微调的功能。针对模型中心的这些 可用模型,SageMaker JumpStart 会自动生成用于部署和微调的笔记本代码。

Amazon SageMaker 通过 Amazon SageMaker Studio 笔记本中的托管环境,为使用基础模 型提供了额外的可扩展性,而无论该模型是否在 SageMaker JumpStart 中,你都可以在 Amazon SageMaker Studio 中开发任何可访问的模型,并不受限于 SageMaker JumpStart。

我们通常使用额外数据来增强模型,以适配特定的用例,任务或领域。AWS 为存 储向量嵌入的向量存储提供了多种实现选项。向量存储和嵌入常用于检索增强生成 (Retrieval-Augmented Generation ,RAG),以高效地从外部数据源检索相关信息,增强 与生成式模型一起使用的数据。

可用的选项包括用于Amazon OpenSearch Serverless 的向量引擎及可用于Amazon OpenSearchService 的 k-NN 插件。此外,Amazon Aurora PostgreSQL 和 Amazon Relational Database Services(RDS)for PostgreSQL 都通过内置的 pgvector 提供向量存储功能。

如果你希望针对特定领域的数据实现完全托管的语义搜索体验,可以使用 Amazon Kendra,它会为你创建和管理向量嵌入。

如果你想通过端到端生成式 AI 应用程序访问生成式模型,AWS 提供了多种选项。在 AWS 上,你可以使用兼具广度和深度的服务来构建自己的生成式 AI 应用程序;你也可 以利用打包的、完全托管的服务来实现。

例如,Amazon CodeWhisperer 提供了支持多种编程语言的生成式编码功能,支持诸如 代码生成、主动漏洞扫描、代码修复建议、自动建议代码归属等生产力增强功能。

AWS HealthScribe 是另一项面向医疗保健行业的生成式 AI 服务,可以根据患者与临床 医生的对话自动生成临床记录。

Amazon QuickSight Q 包括内置的生成功能,允许用户使用自然语言询问数据问题,并 接收文本答案或可视化结果,使用户能够更深入地了解他们的数据。

本书主要关注1.3 节中涉及的部分角色和任务,以及构建生成式AI应用程序。当你继续深入了解生成式AI项目生命周期的特定领域时,可以将本节推荐的服务如Amazon SageMaker JumpStart 和Amazon Bedrock 作为参考。

现在,我们已经介绍了一些 AWS 提供的生成式 AI 核心服务,接下来,我们来看看使 用 AWS 构建生成式 AI 应用程序的一些优势。

1.5 为什么选择基于 AWS 构建生成式 AI

利用 AWS 构建生成式 AI 工作负载的主要优势包括提高选择的灵活性、企业级的安全 和治理能力、先进的生成式 AI 能力、通过全托管的服务降低运营成本,以及持续创新 的能力。我们通过一些具体示例进一步深入探讨每一个方面。

提高选择的灵活性

AWS 不仅能够利用一系列服务和功能来满足每种用例的需求,而且在生成式模型的选 择方面也提供了灵活性。你不仅能够为特定用例选择合适的模型,而且能够快速更换和 评估新模型,以利用新的功能。

企业级的安全和治理能力

AWS 服务内置了对受监管行业来说最重要的安全和治理能力。例如,SageMaker 模型 训练、SageMaker 模型部署和 Amazon Bedrock 支持围绕数据保护、网络隔离、访问控 制和授权,以及威胁检测等的关键功能。

先进的生成式 AI 能力

AWS 提供了丰富的生成式 AI 模型,从 Amazon 自研模型到 Amazon Bedrock 中的第 三方提供商模型,再到通过 Amazon SageMaker JumpStart 提供的公开和私有模型。此外,AWS 还投资了用于大规模训练和部署生成式模型的基础设施,如 AWS Trainium 和 AWS Inferentia。

通过全托管的服务降低运营成本

如前所述,许多面向生成式 AI 的 AWS 服务和功能都是通过托管的基础设施、无服务 器化的产品或打包的解决方案来提供的。你可以专注于生成式 AI 模型和应用程序,而 不必管理基础设施,并能够快速开始使用现成的解决方案和服务。

持续创新的能力

多年来 AWS 在云基础设施和人工智能方面积累了丰富的经验,拥有快速创新的能力。

AWS 服务和功能栈支持生成式 AI,在宽度、深度和可扩展性等方面支持各种用例,无 论你是模型提供商、模型微调人员还是模型消费者,都能得到相应的支持。除了 AWS 提供的生成式 AI 能力以外,更广泛的 AWS 服务还支持构建自定义生成式 AI 应用程序 的能力,这将在 1.6 节中介绍。

1.6 在 AWS 上构建生成式 AI 应用程序

生成式 AI 应用程序不仅仅包含生成式模型。要构建出可靠、可扩展和安全的应用程序, 然后提供给该应用程序的最终用户或其他系统的消费者,这需要多个组件的协同工作, 如图 1-5 所示。

当使用像 Amazon CodeWhisperer 这样的打包生成式 AI 服务时,所有这些复杂性都被完 全抽象化并提供给最终用户。但是,构建定制的生成式 AI 应用程序通常需要一系列服 务。AWS 提供了构建端到端生成式 AI 应用程序所需的广泛服务。图 1-6 展示了作为更 广泛的生成式 AI 应用程序的一部分可能会使用的 AWS 服务的一个示例。

1.7 小结

在本章中,我们探索了一些常见的生成式 AI 任务和用例,并学习了一些生成式 AI 方面 的基础知识。

我们还给出了一个典型的生成式AI 项目生命周期的示例,涉及确定用例、提示工程(见 第 2 章)、选择基础模型(见第 3 章)、微调(见第 5 章和第 6 章)、与人类价值观对齐 (见第 7 章)、模型部署(见第 8 章)以及与外部数据源和 agent 集成(见第 9 章)。

生命周期中的计算密集型部分(包括微调和人类对齐)受益于对量化和分布式计算算法 (见第 4 章)的理解。这些优化和算法将加快迭代开发周期,这对于开发生成式 AI 模型 至关重要。

在第 2 章中,我们将学习一些提示工程技巧和实践。无论是使用 Amazon SageMaker JumpStart 模型中心(见第 3 章)还是Amazon Bedrock 托管的生成式AI 服务(见第 12 章), 这些知识对于语言类基础模型(见第 3 章)和多模态基础模型(见第 10 章和第 11 章) 都很有用。

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值