在云计算环境中,如何利用 AI 改进云计算系统和数据库系统性能

2023-10-19 19:21

本文主要是介绍在云计算环境中,如何利用 AI 改进云计算系统和数据库系统性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
    • 一、关于唐明洁教授
    • 二、AI for System
      • 2.1 面向分布式作业的人工智能
        • 2.1.1 现阶段企业云计算系统环境所遇到的普遍痛点
        • 2.1.2 云计算系统环境所遇到的普遍痛点的解决方案
          • (一)Google Autopilot Eurosys 2021方案(Pod级别)
          • (二)ibaba Rose ICDCS 2019 方案(Job 级别)
        • 2.1.3 优化框架COUGAR的架构
        • 2.1.4 优化案例举例
          • (一) 流处理作业(Flink)的优化
          • (二) 深度学习推理和训练任务的配置
      • 2.2 数据库中的人工智能
        • 2.2.1 学习索引(Learned Index)
          • (一)认识了解学习索引(Learned Index)
          • (二)学习索引的分类
          • (三)学习索引结构的案例
        • 2.2.2 华为云案例中的自适应的Art index
    • 三、System for AI(人工智能系统)
      • 3.1 面临的挑战
      • 3.2 大模型训练方式
      • 3.3 DLRover 案例
    • 四、问题汇总
    • 总结

前言

2023年我想大家讨论最多,热度最大的技术领域就是 AIGC 了,AI绘画的兴起,ChatGPT的火爆,在微软背后推手的 OpenAI 大战 Google几回合后,国内各种的大语言模型产品也随之各家百花齐放,什么文心一言、通义千问、科大讯飞的星火以及华为的盘古等等,一下子国内也涌现出几十种人工智能的大语言模型产品。ChatGPT 爆火之后,你是否有冷静的思考过 AIGC 的兴起对我们有哪些机遇与挑战?我们如何将AI 应用到我们现有的工作学习中?本文将结合四川大学唐明洁教授的分享来探讨如何利用人工智能技术来提高云计算和数据库系统的性能、可靠性和可扩展性。主要分享内容包括:AI和分布式系统;利用AI提高大规模AI和分布式计算任务的效率;利用AI提高数据库系统性能;大模型训练在云计算环境下的技术挑战;结论和方向。

一、关于唐明洁教授

因为本文是结合唐明洁教授的直播分享总结出来的博文,这里根据四川大学以及互联网公开资料来介绍一下唐明洁教授。

唐明洁教授于2007年四川大学本科毕业,2010年中科院大学硕士毕业,2016年美国普度大学计算机系博士毕业,博士论文指导老师 Walid Aref (IEEE Fellow), Elisa Bertino (ACM/IEEE Fellow), Sonia Fahmy(IEEE Fellow) , Sunil Prabhakar。从2018到2022年担任蚂蚁集团美国硅谷研究院AI工程科学家和研发主管,负责全集团AI及大数据云原生系统工作;2016年到2018年担任大数据公司Cloudera数据科学家,负责数据库OLAP方向,担任研发Apache Spark。还曾就职于Microsoft美国及IBM美国研究院。

是多个开源数据库和AI项目发起人及核心贡献者,包括AI训练业界标准Kubeflow,Couler,ElasticDL,SQLFlow等(Github stars>7000),Spark早期贡献者。发表ACM/IEEE汇刊论文34篇,CCF-A类论文11篇。包括数据库顶级会议VLDB,ICDE,IEEE TKDE, CIKM等。

在这里插入图片描述

(图片来源于唐教授公开个人主页)

二、AI for System

系统中会遇到各种问题,如何利用AI 技术进行解决系统中的这些问题将是该部分内容的讨论重点,该部分内主要会针对在分布式任务与数据库系统中如何利用AI 进行优化系统的性能。

2.1 面向分布式作业的人工智能

如果你需要更多详细资料可以参照唐教授的论文:An general framework to optimize the job in cloud (ICDE23)。

2.1.1 现阶段企业云计算系统环境所遇到的普遍痛点

在当前较大规模的云计算集群环境中存在两个主要问题。首先,CPU、内存甚至GPU的利用率相对较低。其次,创建的任务存在较长的等待时间(pending time)。这些问题在实际的客户环境中普遍存在,例如下图所示的蚂蚁金服案例。

在这里插入图片描述

从上述的蚂蚁金服的案例中可以发现面临的主要几个问题

  • 集群资源利用率问题
    在资源利用率中可以发现,很多资源使用率都是比较低的,其中CPU的利用率在20%以下,而内存利用率在40%以下。

  • 运行效率问题
    在一些工作负载中,运行过程中可能会发生异常错误,这样在整理作业流程上,会出现内存溢出,甚至处理延迟增加等问题。在2020年的一个数据中表明,在65000个流作业中,1500个大约占比2.3%的作业的最大处理延迟超过30分钟。

  • 管理维护系统困难且成本较高
    在管理job的时候,在不同的业务线,会有不同的人会提交不同的job,这样在一个或者多个集群中,其运维成本会变得非常高。

2.1.2 云计算系统环境所遇到的普遍痛点的解决方案

在上述中我们讲解了在云计算系统环境所遇到的普遍痛点问题,针对这些问题我们应该如何解决呢?

(一)Google Autopilot Eurosys 2021方案(Pod级别)

Autopilot方案是在 Google Autopilot Eurosys 2021 大会上所提出的,该方案是以 Pod 级别为单位对资源进行弹性伸缩。

在给出的案例中可以看下图所示,一般我们用机器里面存放容器是有限度的。
因此,精确的限制对效率和可靠性至关重要。在下图中,第一部分资源的使用率不足,造成机器内存等资源浪费,而第三部分,请求的资源超过所存放容器的最大限制,这样也是不合理的。

在这里插入图片描述

Autopilot 的工作原理大致可以理解为,有一些算法可以侦测到Pod的利用率,之后通过内部的 Borg 来进行横向或者纵向的进行弹性伸缩。Autopilot 现在已经是 Google 的落地组件产品,当你在使用 google 云的时候,可以选择使用 Autopilot 进行资源优化。

在这里插入图片描述

上述我们提到了Autopilot 是以 Pod 级别为单位的弹性伸缩,那么有人可能会有疑问,如果我的系统不是以 Pod 为单位的伸缩,这种方案是否可行,或者是否有问题呢。下面我们来了解一下阿里的方案

(二)ibaba Rose ICDCS 2019 方案(Job 级别)

该解决方案是来自于阿里的团队,发表在 ibaba Rose ICDCS 2019。

在这里插入图片描述

博主查阅了论文资料后得出该论文主要介绍了一种名为Rose的调度算法,用于优化数据中心作业的执行性能。该算法旨在解决数据中心中作业调度的挑战,其中不同的作业具有不同的性能目标和资源需求。通过动态地分配资源和调整作业的执行顺序,Rose 算法可以最大程度地提高作业的性能,包括减少作业完成时间、提高资源利用率和保证服务质量。

该方案的核心思想是通过将作业分为不同的组,并为每个组分配资源配额,以便在资源利用率和性能之间取得平衡。Rose 算法使用一种基于启发式的调度策略,根据作业的属性和资源使用情况来选择最佳的作业顺序和资源分配方案。通过实验评估,该方案在提高数据中心作业性能方面取得了显著的改进。

2.1.3 优化框架COUGAR的架构

在一个大规模的集群中,我们会面临各种不同类型的任务,如深度学习任务、大数据任务以及模型服务任务等。我们有一个共同的目标,即通过一个通用框架将这些任务与优化策略相结合。第二个目标是,在对一个作业进行优化时,不仅要考虑该作业本身所需的资源,还要考虑将某些作业的信息与集群的信息相结合,以实现整体任务的优化调度。

在这里插入图片描述

在架构图中可以看到,我们有一个通用的优化框架去接入不同的任务,在Framework 中可以接入不同的任务,同时不会破话这些任务的执行,并且在框架中内置一些优化算法,适配不同的场景。
在过去做优化的时候主要是“单目标优化(Single Optimizer)”以实现最大吞吐、实现最大利用率或者最小的IO等,现在我们更希望定义不同的优化组合目标,我们会希望这个优化既可以资源用的少又可以性能高且IO少,这也被称为“多目标优化(Multi-Optimizers)”

2.1.4 优化案例举例

这里结合上述的优化框架 COUGAR 的架构,列举两个案例,可以供大家结合实际工作进行参考。

(一) 流处理作业(Flink)的优化

在这里插入图片描述

在这个案例中,我们设立的目标是优化 Flink ,使其 job 利用率变高,另外一个目标是他的吞吐不会受影响,也就是你的资源减少后不会减少它的吞吐。在优化Flink过程中采取了两种优化策略:

  1. 初始化优化策略
    当Flink启动后,我们可以看到任务和过去历史任务的相似性与匹配度,我们从Flink任务中抽取任务的各种特征,比如:数据表类型,哪个用户提交操作等等,从而建立一个任务,通过相似性的方法最终得出这个任务初始化时候的最优plan。

  2. 运行时优化策略
    当任务运行起来后,我们可以看到任务输入数据量,任务的节点的计算情况,根据节点运行情况进行预测与Job的吞吐量进行预测,之后对这个节点进行动态的弹性优化。

在这里有个核心点是,我们的 AI 预测准确度要足够高,但是以经验来说,我们不能100%来相信 AI,即使 99.5% 的正确率,但是还是有0.5% 的错误率的情况,这 0.5% 就会影响在线服务的质量,所以需要设置最后各种策略以及最后的“兜底”方式,来保证 AI 的正确执行。当 AI 被部署到生产环境后,需要一个较长时间的 Dry run,当 Dry run 很久之后,AI 的预测结果逐渐趋于稳定,才会最终上线。

所以最后总结来说,我们的 Framework 本质是来帮我忙做这些事情,如何设置 Dry run 时间,多少次调节一次利用率,怎么收集资源,这些都是 Framework 介入的。当如果想要提供给外部开发者使用的时候,你只需要接入 Framework 的通用 API,将所要执行的计划传给它,它会执行底层帮你来优化资源,同时把这个计划返回给 Flink,最后让 Flink 做这个任务本身的优化。

(二) 深度学习推理和训练任务的配置

另外一个案例是在进行深度学习的时候,对预测任务或者训练任务的时候,如何对 GPU 进行配置。

在这里插入图片描述

为了满足一个任务在线预测的时候,常常会给一个 AI 分配一个比较大的资源,在运行的时候我们会发现,资源的利用率会出现波峰波谷的现象。比如说晚上的时候在预测方面的资源利用率不高的时候,我们是否可以将训练任务调度到这个节点,同时让这个节点分享 GPU 给训练任务,这样就增加了资源的利用率。
那么在这个案例中,比较重要的就是如何进行安排这些任务,这个时候就需要AI的帮忙,需要预测出未来一段时间的利用情况,而且需要从众多任务 job 中找到一个自身所匹配的 job 来,匹配后即可将两个 job 放到一个 GPU 的 Pod 中,通过虚拟化技术提高 GPU 利用率。
注意这里有个潜在风险:已经正在运行在线任务 Job 是否能够保证他原有的 SLA。因为我们有可能会降低原有在线业务的 SLA,所以我们需要定义一些策略来预防这种可能,以确保原有业务的 SLA。

在这里插入图片描述

通过蚂蚁集团的案例最后总结可知,使用案例中的方案后,可以减少资源的浪费,可以提高GPU的利用率10%~20%左右。

2.2 数据库中的人工智能

2.2.1 学习索引(Learned Index)
(一)认识了解学习索引(Learned Index)

在这里插入图片描述

与大家熟知的传统索引不同,学习索引(Learned Index)是一种通过机器学习方法学习索引结构的概念。传统的索引结构(如 B树、哈希表等)是基于固定的规则和算法构建的,而学习索引则采用了不同的方法。

在这里插入图片描述

学习索引的基本思想是使用机器学习模型来学习数据集的分布和查询模式,从而能够更加智能地选择和定位索引节点,提高查询效率。学习索引的优点是可以根据数据集的特征和查询模式来自适应地构建索引,从而提供更高效的数据访问性能。
下图可以明显看出,使用Learned index,不仅所需要的空间小且查询速度快。

(二)学习索引的分类

在学习索引(Learned Index)领域,“Learning the index”、“Indexing Learned Models” 和 "Benchmarking"是三个大的分类。

在这里插入图片描述

  1. Learning the index(学习索引):这个分类关注的是如何通过机器学习方法来学习索引结构本身。学习索引的目标是通过学习数据集的分布和查询模式,构建更智能和高效的索引结构。这个分类中的研究主要集中在如何选择索引节点、确定索引的层次结构以及优化查询策略等方面。

  2. Indexing Learned Models(学习模型的索引):这个分类涉及学习索引与机器学习模型之间的关系。学习模型通常用于处理和分析数据,而学习索引则用于加速对这些学习模型的查询。这个分类中的研究主要关注如何有效地构建和维护针对学习模型的索引,以便在查询过程中快速定位到相关的模型。

  3. Benchmarking(基准测试):这个分类关注的是对学习索引方法进行评估和比较。由于学习索引是一个相对较新的研究领域,需要进行实验和评估来了解不同方法的性能和效果。这个分类中的研究主要包括定义评估指标、设计实验方法以及比较学习索引与传统索引的性能等方面。

(三)学习索引结构的案例

学习索引结构有三种:Range Index、Point Index与Existence Index。

在这里插入图片描述

  • Range Index(范围索引):Range Index 是一种学习索引结构,用于高效地支持范围查询。范围查询是指根据某个范围条件检索数据集中满足该条件的数据。传统的索引结构(如 B-树)在范围查询时需要遍历索引树的各个节点,而 Range Index 则通过学习数据集的分布和查询模式,可以更加智能地确定索引节点的选择和访问顺序,从而提高范围查询的性能。

  • Point Index(点索引):Point Index 是一种学习索引结构,主要用于高效地支持点查询。点查询是指根据给定的键值检索数据集中对应的数据。Point Index 通过学习数据集的分布和查询模式,可以根据查询键值智能地选择索引节点,从而减少不必要的访问和提高点查询的性能。

  • Existence Index(存在性索引):Existence Index 是一种学习索引结构,用于判断给定键值是否存在于数据集中。存在性查询是指根据给定的键值判断该键值是否存在于数据集中。传统的索引结构(如哈希表)在存在性查询时需要访问索引节点并比较键值,而 Existence Index 利用机器学习方法学习数据集的分布和查询模式,可以更智能地判断键值的存在性,从而提高查询性能。

2.2.2 华为云案例中的自适应的Art index

在这个案例中ES引擎中做KV查询的时候,使用了FST(Finite Stage Transducer)来支持数据的倒排索引查询,在应用的场景遇到了几个问题,比如内存消耗过大,查询时间过长以及吞吐量低。

在这里插入图片描述

为了解决该问题,在该案例中采用了经典的Art index,并且对其进行了相应的优化,比如对节点进行优化,对压缩路径进行优化等。

在这里插入图片描述

当在该案例中引入Art index并进行优化之后,与现有的FST方式对比,系统的利用率和性能普遍得到明显提升

  • 堆内存减少43%
  • 单线程QPS提高了2.3倍
  • 单线程查询速度提高了2.4倍
  • 在并发32个多线程查询的时候提高了4倍

在这里插入图片描述

三、System for AI(人工智能系统)

3.1 面临的挑战

在爆火的ChatGPT后,对于这种具有大参数的且有大数据量的大语言模型,有的企业或者组织会遇到一个共同的问题,我已经有大语言模型了,但是就是训练不出来,因为这里所涉及到的优化不仅在框架层,在调度资源层也同样存在。
我们如何利有限的资源去做分布式的大规模训练成了一个巨大挑战。
在生产集群中,大部分的集群的内存、CPU、GPU 利用率通常是比较低的,且任务排队时间较长。

在这里插入图片描述

3.2 大模型训练方式

在大语言模型训练中,现阶段大家普遍采用的是同步模式进行训练,采用同步模式训练的原因总结起来有如下几点:

训练效率高:与异步训练相比,同步模式训练可以充分利用并行计算的能力,提高训练效率。在同步模式下,多个计算设备(如 GPU)可以同时进行模型参数更新,每个设备负责处理一部分训练数据。这样可以加快训练速度,提高训练效率。

参数一致性高:同步模式训练确保在每个训练步骤结束时,所有设备上的参数都得到更新,并保持一致。这对于大型语言模型是至关重要的,因为模型的参数需要保持同步以确保正确的预测结果。如果使用异步模式训练,不同设备上的参数更新可能会出现不一致,导致模型性能下降。

内存占用低:同步模式训练可以更有效地管理内存占用。在异步模式下,每个设备都会维护自己的参数副本,导致额外的内存消耗。而同步模式下,参数共享并进行同步更新,减少了内存需求。

算法稳定性高:同步模式训练通常具有更好的数值稳定性。由于同步模式下所有设备在每个训练步骤中都使用相同的参数,可以更好地控制数值计算的稳定性和一致性,减少梯度更新的不稳定性和震荡。

在这里插入图片描述

3.3 DLRover 案例

DLRover 在分布式集群上自动训练深度学习模型。它可以帮助模型开发人员专注于模型架构,而无需考虑任何工程方面的东西,比如硬件加速、分布式运行等。现在,它为K8s/Ray上的深度学习培训工作提供自动化运维。

  • 项目地址:https://github.com/intelligent-machine-learning/dlrover

在这里插入图片描述

从上图中可以看出 DLRover 系统框架分为两块:一部分是 Brain Service,另一部分是 Training Job 部分。
Brain Service 提供了不同的优化策略和一些模型框架,在这里决定了你如何进行优化,如何进行决策策略。Training Job 中有一个 Mater,它负责管理 Jobs,并且会从 Brain Service 中获得一些优化plan以及建议。

DLRover 优点以及改善状况

相对传统的 TensorFlow Job(TFJob)需要用户需要使用多少 CPU、多少内存等,DLRover 可以自动弹性伸缩;在 Job 的运行时间方面,当节点比较多的时候,性能优化的改善会更大,从图中可以看出 DLRover 有明显的改善;在资源利用率中,利用率有 20% 左右的提升;当某一个节点出现故障的时候,与传统相比,弹性动态的功能可以达到提出掉有问题的节点。

在这里插入图片描述

四、问题汇总

  1. 数据库如何支撑大量数据的AI训练,比如说有百亿参数的训练?
    数据库训练模型中,计算节点和训练节点通常在不同位置,一般情况我们会从远程数据存储的数据库中拉去数据,假设在大量高并发同时拉去数据的时候,很有可能会造成数据库宕机。针对该问题有几个策略,一方面是想办法将数据库缓存到训练节点的内存中,做一些调度;另外的做法是将数据库的数据dump成文件形式进行训练。

  2. Learned Index有商用的案例吗?
    相关案例比较少,只有在小范围google公司内使用。

  3. Learned Index模型是在线训练实时更新的吗?
    不是实时更新

  4. LLM的长处是对任务的生成,对index的生成与优化上大模型的优势有哪些?
    虽然LLM模型主要针对自然语言处理,但是LLM依然可以做一些分类或者预测问题,大语言模型具有一定的扩展能力,现阶段大家在思考以及一些团队研究如何使用大语言模型使用一个index就可以搞定一切事情。

  5. 如何看到国内的大厂都在争先的做大语言模型训练,但是仍然无法做出与ChatGPT同类型的爆款产品,原因是什么?
    ChatGPT之所以功能强大,并不仅仅是因为其模型本身足够庞大。实际上,早在几年前,ChatGPT就已经开始使用人类反馈强化学习(reinforcement learning from human feedback, RLHF)。然而,国内某些大型语言模型在这方面的训练相对较少。

总结

本文深入探讨了 AI for System 和 System for AI 两个关键领域。在 AI for System 部分,介绍了面向分布式作业的人工智能以及当前企业云计算系统所面临的常见问题和相应解决方案。其中提到了 Google Autopilot Eurosys 2021 方案和 ibaba Rose ICDCS 2019 方案作为解决痛点的示例。还介绍了优化框架 COUGAR 的架构,并给出了流处理作业(Flink)优化和深度学习任务配置的案例。在 AI for Database 部分,讨论了学习索引(Learned Index)的概念、分类和案例,以及华为云中的自适应 Art index 案例。接着,文章转向 System for AI,探讨了该领域面临的挑战,大模型训练方式,并提供了 DLRover 案例。最后,文章对前文讨论的问题进行了总结。通过这些内容,读者可以更好地了解和应用 AI 和系统领域的关键概念和解决方案。

这篇关于在云计算环境中,如何利用 AI 改进云计算系统和数据库系统性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/241863

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置