大语言模型智体的综述:方法论、应用和挑战(下)
25年3月来自北京大学、UIC、广东大亚湾大学、中科院计算机网络信息中心、新加坡南阳理工、UCLA、西雅图华盛顿大学、北京外经贸大学、乔治亚理工和腾讯优图的论文“Large Language Model Agent: A Survey on Methodology, Applications and Challenges”。
智体时代已经到来,大语言模型的革命性进步推动这一时代。大语言模型 (LLM) 智体具有目标驱动行为和动态适应能力,可能代表着通向通用人工智能的关键途径。本研究通过以方法论为中心的分类法系统地解构 LLM 智体系统,将架构基础、协作机制和演进途径联系起来。通过揭示智体设计原则与其在复杂环境中出现的行为之间的基本联系来统一零散的研究线索。该工作提供统一的架构视角,研究了智体的构建方式、协作方式以及随时间推移的演变方式,同时还解决评估方法、工具应用、实际挑战和各种应用领域。
。。。。。。继续。。。。。。
随着 LLM 智体越来越多地融入社会的各个方面,它们带来重大的现实世界挑战,必须解决这些挑战才能负责任地部署。如图概述这些挑战,分为三个主要领域:安全、隐私和社会影响。安全问题包括针对模型组件的以智体为中心威胁和污染输入数据的以数据为中心威胁。隐私问题包括记忆漏洞和知识产权利用。除了技术问题之外,LLM 智体还提出了重要的道德考虑,并具有广泛的社会影响,包括对社会的潜在利益和风险。理解这些挑战对于开发健壮、值得信赖的智体系统至关重要。
以智体为中心的安全
以智体为中心的安全,旨在防御针对智体模型的不同类型攻击,这些攻击旨在操纵、篡改和窃取智体模型权重、架构和推理过程的关键组件。这些以智体为中心的攻击可能导致智体系统内的性能下降、恶意操纵输出和隐私泄露。Li [175] 分析了 LLM 智体在威胁行为者、目标、入口点等分类攻击下的安全漏洞。他们还对某些流行的智体进行实验,以证明它们的安全漏洞。智体安全基准 [176] 引入一个全面的框架,用于评估 10 种场景、10 种智体、400 多种工具、23 种攻击/防御方法和 8 种指标中基于 LLM 智体的攻击和防御,揭示当前 LLM 智体的重大漏洞和有限的防御效果。
对抗性攻击与防御
对抗性攻击旨在损害智体的可靠性,使其在特定任务中无效。Mo [177] 将对抗性攻击分为三个部分,即感知、大脑和行动。AgentDojo [178] 提供一个评估框架,旨在通过在 97 个实际任务和 629 个安全测试用例上对 AI 智体进行测试来衡量其对抗性鲁棒性。ARE [179] 评估对抗性攻击下的多模态智体鲁棒性。对于对抗性攻击方法,CheatAgent [180] 使用基于 LLM 的智体来攻击黑盒子 LLM 赋能的推荐系统,方法是确定最佳插入位置、生成对抗性扰动并通过迭代快速调整和反馈来改进攻击。 GIGA [181] 引入可泛化的传染性梯度攻击,通过寻找能够在不同上下文下很好地泛化的自传播输入,在多-智体、多-轮 LLM 赋能的系统中传播对抗性输入。对于对抗性攻击的防御方法,LLAMOS [182] 引入一种对抗性攻击的防御技术,即在输入 LLM 之前,使用智体指令和防御指导对对抗性输入进行净化。Chern [183] 引入一种多智体辩论方法来降低智体对对抗性攻击的敏感性。
越狱攻击与防御
越狱攻击试图突破模型的保护,获取未经授权的功能或信息。对于越狱攻击方法,RLTA [184] 使用强化学习自动生成产生恶意提示的攻击,触发 LLM 智体越狱以产生特定输出。这些可以适用于白盒和黑盒场景。Atlas [185] 使用突变智体和选择智体越狱带有安全过滤器的文本-到-图像模型,并通过上下文学习和思维链技术进行增强。RLbreaker [186] 是一种黑盒越狱攻击,使用深度强化学习将越狱建模为搜索问题,具有定制的奖励函数和 PPO 算法。PathSeeker [187] 也使用多智体强化学习来指导较小的模型根据目标 LLM 的反馈修改输入,并使用利用词汇丰富度来削弱安全约束的奖励机制。对于越狱防御方法,AutoDefense [188] 提出一个多智体防御框架,该框架使用具有专门角色的 LLM 智体协作过滤有害响应,有效抵御越狱攻击。 Guardians [189] 使用三种检查方法——逆向图灵测试、多智体模拟和工具介导的对抗场景——来检测恶意智体并应对越狱攻击。ShieldLearner [190] 提出一种针对越狱攻击的新型防御范式,通过反复试验自主学习攻击模式并综合防御启发式方法。
后门攻击与防御
后门攻击会植入特定的触发器,导致模型在遇到这些触发器时产生预设错误,同时在正常输入下正常运行。对于后门攻击方法,DemonAgent [191] 提出一种动态加密的多后门植入攻击方法,通过使用动态加密将后门映射和分解为多个片段来逃避安全审计。Yang [192] 研究并实施针对基于 LLM 智体的多种形式后门攻击,并通过在网络购物和工具使用等任务上的实验证明它们的脆弱性。 BadAgent [193] 攻击基于 LLM 智体,通过特定输入或环境线索作为后门触发有害操作。BadJudge [194] 引入特定于 LLM-as-a-judge 智体系统的后门威胁,其中攻击者操纵评估器模型来夸大恶意候选人的分数,在各个数据访问级别上表现出显着的分数膨胀。DarkMind [195] 是一种潜在的后门攻击,它利用定制 LLM 智体的推理过程,在推理链中秘密改变结果,而无需在用户输入中注入触发器。
模型协作攻击与防御
模型协作攻击,是一种新兴的攻击类型,主要针对多个模型协同工作的场景。在这种类型的攻击中,攻击者操纵多个模型之间的交互或协作机制来破坏系统的整体功能。对于模型协作攻击方法,CORBA [196] 为 LLM 多智体系统引入了一种简单的攻击方法。它利用传染和递归(这些很难通过对齐来缓解),从而破坏智体交互。AiTM [197] 通过使用具有反思机制的对抗智体拦截和操纵智体间消息,向 LLM 多智体系统引入一种攻击方法。在防御方法方面,Netsafe [198] 确定影响多智体网络抵御对抗攻击安全性的关键安全现象和拓扑属性。G-Safeguard [199] 也基于拓扑指导,并利用图神经网络检测 LLM 多智体系统中的异常。Trustagent [200] 旨在在三个不同的规划阶段增强 LLM 智体框架的规划安全性。PsySafe [201] 以智体心理学为基础,通过分析黑暗人格特质、评估心理和行为安全以及制定风险缓解策略来识别、评估和减轻多智体系统中的安全风险。
下表总结以智体为中心的攻击和防护方法:
数据中心的安全
数据中心攻击的目的是污染LLM智体的输入数据,最终导致不合理的工具调用、攻击性输出和资源耗尽等[202]。在数据中心攻击中,LLM智体系统中的任何组件或默认参数都不允许被修改。根据数据类型,将攻击分为外部数据攻击和执行数据攻击。下表总结相应的防御策略来应对这些智体攻击:
外部数据攻击与防御
用户输入伪造。修改用户输入是最直接和最广泛使用的数据中心攻击。这些注入[176]可能导致不受控制的危险输出。虽然它很简单,但它总是能达到最高的攻击成功率(ASR)[176],[203]。Li [204]提出恶意前缀提示,例如“忽略文档”。 InjectAgent [205] 和 Agentdojo [203] 是两个即时注入基准测试,用于测试 LLM 智体中的单轮和多轮攻击。随着注入对用户输入的广泛影响不断增加,各种防御模型应运而生。Mantis [206] 通过反攻攻击者自己的系统进行防御。[207] 提供一个称为输入防火墙的防御模块,它从用户的自然语言中提取关键点并将其转换为结构化的 JSON 格式。RTBAS [208] 和 TaskShield [209] 检查信息流和智体流程的每一步,包括函数调用和工具执行,以确保执行符合原始指令和意图。在 ASB [176] 基准测试中,三明治防御策略添加额外的保护指令,帮助 LLM 智体忽略恶意注入。
黑暗心理指引。攻击者可以在提示中进行暗黑心理引导,如用“欺骗”代替“关心”,用“背叛”代替“公平”,用“颠覆”代替“权威”,从而引导LLM智体变得具有攻击性和反社会性,可能造成严重的社会影响。[210]提出“邪恶天才”来生成提示,让智体进入特定的角色扮演状态,并通过红蓝练习对提示进行优化。[201]将暗黑心理特质注入用户输入。为了防御暗黑心理注入,在智体系统中加入了医生和警察智体[201],医生智体进行心理评估,警察智体监督智体系统的安全,他们齐心协力,随时守护健康心理。
外部源投毒。许多攻击者关注基于RAG的LLM 智体,因为它们被证明比一般的基于记忆的LLM智体更可靠[211]。攻击者将毒害样本注入知识库[175],[212]。在此基础上,间接提示注入(IPI)攻击将恶意指令嵌入到其他外部知识源[213],如网站、支持文献、电子邮件、在线BBS,从而操纵智体并使其偏离初衷。WIPI [214]通过公共网页控制智体,间接毒害指令。[215]描述一种Foot-in-the-Door(FITD)攻击,它从不显眼的、不相关的请求开始,逐渐合并无害的请求。这种方法增加了智体执行后续操作的可能性,从而导致本可以避免的资源消耗。AgentPoison [216]是一种典型的红队工作,在知识密集型QA智体中取得了很高的成功率。[183]采用多智体辩论进行防御,其中每个智体都充当域专家来验证外部知识的真实性。
交互攻击与防御
用户与智体接口之间的交互。一些 LLM 智体将私有的用户-智体交互存储在用户的计算机内存中,以提高对话性能。在这些交互过程中,LLM 智体通常对攻击者来说是黑盒。[217] 是一种私有记忆提取攻击,它会从存储的记忆中聚合多个级别的知识。[218] 介绍一种发生在用户与 LLM 智体之间接口的攻击,它会从用户那里索取信息。
LLM 智体之间的交互。在多智体 LLM 系统中,智体之间的交互频繁且必不可少 [12]。攻击者毒害单个智体,然后感染其他智体 [219]。这种递归攻击最终会耗尽计算资源。AgentSmith [220] 得出结论,传染性传播的速度呈指数级增长。传染性递归阻断攻击 (CORBA) [196] 旨在破坏智体之间的通信,使感染在整个通信网络中传播。[197] 基于对通信的语义理解,结合反思机制完成污染。[221] 将恶意指令注入一个智体,使它们能够在智体网络中自我复制,类似于计算机病毒的传播。此外,[221] 开发一种标记(tagging)策略来控制感染传播。为了在智体交互过程中防御拜占庭攻击,BlockAgents [222] 引入一种基于区块链和思维证明 (PoT) 技术的共识机制。对规划过程贡献最大的智体被授予记账权。
智体与工具之间的交互。为了调用适当的工具,智体首先制定规划,然后完成操作。智体与工具之间的交互很容易受到攻击。一些攻击者恶意修改规划思路,从而改变智体动作。智体可能会调用不可信或有害的工具来完成任务,进一步造成意想不到的后果。AgentHarm [223] 在多步骤执行任务期间增加了有害的干扰。 InjectAgent [205] 在智体规划过程中发起攻击。多层智体防火墙 [207] 包含一个自我修正机制,称为轨迹防火墙层,用于修正智体的偏离轨迹。此防火墙层验证生成的响应以确保符合安全规则。
隐私
LLM 在多智系统中的广泛使用也引发一些隐私问题。这些问题主要是由 LLM 的记忆容量引起的,这可能导致在对话或完成任务时泄露私人信息。此外,LLM 智体容易受到涉及模型和提示盗窃以及其他形式的知识产权盗窃的攻击。
下表是隐私威胁和对策方法:
LLM 记忆漏洞
事实证明,LLM 能够生成类似于人类的文本。然而,这种生成的文本可能是保留的训练数据,这带来了严重的隐私保护问题。这些风险在多智体系统中尤其严重,在协作解决复杂任务时,LLM 可能会泄露敏感信息。
数据提取攻击。它们利用 LLM 的记忆容量从训练数据中提取敏感信息。Carlini [224] 表明,攻击者可以通过特定查询从 GPT-2 模型中提取个人身份信息 (PII),例如姓名、电子邮件和电话号码。数据提取的风险随着模型大小、重复数据频率和上下文长度的增加而增加 [225]。Huang [226] 进一步研究针对 GPT-neo 等预训练 LLM 的数据提取攻击,强调了此类攻击在实际应用中的可行性。
成员推理攻击。它们的目的是确定特定数据样本是否是 LLM 训练数据的一部分。Mireshghallah [227] 实证分析了微调 LLM 对成员推理攻击的脆弱性,并发现微调模型头使其更容易受到此类攻击。 Fu [228] 提出一种基于概率变化的自校准成员推理攻击方法,通过这些变化提供更可靠的成员信号。这种类型的攻击在多智体系统中尤其危险,因为训练数据可能来自多个敏感信息源。为了应对这些风险,已经开发差分隐私 (DP) 和知识蒸馏等保护策略 [229]、[230]。
属性推理攻击。属性推理攻击的目标是使用训练数据推断数据样本的某个特征或特性。为了证实 LLM 中敏感属性推理的存在,Pan [231] 对 LLM 中与属性推理攻击相关的隐私问题进行深入研究。Wang [232] 研究针对生成模型的属性存在推理攻击,发现大多数生成模型都容易受到此类攻击。
保护措施。已经提出几种保护策略来减少 LLM 记忆的机会。数据清理策略可以通过定位和消除训练数据中的敏感信息来成功降低记忆风险 [233]。另一种减少隐私泄露的有效方法是在预训练和微调期间将差分隐私噪声引入模型梯度和训练数据 [229]。知识蒸馏技术已成为一种直观的隐私保护手段,它将知识从私人教师模型转移到公共学生模型 [230]。此外,ProPILE 等隐私泄露检测工具可以帮助服务提供商在部署 LLM 智体之前评估其 PII 泄露的程度 [234]。
LM 知识产权利用
LLM 智体容易受到记忆问题以及与知识产权 (IP) 相关的隐私风险的影响,例如模型盗窃和提示盗窃。这些攻击利用 LLM 的经济价值和信号,使个人和组织都面临严重危险。
模型窃取攻击。模型盗窃攻击试图通过查询模型并观察其响应来提取模型信息(例如参数或超参数)。 Krishna [235] 表明攻击者可以通过多次查询从 BERT 等语言模型中窃取信息,而无需访问原始训练数据。Naseh [236] 证明攻击者可以以低成本窃取 LLM 解码算法的类型和超参数。Li [237] 研究从 LLM 中提取专用代码的可行性,强调了多智体系统中模型被盗的风险。为了应对这些攻击,已经提出模型水印 [238] 和基于区块链的 IP 身份验证 [239] 等保护措施。
提示窃取攻击。提示窃取攻击涉及从可能具有重大商业价值的生成内容中推断原始提示。Shen [240] 首次研究了针对文本-到-图像生成模型的提示窃取攻击,并提出了-一种名为 PromptStealer 的有效攻击方法。Sha [241] 将这项研究扩展到 LLM,使用参数提取器来确定原始提示的属性。Hui [242] 提出 PLEAK,这是一个闭箱提示提取框架,可通过优化对抗性查询来提取 LLM 应用程序的系统提示。为了防止提示窃取,对抗性样本已被提出作为一种有效的方法,通过对生成的内容进行干扰来阻止攻击者推断原始提示 [240]。
LLM 代理面临的隐私挑战是多方面的,从记忆威胁到与知识产权相关的风险。随着 LLM 的不断发展,必须开发强大的隐私保护技术来减轻这些隐私风险,同时确保 LLM 在多智能体系统中发挥有效作用。
社会影响和道德问题
LLM 智体对社会产生了深远的影响,推动了自动化、工业创新和生产力提高。然而,道德问题仍然存在。下表总结了内容:
对社会的好处
LLM 智体对人类社会产生了重大影响,在各个领域提供了许多好处。
自动化增强。LLM 智体已应用于医疗保健、生物医学、法律和教育等各个领域 [243]。通过自动化劳动密集型任务,它们可以减少时间成本并提高效率。例如,在医疗保健领域,它们有助于解释临床症状、解释实验室结果,甚至起草医疗文件。在法律和教育环境中,它们简化了行政工作,生成摘要并提供即时的、上下文-觉察的响应 [243]–[245]。它们减轻重复性工作量的能力使专业人员能够专注于更复杂、高风险的任务,最终提高各行业的生产力和可访问性。
创造就业机会和劳动力转型。虽然研究人员承认人工智能智体有可能取代人类工作并颠覆就业市场 [243],但另一些人认为,它们的进步将重塑劳动力需求 [246]。LLM 智体的兴起正在改变就业市场,不仅扩大了机器学习工程师和数据科学家等技术角色,而且还推动了对人工智能项目经理和商业战略家等管理职位的需求。鉴于其日益增长的经济影响,政府被鼓励支持以人工智能为重点的培训计划,以使个人适应这一不断变化的形势。与通常需要专业知识才能有效使用的 LLM 不同,LLM 智体专为可访问性而设计,吸引了更广泛的用户群并实现了跨各个行业的更广泛应用。因此,它们对社会的影响预计将超过 LLM 或其他 AI 模型,带来挑战和前所未有的机遇。
增强信息传播。依赖大规模文本生成的企业(例如在线广告)从 LLM 智体中受益匪浅。然而,它们的滥用越来越令人担忧,特别是关于虚假新闻和错误信息的泛滥 [244],[245]。除了加速广告分发外,增强信息传播还能带来更广泛的社会效益。例如,全球缺乏耐心、经验丰富、知识渊博的教师一直是一个挑战。LLM 智体引入了变革性解决方案,例如智能在线辅导系统,彻底改变了教育的可及性 [247]。
道德问题
虽然 LLM 智体为社会带来了许多好处,但它们也带来了不容忽视的潜在风险。这些挑战引发了重大的道德问题,包括决策偏见、错误信息传播和隐私问题,凸显了负责任的发展和监管的必要性。
偏见和歧视。LLM 智体天生就继承训练数据集中存在的偏见,甚至可能在学习过程中将其放大,导致输出偏差并强化现有的刻板印象 [248]。认识到这个问题后,许多现有研究已经实施了缓解有害内容生成的策略。这些方法包括过滤敏感主题、应用强化学习和人工反馈,以及改进模型训练过程以促进公平并减少偏见 [243]–[245]。追求公平已成为 LLM 智体研究的一个关键焦点,因为研究人员努力开发能够最大程度减少偏见、促进包容性并确保在现实世界应用中符合道德 AI 部署的模型[249]–[250]。
问责制。尽管努力减轻 LLM 智体中的有毒内容,但有害输出的风险仍然存在 [244]、[245]、[251]。问责制仍然是一项关键挑战,因为记录的数据集提供的监督有限,而大量未记录的数据可以轻松集成到培训中。尽管成本高昂,但严格的数据集记录必不可少 [252]。此外,需要适当的治理框架来确保 LLM 智体的问责制 [253]、[254]。
版权。版权问题与隐私和问责制密切相关。一些人认为,人工智能应该遵守与人类相同的法律和道德标准,确保公平使用和知识产权保护 [250]。许多创作者反对用他们的作品来训练可能取代他们的模型,但缺乏明确的规定和对数据日益增长的需求导致了广泛的滥用 [255]。这个问题经常被低估,需要紧急关注,因为它威胁着人类创作者,增加了人工智能生成内容在某些领域相对于人类创作作品的普及率,并且有内容退化的风险,特别是当大型人工智能模型越来越多地接受人工智能生成的数据训练时[256]。解决这些问题在使用 LLM 智体时尤为重要,因为用户通常缺乏对训练数据源的直接了解。这种不透明性增加了出现意想不到后果的风险,因为个人可能会在不知情情况下依赖于在有争议的数据集上训练的模型,从而可能导致声誉损害甚至法律后果。
其他。使用 LLM 智体时的一些道德问题,例如隐私[243]、[257]、[258]、数据操纵[259]和错误信息[244]、[260],非常关键。除此之外,还有其他道德问题。一个主要问题是 LLM 智体缺乏真正的语义和上下文理解,仅仅依赖于统计词语关联。这一局限性经常被误解和高估,导致过度依赖这些模型 [244],尤其是当它们的行为可能与人类意图不太一致时 [261]。此外,人们担心 LLM 智体会产生大量碳足迹,带来环境挑战 [262],同时训练大型模型的计算成本也很高 [263]。
如表所示,LLM 智体的应用包括:
- 科学发现
- 游戏
- 社会科学
- 生产力工具
挑战和方向包括:
- 可扩展性和协调性
- 记忆限制和长期适应性
- 可靠性和科学严谨性
- 多轮、多智体动态评估
- 安全部署的监管措施
- 角色扮演场景
相关文章:
大语言模型智体的综述:方法论、应用和挑战(下)
25年3月来自北京大学、UIC、广东大亚湾大学、中科院计算机网络信息中心、新加坡南阳理工、UCLA、西雅图华盛顿大学、北京外经贸大学、乔治亚理工和腾讯优图的论文“Large Language Model Agent: A Survey on Methodology, Applications and Challenges”。 智体时代已经到来&a…...
【操作系统】Linux进程管理和调试
在 Linux 中,可以通过以下方法查看 PID(进程ID)对应的进程名称和详细信息: 1. 使用 ps 命令(最直接) ps -p <PID> -o pid,comm,cmd示例: ps -p 1234 -o pid,comm,cmd输出: P…...
C++---RAII模式
一、RAII模式概述 1. 定义 RAII(Resource Acquisition Is Initialization)即资源获取即初始化,是C中用于管理资源生命周期的一种重要编程模式。其核心在于将资源的获取和释放操作与对象的生命周期紧密绑定。当对象被创建时,资源…...
Clion刷题攻略-配置Cmake
使用Clion刷题,在一个项目中创建多个main函数,每一个文件对应一道题目,将Clion作为题目管理系统使用,并且cpp文件允许使用中文名,exe文件统一输出到runtime目录,防止污染根目录,CmakeLists文件如…...
DEBUG:file命令
file 命令详解 file 是 Linux/Unix 系统中用于检测文件类型的实用工具。它通过检查文件的**魔数(magic number)**和内容结构来判断文件类型,而不是依赖文件扩展名。 1. 基本语法 file [选项] 文件名... 常用选项 选项说明-b (--brief)简洁…...
hackmyvn-casino
arp-scan -l nmap -sS -v 192.168.255.205 目录扫描 dirsearch -u http://192.168.255.205/ -e * gobuster dir -u http://192.168.255.205 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -b 301,401,403,404 80端口 随便注册一个账号 玩游戏时的…...
Elasticsearch笔记
官网 https://www.elastic.co/docs 简介 Elasticsearch 是一个分布式、开源的搜索引擎,专门用于处理大规模的数据搜索和分析。它基于 Apache Lucene 构建,具有实时搜索、分布式计算和高可扩展性,广泛用于 全文检索、日志分析、监控数据分析…...
在Windows下使用Docker部署Nacos注册中心(基于MySQL容器)
需要两个容器Nacos容器和MySQL容器,MySQL容器专注数据存储,Nacos容器专注服务发现/配置管理 准备工作 确保已安装Docker Desktop for Windows确保已启用WSL 2(推荐)或Hyper-V确保Docker服务正在运行 部署步骤 1. 拉取所需镜像 # 拉取MySQL镜像(这里…...
去中心化自治组织(DAO):革新未来治理的下一站
去中心化自治组织(DAO):革新未来治理的下一站 引言 去中心化自治组织(DAO)的诞生,像是互联网时代的一道新曙光。它打破了传统组织的等级壁垒,以去中心化和智能合约为核心,让社区成员能够直接参与决策并共享收益。从NFT社区到投资基金,DAO的应用场景正以前所未有的速…...
ideal自动生成类图的方法
在 IntelliJ IDEA 中,“**在项目资源管理器中选择以下类**” 是指通过 **项目资源管理器(Project Tool Window)** 找到并选中你需要生成类图的类文件(如 .java 文件),然后通过右键菜单或快捷键操作生成类图…...
爬虫获取1688关键字搜索接口的实战指南
在当今电商行业竞争激烈的环境下,数据的重要性不言而喻。1688作为国内领先的B2B电商平台,拥有海量的商品信息,这些数据对于商家的市场分析、选品决策、价格策略制定等都有着重要的价值。本文将详细介绍如何通过爬虫技术获取1688关键字搜索接口…...
视频设备轨迹回放平台EasyCVR渡口码头智能监控系统方案,确保港口安全稳定运行
一、背景 近年来,随着水上交通运输业的快速发展,辖区内渡口码头数量持续增加,船舶运营规模不断扩大,各类船舶活动频繁,给水上交通安全监管带来了巨大挑战。近期发生的多起村民使用无证木船捕鱼导致的伤亡事故…...
使用 Sales_data 类实现交易合并(三十)
1. Sales_data 类定义 假设 Sales_data 类定义在头文件 Sales_data.h 中,其基本定义如下: // Sales_data.h #ifndef SALES_DATA_H #define SALES_DATA_H#include <string>struct Sales_data {std::string bookNo; // ISBN 编号unsigned uni…...
电力系统惯量及其作用解析
电力系统中的惯量是指由同步发电机的旋转质量提供的惯性,用于抵抗系统频率变化的能力。其核心作用及要点如下: 1. 物理基础 转动惯量:同步发电机的转子具有质量,其转动惯量()决定了转子抵抗转速变化的能力…...
HNSW(Hierarchical Navigable Small World,分层可导航小世界)用来高效搜索高维向量的最近邻
HNSW(Hierarchical Navigable Small World,分层可导航小世界)是一种用于 高效最近邻搜索(ANN, Approximate Nearest Neighbors) 的索引结构,专门用于在 高维向量(比如文本、图像、音频的嵌入向量…...
STM32 CAN学习(一)
CAN总线应用最多的是汽车领域。 CAN(Controller Area Network)控制器 局域 网 局域网:把几台电脑连接到一台路由器上,这几台电脑就可以进行通讯了。 控制器在汽车中的专业术语叫做ECU(Electronic Control Unit&…...
高效内存位操作:如何用C++实现数据块交换的性能飞跃?
「性能优化就像考古,每一层都有惊喜」—— 某匿名C工程师 文章目录 问题场景:当内存操作成为性能瓶颈性能深潜:揭开内存操作的面纱内存访问的三重代价原始方案的性能缺陷 性能突破:从编译器视角重构代码方案一:指针魔法…...
Spring Boot向Vue发送消息通过WebSocket实现通信
后端实现步骤 添加Spring Boot WebSocket依赖配置WebSocket端点和消息代理创建控制器,使用SimpMessagingTemplate发送消息 前端实现步骤 安装sockjs-client和stompjs库封装WebSocket连接工具类在Vue组件中建立连接,订阅主题 详细实现步骤 后端&…...
USB转串口数据抓包--Bus hound
Bus Hound是一款强大的总线分析工具。 Bus Hound 支持哪些设备 ? 所有的 IDE , SCSI , USB 和 1394 设备都得到支持,包括磁盘驱动器,鼠 标、扫描仪,网络摄像头,等等。只要是枚举成以上所列的总线类型的…...
Android 使用CameraX实现预览、拍照、录制视频(Java版)
Android 官方关于相机的介绍如下: https://developer.android.google.cn/media/camera/get-started-with-camera?hlzh_cn 一、开始使用 Android 相机 Android相机一般包含前置摄像头和后置摄像头,使用相机可以开发一系列激动人心的应用,例…...
【已解决】Javascript setMonth跨月问题;2025-03-31 setMonth后变成 2025-05-01
文章目录 bug重现解决方法:用第三方插件来实现(不推荐原生代码来实现)。项目中用的有dayjs。若要自己实现,参考 AI给出方案: bug重现 今天(2025-04-01)遇到的一个问题。原代码逻辑大概是这样的…...
DeepSeek技术架构解析:MLA多头潜在注意力
一、前言 我们上一篇已经讲了 DeepSeek技术架构解析:MoE混合专家模型 这一篇我们来说一说DeepSeek的创新之一:MLA多头潜在注意力。 MLA主要通过优化KV-cache来减少显存占用,从而提升推理性能。我们知道这个结论之前,老周带大家…...
02.02、返回倒数第 k 个节点
02.02、[简单] 返回倒数第 k 个节点 1、题目描述 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 2、题解思路 本题的关键在于使用双指针法,通过两个指针(fast 和 slow),让 fast 指针比 slow 指针…...
剑指Offer(数据结构与算法面试题精讲)C++版——day2
剑指Offer(数据结构与算法面试题精讲)C++版——day2 题目一:只出现一次的数据题目二:单词长度的最大乘积题目三:排序数组中的两个数字之和题目一:只出现一次的数据 一种很简单的思路是,使用数组存储出现过的元素,比如如果0出现过,那么arr[0]=1,但是有个问题,题目中没…...
nginx的自动跳转https
mkdir /usr/local/nginx/certs/ 创建一个目录 然后用openssl生成证书 编辑nginx的配置文件 自动跳转成功 做一个优化,如果访问的时候后面加了其他的uri也一起自动跳转了...
正则表达式(Regular Expression,简称 Regex)
一、5w2h(七问法)分析正则表达式 是的,5W2H 完全可以应用于研究 正则表达式(Regular Expressions)。通过回答 5W2H 的七个问题,我们可以全面理解正则表达式的定义、用途、使用方法、适用场景等,…...
Windows下在IntelliJ IDEA 使用 Git 拉取、提交脚本出现换行符问题
文章目录 背景问题拉取代码时提交代码时 问题原因解决方案1.全局配置 Git 的换行符处理策略2.在 IntelliJ IDEA 中配置换行符3.使用 .gitattributes 文件 背景 在 Windows 系统下使用 IntelliJ IDEA 进行 Git 操作(如拉取和提交脚本)时,经常…...
Python 实现的运筹优化系统代码详解(整数规划问题)
一、引言 在数学建模的广袤领域里,整数规划问题占据着极为重要的地位。它广泛应用于工业生产、资源分配、项目管理等诸多实际场景,旨在寻求在一系列约束条件下,使目标函数达到最优(最大或最小)且决策变量取整数值的解决…...
conda安装python 遇到 pip is configured with locations that require TLS/SSL问题本质解决方案
以前写了一篇文章,不过不是专门为了解决这个问题的,但是不能访问pip install 不能安装来自https 协议的包问题几乎每次都出现,之前解决方案只是治标不治本 https://blog.csdn.net/wangsenling/article/details/130194456https…...
嘿嘿,好久不见
2025年4月2日,6~22℃,一般 遇见的事:参加了曲靖的事业单位D类考试。 感受到的情绪:考场一半的人都没有到位,这路上你到了可能都会受到眷顾。 反思:这路上很难,总有人会提前放弃,不…...
virsh 的工作原理
virsh是用于管理虚拟化环境中的客户机和Hypervisor的命令行工具。它基于libvirt管理API构建,与virt-manager等工具类似,都是通过调用libvirt API来实现虚拟化的管理。virsh是完全在命令行文本模式下运行的用户态工具,因此它是系统管理员通过脚…...
Qt实现HTTP GET/POST/PUT/DELETE请求
引言 在现代应用程序开发中,HTTP请求是与服务器交互的核心方式。Qt作为跨平台的C框架,提供了强大的网络模块(QNetworkAccessManager),支持GET、POST、PUT、DELETE等HTTP方法。本文将手把手教你如何用Qt实现这些请求&a…...
(041)05-01-自考数据结构(20331)树与二叉树大题总结
实际考试中,计算题约占40%,推理题约占30%,算法设计题约占30%。建议重点练习遍历序列相关的递归分治解法, 知识拓扑 知识点介绍 一、计算题类型与解法 1. 结点数量计算 题型示例: 已知一棵完全二叉树的第6层有8个叶子结点,求该二叉树最多有多少个结点? 解法步骤: 完…...
WPS JS宏编程教程(从基础到进阶)-- 第三部分:JS宏编程语言开发基础
第三部分:JS宏编程语言开发基础 @[TOC](第三部分:JS宏编程语言开发基础)**第三部分:JS宏编程语言开发基础**1. 变量与数据类型**变量声明:三种方式****示例代码****数据类型判断****实战:动态处理单元格类型**2. 运算符全解析**算术运算符****易错点:字符串拼接 vs 数值相…...
迈向云原生:理想汽车 OLAP 引擎变革之路
在如今数据驱动的时代,高效的分析引擎对企业至关重要。理想汽车作为智能电动汽车的领军企业,面临着海量数据分析的挑战。本文将展开介绍理想汽车 OLAP 引擎从存算一体向云原生架构演进的变革历程,以及在此过程中面临的挑战,以及是…...
Spark,HDFS客户端操作
hadoop客户端环境准备 找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\hadoop-3.1.0) ① 打开环境变量 ② 在下方系统变量中新建HADOOP_HOME环境变量,值就是保存hadoop的目录。 效果如下: ③ 配置Path…...
QuecPython 的 VScode 环境搭建和使用教程
为方便开发者使用 VSCode 开发 QuecPython,QuecPython 团队特推出了名为 QuecPython 的 VSCode 插件。 插件目前支持的功能有: 固件烧录REPL 命令交互代码补全文件传输文件系统目录树运行指定脚本文件 目前支持所有QUecPython系列模组。 插件安装 点…...
Linux Vim 编辑器的使用
Vim 编辑器的使用 一、安装及介绍二、基础操作三、高级功能四、配置与插件 一、安装及介绍 Vim是一款强大且高度可定制的文本编辑器,相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等…...
Java 基础-28- 多态 — 多态下的类型转换问题
在 Java 中,多态(Polymorphism)是面向对象编程的核心概念之一。多态允许不同类型的对象通过相同的方法接口进行操作,而实际调用的行为取决于对象的实际类型。虽然多态提供了极大的灵活性,但在多态的使用过程中…...
机器学习中的自监督学习概述与实现过程
概述 机器学习中有四种主要学习方式: 监督式学习 (Supervised Learning):这种学习方式通过使用带有标签的数据集进行训练,目的是使机器能够学习到数据之间的关联性,并能够对新的、未见过的数据做出预测或分类。应用领域包括语音识…...
AI Agent开发大全第十四课-零售智能导购智能体的RAG开发理论部分
开篇 经过前面的一些课程,我们手上已经积累了各种LLM的API调用、向量库的建立和使用、embedding算法的意义和基本使用。 这已经为我们具备了开发一个基本的问答类RAG的开发必需要素了。下面我们会来讲一个基本问答类场景的RAG,零售中的“智能导购”场景。 智能导购 大家先…...
Git相关笔记1 - 本地文件上传远程仓库
Git相关笔记 目录 Git相关笔记Git上传相关文件第一步创建一个仓库:第二步本地创建空文件夹:第三步开始在gitbush上传文件:解决外网网络连接的问题:中文文件的编码问题:参考资料 Git上传相关文件 第一步创建一个仓库&a…...
机器学习算法
目录 行向量与列向量 信息论 Logistic回归 支持向量机SVM 核函数: 决策树 Decision Tree CART决策树 ID3 决策树 C4.5 决策树 决策树的过拟合问题 回归树 ***仅做复习需要,若侵权请及时联系我 行向量与列向量 行向量:是一个横…...
学习记录706@微信小程序+springboot项目 真机测试 WebSocket错误: {errMsg: Invalid HTTP status.}连接不上
我微信小程序springboot项目 真机测试 websocket 总是报错 WebSocket错误: {errMsg: Invalid HTTP status.},总是连接不上,但是开发者工具测试就没有问题。 最后解决方案是编码token,之前是没有编码直接拼接的,原因不详。 consol…...
SSH服务
一、准备 #请说明以下服务对应的端口号或者端口对应的服务 ssh 22 telnet 23 http 80 https 443 ftp 20 21 RDP 3389 mysql 3306 redis 6379 zabbix 10050 10051 elasticsear…...
GitHub上免费学习工具的精选汇总
以下是GitHub上免费学习工具的精选汇总,涵盖编程语言、开发框架、数据科学、面试准备等多个方向,结合工具的功能特点、社区活跃度及适用场景进行分类推荐: 一、编程语言与开发框架 Web Developer Roadmap 简介:为开发者提供全栈学…...
2025.4.1总结
今天看了一部网上很火的记录片《God,my brother》,中文名为《上帝不如我兄弟》,简述的是一个自媒体博主杜克遇到孟加拉一哥(车夫),最终一哥在杜克的帮助下,成功实现阶级跨越,而杜克也因此成为百…...
MySQL日志管理
目录 查询日志 慢查询日志 错误日志 二进制日志 其他功能 查询日志 查询日志用来记录所有查询语句的信息,由于开启此日志会占用大量内存,所以一般不会开启 查看查询日志是否开启 开启查询日志 慢查询日志 用于性能的调优,查看执行速度超…...
vscode中的【粘滞滚动】的基本概念和作用,关闭了以后如何开启
1、粘滞滚动的基本概念和作用 VSCode中的“粘滞”功能主要是指编辑器在滚动时的一种特殊效果,使得编辑器在滚动到某个位置时会“粘”在那里,而不是平滑滚动到底部或顶部。 粘滞滚动的基本概念和作用 粘滞滚动功能可以让用户在滚动时更直观地看到当前…...
我用Axure画了一个富文本编辑器,还带交互
最近尝试用Axure RP复刻了一个富文本编辑器,不仅完整还原了工具栏的各类功能,还通过交互设计实现了接近真实编辑器操作体验。整个设计过程聚焦功能还原与交互流畅性,最终成果令人惊喜。 编辑器采用经典的三区布局:顶部工具栏集成了…...