大语言模型之二 GPT发展史简介

得益于数据、模型结构以及并行算力的发展,大语言模型应用现今呈井喷式发展态势,大语言神经网络模型成为了不可忽视的一项技术。
GPT在自然语言处理NLP任务上取得了突破性的进展,扩散模型已经拥有了成为下一代图像生成模型的代表的潜力,它具有精度更高、可扩展性和并行性,无论是质量还是效率均有所提升,Transformer和扩散模型作为AIGC方向的当红选手,主要原因并不是本身效率更高(比如更少的参数得到更好的效果)而是带来了可扩展性和并行性,即大力出奇迹有了可以发力的方法。

关于Transformer及基于pytorch实现的翻译toy例子,参靠博客

自2012年以来的AI浪潮主要有三个重要特性:

  1. 通用性:一种架构往往可以解决多个问题,同一套模型既能处理文字,也能处理图片
  2. 能力强大:神经网络和深度学习远远超出了传统方法,可以实现媲美人类的能力,并且在一些特定任务上已经超过人类
  3. 可扩展性:大力出奇迹,模型越大性能越强(当然应用于大模型的架构也在不断进化)

本篇主要介绍大语言模型2017年及以后的发展史,这一年提出了奠定了当今的大语言模型神经网络结构基础基石,而chatGPT的推出,似乎很可能是AI界的奇点,这一事件极有可能改写人类历史。所以花一篇幅介绍这一技术发展史还是很有意义的。

做大语言模型技术和相关应用的公司和应用都呈现一个井喷的发展态势,从huggingface官网打分链接排行榜可以查看最新的开源大语言模型情况。从当前来看Meta的LlaMA很有可能是第一个最成功的开源商用大语言模型。
请添加图片描述
LlaMA放到后面再说,先从发展的时间史看大语言模型的发展历史。

发展简短历史

这里以影响力较大的模型为例,因为很多大语言模型都是闭源的,而这些闭源的模型都没有能够超过同期OpenAI的模型,所以不再这里列出了。开源大语言模型最好的目前是LLaMA,这张图中这两种模型的进化史代表整体大语言模的发展史。
请添加图片描述
2017年谷歌提出的Transformer是针对机器翻译的seq2seq的Encoder-decoder模型,而这一模型正巧被2015年底成立的OpenAI公司看到,当时OpenAI公司联合创始人及首席科学家伊尔亚-苏茨克维看到,从伊尔亚-苏茨克和黄仁勋在GPT-4发布会后第二天的公开对话可以看到,其实OpenAI早就有大模型、大数据实现智能的认知,而Transformer这一架构非常适合大算力计算,所以自然而然的就被OpenAI采用了。

从如今的发展情况来看,OpenAI似乎想把神经网络发展成真正意义上的人工智能,首先是训练文本的神经网络模型,其从网上等各种渠道收集了大量的文本数据,这些文本数据本质上是世界的一种映射,OpenAI是想通过这一层映射关系,让模型理解世界,然后在GPT-4又提出了多模态模型,不仅仅能够处理文本,还可以处理图片,OpenAI的目的是将人类视觉能力赋予模型,让其能够从视觉和文字融合映射的维度去理解世界。

表1:历代GPT的发布时间,参数量以及训练量

模型发布时间层数头数词向量长度参数量预训练数据量
GPT-12018 年 6 月12127681.17 亿约 5GB
BERT base/large2018年10月12/2412/161.10亿/3.4亿
GPT-22019 年 2 月48-160015 亿40GB
GPT-32020 年 5 月9696128881,750 亿45TB
GPT3.5
LLaMA2023年2月70亿/130亿/330亿/650亿4.5TB
LLaMA-22023年7月70亿~700亿6.3TB

GPT

GPT,即Generative Pre-trained Transformer,是基于2017年Google提出Transformer结构的解码器部分为模型基础结构的一种生成预训练模型。Transformer是Google提出的一种基于自注意力机制的新型神经网络架构,目前自然语言处理方向基本都是采用这一架构,这一架构的有点在于完全摒弃了传统的循环结构,取而代之的是通过注意力机制来计算模型的输入输出的隐含表示。不熟悉Transformer的结构见博客《》一文。

目前已经公布论文的有文本预训练GPT-1,GPT-2,GPT-3,chatGPT,GPT-4是一个多模态模型(截止2023年7月无官宣论文),以及图像预训练iGPT。OpenAI的大语言模型起初也是众多语言模型中的一种,一点也并不显眼直到GPT-3的发布,让业界认知到模型大到一定程度,其记忆性和泛化性可以同时兼顾且达到质变。

GPT 使用 Transformer 的 Decoder 结构,并对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT 只保留了 Mask Multi-Head Attention,如下图所示。

请添加图片描述
GPT 使用句子序列预测下一个单词,因此要采用 Mask Multi-Head Attention 对单词的下文遮挡,防止信息泄露。例如给定一个句子包含4个单词 [A, B, C, D],GPT 需要利用 A 预测 B,利用 [A, B] 预测 C,利用 [A, B, C] 预测 D。如果利用A 预测B的时候,需要将 [B, C, D] Mask 起来。

在这里插入图片描述

GPT为什么只用 Decoder 部分:语言模型是利用上文预测下一个单词的,因为 Decoder 使用了 Masked Multi Self-Attention 屏蔽了单词的后面内容,所以 Decoder 是现成的语言模型。又因为没有使用 Encoder,所以也就不需要 encoder-decoder attention 了。

GPT 1-3

GPT-1的训练过程是无监督的预训练和有监督的Fine-Tuning,先预训练一个通用的模型,然后在各个子任务上进行微调,减少了传统方法需要针对各个任务定制设计模型的麻烦。
预训练好transformer模型之后,无论子任务怎么变化,模型本身都不再变化,而是调整前面的输入和后面的输出层。

GPT-1和GPT-2模型结构类似,只是GPT-2模型和数据集都更大(表1)。GPT-2提出了多任务训练和zero-shot的概念,“所有的有监督学习都是无监督语言模型的一个子集”的思想,该思想是提示学习(Prompt Learning)的前身。GPT-2生成的新闻足以欺骗大多数人类,达到以假乱真的效果,很多门户网站也命令禁止使用GPT-2生成的新闻。
GPT-3效果远超GPT-2,GPT-3引入few-shot概念,GPT-3引入了一种稀疏自注意力Sparse Transformer的概念,理解成效率更高的自注意力层就可以了,除了能完成常见的NLP任务外,还能写SQL,JavaScript等语言的代码,进行简单的数学运算上也有不错的表现效果。GPT-3的训练使用了情境学习(In-context Learning),它是元学习(Meta-learning)的一种,元学习的核心思想在于通过少量的数据寻找一个合适的初始化范围,使得模型能够在有限的数据集上快速拟合,并获得不错的效果,相比GPT-2,GPT-3模型和参数都更更大,这也让业界对“大”语言模型的认知从了解提升到了行动阶段。

GPT-3将互联网上几乎所有文本数据作为训练语料,过滤后的训练数据达到5000亿的单词数,其中庞大的维基百科数据仅占0.6%的比例

GPT-3也受到一些非议,因为预训练模型都是通过海量数据在超大参数量级的模型上训练出来的,由于海量的训练数据并没有都经过人工清洗,因而里面会有虚假的、偏见的、无用的、有害的、不合乎人类价值观的、邪恶的训练样本,所以没人可以确保预训练模型不会输出类似的回答,这也就是InstructGPT和ChatGPT的提出动机,论文中用3H概括了它们的优化目标,即High-Quality、Human-like、High-Diversity。

这一阶段OpenAI公布的技术文档如下:
2018 GPT-1《Improving Language Understanding with Unsupervised Learning》 《Improving Language Understanding by Generative Pre-Training》
2019 GPT-2 《Language Models are Unsupervised Multitask Learners》
2020 GPT-3/chatGPT《Language Models are Few-Shot Learners》
2022 InstructGPT(是GPT-4的预热模型,因而又被称为GPT-3.5)《Training language models to follow instructions with human feedback》

BERT

Paper: https://arxiv.org/abs/1810.04805

BERT 全称为Bidirectional Encoder Representation from Transformers(来自Transformers的双向编码表示),谷歌在论文《Pre-traning of Deep Bidirectional Transformers for Language Understanding》中提出的无监督预训练自然语言处理语言模型是近年来自然语言处理领域公认的里程碑模型。

BERT模型是由语言模型预训练模型和使用Fine-tuning 模式解决下游任务组成的自然语言处理模型。当年在11项NLP tasks中取得了state-of-the-art的结果,包括NER、问答等领域的任务。

BERT的创新在于Transformer Decoder(包含Masked Multi-Head Attention)作为提取器,并使用与之配套的掩码训练方法。BERT使用了双编码结构因而不具有文本生成能力,但BERT在对输入文本的编码过程中,利用了每个词的所有上下文信息,与只能使用前序信息提取语义的单向编码器相比,BERT的语义信息提取能力更强。

InstructGPT训练过程简介

这个模型是在GPT-3基础上的,是因为GPT-3的非议而提出的,这源于2022年的一篇paper,后面很多大语言模型,不论开源还是闭源都使用到了RLHF(reinforcement learning from human feedback ),这个模型是在GPT-3基础至少得fine-tune的模型。

SFT和强化学习使得这个模型可以商用。是核心之一,这里简单介绍,详细介绍见下一篇。
请添加图片描述
完整的训练过程如上图所示,其中左边第一列pretraining就是自监督学习GPT-3模型,InstructGPT中的Instruct提现在后面三个步骤。这也是很多学校里没有财力的实验室博士生在研究的东西,当然很多公司也在研究。有实力的公司是想把这四个部分都掌握在自己的手里。

ChatGPT和InstructGPT在模型结构和训练方式上都一样,它们都使用了指示学习(Instruction Learning)和人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)来指导模型的训练,不同的仅仅是采集数据的方式上有所差异。

自监督学习输出有时是有害的,而完全标注的监督学习成本一定条件下,答案是定的,天花板不高,但是强化学习不是这样,人工不再标注,没有正确答案,只有好于不好的答案,用打分的方式实现;因而强化学习是huggingface中排名靠前的模型必用的技术之一。

OpenAI公布的fine-tune的过程主要分为三个部分:
1.有监督微调学习(SFT),收集人工编写好的期望模型如何输出的数据集,并使用其来训练一个生成模型(GPT3.5-based)
2.训练奖励模型(RM),收集人工标注的模型多个输出之间的排序数据集。并训练一个奖励模型,以预测用户更喜欢哪个模型输出;
3.基于强化学习(PPO)持续迭代生成模型。使用这个奖励模型作为激励函数,微调监督学习训练出来的生成模型。
其过程如官网给出的下图所示。
在这里插入图片描述
模型很重要,数据也很重要,三步微调的数据如下:

需要SFT模型的原因:GPT3模型不一定能够保证根据人的指示、有帮助的、安全的生成答案,需要人工标注数据进行微调。
需要RM模型的原因:标注排序的判别式标注,成本远远低于生成答案的生成式标注。
需要RL模型的原因:在对SFT模型进行微调时,生成的答案分布也会发生变化,会导致RM模型的评分会有偏差,需要用到强化学习。

首先要收集问题集,prompt集:标注人员写出这些问题,写出一些指令,用户提交一些他们想得到答案的问题。先训练一个最基础的模型,给用户试用,同时可以继续收集用户提交的问题。划分数据集时按照用户ID划分,因为同一个用户问题会比较类似,不适合同时出现在训练集和验证集中。

SFT 数据集

GPT-3是一个基于提示学习的生成模型,因而SFT数据集也是由提示-答案对组成的样本,SFT数据一部分来自OpenAI的PlayGround用的,另一部分是OpenAI雇佣的40人标准,并且对这40人进行了培训,很多时候高质量的标注是模型训练的前提,在这个数据集上,标注者的工作内容是根据内容自己编写指示,并且要求编写的指示满足以下三点:

  • 简单任务:标注者给出任意一个简单的任务,同时要确保任务的多样性;
  • Few-Shot任务:标注者给出一个指示以及该指示的多个查询-应答对;
  • 用户相关的:从接口获取用例,然后让标注者根据这些用例编写指示;
    13000条数据。标注人员直接根据刚才的问题集里面的问题写答案。通常这一阶段需要数万条高质量的标注数据。

RM数据集

RM数据集用来训练第二步的奖励模型,奖励的目标是要对齐人类评价,通过人工打分的方式来提供这个奖励,因为人工可以对那些有害、无用、偏见等生成的内容打更低的分,这样可以让模型不容易生成那些内容。Instruct GPT/ChatGPT的做法是让模型针对同一个问题生成4~10个答案,然后人工对这些生成的答案从好到差人工排序。33000条数据。标注人员对答案进行排序。
其InstructGPT paper上展示了这一过程是如何进行的。
请添加图片描述

PPO数据集

强化学习通过奖励(Reward)机制来指导模型训练,奖励机制可以看做传统模型训练机制的损失函数。奖励的计算要比损失函数更灵活和多样(AlphaGO的奖励是对局的胜负),这带来的代价是奖励的计算是不可导的,因此不能直接拿来做反向传播。强化学习的思路是通过对奖励的大量采样来拟合损失函数,从而实现模型的训练。同样人类反馈也是不可导的,那么我们也可以将人工反馈作为强化学习的奖励,基于人类反馈的强化学习便应运而生。

RLHF最早可以追溯到Google在2017年发表的《Deep Reinforcement Learning from Human Preferences》,它通过人工标注作为反馈,提升了强化学习在模拟机器人以及雅达利游戏上的表现效果。

PPO(Proximal Policy Optimization)是一种新型的Policy Gradient算法,该算法对步长十分敏感,但又难以给出合适的步长,子啊训练过程中新旧策略的变化差异如果过大则不利于学习,PPO算法啊提出新的目标函数可以在多个训练步骤实现小批量的更新,解决了Policy Gradient算法中步长难以确定的问题。

InstructGPT的PPO数据集并没有进行标注,均来自GPT-3的用户API。31000条数据。只需要prompt集里面的问题就行,不需要标注。因为这一步的标注是RM模型来打分标注的。请添加图片描述
数据集中96%都是英文,其它20多个语种不到4%。从预训练到强化学习的完整过程如下:

GPT-4

为了让神经网络能够更好的理解世界,从而更为智能,视觉能力似乎是不可或缺的能力。

多模态,从文本和图像中学习,可以对文本和图像输入的请求做出响应,图像对神经网络有提升,会让其用处大大扩大,因为人类是视觉动物,人类大脑皮层的三分之一用于视觉处理。
GPT-4相比ChatGPT在很多方面都达到了人类水平,比如GRE、律师、医生等考试上,GPT-4比ChatGPT能更准确的预测下一个词,这意味着模型会有更多的理解力,此外模型还对一些高质量的图片通过强化学习变体进行微调。

Llama开源大语言模型

Meta的Llama源码是开源大语言模型,其主官宣的paper有如下两篇文章,Transformer结构也没有大的变动,但是其LLaMA-13B的性能优于OpenAI的GPT-3(175B),这足足小了十多倍的模型媲美了1750亿参数的模型。
《LLaMA: Open and Efficient Foundation Language Models 》
《Llama 2: Open Foundation and Fine-Tuned Chat Models 》

预训练数据集模型参数量模型结构体许可文本长度grouped-query attention (GQA)TokensA100-80GB 400W训练 /所需时间optimizer
LLaMA4.5TB6.3B, 13B,32.5B,62.5BAuto-regressive transformersresearch2k6.3B,13B /1.0T ;33B,65B / 1.4T7B 82,432h 13B 135,168h 33B 530,432h 65B 1,022,362hAdamW
LLaMA-2/LlaMA-2-chat6.3TB(较LLaMA增加40%)6.3B, 13B, and 70BAuto-regressive transformersresearch and commercial4k34B/70B2.0T7B 184,320h 13B 368,640h 70B 1,720,320h

LLaMA 65B参数模型使用了2048块A100 GPU经过21天训练得到预训练模型,预训练的过程花费了500万美元左右,

Llama-2先使用公开可获取的文本信息训练,然后使用SFT进行fine tune,然后再用Reinforcement Learning from Human Feedback (RLHF)再refine,RLHF包括rejection sampling and proximal policy optimization (PPO)。

Llama-2-chat使用RLHF(reinforcement learning from human feedback)以确保安全有用的。LlaMA-2-chat是几个月的研究和迭代应用的结果,包括指令调优,RLHF,算力和标注资源。
请添加图片描述

未来大语言模型的方向

“智能”源于数据、算力以及模型结构。模型的产出物朝着工具化和智能人化两个方向发展。
1.首先是数据,要不了几年,互联网上的公开数据就会被爬完用于模型训练,而新的源源不断的打语言模型产生数据极有可能被爬虫,再输入模型这是否会导致模型陷入自我强化?看来模型本身也需要反大语言模型产出物。
2.基于现有的RLHF架构存着以下问题:
a.fine-tune的过程是封印模型功能的过程,不是无中生有的过程,因而模型的能力还是取决于fine-tune,这会降低NLP的通用任务的性能下降。
b.模型的输出的价值观合规、模型的特定场景;
c.人工标注的成本比较高,InstructGPT强化学习雇佣了40人训练。
3.大模型预训练+微调(Fine-Tune)的形式将会继续存在,但是预训练和微调都会演进,大模型的演进方向在于通用任务处理上,而微调除了针对特定场景,依然还要进一步降低微调的门槛和成本,如LoRA。
Zero-shot Learning | One-shot Learning | Few-shot Learning是因为标注数据有限或成本而提出的学习方法。
4.PPO方法使用的代价函数并不能代表灵活多变的人类偏好,因而这个算法方向相对其它模块,更容易带来突破性进展;
5.RLHF现在的方法倾向于对所有人都有相同偏好的概率输出,但是人的喜好是多样性的,这意味着相同的偏好概率假设并不成立。所以现在生成的答案并不是那么令人赏心悦目。比如一看新闻都是新闻编辑排版决定了观众看到什么,但是头条收集个人偏好之后,每个人看到的事不一样的,即同一条推荐对不同人的概率是不一样的。
6.SFT阶段要训练所有参数(虽然训练时间可以缩短),但这对高学校实验室、创业公司并不友好,2卡或者4卡A100的SFT是需要的,因而基于(LoRA) 等freeze部分参数,只迭代相对较少的参数finetuning会是一个方向;
7.端上PC会local部署模型,大语言模型,图像生成式模型,以及工具类集成AI,因而量化、SIMD、GPU、剪枝等优化方法还是被用于尝试端上部署
8.某种程度上除了记忆性和泛化能力,我个人认为已经具备了初级的知觉、逻辑、意识能力,比如作为三国杀、狼人杀参与游戏,胜利的高于50%,只是是无机物逻辑,但这是一种意识,如果被赋予生存意识(某种程度上是可以的),那也会具备生存意识,超大模型、多模态神经网络将在感知、理解以及通用任务处理上扩展其应用边界,生成式AI工具类应用继续领跑,未来的方向之一是真正意识上的“智人”。
*

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

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

相关文章

C语言快速回顾(一)

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。C/C是音视频必…

【C语言】memset()函数

一.memset()函数简介 我们先来看一下cplusplus.com - The C Resources Network网站上memset()函数的基本信息: 1.函数功能 memset()函数的功能是:将一块内存空间的每个字节都设置为指定的值。 这个函数通常用于初始化一个内存空间,或者清空一个内存空间…

【Linux】多线程1——线程概念与线程控制

文章目录 1. 线程概念什么是线程Linux中的线程线程的优点线程的缺点线程的独立资源和共享资源 2. 线程控制Linux的pthread库用户级线程 📝 个人主页 :超人不会飞)📑 本文收录专栏:《Linux》💭 如果本文对您有帮助&…

WSL2 Ubuntu子系统安装OpenCV

文章目录 前言一、基本概念二、操作步骤1.下载源码2.安装依赖3.运行编译4.配置路径 前言 OpenCV用C语言编写,它的主要接口也是C语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语…

Docker容器与虚拟化技术:Docker容器操作、网络模式

目录 一、理论 1.Docker 容器操作 2.Docker 网络 二、实验 1.Docker 容器操作 2.Docker 网络 2.Docker 的网络模式 三、问题 1. 批量删除所有容器未生效 2.使用bridge模式指定IP运行docker报错 3.未显示bridge网络模式名称 四、总结 一、理论 1.Docker 容器操作 &a…

【动画】p60动画蓝图、播放蒙太奇、打包

p60动画蓝图、播放蒙太奇、打包 p60动画蓝图、播放蒙太奇、打包添加动画动画蓝图使模型使用动画蓝图奔跑跳舞蒙太奇 移动打断蒙太奇打包退出游戏 p60动画蓝图、播放蒙太奇、打包 添加动画 右键内容浏览器-》动画-》混合空间1D-》选择新的角色的骨骼 如下图在资产详情修改参数…

克服多语言语音技术的障碍:五大挑战和创新解决方案

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 介绍 在用西班牙语(您的首选语言)向语音助手询问某些内容后,您有多少次不得不暂停,然后用语音助手理解的语言(可能是英语)重述…

离线安装Nginx(rpm方式)

环境:centos7.9 下面将展示通过rpm方式安装Nginx 1.官方下载Nginx rpm包 下载地址 http://nginx.org/packages/ 下载版本根据操作系统版本进行选择,本次操作系统是centos7.9 - 64位系统,所以对应的下载路径是: http://nginx.or…

AI Chat 设计模式:15. 桥接模式

本文是该系列的第十五篇,采用问答式的方式展开,问题由我提出,答案由 Chat AI 作出,灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 如果你是第一次接触桥接模式,那么你会有哪些疑问呢?A.1Q.2 什…

Hlang社区项目说明

文章目录 前言Hlang社区技术前端后端 前言 Hello,欢迎来到本专栏,那么这也是第一次做这种类型的专栏,如有不做多多指教。那么在这里我要隆重介绍的就是这个Hlang这个项目。 首先,这里我要说明的是,我们的这个项目其实是分为两个…

list

目录 迭代器 介绍 种类 本质 介绍 模拟实现 注意点 代码 迭代器 介绍 在C中,迭代器(Iterators)是一种用于遍历容器(如数组、vector、list等)中元素的工具 无论容器的具体实现细节如何,访问容器中的元素的方…

包管理工具 nvm npm nrm yarn cnpm npx pnpm详解

包管理工具 nvm npm yarn cnpm npx pnpm npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/122533843 npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/1…

实验三 图像分割与描述

一、实验目的: (1)进一步掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数。 (2)掌握图像分割方法,熟悉常用图像描述方法。 二、实验原理 1.肤色检测 肤色是人类皮肤重要特征之一&#xff…

【wiki】电竞助手掉落提醒 EsportsHelper「Webhook」「钉钉」「饭碗警告」「企业微信」「Discord」

介绍 本项目链接 Github电竞助手链接 github上项目电竞助手(EsportsHelper)的掉落提醒配置教程,当有掉宝的时候会发送你信息提示. 至于这个脚本是怎么使用的简单说一下,就是通过自动观看英雄联盟直播 从而获取奖励(仅限直营服),有兴趣的可以去github上看readme,非常详细,支持…

ppt怎么压缩?试试这样压缩文件

当PPT文件体积过大时,打开的速度就会很慢,演示的时候刘程度也会受到影响,其次,现在很多平台对于上传的文件是有大小限制的,比如超过100M的文件就无法上传、发送等等,那么,怎么才能压缩PPT文件呢…

云曦暑期学习第五周——2022美亚杯个人赛

I.案件详情 于2022年10月,有市民因接获伪冒快递公司的电邮,不慎地于匪徒架设的假网站提供了个人信用咭资料导致经济损失。警方追查下发现当中一名受骗市民男子李大輝 (TaiFai) 的信用卡曾经被匪徒在区内的商舖购物。 后来警方根据IP地址,锁定…

Spring Boot @Validated 验证注解的使用

1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> 2、使用 2.1、非对象参数 参数如果是非对象格式&#xff0c;需要在controller类上面添…

高等数学教材重难点题型总结(二)导数与微分

本章重点题目较少&#xff0c;除了*标题页没什么特别难的&#xff0c;本帖出于总结性的角度考虑并未囊概全部的*标&#xff0c;最后会出一期*标题的全部内容整理&#xff0c;在攻克重难点的基础上更上一层楼。 1.根据定义求某点处的导数值 2.通过定义证明导数 3.左右导数的相关…

vue基础知识四:Vue实例挂载的过程

一、思考 我们都听过知其然知其所以然这句话 那么不知道大家是否思考过new Vue()这个过程中究竟做了些什么&#xff1f; 过程中是如何完成数据的绑定&#xff0c;又是如何将数据渲染到视图的等等 一、分析 首先找到vue的构造函数 源码位置&#xff1a;src\core\instance\…

CentOS防火墙操作:开启端口、开启、关闭、配置

一、基本使用 启动&#xff1a; systemctl start firewalld 关闭&#xff1a; systemctl stop firewalld 查看状态&#xff1a; systemctl status firewalld 开机禁用 &#xff1a; systemctl disable firewalld 开机启用 &#xff1a; systemctl enable firewalld systemctl是…