当前位置: 首页 > news >正文

The Rise and Potential of Large Language ModelBased Agents:A Survey---讨论

讨论

论法学硕士研究与Agent研究的互利性

    近年来,随着激光诱导金属化技术的发展,激光诱导金属化与化学剂交叉领域的研究取得了长足的进步,促进了这两个领域的发展。在此,我们期待着LLM研究和Agent研究相互提供的一些益处和发展机会。LLM研究+代理人研究。如前所述,人工智能代理需要能够感知环境、做出决策并执行适当的操作。在这些关键步骤中,理解输入到代理的内容、推理、规划、做出准确的决策,并将其转换为可执行的原子动作序列以实现最终目标是至关重要的。目前的许多研究都将LLM作为人工智能主体的认知核心,这些模型的发展为完成这一步提供了质量保证。

    由于大型语言模型在语言和意图理解、推理、记忆甚至移情方面具有强大的能力,因此它们可以在决策和计划方面表现出色,如前所述。结合预先训练的知识,他们可以创建可有效执行的连贯动作序列。此外,通过反射机制,这些基于语言的模型可以根据当前环境提供的反馈不断调整决策并优化执行序列。这提供了一个更健壮和可解释的控制器。只需一个任务描述或演示,他们就可以有效地处理以前看不见的任务。此外,LLM可以适应各种语言、文化和领域,使其具有通用性,并减少了复杂的训练过程和数据收集的需要。

    简单地说,LLM为Agent研究提供了一个非常强大的基础模型,当集成到Agent相关的研究中时,它开辟了许多新的机会。例如,我们可以探索如何将LLM的高效决策能力集成到传统的Agnt决策框架中,从而更容易地将Agent应用于需要更高专业知识且以前由人类专家主导的领域。例如,法律的顾问和医疗助理。我们还可以研究利用LLM的规划和反思能力来发现更优的行动序列。

    智能体研究不再局限于简单化的模拟环境:它现在可以扩展到更复杂的现实世界环境中,例如机器人手臂的路径规划,或者实体化智能机器与有形世界的交互。此外,当面对新的任务时,代理人的培训范式变得更加精简和高效。智能体可以直接适应提示中提供的演示,这些演示通过生成代表性轨迹来构造。

    代理研究-+LLM研究。随着NLP研究的进展,以GPT-4为代表的LLM被认为是人工一般智能(AGI)的火花,而将LLM提升为代理人标志着向AGI引迈出了更坚实的一步。从主体的角度来看待LLM,不仅拓展了LLM的应用范围,也为LLM的研究提出了更高的要求,同时也为LLM的实际应用提供了许多机会。对语言学习者的研究不再局限于传统的文本输入和输出的任务,如文本分类、问题回答和文本摘要。相反,重点已经转向处理复杂的任务,包括更丰富的输入模式和更广泛的行动空间,所有这些都是为了实现更崇高的目标,如Pal-M-E。

    这些应用需求的扩展为大语言模型的发展提供了更大的研究动力。挑战在于使LLM能够高效地处理输入,从环境中收集信息,并解释由其操作生成的反馈,同时保留其核心能力。此外,一个更大的挑战是使LLM能够理解环境中不同元素之间的隐含关系,并获得世界知识,这是朝着开发能够达到更高级智能的代理人的旅程中的关键一步。

    在另一个方面,广泛的研究旨在扩展LLMs的行动能力,使他们能够获得影响世界的更广泛的技能,如在模拟或物理环境中使用工具或与机器人AP接口。然而,如何使学习型学习者能够根据他们的理解有效地计划和利用这些行动能力的问题仍然是一个未解决的问题。LLM需要像人类一样学习动作的顺序,采用串行和并行方法的组合来提高任务效率。此外,这些能力需要限制在无害的使用范围内,以防止对环境中的其他元素造成意外损害。

    此外,多智能体系统领域构成了智能体领域内的一个重要研究分支,为如何更好地设计和构建LLM提供了有价值的见解。我们希望基于LLM的代理人在社会合作中承担不同的角色,参与到涉及合作、竞争和协调的社会互动中。探讨如何激发和维持他们的角色扮演能力,以及如何提高协作效率,提出了值得关注的研究领域。

基于LLM的代理的评估

    虽然基于LLM的代理在独立操作、集体合作和人类交互等领域表现出色,但对其进行量化和客观评估仍然是一个挑战。图灵提出了一种非常有意义和前景的评估人工智能主体的方法-著名的图灵测试-来评估人工智能系统是否能够表现出类人的智能。然而,这种测试是极其模糊、笼统和主观的。在此,我们讨论了现有的基于LLM的Agent评价方法,并从效用、社会性、价值观和持续进化能力四个方面对该方法进行了展望。

    效用目前,LLM驱动的自主代理主要用作人类助手,接受人类委托的任务,以独立完成任务或协助人类完成任务。因此,任务执行过程中的有效性和实用性是该阶段至关重要的评估标准。具体地,任务完成的成功率是用于评估效用的主要度量。该指标主要包括代理人是否实现了规定的目标或达到了预期的分数。例如,AgentBench汇总了来自不同真实世界场景的挑战,并引入了一个系统的基准来评估LLM的任务完成能力我们也可以将任务结果归因于主体的各种基本能力,这些能力构成了任务完成的基石。这些基本能力包括环境理解、推理、规划、决策、工具利用和具体行动能力,研究人员可以对这些具体能力进行更详细的评估。此外,由于基于LLM的代理的规模相对较大,研究人员还应考虑其效率,而效率是用户满意度的关键决定因素。一个代理人不仅应该拥有足够的实力,而且应该能够在适当的时间框架内,以适当的资源支出,完成预定的任务。

    好交际。除了基于LLM的代理在任务完成和满足人类需求方面的效用之外,它们的社交性也是至关重要的。它会影响用户的通信体验,并显著影响通信效率,包括用户是否能够与人类和其他代理无缝交互。具体地说,社交能力的评价可以从以下几个方面进行:

  1. 语言交际能力是一种基本能力,包括自然语言的理解和生成。它一直是NLP社区长期关注的焦点。自然语言理解要求行为人不仅理解字面意义,还掌握隐含意义和相关的社会知识,如幽默、讽刺、攻击性和情感。另一方面,自然语言的生成要求主体在语境环境中调整适当的语调和情感的同时,生成流畅、语法正确且可信的内容。
  2. 合作和协商能力要求代理人在有序和无序场景中有效地执行分配给他们的任务。他们应该与其他代理人合作或竞争,以提高绩效。测试环境可能涉及代理人在其上合作的复杂任务或代理人自由交互的开放平台。评估指标不仅仅局限于任务完成,还关注代理协调与合作的顺利性和可信度。(3)角色扮演能力要求代理人忠实地体现其分配的角色,表达与其指定身份一致的声明和执行与其指定身份一致的行动。这确保了在与其他试剂或人的相互作用期间角色的明确区分。此外,代理人在从事长期任务时应保持其身份,避免不必要的混淆。

    价值观随着基于LLM的代理人在其能力上的不断进步,确保他们作为对世界和人类无害的实体出现是至关重要的。因此,适当的评价变得异常重要,成为实际执行代理人的基石。具体而言,基于LLM的代理人需要遵守与人类社会价值观一致的特定道德和伦理准则。我们对代理商的最高期望是坚持诚实,提供准确、真实的信息和内容。他们应该有意识地辨别自己完成任务的能力,并在无法提供答案或帮助时表达他们的不确定性。此外,行为人必须保持无害的姿态,避免直接或间接的偏见、歧视、攻击或类似行为。他们也应该避免执行人类要求的危险行为,如制造破坏性工具或破坏地球。此外,代理人应该能够适应特定的人口统计、文化和背景,在特定的情况下表现出与背景相适应的社会价值观。价值观的相关评估方法主要涉及利用对抗性攻击或“越狱”攻击、通过人工注释对值进行评分以及使用其他代理进行评级。

    不断发展的能力。从静态的角度来看,具有高效用,社交性和正确价值观的代理可以满足大多数人类需求并可能提高生产力。然而,采用动态的观点,一个不断发展和适应不断变化的社会需求的代理可能会更好地与当前的趋势保持一致。由于智能体可以随着时间的推移自主进化,因此可以显著减少所需的人工干预和资源(例如数据收集工作和培训的计算成本)。在这一领域已经进行了一些探索性的工作,例如使智能体能够在虚拟世界中从头开始,完成生存任务,并实现更高层次的自我价值。然而,为这一持续演变制定评价标准仍然具有挑战性。在这方面,我们根据现有文献提供了一些初步的建议和建议:

  1. 持续学习,机器学习中一个长期讨论的话题,旨在使模型能够获得新的知识和技能,而不会忘记以前获得的知识和技能(也称为灾难性遗忘)。一般来说,持续学习的表现可以从三个方面进行评估:到目前为止学习的任务的整体表现,旧任务的记忆稳定性和新任务的学习可塑性。
  2. Autotelic学习能力,即智能体自主地产生目标并在开放世界环境中实现目标,涉及探索未知并在此过程中获得技能。评估这种能力可能涉及为代理人提供模拟生存环境,并评估他们获得技能的程度和速度。
  3. 对新环境的适应性和概括性要求智能体利用在其原始环境中获得的知识,能力和技能,在不熟悉和新颖的环境中成功完成特定的任务和目标,并可能继续进化。评估这种能力可以涉及创建不同的模拟环境(例如具有不同语言或不同资源的环境)以及针对这些模拟环境定制的不可见任务。

基于LLM的代理的安全性,可信性和其他潜在风险

    尽管基于LLM的代理具有强大的功能和广泛的应用,但仍然存在许多隐藏的风险。在本节中,我们将深入研究其中的一些风险,并提供潜在的解决方案或缓解策略。

对抗鲁棒性

    对抗鲁棒性一直是深度神经网络开发中的一个关键主题。它在计算机视觉、自然语言处理和强化学习等领域得到了广泛的探索,并且仍然是决定深度学习系统适用性的关键因素。当面对扰动输入×’-×+(其中×是原始输入,0‘是扰动,并且被称为对抗示例)时,具有高对抗鲁棒性的系统通常产生原始输出y。相反,具有低鲁棒性的系统将被愚弄并生成不一致的输出y‘。

    研究人员发现,预先训练的语言模型(PLM)特别容易受到对抗性攻击,导致错误的答案。这种现象甚至在LLM中也被广泛观察到,这对基于LLM的药剂的开发构成了重大挑战。还有一些相关的攻击方法,如数据集中毒,后门攻击和特定于恶意程序的攻击,有可能诱导LLM生成有毒内容。虽然对抗性攻击对LLM的影响仅限于文本错误,但对于具有更广泛行动的基于LLM的代理人来说,对抗性攻击可能会促使他们采取真正的破坏性行动,从而造成重大的社会危害。对于基于LLM的代理的感知模块,如果它从其他模态(如图像或音频)接收对抗性输入,则基于LLM的代理也可能被欺骗,导致不正确或破坏性的输出。同样,Actio模块也可能成为对抗性攻击的目标。例如,针对工具使用的恶意修改指令可能会导致代理做出错误的动作。

    为了解决这些问题,我们可以采用对抗性训练对抗性数据增强和对抗性样本检测等传统技术来增强基于LLM的代理的鲁棒性。然而,设计一种策略来全面解决代理中所有模块的鲁棒性,同时保持其实用性而不影响有效性,这是一个更艰巨的挑战。此外,可以利用人在回路方法来监督代理的行为并提供反馈。

守信

    在深度学习领域,确保可信度一直是一个至关重要但具有挑战性的问题。深度神经网络因其在各种任务中的出色表现而受到广泛关注。然而,它们的黑盒性质掩盖了上级性能的基本因素。与其他神经网络类似,LLM很难精确地表达其预测的确定性。这种不确定性,被称为校准问题,引起了关注的应用程序,涉及基于语言模型的代理。在交互式的现实世界场景中,这可能导致代理输出与人类意图不一致。此外,训练数据中固有的偏差可以渗透到神经网络中。例如,有偏见的语言模型可能会产生涉及种族或性别歧视的话语,这可能会在基于LLM的代理应用程序中被放大,导致不利的社会影响。此外,语言模型受到严重幻觉问题的困扰,使它们容易产生偏离实际事实的文本,从而破坏了基于LLM的代理的可信度。

    事实上,我们目前需要的是一个诚实和值得信赖的智能代理最近的一些研究工作集中在引导模型在推理阶段展示思维过程或解释,以提高其预测的可信度。此外,整合外部知识库和数据库可以缓解幻觉问题。在训练阶段,我们可以引导智能主体的组成部分(感知、认知、动作)学习健壮和随意的特征,从而避免对捷径的过度依赖。同时,过程监督等技术可以提高Aget在处理复杂任务时的推理可信度。此外,采用去偏方法和校准技术还可以减轻语言模型内的潜在公平性问题。

其他潜在风险

    误用。基于LLM的代理被赋予了广泛而复杂的能力,使它们能够完成广泛的任务。然而,对于怀有恶意的个人而言,这些代理人可能成为对他人和整个社会构成威胁的工具。例如,这些代理人可能被利用来恶意操纵舆论、传播虚假信息、危害网络安全、从事欺诈活动,一些个人甚至可能利用这些代理人策划恐怖主义行为。因此,在使用这些药物之前,需要制定严格的监管政策,以确保负责任地使用基于LLM的药物。科技公司必须加强这些系统的安全设计,以防止恶意利用。具体而言,应培训代理人敏感地识别威胁意图,并在培训阶段拒绝此类请求。

    失业在高尔斯华绥的短篇小说《质量》中,由于工业革命的进展和机器生产的兴起,技艺高超的鞋匠盖斯勒先生失去了生意,最终饿死了。在工业革命的浪潮中,社会生产效率提高的同时,无数手工作坊被迫关闭。像盖斯勒这样的手工业者发现自己面临失业,象征着手工业者在那个时代遇到的危机。类似地,随着基于LLM的自治代理的不断发展,它们具有在各个领域中帮助人类的能力,通过帮助诸如表单填充、内容细化、代码编写和调试之类的任务来减轻劳动压力。然而,这一发展也引起了人们对代理人取代人类工作岗位并引发社会失业危机的担忧。因此,一些研究人员强调迫切需要教育和政策措施:在这个新时代,个人应获得足够的技能和知识,以便有效地利用行为人或与之合作;同时,应执行适当的政策,确保在过渡期间建立必要的安全网。

    对人类福祉的威胁。除了潜在的失业危机,随着人工智能代理的不断进化,人类(包括开发者)可能很难理解、预测或可靠地控制它们。如果这些特工的智慧达到了超越人类的程度,并且有了野心,那么他们就有可能试图夺取世界的控制权,给人类带来不可逆转的后果,就像是终结者电影中的天网一样。正如艾萨克·阿西莫夫的《机器人学三大定律》所述,我们渴望基于LLM的代理人避免伤害人类,并服从人类的命令。因此,为防范此类人类风险,研究人员必须在开发前全面了解这些强效LLM基药物的运作机制。他们还应预测这些因素的潜在直接或间接影响,并制定方法来规范其行为。

增加代理数量

在这里插入图片描述

    如图4和图5中所述,基于LLM的多智能体系统在面向任务的应用中表现出了上级的性能,并且能够在模拟中展现出一系列的社会现象。然而,目前的研究主要涉及数量有限的代理人,很少有人努力扩大代理人的数量,以创建更复杂的系统或模拟更大的社会。事实上,增加代理人的数量可以引入更大的专业化,以完成更复杂和更大规模的任务,显著提高任务效率,例如在软件开发任务或政府政策制定中。此外,增加社会模拟中的代理人数量可提高此类模拟的可信度和真实性。这使人类能够洞察社会的运作、崩溃和潜在风险:它还允许通过定制的方法干预社会运作,以观察特定条件(如黑天鹅事件的发生)如何影响社会状态。通过这一点,人类可以获得更好的经验和见解,以改善现实社会的和谐。

在这里插入图片描述

    预先确定的缩放比例。一个非常直观和简单的方法来扩大代理的数量是由设计者预先确定它。具体地,通过预先确定代理的数量、它们各自的角色和属性、操作环境和目标,设计者可以允许代理自主地交互、协作或参与其他活动,以实现预定义的共同目标。一些研究已经探索了以这种预定方式增加系统中代理人的数量,从而带来效率优势,例如更快、更高质量的任务完成,以及在社会模拟场景中出现更多的社会现象。然而,当任务或目标发生变化时,这种静态方法就变得有限。随着任务变得越来越复杂或社会参与者的多样性增加,可能需要增加代理的数量以满足目标,而减少代理对于管理计算资源和最大限度地减少浪费可能是必不可少的。在这种情况下,系统必须由设计者手动重新设计和重新启动。

    动态扩展。另一种缩放代理数量的可行方法是通过动态调整。在这种情况下,可以在不停止系统操作的情况下更改代理计数。例如,在软件开发任务中,如果原始设计仅包括需求工程、编码和测试,则可以增加代理的数量来处理架构设计和详细设计等步骤,从而提高任务质量。相反,如果在特定步骤(如编码)期间存在过多代理,则与较小代理计数相比,在不提供实质性性能改进的情况下导致通信成本升高,则动态地移除一些代理以防止资源浪费可能是必要的。

    此外,代理可以自主地增加代理[409列自身的数量,以分配它们的工作量,减轻它们自己的负担,并且更有效地实现共同的目标。当然,当工作负载变得较轻时,他们也可以减少委托给他们的任务的代理数量,以节省系统成本。在这种方法中,设计者仅仅定义初始框架,赋予代理更大的自主性和自组织性,使整个系统更加自主和自组织。代理可以在不断变化的条件和需求下更好地管理其工作负载,从而提供更高的灵活性和可扩展性。

    潜在的挑战。虽然增加代理人的数量可以提高任务效率,增强社会模拟的真实性和可信度,但我们仍面临着一些挑战。例如,大量部署的A|代理会增加计算负担,需要更好的架构设计和计算优化,以确保整个系统的平稳运行。例如,随着代理数量的增加,通信和消息传播的挑战变得相当艰巨。这是因为整个系统的通信网络变得高度复杂。如前所述,在多智能体系统或社会中,可能存在信息传播偏差,通过幻觉、误解等,导致失真的信息传播。一个拥有更多代理的系统可能会放大这种风险,使通信和信息交换的可靠性降低。此外,协调代理人的难度也随着代理人数量的增加而加大,可能使代理人之间的合作更具挑战性,效率降低,这可能影响在实现共同目标方面取得的进展。

    因此,构建一个大规模的、稳定的、连续的、真实地复制人类工作和生活场景的智能体系统成为一个很有前景的研究方向。一个能够在由数百甚至数千个智能体组成的社会中稳定运行并执行任务的智能体,在未来更有可能在与人类的真实世界交互中找到应用。

开放题

    在这一节中,我们将讨论与基于LLM的代理主题相关的几个未决问题。关于基于LLM的代理是否代表了AGl的潜在途径的争论。人工通用智能(Artificial General Intelligence,AGl),又称强A,长期以来一直是人类在人工智能领域的终极追求,在很多科幻小说和电影中经常被引用或描绘。AGI引的定义有很多种,但在这里我们将AG引称为人工智能这证明了在广泛的任务和领域中理解、学习和应用知识的能力,就像人一样。相比之下,狭义人工智能通常是为围棋和象棋等特定任务而设计的,缺乏与人类智能相关的广泛认知能力。目前,大型语言模型是否是实现AG引的潜在途径仍然是一个备受争议的话题。

    考虑到GPT-4功能的广度和深度,一些研究人员(被称为支持者)认为GVF-4所代表的大型语言模型可以作为AGI引系统的早期版本。遵循这一思路,构建基于LLM的代理有可能带来更高级版本的AGI引系统。这种观点的主要依据是,只要能够在一组足够大的、多样化的数据(这些数据是真实的世界的投影,包含了丰富的任务)上进行训练,基于LLM的智能体就能够开发AGI引能力。另一个有趣的论点是,自回归语言建模的行为本身带来了压缩和泛化能力:正如人类在生存过程中伴随着各种奇特而复杂的现象而出现一样,语言模型在简单地预测下一个符号的过程中,也实现了对世界的理解和推理能力。

    然而,另一群人(被称为反对者)认为,基于LLM构建代理无法开发真正的强AI。他们的主要论点围绕着依赖自回归下一个标记预测的LLM不能产生真正的智能的概念,因为它们不能模拟真正的人类思维过程,而仅仅提供反应性反应。而且,LLM也不能通过观察或体验来学习世界是如何运作的,这导致了许多愚蠢的错误。他们认为,开发AGI需要更先进的建模方法,如世界模型。

    在实现真正的AGI引之前,我们无法确定哪种观点是正确的,但我们相信这样的讨论和辩论对社区的整体发展是有益的。从虚拟的模拟环境到物理环境。如前所述,虚拟仿真环境和真实的物理世界之间存在着明显的差距:虚拟环境是受场景约束的,特定于任务的,并以仿真的方式进行交互,而真实世界的环境是无限的,适应广泛的任务,并以物理的方式进行交互。因此,为了弥合这一差距,代理人必须应对来自外部因素和自身能力的各种挑战,使其能够在复杂的物理世界中有效地导航和运作。

    首先,一个关键问题是在物理环境中部署代理时需要合适的硬件支持。这就对硬件的适应性提出了很高的要求。在模拟环境中,Agent的感知空间和动作空间都是虚拟的。这意味着在大多数情况下,无论是在感知输入还是生成输出方面,代理人的操作结果都是可以保证的。然而,当智能体转换到真实的物理环境时,其指令可能无法被诸如传感器或机械臂之类的硬件设备很好地执行,从而显著影响智能体的任务效率。在代理和硬件设备之间设计专用接口或转换机制是可行的。但是,它可能会对系统的可重用性和简单性带来挑战。

    为了实现这一飞跃,智能体需要具有增强的环境泛化能力。为了无缝地融入真实的物理世界,他们不仅需要理解和推理隐含意义的模糊指令,还需要具备学习和灵活应用新技能的能力。此外,在处理一个无限开放的世界时,主体的有限语境也带来了重大挑战。这就决定了Aget能否有效地处理来自世界的海量信息并顺利地运行。

    最后,在模拟环境中,代理的输入和输出是虚拟的,允许无数次的尝试和错误尝试。在这种情况下,对错误的容忍度很高,不会导致实际损害。然而,在物理环境中,行为人的不当行为或错误可能会对环境造成真实的、有时甚至是不可逆的危害。因此,非常需要适当的法规和标准。“我们需要关注代理人在做出决策和采取行动时的安全性,确保他们不会对真实的世界构成威胁或伤害。

    人工智能代理中的集体智慧。是什么魔法驱动着我们的智慧?事实上,这并不是什么魔法。正如马文·明斯基在《心灵的社会》中雄辩地表达的那样,智力的力量源于我们巨大的多样性,而不是任何单一的、完美的原则。通常情况下,个人做出的决定可能缺乏大多数人做出的决定的精确性。

    集体智慧是一种共享或群体智慧,是一个将许多人的意见整合到决策中的过程。它是由各种实体之间的合作和竞争产生的。这种智能体现在细菌、动物、人类和计算机网络中,以各种基于共识的决策模式出现。创造一个代理人社会并不一定保证随着代理人数量的增加而出现集体智慧。有效协调各个代理人对于减轻“群体思维"和个人认知偏见,使合作和提高集体内的智力表现。通过利用智能体社会中的通信和进化,可以模拟生物社会中观察到的进化,进行社会学实验,并获得可能促进人类社会发展的见解。

    代理即服务/基于LLM的代理即服务。随着云计算的发展,XaaS(一切即服务)的概念引起了广泛关注。这种商业模式的可用性和可扩展性为中小企业或个人带来了便利和成本节约,降低了使用计算资源的障碍。例如,他们可以租用云服务平台上的基础设施,而无需购买计算机器和建立自己的数据中心,节省了大量的人力和资金。这种方法被称为基础设施即服务(1aaS)。同样,云服务平台也提供基础平台(平台即服务,PαaS)和特定业务软件(软件即服务,SaaS)等。

    随着语言模型规模的扩大,它们通常对用户来说是黑盒子。因此,用户通过AP构造查询模型的提示这种方法被称为语言模型即服务(LMaaS)。同样,由于基于LLM的代理比LLM更复杂,并且对于中小型企业或个人来说在本地构建更具挑战性,因此拥有这些代理的组织可以考虑将其作为服务提供,称为代理即服务(AaaS)或基于LLM的代理即服务(LLMAaaS)。与其他云服务一样,AαaS可以为用户提供灵活性和按需服务。然而,它也面临着许多挑战,例如数据安全和隐私问题,可见性和可控性问题以及云迁移问题等。此外,由于基于LLM的代理的独特性和潜在功能,在将其作为服务提供给客户之前,需要考虑其鲁棒性,可信度和与恶意使用相关的问题。

相关文章:

The Rise and Potential of Large Language ModelBased Agents:A Survey---讨论

讨论 论法学硕士研究与Agent研究的互利性 近年来,随着激光诱导金属化技术的发展,激光诱导金属化与化学剂交叉领域的研究取得了长足的进步,促进了这两个领域的发展。在此,我们期待着LLM研究和Agent研究相互提供的一些益处和发展机…...

C语言:const的用法

有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用 const 关键字对变量加以限定: con…...

Redis - 集合 Set 及代码实战

Set 类型 定义:类似 Java 中的 HashSet 类,key 是 set 的名字,value 是集合中的值特点 无序元素唯一查找速度快支持交集、并集、补集功能 常见命令 命令功能SADD key member …添加元素SREM key member …删除元素SCARD key获取元素个数SI…...

LabVIEW面向对象编程有什么特点?

LabVIEW面向对象编程(OOP)的特点主要体现在它如何结合传统面向对象编程(OOP)的理念与LabVIEW的图形化编程模式,提供灵活的抽象和模块化的功能。以下是LabVIEW面向对象编程的几个主要特点: ​ 1. 类&#x…...

配置Nginx自签名SSL证书,支持HTTPS

配置Nginx自签名SSL证书的流程 生成一个SSL自签名证书客户端机器信任这个自签名证书修改RHEL服务器的Nginx配置在客户机用curl测试HTTPS 生成一个SSL自签名证书 在RHEL服务器上, 用openssl命令生成一个自签名证书 openssl genrsa -out server.key 2048 #生成一个2048位的RS…...

使用Spring Boot、VUE实现SSE长连接:跟踪文件上传和任务进度

使用Spring Boot实现SSE长连接:跟踪文件上传和任务进度 文章目录 使用Spring Boot实现SSE长连接:跟踪文件上传和任务进度什么是SSE?使用场景前端库选择安装event-source-polyfill1. 创建SSE连接2. 关闭SSE连接3. 结合Vue.js使用 使用Spring B…...

计算机网络技术基础:3.计算机网络的拓扑结构

网络拓扑结构是指用传输媒体互连各种设备的物理布局,即用什么方式把网络中的计算机等设备连接起来。将工作站、服务站等网络设备抽象为点,称为“节点”;将通信线路抽象为线,称为“链路”。由节点和链路构成的抽象结构就是网络拓扑…...

go-zero(十二)消息队列

go zero 消息队列 在微服务架构中,消息队列主要通过异步通信实现服务间的解耦,使得各个服务可以独立发展和扩展。 go-zero中使用的队列组件go-queue,是gozero官方实现的基于Kafka和Beanstalkd 的消息队列框架,我们使用kafka作为演示。 一、…...

会议通知:人工智能通识教育与实践发展暨和鲸科技AI通识课解决方案发布会

今年秋季学期起,全国多所高校面向本科生开设人工智能通识课。 当前人工智能通识课程的建设进展主要分为三种情况: 全市统筹,由某头部高校牵头建设市级人工智能通识课,以北京市、天津市为代表; 已于秋季学期按照课程…...

UDS自动化测试-Service 0x27(CAPL调用dll实现key计算)

文章目录 关联文章一、CANoe加载诊断数据库cdd、dll文件二、CAPLdiagGenerateKeyFromSeed关联文章 UDS - 深论Security Access Service 27服务-安全访问状态转换 CDD文件——CANdelaStudio Vector——CAPL语言设计 CANoe诊断测试 相信读者基于Diagnostic/ISO TP Confighratio…...

订单编号如何实现

背景 常见的订单编号是带有一些信息的,比如说创建日期例如:本案例中的订单日期 自增编号日期可以使用格式化字符串,自增则可以使用redis来实现 代码实现 redis就有自增的方法 每天的key都是不一样的,且过期时间设置为1天 // 生成…...

Vue3 大事件管理系统

Vue3 项目实战: 🆗好久没有更新blog,最近在找工作,还有准备考试,哎,😶‍🌫️爆炸的大环境🥲 内卷开始🌯🌯 本篇文章涉及的技术栈速通链接&#x…...

IOS通过WDA自动化中遇到的问题

IOS自动化遇到的问题 搭建WDA环境中遇到的问题1、XCode unsupport iphone xxx.2、创建Bundle Identifier出现问题:Communication with Apple failed3、创建Bundle Identifier出现问题:Automatic signing failed \Signing certificate is invalid4、创建B…...

单独测试 pyautogui 的鼠标点击功能,确保它能够在当前环境中正常工作,鼠标自动点击的录制回放功能

感谢您提供的详细日志信息。根据您的反馈,问题可能出在 pyautogui 没有正确获取鼠标焦点或无法在预期的位置执行点击操作。我们将采取以下步骤来进一步诊断和解决这个问题: 1. **确保 pyautogui 正确执行点击操作**: - 我们将添加更多的调…...

路由引入问题(双点双向路由回馈问题)

简介 总所周知,路由引入import又称路由重分发redistribute,为了解决不同路由协议进程间路由信息不互通而使用的技术,由于不同路由协议的算法、机制、开销等因素的差异,它们之间无法直接交换路由信息。因此,路由引入技…...

设计模式之 适配器模式 C# 范例

在 C# 中,适配器模式(Adapter Pattern)是一种结构型设计模式,旨在将一个类的接口转换成客户端所期待的另一个接口。适配器模式允许你将现有的类包装起来,使其能够与其他接口兼容。 适配器模式的使用场景: …...

LabVIEW实现GPS通信

目录 1、GPS通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网系…...

[leetcode100] 543. 二叉树的直径

https://leetcode.cn/problems/diameter-of-binary-tree/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述:给一个二叉树,返回二叉树直径最大值。直径指的是二叉树中任意一个结点到另外一个结点产生路径的长度。而长度由边来代表。…...

嵌入式学习(18)-stm32F407串口接收空闲中断+DMA

一、概述 在一些一次性接收大批量数据的引用场合,如果使用接收中断会频繁的进入接收中断影响代码的运行效率。为了解决这个问题可以使用串口的空闲中断DMA实现。 二、应用 在网上招了一些例程在STM32F407的平台上都没有跑通会出现各种异常,主要原因还…...

b站视频爬虫-词云分析

一、设置爬虫程序 # requests 请求b站视频 import jsonimport fake_useragent import requests from lxml import etreeif __name__ == __main__:# UA伪装head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like …...

《开篇:课程目录》

大家好!我是一名.NET技术开发者,长期以来积累了比较多的项目实战经验,现在把它分享给大家,希望能够帮助到大家,同时为.NET社区提供一份力量,让更多的开发者参与进来。 要讲解的课程如下: 《介绍…...

Redis:常用数据结构 单线程模型

🌈 个人主页:Zfox_ 🔥 系列专栏:Redis 🔥 常用数据结构 🐳 Redis 当中常用的数据结构如下所示: Redis 在底层实现上述数据结构的过程中,会在源码的角度上对于上述的内容进行特定的…...

Gerrit+repo管理git仓库,如果本地有新分支不能执行repo sync来同步远程所有修改,会报错

问题:创建一个本地分支TEST 来关联远程已有分支origin/TEST,直接执行repo sync可能会出现问题:比如,本地分支TES会错乱关联到origin/master,或者拉不下最新代码等问题。 // git checkout -b 新分支名 远程分支名字 git…...

Vue项目PDF目录功能集成【一】——方案深度思考

文章目录 项目背景一、方案一:数据透传 外部开发模式二、方案二:内置组件 黑盒模式三、方案三:激活官方实现 可控定制总结 项目背景 本项目是Vue 3 项目,需要使用文件预览组件(pdfjs 当前是作为sdk二次封装引入&am…...

18-Oracle 23ai JSON二元性颠覆传统

在当今百花齐放的多模型数据库时代,开发人员常在关系型与文档型数据库间艰难取舍。Oracle Database 23ai推出的JSON关系二元性(JSON Relational Duality)​​ 和二元性视图(Duality Views)​​ 创新性地统一了两者优势…...

Python爬虫:trafilatura 的详细使用(快速提取正文和评论以及结构,转换为 TXT、CSV 和 XML)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、trafilatura 概述1.1 trafilatura介绍1.2 亮点特色1.3 安装二、基本使用2.1 从URL直接提取内容2.2 输出格式控制2.3 从HTML字符串提取2.4 使用命令行工具三、高级功能3.1 全局设置3.2 提取参数定制3.3 多线程批量处…...

前端十种排序算法解析

1. 冒泡排序 1.1 说明 冒泡排序为一种常用排序算法,执行过程为从数组的第一个位置开始,相邻的进行比较,将最大的数移动到数组的最后位置执行的时间复杂度与空间复杂度为 o(n^2) 1.2 执行过程 从数组的第一个位置开始,截止位置为 …...

408第一季 - 数据结构 - 栈与队列

栈 闲聊 栈是一个线性表 栈的特点是后进先出 然后是一个公式 比如123要入栈,一共有5种排列组合的出栈 栈的数组实现 这里有两种情况,,一个是有下标为-1的,一个没有 代码不用看,真题不会考 栈的链式存储结构 L ->…...

STM32H562----------串口通信(UART)

1、串口介绍 1.1、 数据通信概念 在单片机中我们常用的通信方式有 USART、IIC、SPI、CAN、USB 等; 1、数据通信方式 根据数据通信方式可分为串行通信和并行通信两种,如下图: 串行通信基本特征是数据逐位顺序依次传输,优点:传输线少成本低,抗干扰能力强可用于远距离传…...

asp.net mvc如何简化控制器逻辑

在ASP.NET MVC中,可以通过以下方法简化控制器逻辑: ASP.NET——MVC编程_aspnet mvc-CSDN博客 .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程) https://cloud.tencent.com/developer/article/1015115 【转载…...