对话 OpenCV 之父 Gary Bradski:灾难性遗忘和持续学习是尚未解决的两大挑战 | Open AGI Forum
作者 | Annie Xu
采访、责编 | Eric Wang
出品丨GOSIM 开源创新汇
Gary Bradski,旺盛的好奇心、敢于冒险的勇气、独到的商业视角让他成为计算视觉、自动驾驶领域举重若轻的奠基者。
Gary 曾加入 Stanley 的团队,帮助其赢得 2005 年美国穿越沙漠 DARPA 机器人挑战大赛桂冠,他们的获奖车辆至今还陈列在史密森学会-美国国家博物馆。而大赛中所用到的技术,也为后来 Google 的自动驾驶奠定了重要基础。
计算视觉领域的混乱规则让他萌生了建立统一、简洁视觉数据库的想法,从零到一创建了 OpenCV——目前全球应用最广、最知名的开源组织。
此外,他还有独到的投资视角,参与了许多科技领域的创业和投资。Lambda Labs——他的投资之一——一家处于谷歌、亚马逊等巨头之间的云服务公司,价值几十亿美元,已经实现盈利。
面对如何解决 AI 发展“灾难性遗忘”的困境和高昂的训练成本,他给出”世界模型“和模仿”生物的持续学习机制“的解法。
本届 GOSIM CHINA 2024 大会中,Gary 带来了《OpenCV 与空间智能》的精彩演讲。会后,GOSIM 对话栏目 Open AGI Forum 特别邀请到 Gary Bradski,由 CSDN 资深科技编辑 Eric Wang 独家对话,分享 Gary 对创业、计算机视觉、自动驾驶和 AI 领域的深刻洞察。

Gary 的精彩观点摘录:
-
睡眠可能在生物的学习过程中扮演着“清理”外部噪音的作用,从而帮助组织和结构化知识。
-
你在睡梦中身处一个世界,醒来后,梦并未结束,而你连接了外部的数据源,世界模型正是通过输入并匹配外部感知而形成的。
-
人类还会建模世界的因果关系,换句话说,即“世界的物理法则”。所以不仅仅是“是什么”(WHAT)和“在哪里”(WHERE),还会有“为什么”(WHY)的系统。我将 AI 模型与 3D 系统结合,让摄像头拍摄的图像不仅能识别“是什么”,还能判断“在哪里”。
-
现阶段大多数模型的成功模式是基于大型语言模型的微调,重构一个全新的更接近生物学习机制的AI系统可以尝试SLAM(同步定位与地图构建):实现同步定位与地图构建,让机器人在探索环境的同时适应环境中的变化,遇到移动的物体时作出相应变化,实现不断的学习。
-
从安全角度来看,建立一个统一的数据库,记录每辆自动驾驶汽车在运行中遇到的异常情况,每次更新软件时,车企必须在模拟环境中经过所有已知和新记录的情境测试,确保在一百万英里内无事故才能在真实环境中部署新软件。
以下是本次采访的主要内容:

创建 OpenCV:风险与机遇并存
Eric Wang:您以前曾说,创建 OpenCV 的动机是减少重复工作并提高计算机视觉领域的整体效率。那么在创建 OpenCV 之初是否遇到过阻力?如果有,又是如何克服的?
Gary Bradski:确实遇到过很多阻力。当时 Intel 的目标是让人们不再需要新的计算机:已经有足够的计算资源可以完成文字处理和电子表格的需求,为什么还需要新的机器?但我认为,AI 和视觉处理对计算资源的需求是无限的。当时计算机视觉领域非常混乱,每个人都有自己的代码库,科学研究是无法重复的,你甚至无法验证别人研究的真实性。我认为应该提供一个稳定的基础。创建过程中,我也确实遇到了很多阻力,多次差点被 Intel 开除。
没有得到上层管理者同意下,我直接指挥其他人进行相关研究,这样做确实冒了很大风险,但进展斐然。当然,我并不推荐其他人也这样做,并不是每个人都愿意或能够承受这样的风险。
在 DARPA 的无人驾驶大赛上,他们认为我干扰了其他团队:其他人也想加入我的项目,结果没办法完成他们自己的任务。我的上司大发雷霆,于是我离开了公司,开始专注于无人驾驶项目。有些人担心被解雇退出了项目,但留下来的人成为了改变世界的一份子。
Eric Wang: 您曾提到想组织一个新型的机器人竞赛,关注现实世界中的任务,如种植粮食、修路等。那么,这类竞赛应该包含哪些要素?您希望通过这些竞赛达成哪些具体目标?
Gary Bradski:竞赛的举办主要取决于资金。聘请评委以及组织相关活动都需要花钱,因此我们希望找到赞助商来赞助比赛。关于比赛内容方面,我希望能够举办一些更真实、有意义的比赛。如果竞赛只是让机器人跑来跑去收拾茶杯,有什么意义呢?或者分析网页上的图像,类似的比赛已经有很多了,成功了又能带来什么不同呢?
截至目前,还没有完全实现自己的想法,我设想的是:让机器人自动种植农作物,或是记录农作物数据,从而测试不同植物品种适应气候的方式。现在这些工作大多是由相关专业的学生手动完成的,成本很高。我们是否可以设置一个监控农作物的挑战?这能够帮助植物更好地适应气候变化,甚至可能挽救数十亿人的生命,这是一个非常有影响力的、更好的挑战赛。另一方面,要提供给人们一个像 OpenCV 这样的平台来构建。不仅可以帮助分析成果,而且基于一个通用的平台,可以将竞争提升到一个更高的层次,而不是每个人都在重复基础性的工作,毫无意义。
Eric Wang:您曾表示 OpenCV 需要稳定的资金支持,尤其是来自政府的资金支持。目前 OpenCV 的主要资金来源是什么?是否有计划引入新的筹资模式,比如企业赞助或社区捐款?
Gary Bradski:筹资的情况不太理想。我认为中国在这方面更好,对开源项目的支持更多。在美国,更类似于“自由竞争”,并不在意你的生存状况:如果你失败了,那就太糟糕了;如果你成功了,那很好。为了社会的整体利益,我希望能有更多支持。我们现有的赞助方主要是 Google 等公司。相对而言,Facebook 会发布开源项目,但他们没有对开源项目的拨款。
我们正在努力争取政府的资助,比如写提案尝试资助申请,但目前我们只能依靠筹集资金。我们还计划推出一个空间智能平台并对其收费,——不是是完全免费的和开源的,而是便宜和开放的。假设每月只收一美元,应该不会阻碍任何人开发吧?这不会产生巨额收入,但足够维持一个稳定的开发者团队。每年我们都在筹资支付开发者的薪资,目前我们有少数核心开发者,和大量的贡献者。但如果没有付费开发者在核心位置把关,就无法确定什么可以加入或删除,从而对库做出真正的贡献。总之,我希望有更好的支持。

Eric Wang: OpenCV 在向大量用户传授计算机视觉知识方面发挥了重要作用,您如何看待它在计算机视觉和机器人领域方面的影响?希望它能进行哪些改进或新功能,以进一步增强其教育价值?
Gary Bradski:OpenCV 的一大收入来源是“OpenCV University”(OpenCV 大学),它的课程内容远不止 OpenCV,侧重于 PyTorch、人工智能、生成网络,以及计算机视觉的大量内容。这些课程每年至少能带来十万美元的收入。当然,课程开发也需要大量投入。
在教育领域,我想设计一个针对 OpenCV 的语言模型,你可以直接与它对话来获取 OpenCV 所有代码库的内容。可以问它“我该如何解决这个问题?”或者“你能推荐一个适用的算子吗?”我希望实现这个功能。
我们即将发布的 OpenCV 5.0 会把所有内容提升到 C++ 标准,即 C++ 17.0。这将进一步优化代码,并提高代码的一致化水平。简而言之,现在我们更专注于嵌入式设备。学生可以用一些零件自己做一些东西,而不需要依赖大型云服务,我觉得这很有趣。
Eric Wang: OpenCV 如何补充或竞争其他计算机视觉领域的工具和库?
Gary Bradski: 在传统的计算机视觉领域,我认为没有太多竞争对手了。许多竞争者发展得并不持久。不过,现在 PyTorch、TensorFlow 和其他库正在扩展语言、视觉等领域的市场空间。而我们专注于 DNN(深度神经网络)模块,并努力简化、优化推理过程。
我在演讲中展示了一个只需几行 Python 代码就能完成面部检测或者其他 AI 功能的示例。也试图构建其他成功的 AI 工具,比如空间 AI 工具箱,我希望它能成为一个非常简单的框架,实现 3D 场景中的 AI。
Eric Wang:在您开发 OpenCV 和研究计算机视觉的过程中,关于人类或动物视觉学习的方面有哪些让您感到惊讶的地方?
Gary Bradski:一旦深入了解视觉系统,你会发现像果蝇这样的小生物视觉能力令人惊叹。另一个令人惊讶的点是动物的视觉系统差异极大。比如我们给猫看视频,它们的视觉系统反应速度更快,因此视频在它们眼里可能更像是一张张静止的卡片,而不是连贯的画面。
Eric Wang:比如狗是色盲。
Gary Bradski:是的,动物的视觉差异很大。人类的色觉非常丰富,鸟类则更丰富,而大多数动物的色觉较差。而一些虾类,比如螳螂虾,它们的色觉甚至比人类和鸟类还丰富。不同动物的视觉系统适应了它们的环境,比如猫的视觉更适合夜间弱光环境,因此它们对亮色不敏感,但对快速运动的物体非常敏锐。所以,当你给猫看视频,它可能只看到静止的画面,而不是动态的影像。
Eric Wang:将空间智能的研究理念转化为可行的产品,有哪些关键步骤?您是如何解决学术研究与实际应用之间的差距呢?
Gary Bradski:这个问题涉及到学术和商业的转化。我确实取得了一些商业上的成功,通常的做法是加速产品应用,增加用户参与,同时保持产品的简洁。OpenCV 发展起来时,市场上已经有其他的图像库了,但它们采用的是复杂的 C++结构,我只想通过简单的函数来完成特定的功能,这样开发出来的工具很简单。Python 在 AI 领域占据主导地位,不是因为它多优秀,而是因为它容易上手。
商业方面,判断力非常重要。我最成功的一笔投资是 Lambda Labs,一家处于谷歌、亚马逊等巨头之间的云服务公司,处于行业中游。它已经实现盈利,价值几十亿美元。他的创始人执行力很强,专注于业务,不追求理论和模型,而是关注电容器的成本,把机器保持在低成本范围内。在我看来,务实十分重要。接下来,是要尽快推出一个简易版本观察市场反馈。

解决 AI“灾难性遗忘”的关键:世界模型
Eric Wang:盲人可以通过非视觉方式识别形状,并将触觉转换为对长度和形状的直观理解。虽然这个过程似乎快速且自动,有点类似于丹尼尔·卡尼曼所提出的“系统 1”概念,但实际上它涉及到一整套复杂的自动化过程,盲人理解世界的过程是经过长期训练形成的。机器人则是通过各种传感器感知周围环境,并通过算法整合来构建 3D 模型——这个过程在逻辑性和计算性上表面上反倒类似于“系统 2”。
卡尼曼后来指出,人工智能行业对他的某些心理学概念存在误解:“系统 1”的特点是自动化,但不仅仅是速度,还包含复杂的因果推理。
您认为机器人是否可能发展出一种如人类“系统 1” 一样自动化且具有丰富特征的空间感知能力?
Gary Bradski:我们都生活在物质世界中,而物质世界正是在感知中运转的。在我看来,目前机器人和人类,或者说或动物之间存在的主要区别在于人类拥有丰富的世界模型。例如,你在睡梦中身处一个世界,你醒来后,梦并未结束,而你连接了外部的数据源,世界模型正是通过输入并匹配外部感知而形成的。
低等动物的世界模型十分简单,可能只会根据刺激做出一些简单的反应,比如鱼在刺激因素下游来游去。随着大脑复杂度的提升,我们逐渐形成了一个能够预测因果的世界模型,获得了对世界稳定的感知。目前,机器人领域还没有搭建起这样的世界模型,甚至还没有找到一个好的方式去搭建,我认为这是两者的主要区别。
Eric Wang:您曾讲过,人类通过结构化课程学习,而 AI 依赖随机采样,这会导致 AI 面临“灾难性遗忘”的问题。您认为睡眠和生物学习机制可能是解决这个问题的关键。基于此,您能否详细阐述一下为什么您认为理解生物学习机制,尤其是睡眠的作用,对 AI 发展如此重要?睡眠在缓解灾难性遗忘方面可能起什么具体作用?
Gary Bradski:神经网络存在“灾难性遗忘”的问题,即在训练过程中,所有信息被平均对待。这与人类学习的方式不同。我不会在教你“1+1=2”之后,立刻讲解量子物理或水螅眼睛的生物学结构,对吧?人类学习是以某种基础结构来构建知识体系的。在这一结构中,人类可以终生学习,而且所有生物都拥有“睡眠”。“睡眠”对生物体来说是一种极其危险的状态——在睡眠中,生物是无意识的,无法作出回应、保护自己或逃跑。因此,睡眠在学习和知识结构化中可能具有某种不可避免的基础作用,这在数学上可能是个必然性。
我可以想到一些可能的解释,比如在生物的发育过程中,我们经历了不同的阶段,在某些阶段你能学到特定的知识,随后这些知识就变得固定了。例如,如果在某个关键期后你没有看到任何垂直线条,那么以后你将再也无法学习辨识它们。这是为什么呢?因为学习需要形成某种基础结构,用来真正地表示知识。生物的知识构建方式是分层的。学习过程是先固定一些基础知识,随后在此基础上逐步构建新的层级。我猜测睡眠可能在这个过程中扮演着“清理”外部噪音的角色,从而帮助组织和结构化知识。虽然还没有确凿证据,但所有生物都需要睡眠,这可能是与它在学习中发挥某种重要的作用有关。

Eric Wang:那您认为当前技术发展的瓶颈是什么?
Gary Bradski:在发展 AI 或者世界模型方面,我们还没有找到一种合适的方式,大家都还在尝试,如李飞飞的 World Labs 公司,但目前并没有探索出一种合适的路径。
深度神经网络的问题在于它可能引发灾难性遗忘,与其完全相反的是,人类的学习模式是持续的。人类通过建立一个学习体系,系统性学习,首先是学习简单的内容,而后一步步深入复杂的内容。而机器学习更像是把所有知识放在一个桶里,随机抽取。
在训练一个模型时,如果直接增加新的学习,就会对原有的数据造成破坏。因此,如果要添加新的内容,就必须重新将所有知识放回去,并重新进行训练,训练费用十分昂贵。世界在不断变化,新的事物不断加入,一切都会发生改变,持续学习是十分必要的,是搭建世界模型的必要条件。如果无法实现持续学习,就无法真正构建世界模型。总而言之,灾难性遗忘和持续学习是尚未解决的两大挑战。
Eric Wang:您能具体描述一下 WHAT-WHERE-WHY 系统吗?它似乎与李飞飞的模型有些不同。
Gary Bradski:李飞飞主要是想构建一个“世界模型”。在人类或大多数哺乳动物中,有一套相对独立的“是什么”和“在哪里”的神经回路,知道房间里有“人”和“椅子”等事物,同时也知道它们的位置。这两个渠道在晚期才会融合,而不是同时学习的。
我的方法相对简单:将 AI 模型与 3D 系统结合,让摄像头拍摄的图像不仅能识别“是什么”,还能判断“在哪里”。比如可以识别出“这里有两个人,一个在那里,另一个在那里”。此外,人类还会建模世界的因果关系,换句话说,即“世界的物理法则”。所以不仅仅是“是什么”和“在哪里”,还会有“为什么”的系统,比如我们知道物体不会悬空,会受到重力影响。这些都属于“世界模型”的一部分,但我不清楚这种模型在生物学上具体是如何形成的。
Eric Wang:如果想设计一种更接近生物学习机制的 AI 系统,应该从哪里开始?
Gary Bradski:这很难。现阶段的成功模式是基于大型语言模型的微调。重构一个全新的系统失败的风险很高,需要敢于尝试的研究者。我认为可以尝试构建“世界模型”,最简单的模型是 SLAM(同步定位与地图构建)。
如果一个模型可以实现同步定位与地图构建,让机器人在探索环境的同时适应环境中的变化,遇到移动的物体时作出相应变化,实现不断的学习。生物在遇到“预期外”的情况时才会学习,比如走路时遇到一个坑,我们如果不避开,就可能踩空,甚至扭伤脚踝。如果一切不发生变化,就可能学不到新的内容。
与此不同的是,当前深度神经网络是无时无刻都在学习——仅仅依靠这种学习机制是不够的,类似睡眠的“清理”过程也十分重要。

狂热兴趣+广阔视野=洞见 AI 机遇
Eric Wang:不止是计算机视觉领域的专家,也是业内的资深人物,在您看来,在整合生物启发的学习机制方面,还有哪些新兴的研究方向值得投入?
Gary Bradski:我不确定是否有人把“灾难性遗忘”作为一个根本问题在研究。杨立坤非常重视“世界模型”,其中的一个关键问题是如何将不同的感知模式整合成一个整体。他提出了一个基于能量的模型,设想在高层次上可以将这些信息转化为标量值,从而实现视觉和听觉等感知模式的交流——我觉得这个方向很有潜力。
还有一些更冷门的方向,如研究人员在研究不同的学习机制。我的朋友 Rodriguez 正在思考如何实现 Hebb 学习。目前我们大多采用梯度学习,但 Hebb 学习基于关联学习,可能更符合生物学的原理。这类探索虽然未必成功,但一旦成功,往往会引发一场革命。许多研究者都是自我驱动的狂热分子,虽然大多数都会失败,但偶尔会有人成功,从而推动整个领域的发展。
Eric Wang:您在 AI 技术开发方面经验丰富,关于在公共空间部署 AI 驱动机器人,您怎么看待它的伦理影响?我们如何确保这些系统被负责任地使用并且公众信任得以保持?
Gary Bradski:比如自动驾驶汽车的应用,如何确保它们不会出现危险情况?如果车企不受处罚,可能就不在意安全投入,这是不道德的。隐私问题也是个挑战。在美国,一些系统需要法规许可,另外一种方式是通过法律诉讼来管理,很多公司会因为害怕法律风险而更加谨慎。
我建议建立一个统一的数据库,记录每辆自动驾驶汽车在运行中遇到的异常情况。然后,每次更新软件时,车企必须在模拟环境中经过所有已知和新记录的情境测试,确保在一百万英里内无事故才能在真实环境中部署新软件。虽然每个公司都希望独占数据以保持竞争优势,但从安全角度出发,所有数据应集中管理,确保所有车辆都符合这个安全标准。
Eric Wang:您最为骄傲的成就有哪些?为什么它们对您具有特别的意义?
Gary Bradski:有些成就是意外发生的,比如 Sebastian Thrun 曾经来找我,说他要参加 DARPA 比赛,问我是否愿意加入他的团队。我答应了,结果我们赢了。这项挑战的第一年失败了,而 Stanley 团队在 2005 年第二次参加时取得了胜利。这是一次很棒的经历,Sebastian 是一个非常优秀的领导者。
我选择加入 Sebastian 的团队是因为相比 CMU 的 Red Whittaker 这种强硬的“命令控制”式领导,前者的领导风格更自由。例如,他会说“我会通宵写代码,你们也应该做到”,是一种更轻松的、激励人自我加压的风格,而不是直接命令。这种方式让我觉得是不依靠强势的指挥,更“温和”的团队也可以获胜。最终我们取得了冠军,我们的车辆现在被陈列在史密森学会-美国国家博物馆中。我去博物馆参观时还为机器人讲解,吸引了一大批人围观。
当然,OpenCV 对我来说也是一项重大成就。很少有事物能像它一样完全实现当初的设想,我当时想要加速整个计算机视觉行业的发展,给人们提供一个通用的平台,而它确实做到了。创业方面,我还开启了一些医疗领域的项目、Lambda Labs 以及现在的太空和农业机器人领域的项目,这些都是我非常喜欢的方向。
Eric Wang:对于进入 AI 和机器人领域的年轻专业人士来说,请给出一些建议呢?
Gary Bradski:很多人会说你需要“建立人脉”,甚至教你如何建立人脉。但对我而言,建立人脉是因为我对很多事物本身感兴趣,我会去问别人“这是怎么运作的?”“你是如何实现的?”。好奇心驱动实际帮助了我很多。遇到问题时,我会想到,我认识某个人或许可以帮忙。所以,我会建议保持广泛的人脉,不过也不排除有人喜欢专注于某一个领域。我很享受交流的过程,即使是完全不相关的领域,比如去考古遗址时,我也会出于兴趣去问各种问题。
此外,不要总是跟风,退一步,保持更广阔的视野。比如现在大家都说要学习 LLM,我会觉得也许你应该更基础地去思考一些问题,甚至做一些可能有风险但更具革命性的事情。我倾向于选择高风险,因为我不害怕失败。我总是相信自己会有出路,毕竟我懂一些技术,就算被解雇,也总能找到新的事情去做。就算这条路不通,换个方向也总有机会。甚至在旅行中,比如我们没有查清火车票是去哪的,我太太会问我们要怎么办,我会说,“不知道啊,可能有人会告诉我们吧,不然就只能被困在车站然后再想办法解决。”
Eric Wang:感谢您提供的这些宝贵建议,也感谢今天的交流。感谢所有观看的开发者们,以上就是本期 Open AGI Forum 的全部内容。下次再见!
本期 Open AGI Forum 视频内容下期放送,敬请期待~

相关文章:
对话 OpenCV 之父 Gary Bradski:灾难性遗忘和持续学习是尚未解决的两大挑战 | Open AGI Forum
作者 | Annie Xu 采访、责编 | Eric Wang 出品丨GOSIM 开源创新汇 Gary Bradski,旺盛的好奇心、敢于冒险的勇气、独到的商业视角让他成为计算视觉、自动驾驶领域举重若轻的奠基者。 Gary 曾加入 Stanley 的团队,帮助其赢得 2005 年美国穿越沙漠 DA…...
通过地址获取LONG和LAT并且存入csv
通过地址获取LONG和LAT并且存入csv 1. Address存在Address这个column里,从网上复制(如果可以爬虫自动更好) 2. 用代码获取GPS,再存入表格 import pandas as pd from geopy.geocoders import Nominatim from time import sleep#…...
Nginx SSL+tomcat,使用request.getScheme() 取到https协议
架构上使用了 Nginx tomcat 集群, 且nginx下配置了SSL,tomcat no SSL,项目使用https和http协议。 发现 request.getScheme() //总是 http,而不是实际的http或https request.isSecure() //总是false(因为总是http) request.getRemoteAddr(…...
Node.Js+Knex+MySQL增删改查的简单示例(Typescript)
数据库: CREATE DATABASE MyDB; CREATE TABLE t_users (user_id int(11) NOT NULL,user_name varchar(10) NOT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8; 项目结构: package.json如下,拷贝并替换你们本地的package.json后运行 npm install 命令安装所需要的依赖。…...
机器学习的概览
笔记内容侵权联系删除 机器学习算法 机器学习(包括深度学习分支)是研究“学习算法”的一门学问。所谓“学习”是指:对于某类任务T和性能度量P,一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。 机器学习…...
方法论-WPS模型(高效沟通和决策分析的框架)
WPS模型(What, Problem, Solution)是一种高效沟通和决策分析的框架,旨在帮助沟通者清晰、简洁地表达问题和解决方案,特别适用于在复杂或多变的环境中进行清晰的交流。WPS模型的核心是通过以下三个步骤来组织沟通内容: …...
OpenTelemetry 赋能DevOps流程的可观测性革命
作者:天颇 引言 在当今快节奏的软件开发和运维环境中,DevOps 已经成为主流,它通过整合开发和运维流程,推动着软件的快速迭代和持续交付。然而,随着微服务、容器化和云计算等技术的普及,系统复杂性急剧增加…...
子集选择——基于R语言实现(最优子集选择法、逐步回归法、Lasso回归法、交叉验证法)
( a )使用 rnorm() 函数生成预测变量X(n=100)与噪声向量 ϵ \epsilon ϵ(n=100) set.seed(1) x<-rnorm(100)#预测变量X eps<-rnorm(100)#噪声向量$\epsilon$( b ) 生成响应变量Y(n=100),...
Ubuntu24.04挂载磁盘
一、引言 由于几块磁盘每次开机时的编号都不一样,造成了很多麻烦,所有重新挂载磁盘试一试。 参考链接: ubuntu挂载磁盘或U盘Ubuntu添加新硬盘,挂载到根目录下的某个文件中 二、挂载磁盘 1. 查看盘名 sudo fdisk -l sda 代表第…...
使用机器学习优化数据库查询性能
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用机器学习优化数据库查询性能 文章目录 使用机器学习优化数据库查询性能引言数据库查询性能概述查询优化的重要性 机器学习在…...
英伟达基于Mistral 7B开发新一代Embedding模型——NV-Embed-v2
我们介绍的 NV-Embed-v2 是一种通用嵌入模型,它在大规模文本嵌入基准(MTEB 基准)(截至 2024 年 8 月 30 日)的 56 项文本嵌入任务中以 72.31 的高分排名第一。此外,它还在检索子类别中排名第一(…...
HTML面试题(2)
HTML5相比HTML有哪些更新? 语义化更强的HTML元素:引入artitcle、section、nav、header、footer等元素,帮助创建结构更清晰、语义更明确的网页,有利于SEO和内容的可访问性表单控件增强:新增多种表单输入类型࿰…...
微服务day07
MQ高级 发送者可靠性,MQ的可靠性,消费者可靠性。 发送者可靠性 发送者重连 连接重试的配置文件: spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 10…...
芯原科技嵌入式面试题及参考答案
Linux 相关驱动怎么写? 在 Linux 中编写驱动主要有以下步骤。 首先,需要了解设备的硬件特性。这包括设备的工作原理、寄存器地址和功能、中断号等信息。例如,对于一个简单的 GPIO 设备,要知道其数据寄存器、方向寄存器的位置以及读写操作的规则。 然后是模块的初始化部分。…...
二叉树Golang
二叉树 前言 完全二叉树 最底层节点按顺序从左到右排列。 满二叉树 一颗二叉树只有0度和2度的节点。 二叉搜索树 左子树上的所有节点的值均小于根节点的值。右子树上的所有节点的值均大于根节点的值。 平衡二叉搜索树 左右两个子树的高度差的绝对值不超过1 。 二叉树的存储…...
通过css的哪些方式可以实现隐藏页面上的元素?
1:opacity:0 通过将元素的透明度设置为o,实现隐藏效果,但是依然会占用空间并可以进行交互。 2:visibility:hidden 与透明度度为0的方案类似,会占据空间,但不可以进行交互。 3:Overflow:hi…...
微信小程序 === 使用腾讯地图选点
目录 插件介绍 接入指引 相关参数说明 插件错误处理 效果图 permission 插件的作用 添加插件 引入插件代码包 使用插件 页面 js 接口 插件介绍 腾讯位置服务地图选点插件 可以让用户快速、准确地选择并确认自己的当前位置,并将相关位置信息回传给开发者。…...
Redis高可用-Cluster(集群)
Redis cluster cluster 为无中心,分布式 sharding,高可用技术架构。 在哨兵 sentinel 机制中,可以解决 redis 高可用的问题,即当 master 故障后可以自动将 slave 提升为 master 从而可以保证 redis 服务的正常使用。 但是无法解…...
Spring Boot编程训练系统:数据管理与存储
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分&…...
报告解读 | 创意经济2024:如何在变革中抢占先机?
在科技飞速发展的今天,创意行业正面临前所未有的变化。《Skillshare Trendshare 2024》报告揭示了多项趋势,为创意人士提供了深刻的洞察和实用的建议。本文将为您详细解读这些趋势,助您在创意领域脱颖而出。 1. 人工智能(AI&…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
【java面试】微服务篇
【java面试】微服务篇 一、总体框架二、Springcloud(一)Springcloud五大组件(二)服务注册和发现1、Eureka2、Nacos (三)负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...
