拥抱还是革命,ChatGPT时代 AI专家给出15条科研生存之道

news2024/11/19 10:21:11

来源:专知   微信号:Quan_Zhuanzhi

你是学术机构的人工智能研究员吗?你是否担心自己无法应对当前人工智能的发展步伐?您是否觉得您没有(或非常有限)访问人工智能研究突破所需的计算和人力资源?你并不孤单; 我们有同样的感觉。越来越多的人工智能学者不再能找到资源在全球范围内保持竞争力。这是一个最近出现的现象,但正在加速发展,私营公司将大量计算资源投资于前沿AI研究。在这里,我们将讨论学术科研工作者如何在保持竞争力。我们还简要讨论了大学和私营部门如果愿意,可以做些什么来改善这种状况。这不是一个详尽的策略列表,你可能不同意所有的策略,但它有助于开始讨论。这些策略包括:

    • 放弃?

    • 尝试扩展

    • 缩小规模

    • 重用与重制 

    • 分析而非综合

    • 强化学习

    • 小模型 无计算

    • 在专业应用领域或领域开展工作 

    •  解决目前很少关心的问题 

    •  尝试那些“不应该”有效的事情 

    • 做一些“看起来不好”的事情

    •  创业;剥离出去!

    •  合作或跳槽! 

    • 大型行业参与者如何提供帮助? 

    • 大学如何提供帮助

https://www.zhuanzhi.ai/paper/f5b56758eda2c2fd84f5b70a9c567822

作为一个在大学里做人工智能研究的人,你与企业人工智能研究机构(如DeepMind、Open AI、谷歌Brain和Meta AI)发展了一种复杂的关系。每当你看到这样一篇论文,它训练某种巨大的神经网络模型来做一些你甚至不确定神经网络能做的事情,毫无疑问地推动最先进的技术,并重新配置你的想法,你会产生矛盾的情绪。一方面:非常令人印象深刻。很高兴你推动了人工智能的发展。另一方面:我们怎么可能跟上?作为一名人工智能学者,领导一个有几个博士生和(如果你足够幸运)一些博士后的实验室,也许在你的实验室中只有几十个GPU,这种研究是根本不可能做的。

要明确的是,情况并非一直如此。就在十年前,如果你拥有一台性能不错的台式电脑和互联网连接,你就拥有了与顶尖研究者竞争所需的一切。那时的突破性论文通常是由一两个人在他们的普通工作站上完成所有实验。对于那些在过去十年内进入研究领域的人来说,特别值得指出这一点,因为对他们来说,巨大的计算资源需求是理所当然的。

如果从深度学习中学到了一件事,那就是规模化是有效的。从ImageNet[15]比赛及其各种冠军,到ChatGPT、Gato[13],以及最近的GPT-4[1],我们看到更多的数据和计算能带来数量上和很多时候甚至质量上更好的结果。(当你阅读这篇文章时,这个非常近期的AI里程碑列表可能已经过时了。)当然,学习算法和网络架构也有所改进,但这些改进只在大规模实验的背景下才真正有用。(Sutton谈到了“苦涩的药丸”,指的是在更多计算资源可用时,扩展性好的简单方法总是能够获胜[18]。)如今,学术研究人员无法实现这种规模。据我们了解,普通研究者可用的计算量与保持竞争力所需的计算量之间的差距每年都在增加。这在很大程度上解释了为什么许多学术界的AI研究者对这些公司怀有怨恨之情。与同行之间的健康竞争是一回事,但与那些资源丰富到轻易做到你永远无法完成的事情的人竞争则是另一回事,无论你的想法有多好。当你在一个研究课题上工作了一段时间,而DeepMind或OpenAI决定研究同样的事物时,你可能会有与小镇杂货店主人在沃尔玛在隔壁开设商店时的感受一样。这是令人悲哀的,因为我们希望相信研究是一个开放且富有合作精神的事业,每个人都能得到他们的贡献得到认可,不是吗?

那么,如果你只是一位教授,拥有有限的团队规模和有限的计算资源,面对资金充足的研究公司的猛攻,你如何保持相关性?这是一个困扰我们和许多同事多年的问题。最近的事件,如GPT-4等模型惊人地强大,同时惊人地封闭源代码且缺乏公开细节,使得这个问题变得更加紧迫。我们从不同级别的多位研究者那里听说,无论是亲自还是通过社交媒体,他们都担心在资源匮乏和大型科技公司的不公平竞争下进行有意义的研究。首先让我们明确一点:我们两个都很安全。我们拥有终身教授职位,我们在学术界的成长相当迅速,部分原因是因为我们系统地在视频游戏领域推动AI的发展。尽管我们显然关心继续开展相关的AI研究,但我们主要是为了更年轻的同事们写这篇文章,他们可能想知道选择哪条职业道路。是进入学术界值得尝试,还是加入大型科技公司,或者创立一家初创企业?从事AI职业是个好主意,还是当一名水管工更好?你应该成为机器中的一个齿轮,还是一个叛逆者?(当你一无所失时,通常更容易成为叛逆者,这要么是在职业生涯初期,要么是获得终身职位时。)尽管一个人可以非常熟练,但这场保持竞争力的辉煌战斗是否已经输掉了?我们是不是就要在这里顺从我们的规律?这篇论文部分是作为认真的建议,部分是作为情感上的鼓励,但最重要的是与大家展开讨论,在战斗彻底失败之前改善我们作为学者的地位。我们并不希望阻止AI技术的发展(即使我们能);相反,我们希望讨论那些能使尽可能多的人参与这一旅程的策略。

如果你是一名人工智能学者,对你的选择感到绝望,下面是一些想法的列表。这些选项没有特定的顺序。我们在这里也没有提出任何特别的建议。然而,在文件的最后,我们讨论了大型科技公司和大学可以做些什么来改善这种情况。在那里,我们提出了一些具体的建议。

2. 放弃吧!

放弃总是一个选择。不是放弃做研究,而是放弃做真正具有影响力和突破性的事情。在中等级别的期刊和会议上发表论文,仍然有很多技术细节和次次问题可以探讨。注意:(1)这种方法最适合已经有稳定职位的人,而且你并不太关心晋升;(2)当你决定从事研究生涯时,这并不是你真正想要做的事情,对吧?因为这种激烈的竞争而强迫自己调整研究议程,类似于调整研究以适应欧洲委员会或美国国家科学基金会等资助机构的某些任意优先事项。至少争取后者可能为你的实验室提供一些资金,反过来,可以帮助你与一些有才华的AI研究者和博士生合作。值得注意的是,我们两人都认为自己非常幸运,因为我们曾经协调或参与了一些小型和大型研究项目,这些项目让我们能够支持我们的研究议程,并帮助我们(部分地)确保我们的职位。

3 尝试扩展 

与压倒性的竞争对抗是一种令人钦佩的情怀。如果扩展有效,让我们在大学实验室里实现它!让我们去挑战风车(GPU风扇)!最明显的问题是获取CPU和GPU的途径。假设你从某个地方获得了5万美元的云计算资金,并开始运行你的大型实验。但与训练类似GPT-3的项目所需的费用相比,这是非常少的。最近一个能在Minecraft中制作钻石稿的OpenAI代理需要在720个V100 GPU上训练9天[2];这相当于花费几十万美元进行一次实验。即使是享有声誉的ERC(欧盟)或NSF(美国)资助也无法支持如此高的投资水平。然而,花费5万美元在云计算上可以让你获得比一堆游戏PC更多的计算能力,所以你可以稍微扩展一下。至少对于那个实验来说。但正如我们所知,大多数实验在第一次尝试时是行不通的。对于我们看到的每一个大型实验,我们需要花费数月甚至数年的时间进行原型设计、概念验证、调试、参数调优和失败的尝试。你需要不断地获得这种计算能力。不太明显的问题是,你需要一个合适的团队来构建可扩展的实验软件,这与学术工作结构并不容易兼容。计算机科学领域的典型学术研究实验室的大多数成员都是需要在几年内完成学业的博士生,他们需要进行独立的项目工作,发表多篇第一作者论文,以便在毕业后找到工作。一个大型AI项目通常意味着团队的大部分成员需要在同一个项目上工作很多个月或者几年,而只有其中一个人可以成为论文的第一作者。团队可能还包括一些执行“平凡”的软件工程任务的人员,这些任务对项目的成功至关重要,但它们本身并不被视为AI研究。成功的大型项目所需的结构与学术界的结构根本不兼容。

4 缩小规模 

一种绕过问题的热门方法是关注简单而具有代表性的(玩具)问题,这些问题将在理论上证明一种新方法的优势,或展示一种新方法的相对优势。比如,一篇关于行为变换器的最近论文[17]展示了该方法在一个只需要简单的多层感知器来解决的玩具导航任务上的优势。后来在[11]中采用了类似的方法。然而,这两项研究可能具有影响力,因为它们在需要大型模型和大量计算训练的流行游戏和机器人基准问题上展示了算法的能力。在[10]中,我们再次观察到了相同的模式:在一个玩具(赌博)环境中提出了一个案例,但影响力,可以说,来自于该算法在更复杂但计算密集型问题中所展示的相对优势。这种方法的一个缺点是,人们会被高分辨率的漂亮颜色所吸引,把一辆真正的汽车在道路上导航比一辆玩具汽车更认真对待,尽管挑战可能是相同的。因此,你会得到较少的媒体曝光。此外,还有一些领域,如语言,很难进一步缩小规模。

5 重用与重制 

过去十年中,AI之所以能够如此迅速地发展,核心原因之一就是研究人员将他们的代码和模型共享给科学界。在过去,模型共享和代码可访问性既不是AI研究人员的常规做法,也不是他们的优先事项。能够访问预先训练好的大型模型,如ImageNet [15]、ViT [4]或GPT的变体[?],可以帮助你节省时间和精力,因为你可以采用它们的大部分内容,并对自己的特定问题进行微调。可以说,一个人需要假设这些大型模型的表示足够通用,以便在有限的训练中为下游任务提供良好的性能。不幸的是,对大型模型进行微调和事后分析通常还不足以提供良好的性能。

6 分析而非综合

另一种方法是分析公开可用的预训练模型。虽然这可能不会直接为新功能做出贡献,但仍然可以取得科学进展。目前的状况是,我们拥有公开可用的优秀文本和图像生成模型,但我们对它们的理解并不充分。实际上,我们几乎没有完全理解它们。让我们面对现实:对于任何人来说,变换器都不是直观的东西,而这些模型所接受的培训数据的规模本身几乎是无法理解的。有很多工作要做,例如以创造性的方式探测它们,并开发可视化和概念设备来帮助我们理解它们。人们可以用不同的心态进行分析。尝试寻找和描述已经学到的特定电路和机制是有用的,可以帮助我们(好吧,其他有资源的人)在未来创造更好的模型。但是人们也可以扮演不断寻找破解方法的纠缠不休的角色!这是有价值的,不管那些试图从大型模型中获利的人怎么说。 

7 强化学习!无数据! 

人们可能会降低对数据的要求,而是通过(在线)强化学习(RL)的视角来处理AI问题。遵循RL路径可能允许您绕过与数据可用性、分析、存储和处理相关的所有问题;然而,它并不一定减少所需的计算工作量。事实上,即使是最有效的RL方法也被认为在计算方面非常繁重,因为探索过程本身就很昂贵。此外,塑造奖励函数通常涉及黑魔法(非正式)或实用智慧(更正式)的形式。也就是说,研究人员通常需要不断地用不同类型的奖励(以及其他超参数)运行漫长的实验才能取得突破性的结果。因此,最终还是要降低问题的复杂性。关键是,如果您想摆脱大数据集,除非您在简单(玩具)问题或专门领域工作,否则您可能仍然面临大型计算;下一节将专门讨论后一种策略。

8 小模型!无计算! 

另一种有效策略是在模型规模上进行妥协以节省计算。在许多情况下,您可能希望或需要一个较小的模型。想象一下,能够解决问题或完成任务的最小模型。这对现实世界的应用尤为重要。例如游戏、物联网和自动驾驶汽车等领域,可以让AI部署在终端用户旁边以及用户生成的数据旁边,即在网络的边缘。这通常被称为边缘AI[8],当内存要求较低且推理迅速发生时,AI应用可以在物理世界的设备上运行。神经进化和神经结构搜索[8]以及知识蒸馏[5, 9]方法只是边缘AI可用方法的一部分。注意,除了从较小的模型中学到更多信息外,还可以尝试从更少的数据中学到更多信息[6]。遵循这条研究路径可能会在我们理解模型内部运作方面带来重大突破。研究小型AI模型使得分析变得更容易,提高了模型所做的事情的可解释性。在设备上部署模型有助于解决隐私问题。重要的是,它支持绿色AI研究倡议[16],提倡包容性AI,考虑(并试图最小化)其环境足迹。显然,小型模型能做的事情是有限的,但我们认为这个研究方向的重要性将在未来几年急剧增长。

9 在专业应用领域或领域开展工作 

选择一个小众但已经建立的研究领域是一种相当有效的策略,这个领域可能超出了行业的直接兴趣范围,尝试在该领域内创新。通常,将您的想法带到一个全新的领域并进行测试是一种成功的策略,但较少情况下,这些成果会对该领域之外产生很大的影响。有很多例子表明,小众领域最终由于少数专注的研究人员的推动而变得占主导地位。我们目前主要采取这种策略,将游戏领域的AI作为我们的主要科学社区,因为很少有大公司会认真投入到现代游戏AI。想想早期00年代,视频游戏领域如何渗透并主导了机器人和计算机视觉研究社区(例如当时的IJCAI和AAAI会议系列)。想想神经网络和深度学习方法在支持向量机和回归模型投资社区的主导地位(例如十年前的NeurIPS会议)。还可以思考强化学习和深度学习如何改变了多智能体学习和认知/情感建模的核心原则,例如在AAMAS,ACII和IVA会议代表的社区中。这种策略的一个核心缺点是在AI领域最具影响力的大型场合(如NeurIPS,AAAI,ICML和IJCAI)很难让您的论文被接受。您的论文及其结果可能最终无法引起广泛关注。然而,创建您自己的社区并拥有自己的出版会议是非常可能的。

10 解决目前很少关心的问题 

专注于一个已经确立的细分市场或应用领域是相对安全的策略,而寻找一个尚不存在的细分市场或应用则有一定的风险。基本上,关注几乎没有人看到其重要性的问题,或者没有人认为有前景的方法。一个方法是寻找人们尚未认真将人工智能应用于其中的领域。一个好主意是研究一个既不及时也不“性感”的领域。这里的赌注是,这个特定的应用领域将在未来变得重要,无论是因为它本身的价值,还是因为它使其他东西变得可能。我们两个人都走了这条路。15年前,游戏的程序化内容生成是一个非常小众的话题,我们都帮助将其引入研究界[20, 23];最近,它不仅对游戏行业变得更加重要,还作为一种帮助泛化(深度)强化学习的途径变得更加重要[14, 19]。强化学习研究是一个拥有每年成千上万论文发表的核心人工智能领域,这使得这个曾经相对鲜为人知的话题变得更加重要。这种高风险高回报的心态可能导致一条孤独的道路,但从长远来看,它可能会带来丰厚的回报。因此,看看周围,和不是人工智能研究员的人交谈。你看到哪些问题领域很少应用人工智能,而人工智能研究员似乎并不了解或关心?未来可能会有人关心这些领域吗?如果是这样,你可能需要在其中一个领域深入挖掘。

11 尝试那些“不应该”有效的事情 

小型学术团队的另一个相对优势是能够尝试那些“不应该有效”的事物,这意味着它们不受理论或实验证据支持。大型工业研究实验室的动态通常是研究人员有动力尝试那些可能有效的事物;否则,钱就会损失。在学术界,失败可能与成功一样有启发性和价值,而且整体风险较低。许多AI领域的重要发明和观念来自于尝试“错误”的事物。特别是,深度学习的所有内容都源于研究人员固执地研究神经网络,尽管有很好的理论原因表明它们不应该有效。

12. 做一些“看起来不好”的事情

一家公司越大、越重要,就越容易受到道德和观念的约束。任何公司最终都要对其股东负责,如果股东认为公司遭受“声誉损害”,他们可以很容易地解雇首席执行官。因此,大公司会尽量避免做任何看起来很糟糕的事情。为了解决这个问题,大公司有时会资助初创公司做更多可能出错的实验性工作(想想微软和OpenAI)。但即使是这样的戏剧也有局限性,因为糟糕的公关可能会像旧金山湾的潮水一样涌回来。作为一个没有职位或已经有一个安全职位的个人研究员,你不会有任何损失。你可以做你想做的疯狂的事情。你只受法律和你自己人格的约束。我们绝不认为你应该做不道德的研究。无论如何,试着做正确的事情。但是,你认为令人反感的东西,可能与美国沿海地区一群受教育程度过高、以自由派为主的白人工程师所认为的令人反感的东西截然不同。富裕科技公司的公关部门、伦理委员会和董事会信奉一套非常特殊的价值观。但是世界很大,充满了不同的人,不同的文化。所以有一个很大的机会去做这些科技公司即使可以做也不会做的研究。作为一个利用这种机会的项目的例子,我们中的一个人参与了一个项目,通过创建一个自动补全系统来批判性地检查当前写作支持系统中“中性英语”的正统性,该语言模型假设你以查克·廷格(Chuck Tingle)的语气写作,查克·廷格是荒谬的科幻政治讽刺小说《同性恋情色》(gay erotica[7])的著名作者。我们的猜测是,这个项目不会被Amazon或谷歌批准出版。另一个例子就是这篇论文。同样,你可能会发现,你偏离了大型科技公司关于裸体、性、粗鲁、宗教、资本主义、共产主义、法律和秩序、正义、平等、福利、代表、历史、生殖、暴力或其他话题的文化共识。由于所有AI研究都发生在文化和政治背景中,并受到其影响,因此请将偏离常规视为一次机会。如果你不能做他们不能做的研究,那就做他们不愿做的研究。

13 创业;剥离出去! 

现在应该很明显,学术界在某种程度上,矛盾地限制了学术人工智能研究。即使有人设法获得大规模的数百万项目,这也仅涵盖了现代AI研究所需的人力和计算资源的一部分。AI科学家之间的一个流行选择是将他们的想法从大学实验室剥离出去,创立一家公司,逐步将AI研究转化为一系列商业标准的服务或产品。两位作者都通过共同创立modl.ai [12] 参与了这个过程,并从中学到了很多。成为应用AI领域的一员有很多好处。原则上,您可以获得实际应用中丰富的数据,而这些数据您以前无法获得。此外,您的AI算法在具有挑战性的商业标准应用中得到测试,并且必须在实际环境中运行。最后,您通常会获得更多的计算能力,并且如果初创公司扩大规模,您将获得不断增长的人力资源。然而,这个过程远非理想,因为有几个限制因素需要考虑。首先,并非所有研究想法都直接适用于创业商业模式。您最好的研究想法可能在理解世界方面非常出色,或者至少能在高度知名的场合发表,但这并不意味着可以轻易地将其制成产品。其次,如今实验室中取得的许多杰出成果可能需要经历漫长的跑道,直到它们变成某种商业案例。大多数初创公司进行开发而不是研究,因为跑道较短,你需要在两年左右的下一轮融资之前拥有一个功能正常的产品,最好还有一些市场吸引力。第三,即使您获得了一些投资,这并不意味着您拥有无限的计算预算。种子基金通常在数百万美元的范围内,这并不能让您具备进行OpenAI级别实验的能力,尤其是您需要支付员工真实的工资(而非博士生津贴)。第四,并非每个AI学者都喜欢这种冒险。归根结底,大多数学者在选择学术职业道路时,早就对他们的优先事项达成了共识。

14 合作或跳槽! 

如果上述所有选项都不适合您,而您仍然想通过大规模方法进行创新,这些方法需要大量数据进行训练,那么您可以始终与拥有计算和数据的人合作。有几种方法可以继续采用这种方法。位于领先AI公司附近的大学具有相对优势,因为本地社交网络和面对面会议使得合作更容易。远程大学的研究人员仍然可以通过研究访问、实习和实习作为联合研究项目的一部分建立合作关系。更激进地说,一些成熟的AI教授决定将他们的部分(如果不是全部)研究时间投入到工业合作伙伴那里,甚至将整个实验室搬到那里。这种合作伙伴关系、实习或实验室转移的结果可能是惊人的 [21,22]。乍一看,这对AI学者来说似乎是最好的前进方式,然而,1) 产生的知识产权并不总是可以发表,2) 并非所有人都能或愿意在AI产业实验室工作。有人甚至认为,创新应该由公共机构在产业的支持下推动,而不是反过来。因此,大学有责任保留(部分或全部)其培养的才华横溢的AI研究人员(学者和学生)以及他们产生的知识产权。否则,AI教育和研究最终将在大学环境中变得多余。接下来,让我们更仔细地看一下这种关系,并概述工业公司和大学之间可能互相帮助的方式。

15 大型行业参与者如何提供帮助? 

目前尚不清楚拥有充足资金的AI实验室的大公司是否真的想帮助缓解这种情况。个别研究人员和管理者可能关心学术AI研究的低迷,但公司关心的是底线和股东价值,拥有竞争力的学术研究社区可能或可能不符合他们的最佳利益。然而,在很大程度上,大型私营部门行为体确实关心这个问题,他们可以做很多事情。从最基本的层面上说,开放源代码的模型,包括权重和训练脚本,会有很大帮助。这允许学术AI研究人员研究经过训练的模型,对其进行微调,并围绕它们构建系统。这仍然让学术研究人员在训练新模型方面处于劣势,但这是一个开始。值得赞扬的是,一些大型工业研究组织定期公开发布他们最有能力的模型。其他组织没有这样做,他们因为不这样做而受到谴责是理所当然的。改善这种情况的下一步是与学术界合作。如前所述(请参阅第14节),一些大型机构经常这样做,主要是通过接受现任博士生作为实习生,允许他们进行大规模工作。有些公司提供给某些学术研究者联合任职,还有一些甚至偶尔提供研究资助。所有这些都很好,但还可以做更多。特别是,学者们可以通过提出他们将共同完成的工作来发起合作。更进一步地说,那些真正想要帮助弥补学术界和产业界鸿沟的私营公司可以选择公开合作:公布他们的计划,提交代码、模型和开发更新到公共存储库,允许学者自由贡献。这不是大多数公司的工作方式,通常他们有很好的保密理由。另一方面,让学者免费为你的代码和培训做贡献,可能会有很大的收获。

16 大学如何提供帮助?

尽管产业界可能愿意提供帮助,但主要的倡议应该来自那些希望推动创新的大学。值得注意的是,更广泛的AI领域中一些最具影响力的论文涉及到大学部门。这些论文是由与公司合作或参与公司工作的研究人员共同撰写的。成功的例子已经有了[21, 22, 3],但大学需要做更多的工作来促成这样的合作。事实上,学术机构有很多方法可以启动和促进与产业界的合作。大学还可以帮助教职员工应对发生变化的竞争格局,鼓励和允许他们更具冒险精神。学术研究人员在AI领域的比较优势在于进行更多高风险的探索,因此大学的激励结构必须发生改变以适应这一点。例如,期望在顶级会议(如NeurIPS和AAAI)上持续发表论文是不合理的;大型、资金充足的产业研究实验室在撰写这类论文方面具有很大优势。同样,资助结构奖励在热门话题上进行安全和渐进式的研究;这似乎是评估资助申请的方式固有的特征,无论资助机构如何使用“颠覆性”等词汇,这一现象都不太可能改变。最传统(封闭式)资助机制所偏爱的研究类型,主要是学术研究人员无法与产业界竞争的研究类型。因此,大学应该避免将资助作为聘用和晋升的条件。如果大学认真对待激励教师发挥竞争优势,他们应该奖励尝试和失败,并推动高风险高收益的资助方案和研究计划。这样一来,资助机构很可能会顺应潮流,在基础研究和蓝天研究上投入更多资金。

17 结语

我们写这封信有几个目的。

首先,与其他人工智能研究人员分享我们的关注,希望作为一个社区找到一个共同的事业(和集体补救?)其次,根据我们自己的经验以及我们在参与或组织的学术和工业AI场所进行的讨论提供一套指导方针。第三,促进公开对话,征求意见,为我们所有人制定可能更有效的战略。可以说,我们最后讨论的策略列表远远没有包含所有可能的可能性;然而,我们相信,它们是对话的种子,在我们看来,这是非常及时的

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

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

相关文章

vuepress-yarn-nodes-静态网页_个人博客搭建

nodes官网:https://nodejs.org/en 先下载nodes进行安装,一般nodes会自带包管理器npm,注意npm与nodes的对应关系,除了npm之外还有yarn包管理器,一般会用npm安装这个包 npm install --global yarnnpm降低版本的方法 np…

LeetCode 1026. 节点与其祖先之间的最大差值

【LetMeFly】1026.节点与其祖先之间的最大差值 力扣题目链接:https://leetcode.cn/problems/maximum-difference-between-node-and-ancestor/ 给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val…

《花雕学AI》24:如何用万能Prompt公式与ChatGPT进行高效的对话测试

引言 你是否想要与人工智能进行有趣、有价值、有说服力的对话?你是否想要使用ChatGPT这个强大而灵活的对话生成器来创造出任何类型和主题的对话?如果是这样,那么你需要了解一个简单而强大的工具,就是万能Prompt公式。 万能Promp…

微软office认证课程

感谢阅读 非原创声明,根据微软课程学习理解而已Get started with Microsoft 365Work Smarter with Microsoft Word与 Microsoft Word 更加智能地工作Microsoft 365 SubscriptionsMicrosoft 365 订阅个人补充Exercise: Finding Help and changing account settings练…

cpp 程序与 c 程序的相互调用(extern “C“ 的使用)

实际在编译的过程中,.cpp 文件调用 .c文件中的函数会出错。假设代码结构如下: 目录 一、编译过程分析 1、预处理 2、编译 3、汇编 4、链接 二、问题解决 1、解决方案 2、解决思路 一、编译过程分析 1、预处理 该阶段头文件会被展开&#xff0c…

FPGA学习笔记(二):时序逻辑之计数器

与组合逻辑(给定输入,输出是确定的,与时间无关)相比较,时序逻辑不仅仅与输入信号相关,还与时钟信号相关。 D触发器:在上升沿时(CLK)才将输出(Q)修…

Failed to load property source from location ‘classpath:/application.yaml‘

问题 项目起动时,找不到yaml,各种处理还是没有解决,比如,clean,重启电脑,检查utf8等。 同事拉的新代码又是正常可以跑,这就有点奇怪了。 11:07:39.682 [main] ERROR org.springframework.boot.…

【19】linux进阶——后台运行()和nohup命令

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家 另外其它专栏请关注: 锐捷数通实验&…

分享自己接私活常用的开源系统

目前开源系统是JNPF框架。技术栈上是SpringBoot、SpringCloud、Spring Web、MyBatis、Swagger、Vue、Element。 这些都是比较主流的技术,无论是技术层面的先进性还是学习难度都是比较低的,目前网络上有大量可供参考学习的资料。 并且它支持前后端分离和…

Ceph入门到精通-Ceph如何扩展到超过十亿个对象?

Ceph如何扩展到超过十亿个对象?-ceph部署多少个节点 (51cto.com) 越来越多的组织被要求管理数十亿个文件和几百上千PB的数据。无论是在公共云还是本地环境中,Ceph对象存储都是值得考虑的一个选项。本篇文章将通过七部分的精选内容为下面这些问题提供答案…

vue3+echarts实现世界地图以及轨线(label使用fomatter+rich动态添加图片及背景色,以及label如何添加动态边框色)

背景 最近项目开发,需要开发一个世界地图,并且实现经纬度对应的点对点轨线动效,效果如下: 问题 如何在刚打开页面的时候就显示地点名称label如何同时添加图片和背景色label怎么动态修改字体颜色及图片以及动态边框色添加动效及…

YumRepo Error: All mirror URLs are not using ftp, http[s] or file解决办法

文章目录 一、问题背景二、问题原因三、解决方法 一、问题背景 CentOS6.5利用yum -y install gcc命令安装程序报错YumRepo Error: All mirror URLs are not using ftp, http[s] or file.Eg. Invalid release/repo/arch combination/ removing mirrorlist with no valid mirror…

maven安装教程(结合eclipse和IDEA)

一.安装maven 本文须知:安装maven环境之前要先安装java jdk环境(没有安装java环境的可以先去看安装JAVA环境的教程)Maven 3.3+ require JDK 1.7 及以上。 第一步:下载maven(本教程安装的是3.8.4) 官方下载链接:https://maven.apache.org/download.cgi Binary是可执行版本…

电子台账:生成的数据和图表导出到一个excel表中

目录 1 数据选择 1.1 选择1行数据 1.2 选择1列数据 2 图表设置 3 数据导出 为了便于进行数据分析和数据展示,可以把生成的汇总数据生成图表,然后对图表进行定制修改,最后把数据和图表一起导出到一个excel表中。 程序目前支持两种数据作…

【C++学习笔记】函数

值传递 值传递&#xff1a;函数调用时实参将数值传入给形参 做值传递时函数的形参发生改变&#xff0c;并不会影响实参 因为形参的作用域在函数内只有在调用函数时才会为其分配内存&#xff0c;函数调用结束后释放函数内的变量内存。 #include<iostream> using namespa…

mybatis04-mybatis缓存、分页插件、注解开发(一对一、多对一、多对多)

mybatis04 mybatis 缓存 一、mybatis 缓存概述 1、缓存 ​ 缓存 是存在于内存中的临时数据&#xff0c;使用缓存的目的是&#xff1a;减少和数据库的交互次数&#xff0c;提高执行效率。 2、mybatis 缓存 ​ mybatis 与 大多数的持久层框架一样&#xff0c;提供了缓存策略…

网络视频监控如何入门?如何安装和配置、设备选择和实时监控?

网络视频监控是一种先进的安全技术&#xff0c;它可以通过互联网连接到远程视频服务器&#xff0c;使用户可以随时随地监控所关注的地点。本文将介绍网络视频监控的基础入门知识&#xff0c;包括安装和配置、设备选择和实时监控等方面。 一、安装和配置 在进行网络视频监控前&…

PMP项目管理-[第五章]范围管理

范围管理知识体系&#xff1a; 规划范围管理&#xff1a; 收集需求&#xff1a; 定义范围&#xff1a; 创建WBS&#xff1a; 确认范围&#xff1a; 控制范围&#xff1a; 5.1 范围管理 产品范围&#xff1a;某项产品、服务或成果所具有的特性和功能 项目范围&#xff1a;为交付…

商品价格监控业务场景,API数据分析

商品价格监控指的是对特定商品价格进行实时监控和跟踪&#xff0c;及时更新最新价格并分析价格变化的行为。这种监控可以帮助企业及时了解市场行情&#xff0c;并根据价格变化情况做出相应的调整&#xff0c;以更好地应对市场变化。 一般来说&#xff0c;商品价格监控需要以下…

使用RabbitMq实现延迟队列

下载RabbitMq&#xff1a;本地安装rabbitmq_王胖胖1112的博客-CSDN博客 1、pom文件引入 <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit-test</artifactId> <scope>test&…