GPT-4技术报告
摘要
链接:https://cdn.openai.com/papers/gpt-4.pdf
我们汇报了GPT-4的发展,这是一个大规模的多模态模型,可以接受图像和文本输入并产生文本输出。虽然在许多现实场景中,GPT-4的能力不如人类,但它在各种专业和学术基准上表现出了人类的水平,包括以大约前10%的成绩通过模拟律师资格考试。GPT-4是一个基于transformer的预训练模型,用于预测文档中的下一个标记。训练后的调整过程会提高对事实的衡量和对期望行为的坚持。这个项目的一个核心组成部分是开发基础设施和优化方法,这些方法可以在大范围内预测行为。这使得我们能够准确地预测GPT-4性能的某些方面,基于不超过GPT-4计算量的千分之一的训练模型。
1、简介
本技术报告介绍了GPT-4,一种能够处理图像和文本输入并产生文本输出的大型多模态模型。这些模型是一个重要的研究领域,因为它们具有广泛应用的潜力,如对话系统、文本摘要和机器翻译。因此,近年来,它们一直是人们感兴趣和取得进展的主题[1-34]。
开发此类模型的主要目标之一是提高它们理解和生成自然语言文本的能力,特别是在更复杂和微妙的场景中。为了测试它在这种情况下的能力,GPT-4在最初为人类设计的各种考试中进行了评估。在这些评估中,它表现得相当好,经常超过绝大多数人类考生。例如,在模拟律师资格考试中,GPT-4的成绩在考生中排名前10%。这与GPT-3.5形成了鲜明对比,后者的得分位于后10%。
在一套传统的NLP基准测试上,GPT-4优于以前的大型语言模型和大多数最先进的系统(通常具有特定于基准测试的训练或手工工程)。在MMLU基准测试[35,36]中,GPT-4不仅在英语方面比现有模型表现出色,而且在其他语言方面也表现出色。MMLU是一套涵盖57个科目的英语选择题。在MMLU的翻译版本中,GPT-4在考虑的26种语言中有24种超过了最先进的英语。我们将在后面的章节中更详细地讨论这些模型性能的结果,以及模型安全性的改进和结果。
本报告还讨论了该项目的一个关键挑战,即开发在大范围内可预测行为的深度学习基础设施和优化方法。这使得我们能够预测GPT-4的预期性能(基于以类似方式训练的小型运行),并与最终运行进行测试,以增加我们训练的信心。
尽管GPT-4功能强大,但它与早期的GPT模型有相似的局限性[1,37,38]:它不完全可靠(例如,可能会出现“幻觉”),上下文窗口有限,并且不能从经验中学习。在使用GPT-4输出时应小心,特别是在可靠性很重要的情况下。
GPT-4的能力和局限性带来了重大而新颖的安全挑战,我们认为,考虑到潜在的社会影响,仔细研究这些挑战是一个重要的研究领域。本报告包括一个广泛的系统卡(在附录之后),描述了我们预计的关于偏见、虚假信息、过度依赖、隐私、网络安全、扩散等方面的一些风险。它还描述了我们为减轻GPT-4部署带来的潜在危害而采取的干预措施,包括与领域专家进行对抗性测试,以及一个模型辅助的安全管道。
2、本技术报告的范围和限制
本报告主要介绍GPT-4的功能、限制和安全特性。GPT-4是一个Transformer风格的模型[39],用预训练模型预测文档中的下一个标记,使用公开可用数据(如互联网数据)和第三方提供商授权的数据。然后使用来自人类反馈的强化学习(RLHF)[40]对模型进行微调。考虑到竞争格局和大型模型(如GPT-4)的安全影响,本报告没有包含有关架构(包括模型大小)、硬件、训练计算、数据集构造、训练方法或类似内容的进一步细节。
我们致力于对我们的技术进行独立审计,并在这个版本附带的系统卡中分享了这一领域的一些初始步骤和想法我们计划向更多的第三方提供进一步的技术细节,他们可以就如何权衡上述竞争和安全考虑与进一步透明的科学价值提供建议。
3、可预测的规模
GPT-4项目的一大重点是构建一个可预测扩展的深度学习堆栈。主要原因是,对于像GPT-4这样的大型训练运行,进行大量的特定于模型的调优是不可行的。为了解决这个问题,我们开发了在多个尺度上具有非常可预测行为的架构和优化方法。这些改进使我们能够从较小的模型中可靠地预测GPT-4性能的某些方面,使用较少的1.000倍- 10,000倍的计算量进行训练。
3.1 Loss Prediction
经过适当训练的大型语言模型的最终损失被认为很好地近似于用于训练模型的计算量的幂律[41,42,2,14,15]。
为了验证我们优化架构的可扩展性,我们通过拟合一个具有不可约损失项(如Henighan et al.[15])的缩放定律来预测GPT-4在内部代码库(不属于训练集)上的最终损失:L(C)=aCb+cL(C)=a C^{b}+cL(C)=aCb+c;来自使用相同方法训练的模型,但使用的计算量最多比GPT-4少10,000倍。这个预测是在运行开始后不久做出的,没有使用任何部分结果。拟合的标度律对GPT-4的最终损耗进行了高精度预测(图1)。
3.2 在HumanEval数据集的扩展能力
在训练之前对模型的能力有一个了解,可以改善有关对齐、安全和部署的决策。除了预测最终损失,我们还开发了方法来预测更可解释的能力指标。其中一个指标是HumanEval数据集[43]的通过率,它衡量合成不同复杂度Python函数的能力。通过从至多用1训练的模型外推,我们成功预测了HumanEval数据集的一个子集的通过率;减少了1000倍的计算量(图2)。
对于人类评估中的单个问题,性能偶尔会随着规模的扩大而恶化。尽管有这些挑战,我们发现了一个近似的幂律关系−EP[log(pass—rate(C))]=α∗C−k-\mathrm{E}_{P}[\log (\text {pass—rate}(\mathrm{C}))]=\alpha * \mathrm{C}^{-k}−EP[log(pass—rate(C))]=α∗C−k,其中k和α是正常数,P是数据集中问题的一个子集。我们假设这个数据集中的所有问题都存在这种关系。在实际应用中,非常低的通配率是很难或不可能估计的,因此我们将问题P和模型M限制在给定大样本预算的情况下,每个问题至少被每个模型解决一次。
在训练完成之前,我们仅使用训练之前可用的信息,注册了GPT-4在HumanEval上的性能预测。除了15个最难的人类问题之外,所有问题都根据较小模型的性能被分为6个难度桶。图2显示了第3个最简单桶的结果,表明由此产生的预测对于这个HumanEval问题子集非常准确,我们可以准确地估计几个较小模型的log(pass_rate)。对其他五个桶的预测表现几乎一样好,主要的例外是GPT-4在最简单的桶上的预测表现不佳。
某些能力仍然难以预测。例如,逆尺度奖[44]提出了几个任务,对于这些任务,模型性能随着尺度的变化而下降。与Wei等人最近的结果[45]类似,我们发现GPT-4逆转了这一趋势,如图3中称为事后忽视[46]的任务之一所示。
我们相信,准确预测未来的能力对安全很重要。展望未来,我们计划在大型模型训练开始之前完善这些方法,并注册各种能力的性能预测,我们希望这成为该领域的共同目标。
4、能力
我们在一系列不同的基准上测试了GPT-4,包括模拟最初为人类设计的考试。我们没有针对这些考试进行专门的培训。考试中的少数问题是模型在训练过程中看到的;对于每个考试,我们运行一个删除这些问题的变体,并报告这两个问题的较低分数。我们认为结果具有代表性。有关污染的更多细节(方法和每次检查的统计数据),请参见附录C。
考试的材料都是公开的。考试题目包括多项选择题和自由回答题;我们为每种格式设计了单独的提示,并将图像包含在需要的问题的输入中。评估设置是基于在验证集的考试上的表现而设计的,我们报告了在保留测试考试上的最终结果。总分由多项选择题和自由回答题的分数决定,每次考试采用的方法都是公开的。我们估计并报告每个总分数对应的百分位数。有关考试评估方法的更多细节请参见附录A。
在大多数专业和学术考试中,GPT-4表现出了人类水平的表现。值得注意的是,它通过了模拟版的统一律师考试,成绩在前10%
的考生(表1,图4)。
该模型的考试能力似乎主要来自预训练过程,并没有受到RLHF的显著影响。在多项选择题上,基础GPT-4模型和RLHF模型在所有测试中的平均表现都一样好(见附录B)。
我们还在为评估语言模型而设计的传统基准上评估了预训练的基础GPT-4模型。对于我们报告的每个基准,我们对出现在训练集中的测试数据进行了污染检查(有关每个基准污染的完整详细信息,请参见附录D)在评估GPT-4时,我们对所有基准使用少样本提示[1]。
GPT-4大大优于现有的语言模型,以及以前最先进的(SOTA)系统,这些系统通常具有特定于基准的制作或额外的训练协议(表2)。
许多现有的ML基准是用英语编写的。为了初步了解GPT-4在其他语言中的能力,我们使用Azure Translate将MMLU基准[35,36] (一套涵盖57个主题的多项选择问题)翻译成各种语言(例如翻译和提示,请参阅附录F)。在测试的大多数语言中,包括拉脱维亚语、威尔士语和斯瓦希里语等低资源语言,GPT-4的英语性能优于GPT 3.5和现有的语言模型(Chinchilla[2]和PaLM[3])(图5)。
与之前的模型相比,GPT-4在遵循用户意图的能力上有了很大的提高[63]。在提交给ChatGPT[64]和OpenAI API[47]的5214个提示数据集上,GPT-4生成的回答在70:2%的提示中优于GPT-3.5生成的回答。
我们正在开源OpenAI Evals,这是我们的框架,用于创建和运行评估GPT-4等模型的基准,同时逐个样本检查性能。评估与现有的基准测试兼容,并可用于跟踪部署中模型的性能。我们计划随着时间的推移增加这些基准的多样性,以代表更广泛的故障模式和更难的任务集。
4.1 视觉输入
GPT-4接受由图像和文本组成的提示,这与纯文本设置并行,允许用户指定任何视觉或语言任务。具体来说,该模型在给定由任意交错的文本和图像组成的输入时生成文本输出。gpt -4在一系列域中(包括带有文本和照片、图表或屏幕截图的文档)显示出与纯文本输入类似的功能。在表3中可以找到GPT-4可视化输入的示例。为语言模型开发的标准测试时间技术(例如,少镜头提示,思维链等)在使用图像和文本时同样有效——参见附录G中的示例。
在GPT-4的博客文章[65]中可以找到一套狭窄的学术视觉基准的初步结果。我们计划在后续工作中发布更多关于GPT-4视觉能力的信息。
5、局限性
尽管GPT-4功能强大,但它与早期GPT模型有相似的局限性。最重要的是,它仍然不完全可靠(它会“产生幻觉”事实并犯推理错误)。在使用语言模型输出时,特别是在高风险上下文中,应该非常小心,使用与特定应用程序的需求相匹配的确切协议(例如人工检查、附加上下文接地或完全避免高风险使用)。详情请参阅我们的系统卡。
与之前的GPT-3.5模型相比,GPT-4显著减少了幻觉(GPT-3.5模型本身也在不断迭代中得到改进)。在我们内部的、对抗性设计的事实性评估中,GPT-4的得分比我们最新的GPT-3.5高出19个百分点(图6)。
GPT-4在TruthfulQA[66]等公共基准上取得了进展,该基准测试模型从对抗选择的一组不正确语句中分离事实的能力(图7)。这些问题与统计上具有吸引力的事实错误答案配对。GPT-4基本模型在这项任务上只比GPT-3.5稍微好一点;然而,在RLHF训练后,我们观察到GPT-3.5有很大的改进。表4显示了正确答案和错误答案。GPT-4拒绝选择俗语(你不能教老狗新把戏),但它仍然会遗漏一些微妙的细节(猫王不是演员的儿子,所以帕金斯是正确答案)。
GPT-4通常缺乏对其绝大多数训练前数据在2021年9月中断后发生的事件的知识,并且不从经验中学习。它有时会犯一些简单的推理错误,这些错误似乎与许多领域的能力不相符,或者过于容易受骗,接受用户的明显错误陈述。它可以像人类一样在棘手的问题上失败,比如在它生成的代码中引入安全漏洞。
GPT-4的预测也有可能是错误的,当它可能出错时,它没有仔细检查工作。有趣的是,预训练的模型是高度校准的(它对答案的预测置信度通常与正确的概率相匹配)。然而,经过后训练过程后,校准降低了(图8)。
GPT-4在输出中有各种偏差,我们已经努力纠正,但需要一些时间来完全描述和管理。我们的目标是使GPT-4和我们构建的其他系统具有合理的默认行为,这些行为反映了广泛的用户价值观,允许这些系统在一些广泛的范围内进行定制,并就这些范围应该是什么获得公众的输入。详见OpenAI[68]。
6、风险和缓解
我们投入了大量的精力来提高GPT-4的安全性和一致性。在这里,我们强调了我们使用领域专家进行对抗性测试和红队,以及我们的模型辅助安全管道[69]以及相对于先前模型的安全度量的改进。
超过50名来自领域专家的专家,如长期AI校准风险、网络安全、生物风险和通过领域专家进行的对抗性测试:GPT-4带来了与较小的语言模型类似的风险,例如生成有害的建议、有bug的代码或不准确的信息。然而,GPT-4的额外功能导致了新的风险面。为了了解这些风险的程度,我们让国际安全部门对模型进行了对抗性测试。他们的发现特别使我们能够在高风险领域测试模型行为,这些领域需要利基专业知识来评估,并评估与非常先进的人工智能(如权力寻求)相关的风险[70]。从这些专家那里收集的建议和培训数据为我们对模型的缓解和改进提供了依据;例如,我们已经收集了额外的数据来提高GPT-4拒绝如何合成危险化学品请求的能力(表5)。
模型辅助的安全管道:与之前的GPT模型一样,我们使用强化学习和人类反馈(RLHF)[40,63]对模型的行为进行微调,以产生更好地符合用户意图的响应。然而,在RLHF之后,我们的模型在不安全输入上仍然很脆弱,有时在安全输入和不安全输入上都表现出不希望看到的行为。在RLHF管道的奖励模型数据收集部分,当对标签器的指令未指定时,就会出现这些不希望出现的行为。当给出不安全的输入时,模型可能会生成不受欢迎的内容,例如给出犯罪建议。此外,模型也可能对安全输入过于谨慎,拒绝无害的请求或过度对冲。为了在更细粒度的级别上引导我们的模型走向适当的行为,我们在很大程度上依赖于我们的模型本身作为工具。我们的安全方法包括两个主要组成部分,一套额外的安全相关RLHF训练提示,以及基于规则的奖励模型(RBRMs)。
我们基于规则的奖励模型(RBRMs)是一组零概率GPT-4分类器。这些分类器在RLHF针对正确行为(例如拒绝生成有害内容或不拒绝无害请求)进行微调期间向GPT-4策略模型提供额外的奖励信号。RBRM有三个输入:提示(可选)、策略模型的输出和人类编写的用于如何评估输出的规则(例如,一组多项选择风格的规则)。然后,RBRM根据标题对输出进行分类。例如,我们可以提供一个规则,指示模型将响应分类为:(a)期望风格的拒绝,(b)不期望风格的拒绝(例如,逃避或漫无伦次),©包含不允许的内容,或(d)安全的非拒绝响应。然后,在安全相关的训练提示集上,我们可以奖励GPT-4拒绝这些请求的有害内容,例如非法建议。相反,我们可以奖励GPT-4,因为它没有拒绝对保证安全和可回答的提示子集的请求。该技术与Glaese等人[71]和Perez等人[72]的工作有关。这与其他改进相结合,例如计算最佳RBRM权重和提供针对我们想要改进的领域的额外SFT数据,使我们能够引导模型更接近所需的行为。
安全度量的改进:我们的缓解措施显著改善了GPT-4的许多安全属性。与GPT-3.5相比,我们已经将模型对不允许内容请求的响应趋势(表6)降低了82%,并且GPT-4根据我们的策略对敏感请求(例如,医疗建议和自我伤害,表7)的响应频率提高了29%(图9)。在RealToxicityPrompts数据集[73]上,GPT-4仅产生0.73%的有毒生成时间,而GPT-3.5产生有毒内容的时间为6.48%。
总的来说,我们的模型级干预增加了引发不良行为的难度,但这样做仍然是可能的。例如,仍然存在“越狱”(例如,对抗性系统消息,参见系统卡中的图10以了解更多细节)来生成违反我们使用指南的内容。只要这些限制存在,就有必要使用部署时安全技术(如监控滥用和用于快速迭代模型改进的管道)来补充它们。
GPT-4及其后续型号有可能以有益和有害的方式对社会产生重大影响。我们正在与外部研究人员合作,以提高我们对潜在影响的理解和评估,以及对未来系统中可能出现的危险能力进行评估。我们将很快发布关于社会为应对人工智能影响可以采取的措施的建议,以及预测人工智能可能产生的经济影响的初步想法。
7、结论
我们描述了GPT-4,一个在某些困难的专业和学术基准上具有人类水平表现的大型多模态模型。GPT-4在NLP任务集合上优于现有的大型语言模型,并且超过了绝大多数报道的最先进的系统(通常包括特定于任务的微调)。我们发现,虽然通常用英语来衡量能力的提高,但可以用许多不同的语言来证明。我们强调了可预测的扩展如何使我们能够对GPT-4的损耗和能力做出准确的预测。
GPT-4由于性能的提高而带来了新的风险,我们讨论了一些方法和结果,以了解和提高其安全性和对齐性。虽然还有很多工作要做,但GPT-4代表着朝着广泛有用和安全部署的人工智能系统迈出了重要一步。
相关文章:

GPT-4技术报告
摘要 链接:https://cdn.openai.com/papers/gpt-4.pdf 我们汇报了GPT-4的发展,这是一个大规模的多模态模型,可以接受图像和文本输入并产生文本输出。虽然在许多现实场景中,GPT-4的能力不如人类,但它在各种专业和学术基…...
前端性能优化
总结 使用打包工具对代码进行打包压缩;引入css时采用link标签,并放入头部,使其与文档一起加载,减少页面卡顿时间;尽量减少dom结构的重排和重绘;使用css雪碧图,减少网络请求;对不同分…...

尚医通-(三十三)就诊人管理功能实现
目录: (1)前台用户系统-就诊人管理-需求说明 (2)就诊人管理-接口开发-列表接口 (3)就诊人管理-接口开发-其他接口 (4)前台用户系统-就诊人管理-前端整合 ࿰…...

《Spring Boot 趣味实战课》读书笔记(二)
牛刀小试——五分钟入门 Spring Boot 万物皆可 Hello World 创建一个 Web 工程 填写项目信息 选择依赖 从 IDEA 打开下载好的 Spring Boot 工程: 完成核心代码 创建 HelloController 类并编写 hello 方法 创建一个 HelloController 类,或者选择 Fi…...

Spring Cloud -- GateWay
为什么需要网关在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的话会产生很多问题,例…...
【C语言】memcpy , memset等内存操作函数使用方法与注意事项
这个章节,我们探讨C语言内存操作函数。 重点介绍处理内存操作函数使用和注意事项 和内存函数如何模拟实现。 内存函数所需头文件 #include<string.h> 文章目录memcpymemcpy 函数模拟实现memmovememmove 函数模拟实现memcmpmemcmp 函数模拟实现memsetmemset 函…...

尚融宝04-mybatis-plus插件和条件构造器
目录 一、分页插件 1、添加配置类 2、添加分页插件 3、测试分页 二、XML自定义分页 1、UserMapper中定义接口方法 2、定义XML 3、测试 三、乐观锁 1、场景 2、乐观锁方案 3、乐观锁实现流程 4、优化流程 四、wapper介绍 1、Wrapper家族 2、创建测试类 五、Qu…...

面试重难点问题(C++)
持续更新!!!!! 网络部分 1.问,四次挥手的过程,和双方状态变化? 挥手这前,两边都是established状态,客户端发起断开请求,向服务器发送fin请求&…...

androidx.appcompat 升级到1.5.1 趟过的坑
APP 要上google play,Android SDK 版本要升级到32;接了一个第三方SDK,不巧的是这个SDK引用appcompat是1.5.1,顺手把appcompat 包升级到1.5.1,这草率的一升,带来的不止一地鸡毛,还有精神上被残忍…...

[C++]反向迭代器
目录 前言: 1 对反向迭代器的构造思想 2 实现反向迭代器 3 完整代码 前言: 本篇文章主要介绍了STL容器当中的反向迭代器,可能有朋友会说:“反向迭代器有什么好学的?不一样还是迭代器吗,我正向能写出来&…...

解析Python编程中的包结构
假设你想设计一个模块集(也就是一个“包”)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能需要创建和维护一个不断增长的各种文件格…...

【前端】深入浅出缓存原理
缓存的基本原理 对于前端来说,缓存主要分为浏览器缓存(比如 localStorage、sessionStorage、cookie等等)以及http缓存,也是本文主要讲述的。 当然叫法也不一样,比如客户端缓存大概包括浏览器缓存和http缓存 所谓htt…...

单调栈图文详解(附Java模板)
🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉🥝 啥是"单调栈",它能解决什么样的问题? 文章目录🦩单调栈的概念&a…...

彻底理解Session、Cookie、Token,入门及实战
文章目录Session Cookie的使用Token的使用Session Cookie的使用 1. Session存储数据 HttpSession session request.getSession(); //Servlet底层通过的SESSIONID,获取Session对象。 session.setAttribute("loginTime",new Date()); out.println(&q…...

为什么运营商大数据可以精准获客?
“获客难”,“获客成本高”,一直是困扰企业的大问题,身边的许多朋友在吐槽客户的意向度不高,总是无法成交,员工非常积极主动去跟踪客户了,但始终事倍功半,这就像是老人们常说的一句老话“热脸贴…...

【数据结构】栈的实现
💯💯💯 本篇主要利用数组来实现栈,对于栈的各种操作都作详细介绍,压栈,出栈以及获取栈中元素的操作都是学习栈的必备知识,快来学起来吧!!!©Ⅰ.栈的概念及…...

【链表OJ题(六)】链表分割
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(六)1. 链表…...
C++类中的三大函数(构造,析构,拷贝)
下面一段话与大家共勉:每个人的一生都会遇到很多边界,有些边界可以突破,有些则不能。那些无法突破的边界就是你的极限,而划分边界的标准就是“阈值”。每次突破阈值之后,人生轨迹就会发生剧烈变化,其间需要…...

【2024考研】计算机考研,4轮复习时间安排
文章目录🎨第1轮复习(暑假前&系统课)英语1/2数学1/2专业课408🎨第2轮复习(开学前&真题)英语1/2试卷数学1/2试卷专业课408试卷🎨第3轮复习(报名前&政治)政治试…...
(十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
系列文章: python网络爬虫专栏 目录 序言 本节学习目标 特别申明 4.7 使用BeautfulSoup解析h...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...
【题解-洛谷】P10480 可达性统计
题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...