The Rise and Potential of Large Language ModelBased Agents:A Survey---摘要、背景、引言
题目
基于大语言模型的Agent的兴起与发展前景
论文地址:https://arxiv.org/pdf/2309.07864.pdf
项目地址:https:/github.com/WooooDyy./LLM-Agent–Paper-List
摘要
长期以来,人类一直在追求等同于或超越人类水平的人工智能(A),AI代理被认为是这一追求的有前途的载体。人工智能代理是感知环境、做出决策并采取行动的人工实体。已经进行了许多努力来开发智能代理,但它们主要集中在算法或训练策略的改进上,以增强特定任务的特定能力或性能。实际上,社区所缺乏的是一个通用的、强大的模型,作为设计能够适应不同场景的A代理的起点。由于大型语言模型(LLM)所表现出的多功能性,它们被认为是人工通用智能(AG)的潜在火花,为构建通用人工智能主体提供了希望。许多研究者利用LLM作为构建人工智能代理的基础,并取得了显著的进展。本文对基于LLM的Agent进行了全面的综述。首先,我们将追溯Agenti的概念,从它的哲学起源到它在人工智能中的发展,并解释为什么LLM是Agenti的合适基础。在此基础上,我们提出了一个基于LLM的智能体的通用框架,该框架包括三个主要部分:大脑、感知和动作,并且该框架可以针对不同的应用进行定制。随后,从单Agent场景、多Agent:场景和人-Agent协作三个方面探讨了基于LLM的Agent的广泛应用。接下来,我们将深入研究代理人社会,探索基于LLM的代理人的行为和个性,从代理人社会中出现的社会现象,以及它们为人类社会提供的见解。避免和干扰利用的可行方法,最后总结全文并给出了该领域的若干开放性问题.https:/github.com/WooooDyy./LLM-Agent–Paper-List上有相关论文的资料库。
介绍
“如果他们找到一只什么都能回答的鹦鹋,我会毫不犹豫地说它是智慧生物。"–丹尼斯·狄德罗
1875年人工智能是一个致力于设计和开发能够复制类人智能和能力的系统的领域。早在18世纪,哲学家狄德罗(Denis Diderot)就提出了这样一个观点:如果一只鹦鹉能回答每一个问题,它就可以被认为是聪明的。虽然狄德罗指的是像鹦鹉这样的生物,但他的概念强调了一个深刻的概念,即高度智能的有机体可以类似于人类的智能。在20世纪50年代,Alan Turing将这一概念扩展到人工实体,并提出了著名的图灵测试。这项测试是A的基石,旨在探索机器是否能表现出与人类相当的智能行为。这些人工智能实体通常被称为“代理”,形成了人工智能系统的基本构建块。通常在人工智能中,代理是指一个人工实体,它能够使用传感器感知周围环境,做出决策,然后使用执行器做出响应。代理的概念起源于哲学,其根源可以追溯到亚里士多德和休谟等思想家。它描述了拥有欲望、信念、意图和行动能力的实体。这一想法后来发展成计算机科学,旨在使计算机能够理解用户的兴趣,并代表他们自主地执行操作。
随着人工智能的发展“代理人”在人工智能研究中找到了自己的位置,用来描述表现出智能行为并拥有自主性、反应性、主动性和社交能力等品质的实体。从那时起,智能体的探索和技术进步就成为人工智能领域的焦点。人工智能代理现在被认为是实现人工通用智能(AGI)的关键一步,因为它们包含了广泛的智能活动的潜力。
从20世纪中期开始,随着对智能人工智能代理设计和改进的深入研究,智能人工智能代理的开发取得了重大进展。然而,这些努力主要集中在提高特定能力,如符号推理,或掌握特定任务,如围棋或国际象棋。在各种不同的情况下实现广泛的适应性仍然是一件难以实现的事情。此外,之前的研究更多地强调算法和训练策略的设计,而忽略了模型固有的一般能力的发展,如知识记忆、长期规划、有效泛化和有效交互。实际上,增强模型的内在能力是进一步发展Agent的关键因素,而该领域需要一个强大的基础模型来作为Agent系统的出发点,该模型具有上述的各种关键属性。
大型语言模型(LLM)的发展为Agenti的进一步发展带来了一线希望,并且该社区已经取得了重大进展。根据世界范围的概念,它包括五个层次,描述了从自然语言处理到一般人工智能的研究进展(即,语料库、互联网、感知、具体化和社会化),纯LLM建立在第二个层次上,具有互联网规模的文本输入和输出。尽管如此,LLM在知识获取、指令理解、概括、规划和推理方面表现出了强大的能力,同时展示了与人类有效的自然语言交互。这些优势为LLM赢得了AGI的火花称号,使其成为构建智能代理以培育人类和代理和谐共存的世界的高度理想选择。由此出发,如果我们将LLMs提升到Agent的地位,并赋予它们扩展的感知空间和动作空间,它们就有可能达到WS的第三、四个层次。此外,这些基于LLMs的Agent可以通过合作或竞争来处理更复杂的任务,并且当它们放在一起时可以观察到涌现的社会现象,有可能达到WS的第五个层次。如图1所示,我们设想了一个由人工智能代理组成的和谐社会,人类也可以参与其中。
图1:一个由人工智能代理组成的社会场景,人类也可以参与其中。上图描绘了社会中的一些具体场景。在厨房里,一个代理点餐,另一个代理负责计划和解决烹饪任务。在音乐会上,三个经纪人合作组成一个乐队表演。在户外,两个代理商正在讨论灯笼的制作,计划所需的材料,并通过选择和使用工具的资金。用户可以参与此社交活动的任何这些阶段。
本文对基于LLM的智能体进行了全面、系统的综述,试图对这一新兴领域的研究现状和未来发展方向进行探讨。为此,我们从深入研究关键的背景信息开始。特别是,我们首先追溯了从哲学到人工智能领域的人工智能主体的起源,沿着简要概述了围绕着人工因素存在的争论的范围内。接下来,我们将从技术趋势的透镜来简要回顾一下人工智能代理的发展历史。最后,我们深入介绍了智能体的基本特征,并阐明了为什么大型语言模型非常适合作为智能体的大脑或控制器的主要组成部分,受Agent定义的启发,本文提出了一个基于LLM的Agent的一般概念框架,该框架包括三个关键部分:大脑、感知和动作,并且该框架可以根据不同的应用进行定制。
我们首先介绍大脑,它主要由一个大的语言模型组成。与人类类似,大脑是人工智能主体的核心,因为它不仅存储重要的记忆、信息和知识,而且还承担信息处理、决策、推理和规划等基本任务。它是Aget能否表现出智能行为的关键决定因素。接下来,我们介绍感知模块。对于一个代理人来说,这个模块的作用类似于人类的感觉器官。它的主要功能是将主体的感知空间从纯文本扩展到多模态空间,包括文本、声音、视觉、触觉、嗅觉等多种感官模态。这种扩展使代理能够更好地感知来自外部环境的信息。最后,我们给出了扩展Agnt行为空间的行为模型。具体来说,我们期望代理能够拥有文本输出、采取具体行动和使用工具,以便它能够更好地响应环境变化并提供反馈,甚至改变和塑造环境。
在此基础上,详细介绍了基于LLM的智能体的实际应用,并阐述了基于LLM的智能体的基本设计追求-“善用人工智能”。首先,我们将深入探讨单个智能体的当前应用,并讨论它们在基于文本的任务和模拟探索环境中的性能,重点介绍它们在处理特定任务、推动创新以及展示人类生存技能和适应性方面的能力的范围内。
在此基础上,我们回顾了多智能体的发展历史。本文介绍了基于LLM的多智能体系统中智能体之间的交互,它们参与了合作、谈判或竞争。不管互动的模式如何,行为人都会集体地朝着一个共同的目标努力最后,考虑到基于LLM的智能体在隐私安全、伦理约束和数据不足等方面的潜在局限性,讨论了人智能体协作问题。我们总结了代理人和人之间协作的范式:指导者-执行者范式和平等伙伴关系范式,沿着在实践中的具体应用。
在探索基于LLM的Agent的实际应用的基础上,我们现在将重点转移到“Agent:社会"的概念上,研究Aget与其周围环境之间复杂的交互作用。本节首先研究这些代理人是否表现出类人行为并具有相应的人格。此外,我们还介绍了Agent:运行的社会环境,包括基于文本的环境、虚拟沙箱和物理世界。与上一节不同,这里我们将关注不同类型的环境,而不是主体如何感知环境。在建立了主体及其环境的基础之后,我们将继续揭示由主体形成的模拟社会。我们将讨论模拟社会的构建,并接着考察由此产生的社会现象,特别是强调模拟社会中固有的教训和潜在的风险。
最后,我们讨论了基于LLM的Agent领域中的一系列关键主题和开放问题:
- LLM研究和Agenti研究的互惠和启发,其中我们证明了基于LLM的Agenti的发展为Agent和LLM社区提供了许多机会。
- 从效用、社会性、价值观和持续进化能力四个维度对基于LLM的Agent的现有评估工作和一些展望。
- 基于LLM的Agentr的潜在风险,其中我们讨论了基于LLM的Agent的对抗鲁棒性和可信性。
- 我们还讨论了其他一些风险,如滥用、失业和对人类福祉的威胁增加代理人数量,其中我们讨论了增加代理人数量的潜在优势和挑战,沿着预先确定和动态调整的方法。
- 几个公开的问题,例如关于基于LLM的Agent是否代表了通向AG引的潜在途径的争论,从虚拟模拟环境到物理环境的挑战,Al Agent中的集体智能,以及Agentl即服务。希望本文能对相关领域的研究者和实践者有所启发。
背景
在本节中,我们将提供重要的背景信息,为后续内容奠定基础。我们首先讨论人工智能主体的起源,从哲学到人工智能领域,再讨论有关人工主体存在的论述。随后,我们从技术趋势的透镜对人工智能Agent的发展进行了总结。最后,我们介绍了智能体的关键特征,并说明了为什么LLM适合作为AI智能体大脑的主要部分
Al Agent的起源“代理人”是一个历史悠久的概念,在许多领域都有过探索和阐释。在这里,我们首先探讨它在哲学上的起源,讨论人造产品是否可以拥有哲学意义上的能动性,并考察相关概念是如何被引入人工智能领域的。代理哲学。代理人的核心思想在哲学讨论中有着历史背景,其根源可以追溯到亚里士多德和休谟等有影响力的思想家。在一般意义上,“代理人”是具有行为能力的实体,“代理”一词表示这种能力的行使或表现。狭义上,“能动性”通常是指有意行为的表现:相应地,“主体”一词是指拥有欲望、信念、意图和行动能力的实体。注意,代理不仅可以包括个人,还可以包括物理和虚拟世界中的其他实体。重要的是,代理人的概念涉及个体自主性,赋予他们行使意志、做出选择和采取行动的能力,而不是被动地对外部刺激做出反应。
从哲学的角度看,人工实体是否具有能动性?从一般意义上说,如果我们将代理定义为有行动能力的实体,那么人工智能系统确实表现出一种代理形式。然而,“施动者”一词更常用于指拥有意识、意向性和行动能力的实体或主体。在这个框架内,目前还不清楚人工系统是否可以拥有代理,因为它仍然不确定它们是否拥有内部状态,这些状态构成了归因于欲望,信仰和意图的基础。有些人认为,将意图等心理状态归因于人工代理是一种拟人化的形式,缺乏科学严谨性。正如Barandiaran等人所言:“对能动性要求的具体化告诉我们,人工形式的能动性的发展还需要多少。相反,也有研究人员认为,在某些情况下,采用意向立场(即根据意图解释代理行为)可以提供对人工代理行为的更好描述,解释和抽象,就像对人类所做的那样。
随着语言模型的进步,人工有意代理的潜在出现似乎更有希望。从严格意义上讲,语言模型只是作为条件概率模型,使用输入来预测下一个标记。与此不同的是,人类结合了社会和感知背景,并根据他们的心理状态说话。因此,一些研究人员认为,当前的语言建模范式与智能体的故意行为不兼容。然而,也有研究人员提出,语言模型在狭义上可以充当代理模型。他们认为,在基于上下文的下一个词预测的过程中,当前的语言模型有时可以推断出生成上下文的代理所持有的信念,desrresi和意图的近似,部分表示。有了这些表示,语言模型就可以像人类一样生成话语。为了支持他们的观点,他们进行实验以提供一些经验证据。
将代理引入AI。令人惊讶的是,主流A!社区的研究人员在20世纪80年代中后期之前对与代理相关的概念关注相对较少。然而,从那时起,计算机科学和人工智能社区对这个主题的兴趣显著增加。正如Wooldridge等人所述,我们可以定义人工智能,说它是计算机科学的一个子领域,旨在设计和构建基于计算机的代理,表现出智能行为的各个方面。所以我们可以治疗。
“智能体”是人工智能的核心概念。当智能体的概念引入人工智能领域后,其含义发生了一些变化。在哲学领域,主体可以是人、动物,甚至是具有自主性的概念或实体。然而,在人工智能领域,智能体是一个计算实体。由于意识和对计算实体的渴望等概念的形而上学性质,并且考虑到我们只能观察机器的行为,许多人工智能研究人员,包括艾伦·图灵,建议暂时搁置代理是否“实际上”思考或字面上拥有“思想”的问题。相反,研究人员使用其他属性来帮助描述代理,例如自主性,反应性,主动性和社交能力。也有研究人员认为,智力是“在旁观者的眼晴”;它不是一个天生的,孤立的财产。从本质上讲,人工智能主体并不等同于哲学主体;相反,它是人工智能背景下主体的哲学概念的具体化。在本文中,我们将A代理视为人工实体,这些实体能够使用传感器感知其周围环境,做出决策,然后使用执行器做出响应。
智能主体的发展经历了几个阶段,在这里,我们采取技术趋势的透镜来简要回顾其发展。象征性代理。在人工智能研究的早期阶段,主要采用的方法是符号人工智能,其特点是依赖于符号逻辑。该方法使用逻辑规则和符号表示来封装知识并促进推理过程。早期的人工智能代理就是基于这种方法建立起来的,它们主要关注两个问题:转导问题和表示/推理问题。这些代理旨在模仿人类的思维模式。它们具有明确的和可解释的推理框架,由于其象征性的性质,他们表现出高度的表达能力。这种方法的一个典型例子是基于知识的专家系统。然而,符号代理人在处理不确定性和大规模现实世界问题方面面临局限性。此外,由于符号推理算法的复杂性,找到一种能够在有限时间内产生有意义结果的有效算法是具有挑战性的反应性代理。与符号主体不同,反应主体不使用复杂的符号推理。相反,它们主要关注智能体与其环境之间的交互,强调快速和实时响应。这些智能体主要基于感觉-动作回路,有效地感知环境并对环境做出反应。这种智能体的设计优先考虑直接的输入-输出映射,而不是复杂的推理和符号运算。然而,反应性试剂也有局限性。它们通常需要更少的计算资源,从而实现更快的响应,但它们可能缺乏复杂的高层决策和规划能力。
基于强化学习的代理。随着计算能力和数据可用性的提高,沿着人们对模拟智能代理与其环境之间的交互越来越感兴趣,研究人员已经开始利用强化学习方法来训练代理以处理更具挑战性和复杂的任务。该领域的主要关注点是如何使智能体能够通过与环境的交互来学习,使它们能够在特定任务中获得最大的累积奖励。最初,强化学习(RL)代理主要基于策略搜索和值函数优化等基本技术,例如Q学习和SA。随着深度学习的兴起,深度神经网络和强化学习的集成,即深度强化学习(DRL),已经出现。这使得智能体能够从高维输入中学习复杂的策略,从而取得了许多重大成就,如AlphaGO和DQN。这种方法的优点在于它能够使智能体在未知的环境中自主学习,而无需明确的人为干预。这使得它可以广泛应用于一系列领域,从游戏到机器人控制等等。尽管如此,强化学习面临着训练时间长、样本效率低和稳定性问题等挑战,特别是在复杂的现实环境中应用时。
具有迁移学习和Mta学习的智能体。传统上,训练强化学习代理需要巨大的样本量和较长的训练时间,并且缺乏泛化能力。因此,研究人员引入了迁移学习来加快代理对新任务的学习。迁移学习减轻了新任务的培训负担,促进了不同任务之间的知识共享和迁移,从而提高了学习效率,性能和泛化能力。此外,元学习也被引入人工智能代理。元学习专注于学习如何学习,使智能体能够从少量样本中快速推断新任务的最佳策略。这样的代理,当面临一个新的任务,可以迅速调整其学习方法,通过利用获得的一般知识和政策,从而减少对大量的样本的依赖。然而,当源任务和目标任务之间存在显着差异时,迁移学习的有效性可能达不到预期,并且可能存在负迁移。此外,Mta学习所需的大量预训练和大样本量使得很难建立通用的学习策略。
基于语言模型的大型代理。由于大型语言模型已经展示出令人印象深刻的涌现能力,并获得了极大的普及,研究人员已经开始利用这些模型来构建代理。具体来说,他们采用LLM作为大脑的主要组成部分或这些代理的控制器,并通过多模态感知和工具利用等策略扩展其感知和动作空间。这些基于LLM的代理可以通过思想链(COT)和问题分解等技术表现出与符号代理相当的推理和规划能力。他们还可以通过从反馈中学习并执行新的动作来获得与环境的交互能力,类似于反应式代理。类似地,大型语言模型在大规模语料库上进行预训练,并展示了少量和零次泛化的能力,允许在任务之间无缝转移,而无需更新参数。基于LLM的代理已被应用于各种现实世界的场景,例如软件开发和科学研究。由于它们的自然语言理解和生成能力,它们可以彼此无缝地交互,从而引起多个智能体之间的协作和竞争。此外,研究表明,允许多个行为体共存会导致社会现象的出现。
为什么LLM适合作为Agent大脑的主要组成部分?如前所述,研究人员已经引入了几个属性来帮助描述和定义人工智能领域的代理。在这里,我们将深入研究一些关键的性质,阐明它们与LLM的相关性,并由此阐述为什么LLM非常适合作为AI智能体大脑的主要部分。自治自主性意味着一个主体在不受人类或他人直接干预的情况下运作,并对其行为和内部状态拥有一定程度的控制。这意味着一个智能体不仅应该具有遵循明确的人类指令完成任务的能力,而且应该具有独立发起和执行动作的能力。LLM可以通过其生成类人文本、参与对话和执行各种任务的能力来证明某种形式的自主性,而无需详细的分步说明。此外,它们可以根据环境输入动态调整其输出,反映出一定程度的适应性自主性。此外,他们还可以通过展示创造力来展示自主性,比如提出新颖的想法、故事或解决方案,而这些想法、故事或解决方案并没有被明确地编入他们的程序。这意味着一定程度的自我探索和决策。Auto-GPT等应用程序说明了LLM在构建自主代理方面的巨大潜力。只需向他们提供一项任务和一套可用的工具,他们就可以自主制定计划并执行,以实现最终目标。
有反应性。主体的反应性是指其对环境中的即时变化和刺激快速反应的能力。这意味着,主体可以感知周围环境的变化,并迅速采取适当的行动。传统上,语言模型的感知空间被限制在文本输入,而动作空间被限制在文本输出。然而,研究人员已经证明了使用多模态融合技术扩展LLM感知空间的潜力,使其能够快速处理来自环境的视觉和听觉信息。类似地,通过实施技术和工具使用来扩展LLM的动作空间也是可行的。一个主要的挑战是,基于LLM的代理在执行非文本动作时,需要在最终将它们转化为具体动作之前,以文本形式生成想法或公式化工具使用。这种中间过程会消耗时间并降低响应速度。然而,这与人类行为模式密切相关,遵守“三思而后行”。
积极主动。主动性是指行为人不仅仅对环境做出反应,他们还具有主动采取行动以实现目标的能力。这一性质强调主体在行动中能够推理、制定计划、采取主动措施,以实现特定目标或适应环境变化。尽管直观地,LLMs中的下一个标记预测的范例可能不具有意图或愿望,但研究表明,它们可以隐含地生成这些状态的表示,并指导模型的推理过程。LLM已经证明了其强大的一般化推理和规划能力。通过用“让我们一步一步地思考”这样的指令来激励大型语言模型,我们可以引出它们的推理能力,比如逻辑推理和数学推理。类似地,大型语言模型也显示出了计划的诵现能力,表现为目标重构、任务分解以及根据环境变化调整计划。
社交能力强。社交能力是指一个主体通过某种主体沟通语言与其他主体(包括人类)进行互动的能力。大型语言模型表现出很强的自然语言交互能力,如理解和生成。与结构化语言或其他通信协议相比,这种能力使它们能够以可解释的方式与其他模型或人进行交互。这构成了基于LLM的代理人社交能力的基石。许多研究人员已经证明,基于LLM的代理可以通过诸如协作和竞争之类的社会行为来增强任务执行。通过输入特定的提示,LLM还可以扮演不同的角色,从而模拟真实的世界中的社会分工。此外,当我们将具有不同身份的多个代理人放入一个社会时,可以观察到涌现的社会现象。
相关文章:
The Rise and Potential of Large Language ModelBased Agents:A Survey---摘要、背景、引言
题目 基于大语言模型的Agent的兴起与发展前景 论文地址:https://arxiv.org/pdf/2309.07864.pdf 项目地址:https:/github.com/WooooDyy./LLM-Agent–Paper-List 摘要 长期以来,人类一直在追求等同于或超越人类水平的人工智能(A),…...
【unity】从零开始制作平台跳跃游戏--界面的认识,添加第一个角色!
在上一篇文章中,我们已经完成了unity的环境配置与安装⬇️ 【Unity】环境配置与安装-CSDN博客 接下来,让我们开始新建一个项目吧! 新建项目 首先进入unityHub的项目页面,点击“新项目”: 我们这个系列将会以2D平台…...
Java中的Stream
1. 什么是 Stream? Stream 是 Java 8 引入的一种新方式,目的是帮助我们更简洁、更高效地处理集合(如 List、Set、Map 等)。你可以把 Stream 想象成一条“流水线”,数据就像是流水线上的原材料,经过流水线的…...
ARM学习(36)静态扫描规则学习以及工具使用
笔者来学习了解一下静态扫描以及其规则,并且亲身是实践一下对arm 架构的代码进行扫描。 1、静态扫描认识 静态扫描:对代码源文件按照一定的规则进行扫描,来发现一些潜在的问题或者风险,因为不涉及代码运行,所以其一般只是发现一些规范或则一些质量问题,当然这些可能存在潜…...
前端将base64转pdf页面预览
前端将base64转pdf页面预览 <embed :src"pdfList" width"100%" height"100%" type"application/pdf" />pdfList.value data:application/pdf;base64,${res}//后端传jpg或pdf格式可直接 :src“返回内容”显示...
Java-26 深入浅出 Spring - 实现简易Ioc-02 无IoC与AOP场景下实现业务
点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatisÿ…...
能不能用一句话或者简洁地凝练深度学习的本质和精髓?
深度学习就是学习输入与输出之间的映射关系。 深度学习模型本质上只是个参数量很大的函数,其中函数的参数可以通过训练样本进行调整。 根据训练样本的不同,进一步可以分为以下几类: 一、给定输入以及对应的输出,其中输出是唯一的…...
我的宝贵经验
在技术的浩瀚海洋中,一份优秀的技术文档宛如精准的航海图。它是知识传承的载体,是团队协作的桥梁,更是产品成功的幕后英雄。然而,打造这样一份出色的技术文档并非易事。你是否在为如何清晰阐释复杂技术而苦恼?是否纠结…...
发现一个对话框中的按钮,全部失效,点击都没有任何反应,已经解决
前端问题,技术vue2,ts。 发现一个对话框中的按钮,全部失效,点击都没有任何反应。 因为我只在template标签中加入下面这个代码,并没有注册。 只要有一个子组件没有注册,就会影响所有的按钮,使当前…...
深度学习中损失函数(loss function)介绍
深度学习中损失函数(loss function)介绍 在深度学习的宏伟城堡中,损失函数扮演着国王的角色,它决定了模型训练的方向和目标。损失函数,也被称为代价函数,是衡量模型预测与实际结果之间差异的函数。在深度学习的训练过程中&…...
【渗透测试】信息收集二
其他信息收集 在渗透测试中,历史漏洞信息收集是一项重要的工作,以下是相关介绍: 历史漏洞信息收集的重要性 提高效率:通过收集目标系统或应用程序的历史漏洞信息,可以快速定位可能存在的安全问题,避免重复…...
前端三大框架 Vue、React 和 Angular 的市场占比分析
一、引言 ?? 随着前端技术的迅速发展,Vue.js、React 和 Angular 已成为全球最受欢迎的三大前端框架。在国内外,不同的框架在市场中的占比和流行程度存在显著差异。本文将从全球和中国市场的角度,对这三大框架的市场占比进行分析࿰…...
Gitlab服务管理和仓库项目权限管理
Gitlab服务管理 gitlab-ctl start # 启动所有 gitlab 组件; gitlab-ctl stop # 停止所有 gitlab 组件; gitlab-ctl restart # 重启所有 gitlab 组件; gitlab-ctl status …...
MySQL ON DUPLICATE KEY UPDATE影响行数
目录 分析为什么Updates返回7 总结 数据库更新日志如下 insertOrUpdateList|> Preparing: INSERT INTO clue_user_tag (vuid, tag_id, tag_type, content) VALUES (?, ?, ?, ?) , (?, ?, ?, ?) , (?, ?, ?, ?) , (?, ?, ?, ?) ON DUPLICATE KEY UPDATE …...
美团2024年秋招第一场笔试【前端移动端】
美团2024年秋招第一场笔试【前端&移动端】 2024/12/12 1.在一个长度为28的数组中删除第5个元素时(元素序号:1~28),需要向前移动(23)个元素。 2.如下图一个树型结构,其结点E在树的中序遍历…...
【EXCEL】 获取多列中 不为空的那一个数据
从多个表格筛选出来的上班时间是下表这样的 我要把他们放在同一列,这样方便后续处理,合并列输入下面这个公式即可 日期不加 TEXT() 函数 转日期格式;将得到是一串数字 TEXT(TEXTJOIN(", ",TRUE,B2:F2),&qu…...
Qt 开发笔记2
1> 样式表加载 一定要在Ui 初始化之前调用, 之后调用会不生效。 2> 设置QlineEdit输入框 具体四周的间距: setTextMargins(m_nLeftTextMargin, m_nTopTextMargin, m_nRightTextMargin, m_nBottomTextMargin);3> 设置背景图(平滑不…...
R学习——数据框
目录 1数据框的合并 2数据框的访问 2.1 通过索引[] 2.2符号$访问 2.3 attach访问 2.4 with访问 1数据框的合并 当每个内容存储为单独的向量,data.frame可以进行这些内容单独数据框合并。 2数据框的访问 2.1 通过索引[] [i]输出对应的列 [i,]输出对应的行 …...
深入详解人工智能机器学习常见算法中的K-means聚类
目录 引言 1. K-means聚类的基本概念 1.1 K-means聚类的定义 1.2 K-means聚类的核心思想 1.3 K-means聚类的目标函数 2. K-means聚类的核心原理 2.1 初始化 2.2 分配 2.3 更新 2.4 迭代 3. K-means聚类的具体实现 3.1 K-means聚类的算法流程 3.2 K-means聚类的Pyt…...
TDengine SpringBoot操作
TDengine与Spring Boot的结合可以为开发者提供一个高性能、分布式的物联网、工业大数据处理平台,同时利用Spring Boot的简化配置和快速开发特性。以下是对TDengine与Spring Boot集成的详细解析: 一、TDengine简介 TDengine是由涛思数据开发的一款高性能…...
【sgFileLink】自定义组件:基于el-link、el-icon标签构建文件超链接组件,支持垃圾桶删除、点击预览视频/音频/图片/PDF格式文件
sgFileLink源代码 <template><div :class"$options.name"><el-link click.stop"clickFile(data)"><img :src"getSrc(data)" /><span>{{ getFileNameAndSize(data) }}</span></el-link><el-linkcl…...
C语言实验 函数一
时间:2024.12.14 6-1 弹球距离 double dist (double h,double p) {double sum = h,height;height = h*p;while(height>=TOL){sum += height * 2; //上行下行都算,所以是两倍的距离。height *=p;}return sum; } 6-2 使用函数输出一个整数的逆序数 错误代码:运行超…...
惠普Laser Jet MFP M437nda复印机成像装置严重不足及更换传输卷故障解决方法
惠普Laser Jet MFP M437nda复印机成像装置严重不足及更换传输卷故障解决方法,记录维修那点事儿,普通维修工的日常维修点滴; 惠普Laser Jet MFP M437nda复印机成像装置严重不足维修方法 如果复印及打印的效果没有问题的情况下我们也可以不更换套鼓及显影剂,那么不更换套鼓及…...
委托(Delegate)和事件(Event)-(下篇)
委托(Delegate)与事件(Event)-(上篇)-CSDN博客 上一篇内容! 一、创建非静态委托 在C#中,使用非静态委托意味着将委托绑定到类的实例方法上,而不是静态方法。这允许你通过委托调用特定对象上的方法&am…...
ios 开发配置蓝牙
如果使用了蓝牙功能, 又没有配置, 会出现以下错误: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The apps Info.plist must contain an NSBluetoothAlwaysUsageDescription key with a string value explaini…...
JVM 栈帧结构详解
在 Java 虚拟机(JVM)中,栈帧(Stack Frame)是用于支持方法调用和方法执行的关键数据结构。每个方法从调用开始到执行完成,都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。本文将详细介绍 JVM 栈帧的结构及…...
HTML和JavaScript实现商品购物系统
下面是一个更全面的商品购物系统示例,包含新增商品、商品的增加删除以及结算找零的功能。这个系统使用HTML和JavaScript实现。 1.功能说明: 这个应用程序使用纯HTML和JavaScript实现。 包含一个商品列表和一个购物车区域。商品列表中有几个示例商品&a…...
(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验三----学校选址与路径规划(超超超详细!!!)
目录 实验三 学校选址与道路规划 3.1 实验内容及目的 3.1.1 实验内容 3.1.2 实验目的 3.2 实验方案 3.3 操作流程 3.3.1 环境设置 3.3.2 地势分析 (1)提取坡度: (2)重分类: 3.3.3 学校点分析 (1)欧氏距离: (2)重分类: 3.3.4 娱乐场所点分析 (1)欧氏距离…...
ip_done
文章目录 路由结论 IP分片 数据链路层重谈Mac地址MAC帧报头局域网的通信原理MSS,以及MAC帧对上层的影响ARP协议 1.公司是不是这样呢? 类似的要给运营商交钱,构建公司的子网,具有公司级别的入口路由器 2.为什么要这样呢?? IP地…...
Mysql体系架构剖析——岁月云实战笔记
1 体系架构 理论内容阅读了mysql体系架构剖析,其他的根据岁月云的实战进行记录。 1.1 连接层 mysql最上层为连接服务,引入线程池,允许多台客户端连接,主要工作:连接处理、授权认证、安全防护、管理连接等。 连接处理&a…...
【卷积神经网络】AlexNet实践
构建模型 模版搭建 # 定义一个AlexNet模型类def __init__(self):# 调用父类的构造函数(如果继承自nn.Module的话)super(AlexNet, self).__init__()# ReLU激活函数self.ReLU nn.ReLU()# 卷积层1:输入1个通道(灰度图)&a…...
LF CRLF
这个提示的含义是:Git 检测到你当前的 file3.txt 文件中使用了 LF(换行符,Line Feed,\n) 作为换行符,但在你系统的 Git 配置中,指定要将其转换为 CRLF(回车换行,Carriage…...
Python学习(二)—— 基础语法(上)
目录 一,表达式和常量和变量 1.1 表达式 1.2 变量 1.3 动态类型特性 1.4 输入 二,运算符 2.1 算术运算符 2.2 关系运算符 2.3 逻辑运算符 2.4 赋值运算符 2.5 练习 三,语句 3.1 条件语句 3.2 while循环 3.3 for循环 四&#…...
科研绘图系列:R语言绘制网络图和密度分布图(network density plot)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载图1图2图3图4图5图6图7图8系统信息参考介绍 R语言绘制网络图和密度分布图(network & density plot) 加载R包 library(magrittr) library(dplyr) library(…...
python解题之寻找最大的葫芦
问题描述 问题描述 在一场经典的德州扑克游戏中,有一种牌型叫做“葫芦”。“葫芦”由五张牌组成,其中包括三张相同牌面值的牌 �a 和另外两张相同牌面值的牌 �b。如果两个人同时拥有“葫芦”,我们会优先比较牌 &#…...
openwrt安装tailscale
1. 下载 进入tailscale的github仓库复制最新版本的链接:点击跳转 wget https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.36.1-fb2f6cf-autoupdate/openwrt-tailscale-enabler-v1.36.1-fb2f6cf-autoupdate.tgz2.解压缩 tar x -zvC / …...
基于物联网的智能插座云平台 WIFI云平台MQTT协议
功能介绍 功能描述: STM32单片机为控制核心 LCD1602液晶显示当前时间温度 开启时间 关闭时间 按键设置开启时间/关闭时间,温度报警上限 到开启时间,继电器自动打开,到关闭时间,自动关闭 通过DS18B20温度传感器获…...
MySQL 事务
概念介绍 事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组 DML 语句要么全部成功,要么全部失败,是一个整体。MySQL 提供一种机制,保证我们达到这样的效果。 事务就是要做的或所做的事情,主要用…...
消息中间件面试题-参考回答
消息中间件面试题-参考回答 面试官:RabbitMQ-如何保证消息不丢失 候选人: 嗯!我们当时MYSQL和Redis的数据双写一致性就是采用RabbitMQ实现同步的,这里面就要求了消息的高可用性,我们要保证消息的不丢失。主要从三个层面…...
解决 MyBatis 中空字符串与数字比较引发的条件判断错误
问题复现 假设你在 MyBatis 的 XML 配置中使用了如下代码: <if test"isCollect ! null"><choose><when test"isCollect 1">AND exists(select 1 from file_table imgfile2 where task.IMAGE_SEQimgfile2.IMAGE_SEQ and im…...
【ETCD】【源码阅读】深入解析 etcd 的 `EtcdServer.Start` 函数
深入解析 etcd 的 EtcdServer.Start 函数 在 etcd 的代码中,EtcdServer.Start 是一个关键方法,用于初始化并启动服务器以便处理请求。本文将从源码的角度逐步分析此函数的每一步操作。 函数签名及注释 // Start performs any initialization of the Se…...
嵌入式驱动开发详解16(音频驱动开发)
文章目录 前言WM8960简介I2S协议接口说明 SAI音频接口简介驱动框架简介设备树配置内核使能声卡设置与测试 后续参考文献 前言 该专栏主要是讲解嵌入式相关的驱动开发,但是由于ALSA驱动框架过于复杂,实现音频编解码芯片的驱动不是一个人能完成的…...
【数据结构——查找】二分查找(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二分查找的算法。 相关知识 为了完成本关任务,你需要掌握:1.根据键盘输入的一组有序数据建立顺序表,2.顺序表的输…...
探索云原生数据库 PolarDB
引言 在云计算时代,数据库的重要性不言而喻。随着企业数字化转型的加速,对数据库的性能、可靠性和灵活性的要求也越来越高。阿里云推出的云原生数据库 PolarDB,正是为了满足这些需求而设计的一款高性能、兼容性强、弹性灵活的关系型数据库产品。本文将详细介绍 PolarDB 的特…...
OGG FOR MYSQL同步DDL
以下实验测试OGG FOR mysql 同步DDL, OGG 21.3 MYSQL 8.0.27 --创建测试数据 create table oggddl_20241201 (oid int primary key ,oname varchar(10)); create table oggddl_20241202 (oid int primary key ,oname varchar(10)); create table oggddl_20241203…...
【CAN】asc报文格式文件合并(python版)
目录 一、简介二、合并asc格式报文1、准备多个asc文件2、根据时间合并asc文件3、结果 三、总结四、参考 一、简介 CAN通信:CAN(Controller Area Network)是一种多主方式的串行通讯总线。基本设计规范要求有高位速率、高抗电磁干扰性…...
C++之STL的map容器
map map的实现方式 set是一个有序的关联容器,是基于平衡二叉搜索树(红黑树)实现的,元素是有序的 map的用法 #include <iostream> #include <map> using namespace std;const int ADDSIZE 20; int main() {map<int, int> m;cout &…...
基于卷积神经网络的图像二分类检测模型训练与推理实现教程 | 幽络源
前言 对于本教程,说白了,就是期望能通过一个程序判断一张图片是否为某个物体,或者说判断一张图片是否为某个缺陷。因为本教程是针对二分类问题,因此主要处理 是 与 不是 的问题,比如我的模型是判断一张图片是否为苹果…...
react-dnd 拖拽事件与输入框的文本选中冲突
问题描述 当我们使用拖拽库的时候,往往会遇到拖拽的一个元素他的子孙元素有输入框类型的dom节点,当拖拽的事件绑定在该元素身上时候,发现子孙的输入框不能进行文本选中了,会按住鼠标去选中文本的时候会触发拖拽 实际的效果&…...
‘Close Project‘ is not available while IDEA is updating indexes的解决
XXX is not available while IDEA is updating indexes IDEA 1.Remove from Recent Projects 2.重新 Open工程即可...