追溯ChatGPT

news2024/11/15 17:53:25

ChatGPT 国内趋势

在国际学术界看来,ChatGPT / GPT-3.5 是一种划时代的产物

它与之前常见的语言模型 (Bert/ Bart/ T5) 的区别,几乎是导弹与弓箭的区别,一定要引起最高程度的重视

国际上的主流学术机构 (如斯坦福大学,伯克利加州大学) 和主流业界研究院(如谷歌大脑,微软研究院)都已经全面拥抱大模型

国内的技术水准,学术视野,治学理念和国际前沿的差距似乎并没有减少,反而正在扩大

如果现状持续下去,极有可能出现技术断代


2020 版初代 GPT-3 与大规模预训练

初代GPT-3展示了三个重要能力:

  1. 语言生成:遵循提示词(prompt),然后生成补全提示词的句子
  2. 上下文学习 (in-context learning): 遵循给定任务的几个示例,然后为新的测试用例生成解决方案
  3. 世界知识:包括事实性知识 (factual knowledge) 和常识 (commonsense)

以上三种能力都来自于大规模预训练

在有3000亿单词的语料上预训练拥有1750亿参数的模型

训练语料的60%来自于 2016 - 2019 的 C4

22% 来自于 WebText2

16% 来自于Books

3%来自于Wikipedia

  • 语言生成的能力来自于语言建模的训练目标
  • 世界知识来自 3000 亿单词的训练语料库
  • 模型的 1750 亿参数是为了存储知识
  • 上下文学习的能力来源及为什么上下文学习可以泛化,仍然难以溯源

在今天(2022 年 12 月)ChatGPT 的标准下,很难说初代的 GPT-3 是“智能的”


从 2020 版 GPT-3 到 2022 版 ChatGPT

GPT-3.5 的进化树

在这里插入图片描述
2020 年 7 月,OpenAI 发布了模型索引为的 davinci 的初代 GPT-3 论文

2021 年 7 月,Codex 的论文发布,其中初始的 Codex 是根据(可能是内部的)120 亿参数的 GPT-3 变体进行微调的

2022 年 3 月,OpenAI 发布了指令微调 (instruction tuning) 的论文,其监督微调 (supervised instruction tuning) 的部分对应了davinci-instruct-beta和text-davinci-001

2022 年 4 月至 7 月的,OpenAI 开始对code-davinci-002模型进行 Beta 测试,也称其为 Codex

2022 年 5-6 月发布的text-davinci-002是一个基于code-davinci-002的有监督指令微调 (supervised instruction tuned) 模型。在text-davinci-002上面进行指令微调很可能降低了模型的上下文学习能力,但是增强了模型的零样本能力

2022 年 11 月发布,是使用的基于人类反馈的强化学习的版本指令微调 (instruction tuning with reinforcement learning from human feedback) 模型的两种不同变体。text-davinci-003 恢复了(但仍然比code-davinci-002差)一些在text-davinci-002 中丢失的部分上下文学习能力(大概是因为它在微调的时候混入了语言建模) 并进一步改进了零样本能力(得益于RLHF)。另一方面,ChatGPT 似乎牺牲了几乎所有的上下文学习的能力来换取建模对话历史的能力

总的来说,在 2020 - 2021 年期间,在code-davinci-002之前,OpenAI 已经投入了大量的精力通过代码训练和指令微调来增强GPT-3。当他们完成code-davinci-002时,所有的能力都已经存在了。

很可能后续的指令微调,无论是通过有监督的版本还是强化学习的版本,都会做以下事情

指令微调不会为模型注入新的能力 —— 所有的能力都已经存在了。指令微调的作用是解锁 / 激发这些能力。这主要是因为指令微调的数据量比预训练数据量少几个数量级(基础的能力是通过预训练注入的)。

指令微调将 GPT-3.5 的分化到不同的技能树。有些更擅长上下文学习,如text-davinci-003,有些更擅长对话,如ChatGPT

指令微调通过牺牲性能换取与人类的对齐(alignment)。OpenAI 的作者在他们的指令微调论文中称其为 “对齐税” (alignment tax)。许多论文都报道了code-davinci-002在基准测试中实现了最佳性能(但模型不一定符合人类期望)。在code-davinci-002上进行指令微调后,模型可以生成更加符合人类期待的反馈(或者说模型与人类对齐),例如:零样本问答、生成安全和公正的对话回复、拒绝超出模型它知识范围的问题。


Code-Davinci-002和 Text-Davinci-002,在代码上训练,在指令上微调

在code-davinci-002和text-davinci-002之前,有两个中间模型,分别是 davinci-instruct-beta 和 text-davinci-001。

两者在很多方面都比上述的两个-002模型差(例如,text-davinci-001 链式思维推理能力不强)

我们关注code-davinci-002和text-davinci-002,这两兄弟是第一版的 GPT3.5 模型

一个用于代码,另一个用于文本

它们表现出了力与初代 GPT-3 不同的能力:

  1. 响应人类指令:以前,GPT-3 的输出主要训练集中常见的句子。现在的模型会针对指令 / 提示词生成更合理的答案(而不是相关但无用的句子)。

  2. 泛化到没有见过的任务:当用于调整模型的指令数量超过一定的规模时,模型就可以自动在从没见过的新指令上也能生成有效的回答。这种能力对于上线部署至关重要,因为用户总会提新的问题,模型得答得出来才行。

  3. 代码生成和代码理解:这个能力很显然,因为模型用代码训练过。

  4. 利用思维链 (chain-of-thought) 进行复杂推理:初代 GPT3 的模型思维链推理的能力很弱甚至没有。code-davinci-002 和 text-davinci-002 是两个拥有足够强的思维链推理能力的模型。思维链推理之所以重要,是因为思维链可能是解锁突现能力和超越缩放法则 (scaling laws) 的关键。


这些能力从何而来?

与之前的模型相比,两个主要区别是指令微调和代码训练。具体来说

能够响应人类指令的能力是指令微调的直接产物。

对没有见过的指令做出反馈的泛化能力是在指令数量超过一定程度之后自动出现的,T0、Flan 和 FlanPaLM 论文进一步证明了这一点

使用思维链进行复杂推理的能力很可能是代码训练的一个神奇的副产物。

对此,我们有以下的事实作为一些支持:

最初的 GPT-3 没有接受过代码训练,它不能做思维链。

text-davinci-001 模型,虽然经过了指令微调

但第一版思维链论文报告说,它的它思维链推理的能力非常弱 —— 所以指令微调可能不是思维链存在的原因

代码训练才是模型能做思维链推理的最可能原因。

PaLM 有 5% 的代码训练数据,可以做思维链。

Codex论文中的代码数据量为 159G ,大约是初代 GPT-3 5700 亿训练数据的28%

code-davinci-002 及其后续变体可以做思维链推理。
在 HELM 测试中,Liang et al. (2022) 对不同模型进行了大规模评估

他们发现了针对代码训练的模型具有很强的语言推理能力,包括 120亿参数的code-cushman-001.。

我们在 AI2 的工作也表明,当配备复杂的思维链时,code-davinci-002 在 GSM8K 等重要数学基准上是目前表现最好的模型

直觉来说,面向过程的编程 (procedure-oriented programming) 跟人类逐步解决任务的过程很类似,面向对象编程 (object-oriented programming) 跟人类将复杂任务分解为多个简单任务的过程很类似。

以上所有观察结果都是代码与推理能力 / 思维链之间的相关性。

代码和推理能力 / 思维链之间的这种相关性对研究社区来说是一个非常有趣的问题,但目前仍未得到很好的理解。

然而,仍然没有确凿的证据表明代码训练就是CoT和复杂推理的原因。 思维链的来源仍然是一个开放性的研究问题。

此外, 代码训练另一个可能的副产品是长距离依赖

正如Peter Liu所指出:“语言中的下个词语预测通常是非常局部的,而代码通常需要更长的依赖关系来做一些事情,比如前后括号的匹配或引用远处的函数定义”

这里我想进一步补充的是:由于面向对象编程中的类继承,代码也可能有助于模型建立编码层次结构的能力

我们将对这一假设的检验留给未来的工作

另外还要注意一些细节差异:

text-davinci-002 与 code-davinci-002

Code-davinci-002 是基础模型,text-davinci-002 是指令微调 code-davinci-002 的产物(见 OpenAI 的文档)。它在以下数据上作了微调:
(a)人工标注的指令和期待的输出;
(b)由人工标注者选择的模型输出。

当有上下文示例 (in-context example) 的时候, Code-davinci-002 更擅长上下文学习;当没有上下文示例 / 零样本的时候, text-davinci-002 在零样本任务完成方面表现更好

从这个意义上说,text-davinci-002 更符合人类的期待(因为对一个任务写上下文示例可能会比较麻烦)。

OpenAI 不太可能故意牺牲了上下文学习的能力换取零样本能力 —— 上下文学习能力的降低更多是指令学习的一个副作用,OpenAI 管这叫对齐税。


001 模型(code-cushman-001 和 text-davinci-001)v.s. 002 模型(code-davinci-002 和 text-davinci-002)

001 模型主要是为了做纯代码 / 纯文本任务;

002 模型则深度融合了代码训练和指令微调,代码和文本都行。

Code-davinci-002 可能是第一个深度融合了代码训练和指令微调的模型

证据有:code-cushman-001 可以进行推理但在纯文本上表现不佳,text-davinci-001 在纯文本上表现不错但在推理上不大行

code-davinci-002 则可以同时做到这两点。


这些能力是在预训练之后已经存在还是在之后通过微调注入?

在这个阶段,我们已经确定了指令微调和代码训练的关键作用

一个重要的问题是如何进一步分析代码训练和指令微调的影响?

具体来说:上述三种能力是否已经存在于初代的GPT-3中,只是通过指令和代码训练触发 / 解锁?

或者这些能力在初代的 GPT-3 中并不存在,是通过指令和代码训练注入?

如果答案已经在初代的 GPT-3 中,那么这些能力也应该在 OPT 中

因此,要复现这些能力,或许可以直接通过指令和代码调整 OPT

但是,code-davinci-002 也可能不是基于最初的 GPT-3 davinci,而是基于比初代 GPT-3 更大的模型

如果是这种情况,可能就没办法通过调整 OPT 来复现了

研究社区需要进一步弄清楚 OpenAI 训练了什么样的模型作为 code-davinci-002 的基础模型。

我们有以下的假设和证据:

code-davinci-002的基础模型可能不是初代GPT-3 davinci 模型。以下是证据:

初代的GPT-3在数据集 C4 2016 - 2019 上训练,而 code-davinci-002 训练集则在延长到2021年才结束

因此 code-davinci-002 有可能在 C4 的 2019-2021 版本上训练

初代的 GPT-3 有一个大小为 2048 个词的上下文窗口

code-davinci-002 的上下文窗口则为 8192

GPT 系列使用绝对位置嵌入 (absolute positional embedding),直接对绝对位置嵌入进行外推而不经过训练是比较难的,并且会严重损害模型的性能(参考 Press et al., 2022)

如果 code-davinci-002 是基于初代GPT-3,那OpenAI 是如何扩展上下文窗口的?

另一方面,无论基础模型是初代的 GPT-3 还是后来训练的模型, 遵循指令和零样本泛化的能力都可能已经存在于基础模型中,后来才通过指令微调来解锁 (而不是注入)

这主要是因为 OpenAI 的论文报告的指令数据量大小只有 77K,比预训练数据少了几个数量级。

其他指令微调论文进一步证明了数据集大小对模型性能的对比

例如 Chung et al. (2022) 的工作中, Flan-PaLM 的指令微调仅为预训练计算的 0.4%。一般来说,指令数据会显著少于预训练数据。

然而 ,模型的复杂推理能力可能是在预训练阶段通过代码数据注入

代码数据集的规模与上述指令微调的情况不同

这里的代码数据量足够大,可以占据训练数据的重要部分(例如,PaLM 有 8% 的代码训练数据)

如上所述,在 code-davinci-002 之前的模型 text-davinci-001 大概没有在代码数据上面微调过,所以它的推理 / 思维链能力是非常差的

正如第一版思维链论文中所报告的那样,有时甚至比参数量更小的 code-cushman-001 还差

区分代码训练和指令微调效果的最好方法可能是比较 code-cushman-001、T5 和 FlanT5

因为它们具有相似的模型大小(110亿 和 120亿),相似的训练数据集 (C4),它们最大的区别就是有没有在代码上训练过 / 有没有做过指令微调


text-davinci-003 和 ChatGPT,基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF) 的威力

在当前阶段(2022 年 12 月), text-davinci-002、text-davinci-003 和 ChatGPT之间几乎没有严格的统计上的比较 ,主要是因为

text-davinci-003 和 ChatGPT 在撰写本文时才发布不到一个月

ChatGPT 不能通过 OpenAI API 被调用,所以想要在标准基准上测试它很麻烦

所以在这些模型之间的比较更多是基于研究社区的集体经验 (统计上不是很严格)

不过,我们相信初步的描述性比较仍然可以揭示模型的机制。

我们首先注意到以下 text-davinci-002,text-davinci-003 和 ChatGPT 之间的比较:

所有三个模型都经过指令微调

text-davinci-002 是一个经过监督学习指令微调 (supervised instruction tuning) 的模型

text-davinci-003 和 ChatGPT 是基于人类反馈的强化学习的指令微调 (Instruction tuning with Reinforcement Learning from Human Feedback RLHF)。这是它们之间最显着的区别

这意味着大多数新模型的行为都是 RLHF 的产物

那么让我们看看 RLHF 触发的能力:

详实的回应:text-davinci-003 的生成通常比 text-davinci-002长。ChatGPT 的回应则更加冗长,以至于用户必须明确要求“用一句话回答我”,才能得到更加简洁的回答。这是 RLHF 的直接产物

公正的回应:ChatGPT 通常对涉及多个实体利益的事件(例如政治事件)给出非常平衡的回答。这也是RLHF的产物

拒绝不当问题:这是内容过滤器和由 RLHF 触发的模型自身能力的结合,过滤器过滤掉一部分,然后模型再拒绝一部分

拒绝其知识范围之外的问题:例如,拒绝在2021 年 6 月之后发生的新事件(因为它没在这之后的数据上训练过

这是 RLHF 最神奇的部分,因为它使模型能够隐式地区分哪些问题在其知识范围内,哪些问题不在其知识范围内

有两件事情值得注意:

所有的能力都是模型本来就有的, 而不是通过RLHF 注入的

RLHF 的作用是触发 / 解锁突现能力

这个论点主要来自于数据量大小的比较:因为与预训练的数据量相比,RLHF 占用的计算量 / 数据量要少得多

模型知道它不知道什么不是通过编写规则来实现的, 而是通过RLHF解锁的。这是一个非常令人惊讶的发现,因为 RLHF 的最初目标是让模型生成复合人类期望的回答,这更多是让模型生成安全的句子,而不是让模型知道它不知道的内容。
幕后发生的事情可能是:

ChatGPT:通过牺牲上下文学习的能力换取建模对话历史的能力。这是一个基于经验的观测结果,因为 ChatGPT 似乎不像 text-davinci-003 那样受到上下文演示的强烈影响。

text-davinci-003:恢复了 text-davinci-002 所牺牲的上下文学习能力, 提高零样本的能力。根据instructGPT的论文,这是来自于强化学习调整阶段混入了语言建模的目标(而不是 RLHF 本身)。

我们可以得出结论:

语言生成能力 + 基础世界知识 + 上下文学习都是来自于预训练(davinci)

存储大量知识的能力来自 1750 亿的参数量。

遵循指令和泛化到新任务的能力来自于扩大指令学习中指令的数量(Davinci-instruct-beta)

执行复杂推理的能力很可能来自于代码训练(code-davinci-002)

生成中立、客观的能力、安全和翔实的答案来自与人类的对齐。具体来说:

如果是监督学习版,得到的模型是text-davinci-002

如果是强化学习版 (RLHF) ,得到的模型是text-davinci-003

无论是有监督还是 RLHF ,模型在很多任务的性能都无法超过 code-davinci-002 ,这种因为对齐而造成性能衰退的现象叫做对齐税。

对话能力也来自于 RLHF(ChatGPT),具体来说它牺牲了上下文学习的能力,来换取:

建模对话历史

增加对话信息量

拒绝模型知识范围之外的问题


GPT-3.5 目前不能做什么

虽然GPT-3.5是自然语言处理研究中的重要一步,但它并没有完全包含许多研究人员(包括 AI2)设想的所有理想属性

以下是GPT-3.5不具备的某些重要属性:

实时改写模型的信念:当模型表达对某事的信念时,如果该信念是错误的,我们可能很难纠正它:

在自然语言处理的文献中, “推理” 一词的定义很多时候不太明确。但如果我们从模糊性的角度来看,例如一些问题 (a) 非常模棱两可,没有

推理;(b) 有点儿逻辑在里面,但有些地方也可以模糊;© 非常严谨,不能有任何歧义。那么,

模型可以很好地进行 (b) 类的带模糊性的推理,例子有:

GPT-3.5 不能进行类型 © 的推理(推理不能容忍歧义)。

从互联网进行检索:GPT-3.5 系列(暂时)不能直接搜索互联网

模型的内部知识总是在某个时间被切断。模型始终需要最新的知识来回答最新的问题。

回想一下,我们已经讨论过 1750 亿的参数大量用于存储知识

如果我们可以将知识卸载到模型之外,那么模型参数可能会大大减少,最终它甚至可以在手机上运行(疯狂的想法,但 ChatGPT 已经足够科幻了,谁知道未来会怎样呢).

但是有一篇 WebGPT 论文发表于2021年12月,里面就让 GPT 调用了搜索引擎。所以检索的能力已经在 OpenAI 内部进行了测试。

这里需要区分的一点是,GPT-3.5 的两个重要但不同的能力是 知识 和 推理

一般来说,如果我们能够 将知识部分卸载到外部的检索系统,让语言模型只专注于推理,这就很不错了。

在这篇博文中,我们仔细检查了GPT-3.5系列的能力范围,并追溯了它们所有突现能力的来源

初代GPT-3模型通过预训练获得生成能力、世界知识和in-context learning

然后通过instruction tuning的模型分支获得了遵循指令和能泛化到没有见过的任务的能力

经过代码训练的分支模型则获得了代码理解的能力,作为代码训练的副产品,模型同时潜在地获得了复杂推理的能力

结合这两个分支,code-davinci-002似乎是具有所有强大能力的最强GPT-3.5模型

接下来通过有监督的instruction tuning和 RLHF通过牺牲模型能力换取与人类对齐,即对齐税

RLHF 使模型能够生成更详实和公正的答案,同时拒绝其知识范围之外的问题。

我们希望这篇文章能够帮助提供一个清晰的GPT评估图,并引发一些关于语言模型、instruction tuning和code tuning的讨论

最重要的是, 我们希望这篇文章可以作为在开源社区内复现GPT-3.5的路线图


参考文献

  • https://franxyao.github.io/blog.html
  • https://zhuanlan.zhihu.com/p/607469120
  • https://mp.weixin.qq.com/s/4VJ70RjskWHQ_xpCRCazAg

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

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

相关文章

Ep_计网面试题-UDP实现TCP?

其实把TCP优点拿过来就行 直接上答案: 1、添加seq/ack机制,确保数据发送到对端 2、添加发送和接收缓冲区 3、添加超时重传机制 视频讲解: https://edu.csdn.net/course/detail/38090 点我进入 面试宝典 很多人不知道面试问什么,或者其他的XXGuide,那里边的太多没…

示波器上位机软件下载安装教程

软件:示波器软件NS-Scope 语言:简体中文 环境:NI-VISA安装环境:Win10以上版本(特殊需求请后台私信联系客服) 硬件要求:CPU2GHz 内存4G(或更高)硬盘500G(或更高) 驱动…

第十二 代码块、设计模式(懒汉、饿汉)

代码块概述 ●代码块是类的5大成分之一(成员变量、构造器,方法,代码块,内部类),定义在类中方法外。 ●在ava类下,使用{}括起来的代码被称为代码块。 代码块分为 静态代码块: 格式:static{ 特点:需要通过static关键字修…

企业个人,没有品牌不好混

企业、个人没品牌没法持续混下去 “品牌资产”需要持续积累 频繁切换,品牌无法立 趣讲大白话:没点品牌没法混 【安志强趣讲信息科技91期】 ******************************* 企业品牌资产:指能给企业带来效益的消费者品牌认知,包括…

『C/C++养成计划』C++中的双冒号::名解析(Scope Resolution Operator)

C中的双冒号::名解析(Scope Resolution Operator)! 文章目录1. 访问命名空间中的成员2. 访问类中的静态成员3. 嵌套类访问4. 在类之外定义函数5. 当存在具有相同名称的局部变量时,要访问全局变量6. C模板参数的自动推导参考文献C中的双冒号名解析&#…

外贸人如何写出优秀的开发信?附详细思路

如何写出优秀的开发信?最近做出口生意的客户都在抱怨,开发信的回复率越来越低,其实原因有很多,有时候并非自己的能力实在很欠缺。原因总结如图:第一:市场不景气这个就是就属于客观因素了,这也许…

InstructGPT论文笔记

论文链接:https://arxiv.org/pdf/2203.02155.pdf 1 摘要 做的事: 1、标注了数据,问题和答案写出来,然后训练模型 2、收集数据集,排序模型的输出,使用强化学习训练这个排序的过程 效果层面来说&#xff1…

思迅软件端口不通导致软件和软锁报错的问题

一、端口不通导致软件和软锁报错的问题 问题说明:打开软件提示到:xxx.xxx.xxx.xxx失败! 处理步骤1: 假设软锁服务器IP为192.168.0.1,分别在服务器本机和客户端电脑测试软锁服务: 在服务器的浏览器中访问地址: http:/…

ChatGPT(GPT3.5) OpenAI官方API正式发布

OpenAI社区今天凌晨4点多发送的邮件,介绍了ChatGPT官方API的发布。官方介绍文档地址为“OpenAI API”和“OpenAI API”。 ChatGPT(GPT3.5)官方API模型名称为“gpt-3.5-turbo”和“gpt-3.5-turbo-0301”。API调用价格比GPT text-davinci-003模型便宜10倍。调用费用为…

补档:红黑树代码实现+简略讲解

红黑树讲解和实现1 红黑树介绍1.1 红黑树特性1.2 红黑树的插入1.3 红黑树的删除2 完整代码实现2.1 rtbtree.h头文件2.2 main.c源文件1 红黑树介绍 红黑树( Red-Black tree,简称RB树)是一种自平衡二叉查找树,是计算机科学中常见的一种数据结构&#xff0c…

python画直方图,刻画数据分布

先展示效果 准备一维数据 n 个数据元素计算最大值,最小值、均值、标准差、以及直方图分组 import numpy as np data list() for i in range(640):data.append(np.random.normal(1)) print(data)z np.histogram(data, bins64) print(list(z[0])) ### 对应 x 轴数据…

【C语言】LeetCode 27. 移除元素 的n种解法

文章目录题目描述解法一 快慢下标解法二 数组移位题目描述 OJ链接:27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(…

帮助100w人成功入职的软件测试面试常见问题以及答案

测试面试题怎么来设计测试方案根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。被测试的特性:通过对需求规格…

MyBatis - 10 - 处理多对一映射关系 + MyBatis延时加载

文章目录1.准备工作1.1 建表1.2 创建Maven项目1.2.1 在pom文件中,修改打包方式为jar包,导入依赖1.2.2 创建日志配置文件和jdbc.properties1.2.3 创建Mybatis核心配置文件1.2.4 创建实体类以及实体类之间的关系1.2.5 创建SqlSession工具类2.为什么要单独处…

Ubuntu配置静态IP的方法

Ubuntu配置静态IP的方法前言一、查看虚机分配的网卡IP二、查看网卡的网关IP三、配置静态IP1.配置IPv4地址2.执行netplan apply使改动生效3.配置的网卡未生效,修改50-cloud-init.yaml文件解决4.测试vlan网络通信总结前言 Ubuntu18.04 欧拉环境 vlan网络支持ipv6场景…

树状数组讲解

树状数组 文章目录树状数组引入例题AcWing241.楼兰图腾思路代码AcWing 242. 一个简单的整数问题思路代码AcWing 244. 谜一样的牛思路代码总结引入 树状数组主要维护的是这样一个数据结构: tr[x]表示以x为终点的长度为lowbit(x)的前缀和 对于树状数组主要就两种操作 …

机器学习系统架构的10个要素

这是一个AI赋能的时代,而机器学习则是实现AI的一种重要技术手段。那么,是否存在一个通用的通用的机器学习系统架构呢?在老码农的认知范围内,Anything is nothing,对系统架构而言尤其如此。但是,如果适用于大…

风力发电机组浪涌保护器安全防护方案

风机的庞大与危险高空作业注定了其在基建和维护中不易操作,风机设备的主电源、过程控制、网络与通讯、现场设备需要高等级的防雷浪涌保护器冲击保护,提高系统及设备的可靠性和可用性。风电场的主要发电设备风力发电机组“大风车”是风电场的主要发电设备…

【数据分析】缺失数据如何处理?pandas

本文目录1. 基础概念1.1. 缺失值分类1.2. 缺失值处理方法2. 缺失观测及其类型2.1. 了解缺失信息2.2. 三种缺失符号2.3. Nullable类型与NA符号2.4. NA的特性2.5. convert_dtypes方法3. 缺失数据的运算与分组 3.1. 加号与乘号规则3.2. groupby方法中的缺失值4. 填充与剔除4.1. fi…

什么是让ChatGPT爆火的大语言模型(LLM)

什么是让ChatGPT爆火的大语言模型(LLM) 更多精彩内容: https://www.nvidia.cn/gtc-global/?ncidref-dev-876561 文章目录什么是让ChatGPT爆火的大语言模型(LLM)大型语言模型有什么用?大型语言模型如何工作?大型语言模型的热门应用在哪里可以找到大型语言…