大模型时代的机器人研究
机器人研究的一个长期目标是开发能够在物理上不同的环境中执行无数任务的“多面手”机器人。对语言和视觉领域而言,大量的原始数据可以训练这些模型,而且有虚拟应用程序可用于应用这些模型。与上述两个领域不同,机器人技术由于被锚定在物理世界中而面临着根本性的挑战。与其语言和视觉对应物在性质上不同,开发新型机器人基础大模型的主要挑战,是获得有利于学习的正确形式的足够数据:我们探索的方向是,丰富的数据如何不指向特定环境,并且还是跨模态的,可能有助于弥合这一差距。这些新的机器人基础大模型可以允许更容易的任务规范和学习,引入新的应用和提高鲁棒性和安全性的重要性。
图:为机器人构建新型基础模型将需要跨越不同环境和行为的大量数据集。仿真、机器人交互、人类视频和自然语言描述都可以成为这些模型的有用数据源。尽管获取数据的挑战,开发新的机器人基础模型具有巨大的潜力,在任务规范和机器人学习的各种问题配方。图片来源:[Finn et al. 2016 b; Szot et al. 2021]。
机器人学研究的一个长期挑战是赋予机器人处理它们在现实世界中将遇到的无数条件的能力。在这一部分中,我们将讨论基础模型背后的想法如何潜在地帮助带来“多面手”机器人,例如,可以在有新厨房的新房子里做一顿新的饭。要朝着这一目标取得进展,现有的基础模式是不够的。我们需要在大量数据源上训练的新型模型,从接地的机器人交互数据到人类执行任务的视频等等。我们将重点放在这样的基础模型如何应用于机器人控制其自身的物理实现以成功地执行不同任务的问题。这是一个高维、闭环的决策问题:机器人的动作直接影响它感知到的下一个动作,进而影响机器人的下一个动作。在语言和计算机视觉中,这种闭环系统的研究并不是传统意义上的,在这些领域,大型离线数据集占主导地位,基础模型已经取得了成功。我们专注于如何在这种新的闭环数据制度中利用基础模型--大规模自我监督学习--所展示的好处。一种新型机器人基础模型的前景在于它能够放大机器人的潜力,以改善从制造到制造等日常生活的关键方面[Nof 1999;Sanneman等人。2020年]、建筑[Khoshnevis 2004;Bock 2007]、自动驾驶[Thorpe等人。1988年;Badue et al.2020年],家庭援助[Thrun and Mitchell 1995;Brooks 2002;Dillmann 2004;Goodrich and Schultz 2007;Gupta et al.2018年;Shridhar等人。2020年]和个人援助[Dragan和Srinivara,2013;Javdani等人。2018年],以及其他。我们在这一部分的讨论主要集中在用于家庭任务的移动操作机器人,但我们预计其本质将广泛适用于上面列出的其他机器人用例。
在为机器人建立新型基础模型的关键道路上,任务规范和任务学习方面的机会,以及应对数据方面的挑战 可获得性、安全性和健壮性。考虑以下机器人学习范例:从捕获用户可能希望机器人做什么的任务描述开始(例如,做早餐)--学习相应的策略以生成所需的机器人动作。虽然策略可以以不同的方式进行参数化,但常见的选择是将任务表示和环境观察(例如,来自固定或以自我为中心的摄像机的场景图像,或来自替代传感器(如LIDAR)的输入)映射到机器人动作的函数[Andrychowicz等人。2017年;Nair等人。2018年]。当机器人以任务为条件的方式动作时,后续状态被反馈给策略,生成更多动作,直到任务被完成。
然而,在实践中实施这样的范式是困难的。首先,描述一个人的目标的正确界面是什么?对于一个特定的用户,在一种情况下,“Make早餐”意味着一顿丰盛的早餐,包括煎蛋、吐司和一杯橙汁;对于另一位用户,“Make早餐”可能意味着Idlis加桑巴和一杯过滤咖啡。一般来说,像这样依赖于上下文的高级目标并不是孤立的,可能会引入大量的歧义。如何以足够清晰的方式指定一个目标(以及相应的子目标),以解决这些模糊性,并在这样做的过程中,允许机器人在给定的任务上取得进展?此外,我们如何制定一般性的任务表征,以帮助概括类似的目标(例如,拿一杯牛奶而不是橙汁)。更进一步,我们如何构建方法来帮助机器人学习新任务和新环境的策略(在这种情况下,一个全新的厨房,带有新的器皿、电器、布局等)?
最近在应用语言和视觉基础模型方面的突破表明,大规模、自我监督的预训练对提高泛化能力有几个潜在的好处。挖掘不同的数据流以学习有意义的表征先验(类似于由BERT和GPT-3等模型学习的先验知识)的能力为学习用于任务规范的强大的机器人基础模型带来了希望。不同的机器人交互数据可以用于学习动作条件动力学模型或策略,这些模型或策略索引了一般和语义上有意义的技能,从而为任务学习带来了希望。然而,尽管存在这些机会,但关键的绊脚石是收集正确的数据。与语言和视觉数据不同,机器人数据既不丰富,也不代表足够多样化的实施例、任务和环境阵列--我们(作为一个领域)仍然没有集中在对启用通才机器人(例如,离线演示、第三人对人类的记录、以自我为中心的视频、自主体验等)最有用的类型的数据上。与获得适当规模和多样化数据的问题相伴随的是确保安全性和稳健性的问题:我们如何在不造成损害的情况下在新环境中行事?
因此,建立新型机器人基础大模型包括机会和挑战的二分法:任务规范和学习的机会与数据收集和安全部署的挑战相平衡。这一部分通过展示机器人基础大模型如何帮助我们开发通用型机器人来进行探索,这种方式不仅有意义地解决了与构建此类系统相关的挑战,而且包含了多通道的潜力-结合了感知、驱动和语言-以及用于规范和学习的人-机器人交互。
1 机会
机器人基础模型可以采取多种形式:机器人中的问题不容易符合一刀切的模型,因为不同的问题具有不同的输入-输出签名-这与NLP等领域形成对比,在NLP等领域,许多问题可以被转换为通用的“文本输入、文本输出”签名。我们关注可概括的任务规范中的机会和跨任务、环境和机器人实施例的学习。
1.1 任务规范的基础模型
在机器人学习如何以通用的方式解决任务之前,它们必须了解所需的任务是什么:例如,为了在新厨房中发挥作用,机器人需要知道我们希望它烹饪什么,以及我们希望它避免的行为。因此,开发多面手机器人的第一步是建立一种新型的可靠任务规范的基础模型,即,直观有效地传达任务目标、偏好和约束。我们将任务规范形式化为一个过程,该过程将人类提供的任务描述转换为衡量机器人任务完成和进度的定量度量-例如,奖励功能。该信号对于优化机器人行为、诊断故障和提示人类反馈至关重要。由于描述任务的最自然方式可能会因用户、环境或任务而异,因此用于任务规范的机器人基础模型应接受各种描述模式,如目标状态[Fu et al. 2018; Singh et al. 2019]、自然语言[MacGlashan et al. 2015; Karamcheti et al. 2017; Misra et al. 2017 b; Co-Reyes et al. 2019; Shao et al. 2020],人类视频[Shao et al. 2020; Chen et al. 2021 c; Liu et al. 2018],成对或排序比较[Biyik和Sadigh 2018],交互校正[Co-Reyes et al. 2019; Karamcheti et al. 2020]和物理反馈[Ross et al. 2011; Bajcsy et al. 2017]。
任务规范的通用模型的一个重要要求是能够转移到新的环境和任务。可靠地将任务描述转换为机器人学习的可推广奖励信号仍然是一个悬而未决的问题[Taylor et al. 2016] -机器人基础模型可以说非常适合这个问题。当应用于任务规范时,这些模型应该通过从大型和广泛的数据集中学习,甚至利用上面列出的多个描述模态,提供更鲁棒的奖励信号。任务规范的新基础模型的一个可能实例可能是通过在不同的语言和视觉数据集上进行训练来学习从任意(语言,当前观察)对到奖励信号的映射[Bahdanau et al. 2019; Fu et al. 2019; Chen et al. 2021 c]。通过从这些广泛的、多样化的数据集中学习信息先验,这样的模型可以推广到看不见的环境中看不见的语言指令和观察。一般来说,新的基础大模型能够巧妙地桥接模态并广泛地概括,这使得它们对通用任务规范具有吸引力。
1.2 任务学习的基础模型
除了实现更通用的任务规范外,机器人基础模型还可以使学习解决新任务更加有效和可靠。在这种情况下,这些新类型的基础模型可能会采取行动,传感器观察,奖励和其他感兴趣的属性的联合分布的形式。对该联合分布的不同维度的调节恢复不同的推理问题,每个推理问题对应于不同的签名:
· 动态建模:𝑝(未来观测|行动,过去的观测)[Finn and Levine 2017; Hafner et al. 2019; Wu et al. 2021 d]。
· 政策学习:𝑝(行动|观测,目标)[Kaelbling 1993; Schaul et al. 2015; Ding et al. 2019]。
· 反向强化学习:𝑝(奖励函数|观测,行动)[Ng and Russell 2000; Ziebart et al. 2008; Finn et al. 2016 a]。
机器人基础模型的合理训练目标是以自回归方式预测上述联合分布的不同元素[Janner等人,2021; Chen等人,2021 b]。然而,这些并不是唯一的选择。特别地,机器人数据集包含大量未标记的数据,这些数据由来自许多不同传感器模态(例如,RGB和深度摄像头、触觉传感器、麦克风等)以及机器人为生成这些观察而执行的一系列动作。
除了上述目标之外,还可以训练机器人基础模型来预测一个传感器模态的观察结果,或者预测两个感官观察结果流是否来自同一时间段。这类自我监督目标可以利用多模态对应关系来生成高维数据的低维表示,甚至可以与上述目标相结合,在这些表示的基础上生成模型、策略和奖励。这些目标可以促进从未标记数据中训练强大的机器人基础模型-只要数据表现出多样的、有意义的行为。
在语言和视觉方面,基础模型已经证明了从大型、多样化的数据集中学习广泛适用的先验知识的能力,这些先验知识随后可以适应下游任务(语言,视觉)。机器人基础模型有可能类似地使感知和控制适应新的环境,任务和实施例,尽管利用不同的数据,自我监督的目标和模式,而不是用现有的语言和视觉模型研究。以我们的厨房为例。要在新厨房里做饭,机器人需要适应特定的环境-它的空间布局,可用的设备等。从人类的离线视频,机器人交互,文本和/或模拟中学习的先验知识可能会编码厨房的一般方面,例如炉子通常靠墙,必须打开才能产生热量。这些常识知识、物理先验和视觉先验可以使适应新环境的样本效率更高。类似地,开发用于机器人任务学习的新基础模型可以在其训练数据集中使用大量烹饪视频,以根据少量演示中的特定用户偏好来调整常见技能(例如“煎鸡蛋”)的策略-允许样本有效适应。最后,机器人基础模型具有学习先前描述的跨模态表示的潜力,可以帮助适应新的实施例。这方面的适应是至关重要的,使这些模型广泛使用。
2 挑战和风险
尽管有这一令人兴奋的愿景,但仍需要克服多重挑战。为了实现上面讨论的泛化,我们必须收集足够大小和多样性的机器人数据集。此外,我们还需要一些机制来确保我们可以在真实的世界中安全地部署学习到的行为。
2.1 数据需求和挑战
传统上,为通过传感器感知其环境状态并采取行动完成任务的机器人学习策略需要机器人在真实的世界中交互的大型数据集。另一方面,计算机视觉和自然语言处理中的许多学习任务依赖于可以很容易地从网络上抓取的大型且多样化的离线数据集。受现有基础模型在语言和视觉方面的进步的激励,我们对利用大型离线数据源来训练机器人新基础模型的可能性感到兴奋。
实现这一目标的一条途径是收集用于离线学习的大型数据集,例如使用远程操作[Mandlekar等人2019]、动觉教学[Sharma等人2018]或自主方法[平托和Gupta 2016; Gupta等人2018; Levine等人2018; Dasari等人2019; Kalashnikov等人2021; Chen et al. 2021 d],这已经显示出一些有希望的泛化迹象。虽然将机器人数据收集扩展到视觉和语言数据集的大小[Deng et al. 2009; Krishna et al. 2017; Raffel et al. 2019; Gao et al. 2020 a]仍然是一个开放的挑战,但机器人数据集的规模和质量不断增加表明它们可以在机器人技术的基础模型学习中发挥重要作用。此外,由于机器人具有主动和自主塑造环境的能力,因此它们应该能够大规模生成有针对性的未标记数据。
考虑到学习控制具有挑战性的闭环性质,收集与视觉和语言中使用的数据集大小相当的数据集可能不足以用于机器人。一个令人兴奋的选择是额外利用外部的非机器人数据源,例如人类视频或现有的视觉和自然语言数据集。这些数据多种多样,大量存在于网络上[Deng et al. 2009; Lee et al. 2012; Heilbron et al. 2015; Goyal et al. 2017 a; Damen et al. 2018; Gao et al. 2020 a; Grauman et al. 2021],如果利用得当,可以提供广泛的推广。优雅地解决机器人领域与网络上的视频或语言之间的差距仍然是一个开放的挑战;然而,最近在领域适应[Smith et al. 2019; Schmeckpeper et al. 2020]以及在机器人中使用预训练的视频和语言模型[Lynch and Sermanet 2020; Shao et al. 2020; Chen et al. 2021 c]提出了缩小这一差距的有希望的方向。
最后,仿真提供了丰富的交互式数据的无限来源,机器人可以从中学习,具有一系列传感器模式,如渲染的视觉效果,点云和模拟的触摸/音频。然而,一个主要的挑战在于弥合模拟和真实的世界之间的差距,无论是在底层的物理和语义分布的环境和任务。最近的研究表明,通过使用广泛的域随机化,从飞行[Sadeghi和Levine 2017]到接触丰富的操作[Mahler等人2017; OpenAI等人2019]和运动[Peng等人2020; Hwangbo et al.2019]在模拟中学习的技能可以成功地转移到真实的机器人上,并且可以通过将真实的世界扫描到模拟中来模拟真实的世界的语义和视觉分布[Chang et al. 2017; Kolve et al. 2017 b; Savva et al. 2019 a; Szot et al. 2021; Shen et al. 2021 a]。虽然这些是缩小模拟到真实的差距的有希望的步骤,但有效和普遍的模拟到真实的操作和运动技能的学习仍然是一个公开的挑战。仿真数据、真实的机器人数据、人类视频和自然语言数据都可能是学习机器人基础模型的必要条件。
2.2 安全性和鲁棒性
在真实的世界中训练或部署机器人时,确保其安全性和鲁棒性使机器人新基础模型的开发更加复杂。我们可以预期,这些机器人模型的安全风险与它们的语言对应物不同,因为具身代理被授权直接在物理世界中操纵和与周围环境交互。基于学习的系统的一个核心安全挑战是鸡和蛋的问题,需要在收集数据之前指定系统安全约束,之后可能会出现需要额外约束的不可预见的不安全行为。例如,智能体适应训练分布之外的新厨房需要足够的安全保证来确保安全的数据收集,这可能会对任务性能产生不利影响,或者导致智能体以新的方式失败。解决这个问题的一种方法是限制环境的复杂性或增加机器人的复杂性,从而通过构造来避免不可恢复的状态或不安全的动作。机器人还可以自主重置环境,以促进从大规模数据收集中不间断地学习(或适应)[Eysenbach et al. 2017; Gupta et al. 2021 b]。这意味着要确保厨房里没有任何东西是易碎的,或者要确保并更换代理在试图收集数据时可能损坏的物品。
为了解决机器人基础模型无法对新刺激进行概括或产生意外行为所带来的风险,潜在的未来方向包括开发代理的因果分析[Déletang et al. 2021],新的正式安全评估工具和逼真的模拟环境[Corso et al. 2020; Dreossi et al. 2017; Julian and Kochenderfer 2019]。最后,为机器人基础模型导出正式的安全保证,例如,安全集的Hamilton-Jacobi可达性[Chow et al. 2018; Fisac et al. 2019;赫伯特et al. 2021]或为人类操作员开发可解释的学习安全边界,可以帮助降低此类模型带来的风险[Berkenkamp et al. 2017]。随着这些新型基础模型的开发和研究的进展,解决这些挑战将是至关重要的。
3 结论
虽然机器人基础模型的前景很多-从任务规范到任务学习跨越机器人管道的多个级别-但挑战是巨大的。在物理世界中收集涵盖各种环境和大规模实施的数据是一个相当大的障碍,确保这些系统的安全性和鲁棒性同样迫切。尽管如此,我们的乐观情绪占了上风;现在解决这些挑战,在开发模型之前,我们有机会确定如何从正确的来源以正确的规模收集正确的数据,以构建具有我们期望的功能的安全可靠的机器人基础模型。这一节的基础是多模式主题。机器人基础模型-在所有可能的实例中-已经并将继续受益于人工智能其他子领域的工作,如语言和视觉。然而,当我们考虑将这些扩展从其他领域纳入时,有跨学科的挑战即将触及基础模型的其他方面:为实时机器人训练和部署此类模型的系统创新,界面创新,实现强大的人机交互,以及在我们更好地掌握这些模型的安全性和鲁棒性时需要吸取的教训。围绕基础模型,特别是机器人基础模型,建立可靠的生态系统和深思熟虑的研究实践,是实现这些目标的关键。
相关文章:

大模型时代的机器人研究
机器人研究的一个长期目标是开发能够在物理上不同的环境中执行无数任务的“多面手”机器人。对语言和视觉领域而言,大量的原始数据可以训练这些模型,而且有虚拟应用程序可用于应用这些模型。与上述两个领域不同,机器人技术由于被锚定在物理世…...
devops步骤 -- jenkins安装
安装的docker-compose ##安装步骤参考: https://editor.csdn.net/md/?articleId133070011 编写docker-compose.yml version: 3 services: # 集合docker_jenkins:user: root # 为了避免一些…...

docker命令大全
1、查看Docker 容器占用的空间 docker ps -s2、查看所有容器 docker ps -a3、启动、关闭、重启一个已存在的容器 docker start <容器ID> docker stop <容器ID> docker restart <容器ID> 4、进入容器,退出终端的时候不会关闭container的ma…...

【EI会议征稿】第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024)
第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) The 3rd International Academic Conference on Blockchain, Information Technology and Smart Finance 第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) 将于2024年2月23-25日在马来西亚举行。本次会…...
算法岗面经
诸神缄默不语-个人CSDN博文目录 呃这个是我之前写的,理论上我应该搜集题目→做出解答这样的,但是我现在不再继续找工作了,所以感觉这些题目用不到了,我就直接把之前整理的这些资料发出来得了。 以后有缘分的话会继续补的…...
Vue 事件修饰符
Vue 事件修饰符 在 Vue 中,事件修饰符允许我们在处理 DOM 事件时添加一些特殊的修饰符,以便更方便地控制事件的行为。以下是常用的 Vue 事件修饰符: .stop .stop 修饰符用于阻止事件冒泡,即停止事件在父元素之间的传播。 示例…...

FD-Align论文阅读
FD-Align: Feature Discrimination Alignment for Fine-tuning Pre-Trained Models in Few-Shot Learning(NeurIPS 2023) 主要工作是针对微调的和之前的prompt tuining,adapter系列对比 Motivation: 通过模型对虚假关联性的鲁棒…...
bug:Junit5报错,@SpringBootTest没有运行
1、首先解决Junit5报错 java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory 添加依赖 implementation org.junit.platform:junit-platform-launcher:1.8.2java.lang.IllegalArgumentException: Error: test loader org.eclipse.jdt.internal.…...

Clickhouse学习笔记(4)—— Clickhouse SQL
insert insert操作和mysql一致 标准语法:insert into [table_name] values(…),(….)从表到表的插入:insert into [table_name] select a,b,c from [table_name_2] update 和 delete ClickHouse 提供了 Delete 和 Update 的能力,这类操作…...

Centos, RockyLinux 常用软件安装汇总
一、基本指令: 命令作用clear清屏pwd显示当前路径cat / more显示文本文档uname -a查看当前版本hostnamectl查看当前版本cat /etc/redhat-release查看当前版本free查看剩余内存df -h[查看磁盘剩余空间]du -sh 查看文件夹名"dir"占用的空间lsof -i:8080查看…...

Lua更多语法与使用
文章目录 目的错误处理元表和元方法垃圾回收协程模块面向对象总结 目的 在前一篇文章: 《Lua入门使用与基础语法》 中介绍了一些基础的内容。这里将继续介绍Lua一些更多的内容。 同样的本文参考自官方手册: https://www.lua.org/manual/ 错误处理 下…...

探秘亚马逊云科技海外服务器 | 解析跨境云计算的前沿技术与应用
目录 一、什么是海外服务器 二、不同主流海外云服务器对比 三、海外服务器的创建(亚马逊为例) 四、个人总结 一、什么是海外服务器 亚马逊云科技海外服务器:指的是部署在世界各地的亚马逊数据中心中的服务器设备。这些服务器提供了计算、存储、数据库、网络等各…...
UnityAI——动物迁徙中的跟随实现实例
大家好,我是七七,今天来给大家介绍的是Unity中用操控行为实现的跟随领队行为。 看本文若是想了解和实现,只看本文即可,若是想彻底弄透,建议从七七的游戏AI专栏开始看。 废话不多说,先上视频: …...

堆的应用-----Top k 问题
目录 前言 Topk问题 1.问题描述 2.解决方法 3.代码实现(C/C) 前言 在人工智能算法岗位的面试中,TopK是问得最多的几个问题之一: 到底有几种方法? 这些方案里蕴含的优化思路究竟是怎么样的? 为啥T…...

11月14日星期二今日早报简报微语报早读
11月14日星期二,农历十月初二,早报微语早读。 1、江西南城县:限时发放购房补贴政策,三孩家庭每平方米最高补贴500元; 2、2023年中国内地电影市场累计票房突破500亿元; 3、市场监管总局:在全国…...

Spark读取excel文件
文章目录 一、excel数据源转成csv二、Spark读取csv文件(一)启动spark-shell(二)读取csv生成df(三)查看df内容一、excel数据源转成csv 集群bigdata - ubuntu: 192.168.191.19master(bigdata1) - centos: 192.168.23.78 slave1(bigdata2) - centos: 192.168.23.79 slave2(b…...

LLM大语言模型(典型ChatGPT)入门指南
文章目录 一、基础概念学习篇1.1 langchain视频学习笔记1.2 Finetune LLM视频学习笔记 二、实践篇2.1 预先下载模型:2.2 LangChain2.3 Colab demo2.3 text-generation-webui 三、国内项目实践langchain-chatchat 一、基础概念学习篇 1.1 langchain视频学习笔记 lan…...

Spring IOC - Bean的生命周期之实例化
在Spring启动流程文章中讲到,容器的初始化是从refresh方法开始的,其在初始化的过程中会调用finishBeanFactoryInitialization方法。 而在该方法中则会调用DefaultListableBeanFactory#preInstantiateSingletons方法,该方法的核心作用是初始化…...
前端 BUG 总结
文章目录 CSS 样式1、Chrome 89 版本期不再支持 /deep/,请勿使用嵌套 /deep/2、圆角按钮 button 点击后出现矩形框线3、怪异模式4、border 1 像素在手机上显示问题5、文本溢出问题 JavaScript 脚本1、移动端点击穿透2、使用parseInt时必须补全第二个参数 radix3、有…...

【蓝桥杯软件赛 零基础备赛20周】第3周——填空题
报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 文章目录 00. 2023年第14届参赛数据0. 上一周答疑1. 填空…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...