一文读懂「LM,Large Model / Foundation Model」大模型

近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。
在这里插入图片描述

一、什么是大模型?

1.1 概念介绍

一句话介绍就是:大模型,也称基础模型,是指具有大规模参数和复杂计算结构的机器学习模型,能够处理海量数据、完成各种复杂的任务,如自然语言处理、计算机视觉、语音识别等。。
在这里插入图片描述这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。

大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过的数据做出准确的预测。

ChatGPT对大模型的解释更为通俗易懂,也更体现出类似人类的归纳和思考能力:大模型本质上是一个使用海量数据训练而成的深度神经网络模型,其巨大的数据和参数规模,实现了智能的涌现,展现出类似人类的智能。

在这里插入图片描述

💡 Tips:大模型和小模型的区别?

  • 小模型通常指参数较少、层数较浅的模型,它们具有轻量级、高效率、易于部署等优点,适用于数据量较小、计算资源有限的场景,例如移动端应用、嵌入式设备、物联网等。
  • 当模型的训练数据和参数不断扩大,直到达到一定的临界规模后,其表现出了一些未能预测的、更复杂的能力和特性,模型能够从原始训练数据中自动学习并发现新的、更高层次的特征和模式,这种能力被称为“涌现能力”。而具备涌现能力的机器学习模型就被认为是独立意义上的大模型,这也是其和小模型最大意义上的区别。
  • 相比小模型,大模型通常参数较多、层数较深,具有更强的表达能力和更高的准确度,但也需要更多的计算资源和时间来训练和推理,适用于数据量较大、计算资源充足的场景,例如云端计算、高性能计算、人工智能等。

1.1 大模型特点

  • 巨大的规模:大模型包含数十亿个参数,模型大小可以达到数百GB甚至更大。巨大的模型规模使大模型具有强大的表达能力和学习能力。
  • 涌现能力:涌现(英语:emergence)或称创发、突现、呈展、演生,是一种现象,为许多小实体相互作用后产生了大实体,而这个大实体展现了组成它的小实体所不具有的特性。引申到模型层面,涌现能力指的是当模型的训练数据突破一定规模,模型突然涌现出之前小模型所没有的、意料之外的、能够综合分析和解决更深层次问题的复杂能力和特性,展现出类似人类的思维和智能。涌现能力也是大模型最显著的特点之一。
  • 更好的性能和泛化能力:大模型通常具有更强大的学习能力和泛化能力,能够在各种任务上表现出色,包括自然语言处理、图像识别、语音识别等。
  • 多任务学习: 大模型通常会一起学习多种不同的NLP任务,如机器翻译、文本摘要、问答系统等。这可以使模型学习到更广泛和泛化的语言理解能力。
  • 大数据训练: 大模型需要海量的数据来训练,通常在TB以上甚至PB级别的数据集。只有大量的数据才能发挥大模型的参数规模优势。
  • 强大的计算资源: 训练大模型通常需要数百甚至上千个GPU,以及大量的时间,通常在几周到几个月。
  • 迁移学习和预训练:大模型可以通过在大规模数据上进行预训练,然后在特定任务上进行微调,从而提高模型在新任务上的性能。
  • 自监督学习:大模型可以通过自监督学习在大规模未标记数据上进行训练,从而减少对标记数据的依赖,提高模型的效能。
  • 领域知识融合:大模型可以从多个领域的数据中学习知识,并在不同领域中进行应用,促进跨领域的创新。
  • 自动化和效率:大模型可以自动化许多复杂的任务,提高工作效率,如自动编程、自动翻译、自动摘要等。

二、大模型基本原理

大模型的原理是基于深度学习,它利用大量的数据和计算资源来训练具有大量参数的神经网络模型。通过不断地调整模型参数,使得模型能够在各种任务中取得最佳表现。通常说的大模型的“大”的特点体现在:参数数量庞大、训练数据量大、计算资源需求高等。很多先进的模型由于拥有很“大”的特点,使得模型参数越来越多,泛化性能越来越好,在各种专门的领域输出结果也越来越准确。

现在市面上比较流行的任务有AI生成语言(ChatGPT类产品)、AI生成图片(Midjourney类产品)等,都是围绕生成这个概念来展开应用。“生成”简单来说就是根据给定内容,预测和输出接下来对应内容的能力。比如最直观的例子就是成语接龙,可以把大语言模型想象成成语接龙功能的智能版本,也就是根据最后一个字输出接下来一段文章或者一个句子。

当前流行的大模型的网络架构其实并没有很多新的技术,还是一直沿用当前NLP领域最热门最有效的架构——Transformer结构。相比于传统的循环神经网络(RNN)和长短时记忆网络(LSTM),Transformer具有独特的注意力机制(Attention),这相当于给模型加强理解力,对更重要的词能给予更多关注,同时该机制具有更好的并行性和扩展性,能够处理更长的序列,立马成为NLP领域具有奠基性能力的模型,在各类文本相关的序列任务中取得不错的效果。
在这里插入图片描述
根据这种网络架构的变形,主流的框架可以分为Encoder-Decoder, Encoder-Only和Decoder-Only,其中:

  • Encoder-Only:仅包含编码器部分,主要适用于不需要生成序列的任务,只需要对输入进行编码和处理的单向任务场景,如文本分类、情感分析等,这类代表是BERT相关的模型,例如BERT,RoBERT,ALBERT等
  • Encoder-Decoder:既包含编码器也包含解码器,通常用于序列到序列(Seq2Seq)任务,如机器翻译、对话生成等,这类代表是以Google训出来T5为代表相关大模型。
  • Decoder-Only:仅包含解码器部分,通常用于序列生成任务,如文本生成、机器翻译等。这类结构的模型适用于需要生成序列的任务,可以从输入的编码中生成相应的序列。同时还有一个重要特点是可以进行无监督预训练。在预训练阶段,模型通过大量的无标注数据学习语言的统计模式和语义信息。这种方法可以使得模型具备广泛的语言知识和理解能力。在预训练之后,模型可以进行有监督微调,用于特定的下游任务(如机器翻译、文本生成等)。这类结构的代表也就是我们平时非常熟悉的GPT模型的结构,所有该家族的网络结构都是基于Decoder-Only的形式来逐步演化。

三、训练过程和步骤

训练方式主要参考OpenAI发表的关于InstructGPT的相关训练步骤,主流的大模型训练基本形式大多也是类似的:
在这里插入图片描述

3.1 预训练(Pretraining)

预训练是大模型训练的第一步,目的是让模型学习语言的统计模式和语义信息。

主流的预训练阶段步骤基本都是近似的,其中最重要的就是数据,需要收集大量的无标注数据,例如互联网上的文本、新闻、博客、论坛等等。这些数据可以是多种语言的,并且需要经过一定的清洗和处理,目的是去除噪音,无关信息以及个人隐私相关的,最后会以tokenizer粒度输入到上文提到的语言模型中。这些数据经过清洗和处理后,用于训练和优化语言模型。

预训练过程中,模型会学习词汇、句法和语义的规律,以及上下文之间的关系。

3.2 微调阶段(Fintune Stage)

模型的泛化能力:是指一个模型在面对新的、未见过的数据时,能够正确理解和预测这些数据的能力。在机器学习和人工智能领域,模型的泛化能力是评估模型性能的重要指标之一。
模型微调:给定预训练模型(Pre-trained model),基于模型进行微调(Fine Tune),微调可以省去大量计算资源和计算时间,提高计算效率,甚至提高准确率。

在完成预训练后,就可以通过指令微调去挖掘和增强语言模型本身具备的能力。

模型微调的基本思想是使用少量带标签的数据对预训练模型进行再次训练,以适应特定任务。在这个过程中,模型的参数会根据新的数据分布进行调整。这种方法的好处在于,它利用了预训练模型的强大能力,同时还能够适应新的数据分布。因此,模型微调能够提高模型的泛化能力,减少过拟合现象。

如Instruction
tuning(指令微调)是大模型训练的一个阶段,它是一种有监督微调(SFT)的特殊形式,旨在让模型理解和遵循人类指令。在指令微调阶段,首先需要准备一系列的NLP任务,并将每个任务转化为指令形式,其中指令包括人类对模型应该执行的任务描述和期望的输出结果。然后,使用这些指令对已经预训练好的大语言模型进行监督学习,使得模型通过学习和适应指令来提高其在特定任务上的表现。

为了让模型训练更加高效和简单,这个阶段还有一种高效的fine-tuning技术,这为普通的从业者打开了通向使用大模型的捷径。Parameter-Efficient Fine-Tuning (PEFT)旨在通过最小化微调参数的数量和计算复杂度,达到高效的迁移学习的目的,提高预训练模型在新任务上的性能,从而缓解大型预训练模型的训练成本。在训练过程中,预训练模型的参数保持不变,只需微调少量的额外参数,就可以达到与全量微调相当的性能。

目前,很多研究对PEFT方法进行了探索,例如Adapter Tuning和Prefix Tuning等。

其中,Adapter Tuning方法在面对特定的下游任务时,将预训练模型中的某些层固定,只微调接近下游任务的几层参数。而Prefix Tuning方法则是在预训练模型的基础上,添加一些额外的参数,这些参数在训练过程中会根据特定的任务进行更新和调整。
在这里插入图片描述
在这里插入图片描述
工业界现在常用的Adapter Tuning的技术是Low-Rank Adaptation(LoRA) 。它通过最小化微调参数的数量和计算复杂度,实现高效的迁移学习,以提高预训练模型在新任务上的性能。LoRA 的核心思想是将预训练模型的权重矩阵分解为两个低秩矩阵的乘积。通过这种分解,可以显著减少微调参数的数量,并降低计算复杂度。该方式和机器学习中经典的降维的思想很类似,类似地,LoRA 使用了矩阵分解技术中的奇异值分解 (Singular Value Decomposition, SVD) 或低秩近似 (Low-Rank Approximation) 方法,将原始权重矩阵分解为两个低秩矩阵的乘积。在微调过程中,LoRA 只更新这两个低秩矩阵的参数,而保持其他预训练参数固定不变。这样可以显著减少微调所需的计算资源和时间,并且在很多任务上取得了与全量微调相当的性能。

LoRA技术的引入使得在大规模预训练模型上进行微调更加高效和可行,为实际应用提供了更多可能性。

3.3 对齐微调(Alignment Tuning)

主要目标在于将语言模型与人类的偏好、价值观进行对齐,其中最重要的技术就是使用RLHF(reinforcement learning from human feedback)来进行对齐微调。

  • Step 1. 预训练模型的有监督微调

    先收集一个提示词集合,并要求标注人员写出高质量的回复,然后使用该数据集以监督的方式微调预训练的基础模型。

  • Step 2. 训练奖励模型

    这个过程涉及到与人类评估者进行对话,并根据他们的反馈来进行调整和优化。评估者会根据个人偏好对模型生成的回复进行排序,从而指导模型生成更符合人类期望的回复。这种基于人类反馈的训练方式可以帮助模型捕捉到更多人类语言的特点和习惯,从而提升模型的生成能力。

  • Step 3. 利用强化学习模型微调

    主要使用强化学习的邻近策略优化(PPO,proximal policy optimization )算法,对于每个时间步,PPO算法会计算当前产生和初始化的KL散度,根据这个分布来计算一个状态或动作的预期回报,然后使用这个回报来更新策略,达到对SFT模型进一步优化。但是这种算法存在一些比较明显的缺点,比如PPO是on-policy算法,每一次更新都需要收集新的样本,这就会导致算法的效率低下,并且更新是在每次训练时进行的,因此策略更新比较频繁,这就会导致算法的稳定性较差。

对齐微调是一个关键的阶段,这一阶段使用强化学习从人类反馈中进行微调,以进一步优化模型的生成能力。它通过与人类评估者和用户的互动,不断优化模型的生成能力,以更好地满足人类期望和需求。

3.4 评测(不细讲)

当前对大模型进行全方位评测面临诸多挑战,由于大模型的通用性强,能够胜任多种任务,因此大模型的全方位评测涉及的范围广、工作量大、评测成本高昂;其次,由于数据标注工作量大,许多维度的评测基准仍然有待构建;再次,自然语言的多样性和复杂性,使得许多评测样本无法形成标准答案,或者标准答案不止一个,这导致相应的评测指标难以量化;此外,大模型在现有评测数据集的表现难以代表其在真实应用场景的表现。

  • 一个公开的评测平台:SuperCLUE排行榜

  • 一个评测基准综述:大模型落地最后一公里:111页全面综述大模型评测

该综述将整个大模型评测按照评测维度的不同分为了 5
个评测类别:(1)知识和能力评测,(2)对齐评测,(3)安全评测,(4)行业大模型评测,(5)(综合)评测组织。这 5
个评测类别基本囊括了当前大模型评测的主要研究领域。

在这里插入图片描述

参考:

  • 论文地址:https://arxiv.org/abs/2310.19736
  • 论文参考文献详细列表:https://github.com/tjunlp-lab/Awesome-LLMs-Evaluation-Papers

四、模型使用技术之:Prompt

Prompt技术的基本思想是,通过给模型提供一个或多个提示词或短语,来指导模型生成符合要求的输出。本质上是通过恰当的初始化参数(也就是适当的输入语言描述),来激发语言模型本身的潜力。

Prompt根据常用的使用场景可以概括为以下四种:

  • Zero-Shot Prompt: 在零样本场景下使用,模型根据提示或指令进行任务处理,不需要针对每个新任务或领域都进行专门的训练,这类一般作为训练通用大模型的最常见的评估手段。

-Few-Shot Prompt: 在少样本场景下使用,模型从少量示例中学习特定任务,利用迁移学习的方法来提高泛化性能,该类prompt也是很多实际应用案例都采取来进行大模型微调训练的方式。

  • Chain-of-thought prompt:这类prompt常见于推理复杂任务,它通过引导模型逐步解决问题,以一系列连贯的步骤展示推理的思路和逻辑关系。通过这种逐步推理的方式,模型可以逐渐获得更多信息,并在整个推理过程中累积正确的推断。
    在这里插入图片描述

  • Multimodal prompt:这类prompt包含的信息就更丰富,主要是将不同模态的信息(如文本、图像、音频等)融合到一起,形成一种多模态的提示,以帮助模型更好地理解和处理输入数据。比如在问答系统中,可以将问题和相关图像作为多模态输入,以帮助模型更好地理解问题的含义和上下文背景,并生成更加准确和全面的答案。

具体实践中,根据场景设计合适的prompt进行优化,评估也是大模型工程中重要的一步,对大模型准确率和可靠性提升是必不可少的,这步也是将模型潜在强大能力兑现的关键一环。

五、大模型领域分类

模型的发展最初是伴随着自然语言处理技术的不断发展的,这是由于文本数据的数据量更大且更容易获取。所以目前大模型最大的分类还是大语言模型,近两年衍生出一些语言与其他形式融合的大模型,例如:文字生成音乐(MusicLM)、文字生成图像(DALL-E2,Midjourney)、文字图像生成机器人动作(RT-1)等。
在这里插入图片描述

按照输入数据类型的不同,大模型主要可以分为以下三大类:

  • 大语言模型(LLM):是指在自然语言处理(Natural Language Processing,NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。这类大模型的主要特点是它们在大规模语料库上进行了训练,以学习自然语言的各种语法、语义和语境规则。例如:GPT系列(OpenAI)、Bard(Google)、文心一言(百度)。

  • 视觉大模型:是指在计算机视觉(Computer Vision,CV)领域中使用的大模型,通常用于图像处理和分析。这类模型通过在大规模图像数据上进行训练,可以实现各种视觉任务,如图像分类、目标检测、图像分割、姿态估计、人脸识别等。例如:VIT系列(Google)、文心UFO、华为盘古CV、INTERN(商汤)。

  • 多模态大模型:是指能够处理多种不同类型数据的大模型,例如文本、图像、音频等多模态数据。这类模型结合了NLP和CV的能力,以实现对多模态信息的综合理解和分析,从而能够更全面地理解和处理复杂的数据。例如:DingoDB多模向量数据库(九章云极DataCanvas)、DALL-E(OpenAI)、悟空画画(华为)、midjourney。

在这里插入图片描述
按照应用领域的不同,大模型主要可以分为L0、L1、L2三个层级:

  • 通用大模型L0:是指可以在多个领域和任务上通用的大模型。它们利用大算力、使用海量的开放数据与具有巨量参数的深度学习算法,在大规模无标注数据上进行训练,以寻找特征并发现规律,进而形成可“举一反三”的强大泛化能力,可在不进行微调或少量微调的情况下完成多场景任务,相当于AI完成了“通识教育”。

  • 行业大模型L1:专门设计用于特定行业或领域的任务,如医学、环境、教育等。它们通常在处理特定领域的数据和问题时表现出色。在医疗领域有DoctorGPT、华佗GPT,大规模的医学图像处理模型用于诊断和分析。在金融领域,模型可能用于风险评估和交易策略。携程的问道是旅游行业的大模型等等

  • 垂直大模型L2:是指那些针对特定任务或场景的大模型。它们通常使用任务相关的数据进行预训练或微调,以提高在该任务上的性能和效果。

六、大模型应用场景

经过沙丘社区1年多以来对大模型技术落地应用的跟踪,截止2024年1月中旬,大模型落地应用案例中金融(35%)行业占比最大,其次为制造(13%)、医疗(10%)、政府与公共服务(8%)。其中,在金融行业,尤以银行业(17%)占比最高。
在这里插入图片描述
从应用场景上看,知识管理(22%)、数据分析(13%)、内容创造(12%)、对话交互(9%)等场景天然与大模型技术结合紧密,也是当前企业主要探索的方向。

在这里插入图片描述

按领域分类应用场景,主要有:

  1. 自然语言处理
    大型模型在自然语言处理(NLP)方面的应用十分广泛,如机器翻译、语言理解、聊天机器人等。特别是在自然语言生成领域,例如通过生成器生成文章、答案、对话,大模型能够创作出高质量、流畅的文本。

  2. 计算机视觉
    大型模型在计算机视觉方面的应用也非常广泛,如图像分类、目标检测、图像生成等,例如GAN网络模型可以生成高度逼真的图像。

  3. 语音识别
    大型模型在语音识别方面也有广泛的应用,如语音识别、语音合成等。大模型可以更准确地判断音频的发音、语速、节奏和音调,提高语音识别和合成系统的精度和流畅度。

  4. 推荐系统
    大型模型也在推荐系统领域得到了广泛应用,可以将用户的历史行为和兴趣转化为表达式,更准确地为用户推荐适合他们的内容和产品。

  5. 金融科技
    大型模型在金融科技领域也有着非常重要的应用,如预测金融市场走势、交易风险评估等。

按产品化落地职能划分, 主要还有以下一些主流的应用:

1. 办公Copilot类产品:微软首先尝试使用大模型能力来接入旗下的Office系列软件,在Word中可以对文档进行总结并提出修改编辑的建议,也可以对所给的文章进行总结;此前一直头疼Excel各种复杂操作的用户现在也降低了使用门槛,可以直接通过描述就处理数据,PowerPoint中通过对提出要求识别就能自动生成一份展示内容;在Outlook中直接使用自然语言来生成邮件内容等功能,实现真正的AI秘书。

2. Github Copilot类产品:直接通过对话方式进行各种功能代码的生成,包括帮忙写测试用例,解释代码片段和debug程序问题,这个功能对解放程序员生产力取得了革命性的进步,能让开发人员更多的关注到业务理解,系统设计,架构设计等更高级需求的事情上。

3. 教育知识类产品:得益于大模型强大的理解以及知识储备,很多公司也嵌入其知识类产品进行应用,比如chatPDF就可以帮助经常看论文的科研人员快速地通过问答的方式进行文章的信息提取,理解以及总结重要内容,大大提升了阅读新论文的效率;对于学习语言的人来说,一款叫Call Annie的软件基本能取代口语老师的角色,并且可以无限时间,随时随地进行口语对话练习。

4. 搜索引擎和推荐系统:大模型可以应用于企业的搜索引擎和推荐系统,通过深度学习算法,对用户的搜索意图进行准确理解,提供更精准的搜索结果和个性化的推荐内容。这有助于提升用户体验,增加用户黏性,提高企业的转化率和销售额。

5. 公司业务定制化大模型:大模型具有通用性能力,但是在很多零样本的场景的表现依然比不上那个领域正在使用的产品,例如在某些垂直领域,包括工业领域,医药领域,管理领域等场景下进行专业问题,研究型问题的使用依然需要特定场景的数据进行微调,这种定制化的服务也能给企业带来巨大的效率提升和节省成本的收益,属于比较有前景的业务。

6. 计算相关上下游相关产业:很多公司正在积极探索基于GPU、FPGA和ASIC等硬件加速制造技术,以支持大模型的训练和推理速度。此外,云计算技术的发展也为大模型的训练提供了更多的计算资源支持,未来科技公司将积极探索基于云计算的分布式训练和推理技术。

除这些外还包括算法优化、隐私和数据安全以及模型可解释性等方面的研究和应用,每天还有很多大模型的应用正在不断涌现,大模型在未来仍然有很大的发展潜力,国内的优秀大模型代表例如百度文心大模型也正在搭建全系统产业化的大模型全景。

七、存在挑战

1. 数据安全隐患:一方面大模型训练需要大量的数据支持,但很多数据涉及到机密以及个人隐私问题,如客户信息、交易数据等。需要保证在训练大模型的同时保障数据安全,防止数据泄露和滥用。OpenAI在发布ChatGPT模型的时候用了数月来保证数据安全以及符合人类正常价值观标准。

2. 成本高昂:大模型的训练和部署需要大量的计算资源和人力资源,成本非常高昂。对于一些中小型企业而言,难以承担这些成本,也难以获得足够的技术支持和资源。

3. 无法保障内容可信:大模型会编造词句,无法保障内容真实可信、有据可查。当前使用者只能根据自己需求去验证生成的内容是否真实可信,很难具有权威说服力。

4. 无法实现成本可控:直接训练和部署千亿级参数大模型成本过高,企业级应用应使用百亿级基础模型,根据不同需求训练不同的垂直模型,企业则只需要负担垂直训练成本。但是,如何实现高效的垂直训练,如何控制成本,仍是大模型面临的问题之一。

以上挑战依然有很大空间值得改进,需要进一步研究和探索新的技术和方法。比如可以采用数据加密、隐私保护等技术来保障数据安全;可以通过改进模型架构、优化训练算法、利用分布式计算等方式来提高大模型的效率和性能;此外,还可以通过开源和共享模型资源来降低成本、促进大模型的普及和应用等方式。

八、大模型排行榜单

  1. SuperCLUE排行榜:https://www.superclueai.com
    在这里插入图片描述

  2. CLUE官网地址:https://www.cluebenchmarks.com

  3. GitHub地址:https://github.com/CLUEbenchmark/SuperCLUE-Agent
    在这里插入图片描述
    在这里插入图片描述

九、参考资料

https://mp.weixin.qq.com/s/Y1B2W8tCaI_K8jU5BgqdJQ
2024中国大模型先锋案例TOP30重磅发布:下载报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/368689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Framework(6.x)源码编译与源码阅读入门

目录 一、Spring Framework 源码获取问题 1.1 Spring Framework 官网 1.2 Spring Framework 源码地址 1.3 关于访问不了GitHub 官网的解决方案 1.3.1 修改本地hosts文件 1.3.2 GitHub520 1.3.3 Gitee 导入 二、Spring Framework 源码编译 2.1 环境说明 2.1.1 JDK版本 …

【鸿蒙】大模型对话应用(四):页面发起请求实现对话能力

Demo介绍 本demo对接阿里云和百度的大模型API,实现一个简单的对话应用。 DecEco Studio版本:DevEco Studio 3.1.1 Release HarmonyOS SDK版本:API9 关键点:ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 定义接…

CSS常用动画网站(纯css echarts等 建议经常阅读 积累素材)

CSS动画代码集合 https://www.webhek.com/post/css3-animation-sniplet-collection/#/ 这个网站中将常见的css动画都进行了集合,并且有详细的代码,可以直接使用 echarts图表 https://www.isqqw.com/ echarts也是前端常用的,虽然官方文档已经给出了很多的案例,但是有时候产品还…

【数据结构与算法】之排序系列-20240202

这里写目录标题 一、389. 找不同二、414. 第三大的数三、455. 分发饼干四、506. 相对名次五、561. 数组拆分六、594. 最长和谐子序列 一、389. 找不同 简单 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添…

禁止 ios H5 中 bounces 滑动回弹效果

在开发面向 iOS 设备的 HTML5 应用时,控制页面的滚动行为至关重要,特别是禁用在 Safari 中默认的滑动回弹效果。本文旨在提供一个简洁明了的解决方案,帮助开发者在特定的 Web 应用中禁用这一效果。 1. 什么是滑动回弹效果? 在 iO…

明道云入选亿欧智库《AIGC入局与低代码产品市场的发展研究》

2023年12月27日,亿欧智库正式发布**《AIGC入局与低代码产品市场的发展研究》**。该报告剖析了低代码/零代码市场的现状和发展趋势,深入探讨了大模型技术对此领域的影响和发展洞察。其中,亿欧智库将明道云作为标杆产品进行了研究和分析。 明…

navicat中的密码忘记了,解密navicat导出的密码

navicat 导出密码 打开导出的文件&#xff0c;获取加密后的密码 进入在线执行PHP代码的网站代码在线运行 - 在线工具 将网站中的代码替换&#xff0c;执行如下代码 <?phpnamespace FatSmallTools;class NavicatPassword {protected $version 0;protected $aesKey libc…

Web3行业研究逐步加强,“链上数据”缘何成为关注焦点?

据中国电子报报道&#xff0c;近日&#xff0c;由中关村区块链产业联盟指导&#xff0c;中国信息通信研究院牵头&#xff0c;欧科云链控股有限公司参与编写的《全球Web3产业全景与发展趋势研究报告&#xff08;2023年&#xff09;》正式发布。研究报告通过全面追踪国内外Web3产…

c# Get方式调用WebAPI,WebService等接口

/// <summary> /// 利用WebRequest/WebResponse进行WebService调用的类 /// </summary> public class WebServiceHelper {//<webServices>// <protocols>// <add name"HttpGet"/>// <add name"HttpPost"/>// …

【leetcode题解C++】98.验证二叉搜索树 and 701.二叉搜索树中的插入操作

98. 验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例…

Jmeter直连mysql数据库教程

mysql数据库能够通过Navicat等远程连接工具连接 下载驱动并加入jmeter 1.mysql驱动下载地址&#xff1a;MySQL :: Download MySQL Connector/J (Archived Versions) 找到对应的驱动下载&#xff1a;如下图&#xff1a; 把驱动jar包加入jmeter 配置jmeter连接mysql数据库…

02 使用jdk运行第一个java程序:HelloWorld

使用jdk运行第一个java程序 1 HelloWorld小案例1.1 编写流程1.2 错误示例 首先在CMD命令行里面&#xff0c;使用javac xxxx.java&#xff0c; 进行编译&#xff0c;其中会有报错&#xff1b; 然后生成xxxx.class 文件&#xff0c;然后使用java xxxx.class 进行运行。 1 HelloWo…

Unity animator 动画实现指定时间开始播放

在我们使用Unity帧动画时&#xff0c;如用到同一个帧动画的部分动画&#xff0c;那么我们可以考虑用指定播放时间的方法实现。 如我在场景中创建一个2D帧动画&#xff0c;并创建一个2D对象使用该帧动画。 然后复制该2D对象&#xff0c;并创建一个控制脚本GameController1.cs&a…

redis 6.x集群搭建

redis6集群搭建 安装文件下载 redis-6.2.6.tar.gz 编译 tar -zxvf redis-6.2.6.tar.gz cd redis-6.2.6/ make MALLOClibc make install PREFIX/opt/soft/redis复制可执行文件 cp /opt/soft/redis/redis-cli /usr/bin/redis-cli cp /opt/soft/redis/redis-server /usr/bi…

MySQL全表扫描:性能杀手的隐患与优化策略

MySQL全表扫描&#xff1a;性能杀手的隐患与优化策略 MySQL数据库作为常用的关系型数据库管理系统之一&#xff0c;全表扫描问题一直困扰着开发者。本文将深入剖析MySQL全表扫描的原理、其对性能的严重影响&#xff0c;同时提供一系列优化策略&#xff0c;助您高效应对MySQL性能…

STM32 UART/USART与RTOS的多任务通信和同步机制设计

在STM32微控制器中&#xff0c;UART/USART与RTOS的多任务通信和同步机制设计可以通过操作系统提供的任务调度机制和各种同步原语&#xff08;例如信号量、邮箱、消息队列等&#xff09;来实现。在下面的解释中&#xff0c;我将介绍如何设计基于FreeRTOS的STM32多任务通信和同步…

【第二十二课】最短路:多源最短路floyd算法(acwing-852 spfa判断是否存在负环 / acwing-854 / c++代码)

目录 acwing-852 代码如下 一些解释 acwing-854 foyld算法思想 代码如下 一些解释 acwing-852 在spfa求最短路的算法基础上进行修改。 代码如下 #include<iostream> #include<cstring> #include<algorithm> #include<queue> using names…

Navicate 连接云服务器MySQL

Navicate 连接云服务器MySQL 1.打开Navicate,点击左上角的连接,选择MySQL 第一步:第一个页面是常规,按照图上的标注填写 第二步,点击 SSH ,进入下面的页面 第三步&#xff0c;点击测试连接

阿里云OSS对象存储

一、前言 阿里云对象存储OSS作用&#xff1a;用于存储图片、视屏、文件等数据。 参考阿里云文档地址&#xff1a;阿里云对象存储教程 二、总体思路 说明&#xff1a;客户端给服务端发送请求&#xff0c;获取policy和signature等数据&#xff08;服务端提供&#xff09;&#…

vue3学习——自定义插件,注册组件(引入vue文件报红线)

在src/components文件夹目录下创建一个index.ts文件 import { App, Component } from Vue import SvgIcon from /components/SvgIcon/index.vue import Pagination from /components/Pagination/index.vue const globalComponents: { [name: string]: Component } { SvgIcon,…
最新文章