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

news2024/11/26 23:48:24

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

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

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

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

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

做大语言模型技术和相关应用的公司和应用都呈现一个井喷的发展态势,从huggingface官网打分链接![https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard]排行榜可以查看最新的开源大语言模型情况。从当前来看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工具类应用继续领跑,未来的方向之一是真正意识上的“智人”。
*

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@capacitor/filesystem更改downloadfile支持本地文件下载

ionic监听外部程序&#xff1a; android下需要在AndroidManifest.xml添加内容&#xff08;具体参考ionic native的APP插件&#xff09;&#xff0c;配置例如&#xff1a; <intent-filter tools:ignore"AppLinkUrlError"><action android:name"android.…

【Matlab智能算法】PSO优化(单隐层)BP神经网络算法

上一篇博客介绍了BP-GA&#xff1a;BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值&#xff0c;本篇博客将介绍用PSO&#xff08;粒子群优化算法&#xff09;优化BP神经网络。 1.优化思路 BP神经网络的隐藏节点通常由重复的前向传递和反向传播的方式来决定&#…

(统计学习方法|李航)第四章 朴素贝叶斯算法——贝叶斯估计

贝叶斯估计方法&#xff1a; 计算男女时只有两个值&#xff0c;所以K2 贝叶斯估计就是拉普拉斯平滑 估计方法&#xff1a;为什么叫做贝叶斯估计呢&#xff1f; 例题&#xff1a; 重新回顾以下朴素贝叶斯&#xff1a; 对他求导&#xff0c;求出最大值 得到了色i他的估计值&…

第三章:前端UI框架介绍

文章目录 一、Bootstrap1.1 Bootstrap简介及版本1.2 Bootstrap使用 二、AntDesign2.1 简介2.2 基本使用2.3 antd pro 三、ElementUI3.1 简介3.2 基本使用 四、Vant4.1 简介4.2 基本使用 一、Bootstrap 1.1 Bootstrap简介及版本 1、 简介 Bootstrap&#xff0c;来白 Twitter&a…

服务管理和计划任务

文章目录 服务管理计划任务 服务管理 systemctl 命令字 服务名 //配置服务与systemctl有关的命令字&#xff1a; 计划任务 一次性计划 at 时间 at now 5 min //当前时间五分钟后执行 at -l //列出计划任务 atrm 任务号 //删除计划任务执行完命令后Ctrld生效 周期性计…

LiveNVR监控流媒体Onvif/RTSP功能-视频流水印如何叠加视频水印叠加动态图片叠加视频流时间示例

LiveNVR视频流水印如何叠加视频水印叠加动态图片叠加视频流时间示例 1、介绍2、摄像头OSD设置水印3、前端页面叠加4、视频流水印4.1、图片水印示例4.2、时间戳水印示例 5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、介绍 监控视频平台播放视频监控的时候&#xff0c;除了满足正…

提升效率!云原生生态从业人员不可或缺的工具集合!

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

shell脚本安装nginx

文章目录 shell脚本原理变量脚本安装nginx shell脚本原理 以删除桌面文件的脚本为例&#xff0c;执行脚本后&#xff0c;shell脚本将代码给内核&#xff0c;内核读取后执行命令&#xff0c;如果shell脚本也在桌面上&#xff0c;执行后这个脚本文件也会被删除。 变量 echo $SH…

Java程序控制结构,一文带你彻底拿下~

—— 程序的运行流程控制会解决程序是如何执行的 三大程序流程控制结构 1&#xff09;顺序结构&#xff1a;程序从上到下逐行逐行的执行&#xff0c;中间没有任何的判断和跳转 2&#xff09;分支结构&#xff1a;程序具有选择性的进入某一段代码 3&#xff09;循环结构&#xf…

SQL Developer中的Data Redaction

SQL Developer中的Data Redaction用起来比命令行方便多了。可以选定表或视图&#xff0c;右键点击“遮盖保护”菜单。 但赋权方面有需要注意的地方。 假设Redact Admin是SYS&#xff0c;Redact User是HR。虽然SYS具备所有权限&#xff0c;但还是报以下错误。其实这个错误是针…

jvm——垃圾回收机制(GC)详解

开始之前有几个GC的基本问题 什么是GC&#xff1f; GC 是 garbage collection 的缩写&#xff0c;意思是垃圾回收——把内存&#xff08;特别是堆内存&#xff09;中不再使用的空间释放掉&#xff1b;清理不再使用的对象。 为什么要GC&#xff1f; 堆内存是各个线程共享的空间…

spring常用注解标签总结

1&#xff1a;Component等 名称Component/Controller/Service/Repository类型类注解位置类定义上方作用设置该类为spring管理的bean属性value&#xff08;默认&#xff09;&#xff1a;定义bean的id 说明: Component注解如果不起名称&#xff0c;会有一个默认值就是当前类名首…

IDEA提示:StringBuffer xxx‘ may be declared as ‘StringBuilde

如图所示&#xff0c;编写代码时遇见了如下IDEA警告&#xff1a; 原因&#xff1a;StringBuilder是线程不安全的&#xff0c;但是其效率高&#xff0c;而StringBuffer则相反&#xff0c;虽然其线程安全&#xff0c;但是效率低下。 由于 StringBuilder 相较于 StringBuffer 有速…

Java+Excel+POI+testNG基于数据驱动做一个简单的接口测试【杭州多测师_王sir】

一、创建一个apicases.xlsx放入到eclipse的resource里面&#xff0c;然后refresh刷新一下 二、在pom.xml文件中加入poi和testng的mvn repository、然后在eclipse的对应目录下放入features和plugins&#xff0c;重启eclipse就可以看到testNG了 <!--poi excel解析 --><d…

音视频研发分享:关键帧截图+wasm快照--我又做了一件有益于社会的事情

音视频研发分享&#xff1a;关键帧截图wasm快照--我又做了一件有益于社会的事情 简单的一个视频设备快照功能到底有多费事多费电&#xff1f;新的方法有方法&#xff01; 省了多少电&#xff1f; 简单的一个视频设备快照功能到底有多费事多费电&#xff1f; 以前&#xff0c;我…

【C# 基础精讲】构造函数和析构函数

构造函数&#xff08;Constructor&#xff09;和析构函数&#xff08;Destructor&#xff09;是面向对象编程中的两个重要概念&#xff0c;它们分别用于在对象创建和销毁的时候执行特定的操作。这两个函数在C#以及其他面向对象编程语言中都具有重要的作用&#xff0c;用于初始化…

机器学习笔记:李宏毅chatgpt 大模型 大资料

1 大模型 1.1 大模型的顿悟时刻 Emergent Abilities of Large Language Models&#xff0c;Transactions on Machine Learning Research 2022 模型的效果不是随着模型参数量变多而慢慢变好&#xff0c;而是在某一个瞬间&#xff0c;模型“顿悟”了 这边举的一个例子是&#…

剪映:制作特效的常用方法

在创作短视频时&#xff0c;常常需要为一些镜头添加或制作特效&#xff0c;以增加趣味性、提升影片的艺术渲染力。本文介绍几种在剪映专业版中快速添加或制作特效的常用方法。 一、使用特效库 在“特效”库中提供了大量的特效供下载使用。找到自己中意的特效&#xff0c;直接拖…

alphassl便宜通配符SSL证书推荐

AlphaSSL是一家提供SSL证书的CA认证机构&#xff0c;其证书可以保护网站的安全性&#xff0c;防止黑客攻击和信息泄露。AlphaSSL的证书价格实惠&#xff0c;安全性高&#xff0c;AlphaSSL的证书还可以与各种服务器和网站平台兼容&#xff0c;包括Apache、IIS、Tomcat和Nginx等。…

【C# 基础精讲】类和对象的概念

在面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;中&#xff0c;类和对象是两个核心概念&#xff0c;用于描述和实现现实世界中的实体和关系。OOP 是一种编程范式&#xff0c;通过将数据和操作封装为对象来组织和管理代码&#xff0c;使得代…