[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models
文章目录
- 摘要
- Abstract:
- 思考与行为协同化
- Reason(Chain of thought)
- ReAct
- ReAct如何协同推理 + 响应
- Action(动作空间)
- 协同推理
- 结果
- 总结
摘要
ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning and Acting in Language Models 来自普林斯顿大学和谷歌团队,发表于2022年,中稿于ICLR 2023。
为了解决大型语言模型(LLMs)在处理语言理解和决策任务时的两方面局限性:(1)推理能力和动作能力过于隔离;(2)思维链推理中普遍存在的幻觉和错误传播。
文章作者提出了ReAct方法,**推理(Reason)**帮助模型诱导更新动作计划以及处理异常,动作(Action)允许它与外部知识库对接,通过交错生成推理轨迹和特定任务的动作,增强了推理和动作之间的协同作用。ReAct在多种语言和决策任务中显示出比传统方法更优的性能,有效地提升了模型处理复杂任务的能力。
尽管方法很简单,但具有大动作空间的复杂任务需要更多的演示,但缺点是很容易超出上下文限制,未来应该从更多高质量的人工标注中学习。通过多任务训练扩大ReAct的规模,并将其与强化学习等补充范式相结合,可以产生更强大的agent,进一步释放潜力。
Abstract:
This week I read ReAct: Synergizing Reasoning and Acting in Language Models. It introduces ReAct, a novel approach that synergizes reasoning and acting within large language models to address their limitations in language understanding and decision-making tasks. ReAct enhances the models’ ability to dynamically reason and interact with external knowledge bases, such as Wikipedia, through a series of thought-action-observation steps. The report details the methodology, experimental evaluations on various language and decision tasks, and the comparative performance of ReAct against traditional methods. It concludes that ReAct outperforms other approaches and offers interpretable decision trails, highlighting its potential for improving complex task handling in language models.
思考与行为协同化
人类智力的一个独特特征是能够将面向任务的动作与言语推理无缝结合,这被认为在人类认知中发挥了重要作用,以实现自我调节或策略化并保持工作记忆。
考虑一下在厨房里做一道菜的例子。在任何两个具体的动作之间,我们可能会用语言进行推理,以便跟踪进度(“现在所有东西都切好了,我应该把锅里的水加热”),处理例外情况或根据情况调整计划(“我没有盐,所以让我用酱油和胡椒粉代替”),并在需要外部信息时意识到(“我如何准备面团? 让我在网上搜索”)。我们也可能采取动作(打开食谱阅读,打开冰箱,检查成分)来支持推理和回答问题(“我现在可以做什么菜?”)。这种 "动作 "和 "推理 "之间的紧密协同作用使人类能够快速学习新的任务,并进行强有力的决策或推理,即使是在以前没有见过的情况下或面临信息不确定的情况下。
Reason(Chain of thought)
为了模仿人类的思考过程,CoT被提出。
Chain of thought prompting elicits reasoning in large language models [2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
此文是CoT的开山之作,同样来自于Google,中稿于NeurIPS 2022。本文思路清晰,方法简单,通俗易懂,并且实验巧妙,同样值得精读。
CoT是一种简单高效的大模型prompt,用于帮助语言模型进行复杂的推理和思考过程。它通过引导模型逐步解决问题,以一系列连贯的步骤展示推理的思路和逻辑关系。CoT是当前热门的方向之一,是prompt 工程工作的重要基础。
然而,这种 "思维链 "推理是一个静态的黑箱,即模型使用自己的内部表示来产生思维,并不以外部世界为基础,这限制了它反应性推理或更新知识的能力。这可能导致事实幻觉和错误在推理过程中传播等问题。
ReAct
另一方面,一些研究探索了使用预训练好的语言模型在互动环境中计划和动作,重点是通过语言先验预测动作。这些方法通常将多模态观察转换为文本,使用语言模型来生成特定领域的动作或计划,然后使用控制器来选择或执行这些动作。然而,除了执行有限形式的语言推理以重申关于当前状态的空间事实之外,他们并没有采用语言模型来抽象推理高级别的目标或维持工作记忆以支持动作。
除了这种简单的体现任务与几个区块互动之外,还没有研究如何将推理和动作以协同的方式结合起来解决一般的任务,以及与单独的推理或动作相比,这种结合是否能带来系统的好处。
于是文章提出了ReAct,一个将推理和动作与语言模型结合起来的通用范式,用于解决不同的语言推理和决策任务(如图)。ReAct提示语言模型以交错的方式产生与任务相关的语言推理轨迹和动作,这使得模型能够进动作态推理,以创建、维护和调整动作的高级计划(推理到动作),同时也与外部环境(例如维基百科)互动,将额外信息纳入推理(动作到推理)。
4种提示方法的比较,(a)标准,(b)思维链(CoT, Reason Only),©仅动作,和(d)ReAct(Reason+Act),解决一个HotpotQA问题。
比较(a) Act-only和(b) ReAct提示,解决一个AlfWorld游戏。
在这两个领域中,我们省略了提示中的上下文例子,只显示由模型(Act,Thought)和环境(Obs)产生的任务解决轨迹。
ReAct如何协同推理 + 响应
考虑一个agent与环境互动以解决任务的一般设置。在时间步t,agent从环境中收到一个观察值 o t ∈ O o_t \in O ot∈O ,并按照一些策略 π ( a t ∣ c t ) π(a_t|c_t) π(at∣ct) 采取动作$ a_t \in A ,其中 ,其中 ,其中 c_t=(o_1,a_1,⋅⋅⋅ ,o_{t−1},a_{t−1},o_t) $是agent的背景。
ReAct的想法很简单:我们将agent的动作空间扩大到 $A˙=A∪L $,其中L是语言空间。语言空间中的动作 $a_t∈L ,我们将其称为思想或推理轨迹,不影响外部环境,因此不会导致观察反馈。相反,一个思想 ,我们将其称为思想或推理轨迹,不影响外部环境,因此不会导致观察反馈。相反,一个思想 ,我们将其称为思想或推理轨迹,不影响外部环境,因此不会导致观察反馈。相反,一个思想a_t 的目的是通过对当前上下文 的目的是通过对当前上下文 的目的是通过对当前上下文c_t$的推理来组成有用的信息,并更新上下文 c t + 1 = ( c t , α t ) c_{t+1} =(c_t,α_t) ct+1=(ct,αt) 以支持未来的推理或动作。如图所示,可能有各种类型的有用思想,例如分解任务目标和创建动作计划(2b,动作1;1d,思想1),注入与任务解决相关的常识性知识(2b,动作1),从观察中提取重要部分(1d,思想2,4),跟踪进度和转运动作计划(2b,动作8),处理异常情况和调整动作计划(1d,思想3),等等。
然而,由于语言空间L是无限的,在这个增强的动作空间中学习是困难的,需要强大的语言先验。在本文中,我们交替生成思想和动作,这样任务解决的轨迹就由多个思想-动作-观察步骤组成。相反,对于可能涉及大量动作的决策任务,思想只需要少量地出现在轨迹的最相关位置,所以我们让语言模型为自己决定思想和动作的异步发生。
由于决策和推理能力被整合到一个大的语言模型中,ReAct享有几个独特的特征:
- A) 直观且易于设计: 设计ReAct的提示是直接的,因为人工标注者只是在他们采取的动作上面用语言输入他们的想法。本文没有使用临时的格式选择、思想设计或例子选择。我们在第3节和第4节中详细介绍每个任务的提示设计。
- B)一般性和灵活性: 由于灵活的思维空间和思维-动作发生格式,ReAct适用于具有不同动作空间和推理需求的不同任务,包括但不限于QA、事实验证、文本游戏和网络导航。
- C) 性能好和稳定性强: ReAct对新的任务实例表现出很强的泛化能力,同时仅从1到6个上下文中的例子中学习,在不同的领域中始终优于只进行推理或动作的基线。我们还在第3节中展示了启用微调时的额外好处,并在第4节中展示了ReAct的性能对提示选择的稳健性。
- D) 人工调整和可控: ReAct 承诺了一个可解释的序列决策和推理过程,人类可以轻松地检查推理和事实的正确性。此外,人类还可以通过思维编辑来控制或纠正agent的行为。
Action(动作空间)
为了进行知识密集型的推理任务,如多跳问答和事实验证。我们设置通过与维基百科的API交互,ReAct能够检索信息以支持推理,同时也利用推理来确定下一步要检索的目标,展示了推理和动作的协同作用。
我们设计了一个简单的维基百科网络API,有三种类型的动作来支持交互式信息检索:
- (1)搜索[实体],如果存在实体维基页面,则返回相应实体维基页面的前5个句子,否则建议使用维基百科搜索引擎的前5个类似实体;
- (2)查找[字符串],这将返回包含字符串的页面中的下一句话,模拟浏览器上的Ctrl+F功能。
- (3)结束[答案],它将用答案完成当前任务。
我们注意到,这个动作空间大多只能根据准确的段落名称检索出一小部分段落,这明显弱于最先进的词法或神经检索器。我们的目的是模拟人类如何与维基百科互动,并迫使模型通过语言的明确推理来检索。
不过,未来的研究可以进一步使用更先进的检索方式来替代这个简单的WIK交互。
整个动作空间被结合例子(simple)放入了prompt中:
webthink_examples = prompt_dict['webthink_simple6']
instruction = """Solve a question answering task with interleaving Thought, Action, Observation steps. Thought can reason about the current situation, and Action can be three types:
(1) Search[entity], which searches the exact entity on Wikipedia and returns the first paragraph if it exists. If not, it will return some similar entities to search.
(2) Lookup[keyword], which returns the next sentence containing keyword in the current passage.
(3) Finish[answer], which returns the answer and finishes the task.
Here are some examples.
"""
webthink_prompt = instruction + webthink_examples
协同推理
-
循环从1到7,生成思考和行动。
-
每次循环增加
n_calls
计数器,最多进行8次思考。 -
调用
llm
生成思考和行动,llm
使用提示字符串prompt
并生成一个包含思考和行动的字符串。 -
尝试将生成的字符串拆分为思考和行动。如果拆分失败(例如字符串格式不正确),则记录错误调用,并重新生成行动。
每一步都进行以下的协同过程:
- 调用
step
函数在环境中执行行动,并获取观察结果obs
、奖励r
、是否完成done
和其他信息info
。 - 构建当前步骤的字符串
step_str
,包括思考、行动和观察。
任务结束:
- 执行
finish[]
动作以结束任务
def webthink(idx=None, prompt=webthink_prompt, to_print=True):question = env.reset(idx=idx)if to_print:print(idx, question)prompt += question + "\n"n_calls, n_badcalls = 0, 0for i in range(1, 8):n_calls += 1thought_action = llm(prompt + f"Thought {i}:", stop=[f"\nObservation {i}:"])try:thought, action = thought_action.strip().split(f"\nAction {i}: ")except:print('ohh...', thought_action)n_badcalls += 1n_calls += 1thought = thought_action.strip().split('\n')[0]action = llm(prompt + f"Thought {i}: {thought}\nAction {i}:", stop=[f"\n"]).strip()obs, r, done, info = step(env, action[0].lower() + action[1:])obs = obs.replace('\\n', '')step_str = f"Thought {i}: {thought}\nAction {i}: {action}\nObservation {i}: {obs}\n"prompt += step_strif to_print:print(step_str)if done:breakif not done:obs, r, done, info = step(env, "finish[]")if to_print:print(info, '\n')info.update({'n_calls': n_calls, 'n_badcalls': n_badcalls, 'traj': prompt})return r, info
结果
ReAct持续优于Act ,表显示了使用PaLM540B作为基础模型,采用不同提示方法的HotpotQA和Fever结果。我们注意到,ReAct在这两项任务中都优于Act,证明了推理指导行为的价值,特别是对于综合最终答案,如图所示。微调结果也证实了推理轨迹对更多知情行为的好处。
ReAct在Fever上的表现优于CoT(60.9 vs. 56.3),在HotpotQA上略微落后于CoT(27.4 vs. 29.4)。Fever对SUPPORTS/REFUTES的主张可能只相差一点点,所以采取动作检索准确和最新的知识是至关重要的。
ReAct + CoT-SC在提示LLMs方面表现最好,在HotpotQA和Fever上最好的提示方法分别是ReAct → CoT-SC和CoT-SC → ReAct。此外,图显示了不同方法在使用CoT-SC样本数量方面的表现。虽然两种ReAct + CoT-SC的方法在一项任务中各有优势,但它们在不同的样本数量上都明显地持续优于CoT-SC,只用3-5个样本就达到了CoT-SC的性能。这些结果表明适当结合模型内部知识和外部知识对推理任务的价值。
总结
文章提出了ReAct——一种简单而有效的方法来协同推理和行动大型语言模型,解决掉思维链中幻觉传播的问题。通过一组不同的实验,对多跳问答,事实检查和交互式决策任务,表明ReAct带来了卓越的性能具有可解释的决策痕迹。尽管ReAct的方法简单,但复杂的任务用大动作空间需要更多的演示来学习,不幸的是,这很容易超出语境学习的输入长度限制。同时,简单的WIKI交互仅仅是模仿了人类的查询行为,未来的研究可以进一步使用更先进的检索方式来替代这个简单的WIK交互。
相关文章:
[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models
文章目录 摘要Abstract:思考与行为协同化Reason(Chain of thought)ReAct ReAct如何协同推理 响应Action(动作空间)协同推理 结果总结 摘要 ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning an…...
React 高阶组件(HOC)
文章目录 一. 高阶组件(HOC)的定义二. HOC 的作用和优势三. HOC 的使用方式四. HOC 的注意事项和潜在问题五. 应用场景1. 权限控制与认证2. 数据获取与预加载3. 样式和主题管理4. 性能优化 - 缓存数据或组件渲染结果5. 日志记录与调试辅助 六. 总结 一. …...
module ‘django.db.models‘ has no attribute ‘FieldDoesNotExist‘
module ‘django.db.models’ has no attribute ‘FieldDoesNotExist’ xadmin报错 原因 django与xadmin版本不匹配。 django==3.2.7 xadmin-django==3.0.2解决方案 在xadmin/view/edit.py的388行改为 from django.core import exceptions if self.request_method ==...
仓颉语言实战——1. 类型
仓颉语言实战——1. 类型 仓颉语言(Cangjie Language)是一个现代化的、简洁而强大的编程语言,它的类型系统为高效开发提供了极大的支持。本篇文章将围绕仓颉语言中的类型系统展开,结合实战代码,帮助开发者快速掌握这一…...
大数据平台开发学习路线及技能
背景 最近项目涉及这方面,特地整理学习路线方便后续学习。 必备技能 一、编程语言 Java:大数据开发的基础语言,具有跨平台能力,可用于编写各种应用。 Python:机器学习和数据分析领域广泛使用的语言,易于…...
python报错ModuleNotFoundError: No module named ‘visdom‘
在用虚拟环境跑深度学习代码时,新建的环境一般会缺少一些库,而一般解决的方法就是直接conda install,但是我在conda install visdom之后,安装是没有任何报错的,conda list里面也有visdom的信息,但是再运行代…...
python-Flask:SQLite数据库路径不正确但是成功访问到了数据库,并对表进行了操作
出现了这个问题,就好像是我要去找在南方的人,然后我刚好不分南北,我认为的方向错了,实则方向对了。 在我针对复盘解决:sqlite3.OperationalError: unrecognized token: “{“-CSDN博客这个内容的时候,又出现…...
阿里云人工智能ACA(七)——计算机视觉基础
一、自然语言处理基本介绍 1. 自然语言处理的定义 1-1 自然语言 人类使用的在社会生活中自然形成的语言 1-2 自然语言处理 目标是让计算机能够理解、解析、生成和处理人类的自然语言 包含自然语言理解和自然语言生成两部分组成 2. 自然语言处理的发展趋势 3.自然语言处理…...
计算机组成(1)——CPU与存储器的连接
目录 CPU与存储器的连接 1.内存条的设计思路 如何读取存储元上是0还是1 存储数据1010 系统的将这些存储元连接起来 2.译码器的原理 3.加入控制电路 4.位扩展 5.字扩展 CPU与存储器的连接 1.内存条的设计思路 内存条:存储体、MAR(地址寄存器&am…...
MySQL学习之表查询操作
MySQL学习之表查询操作 准备数据 创建数据表和导入数据 CREATE TABLE user (id INT COMMENT 编号,name VARCHAR (10) COMMENT 姓名,gender CHAR(1) COMMENT 性别,age TINYINT UNSIGNED COMMENT 年龄,phone VARCHAR(11) COMMENT 手机号,idcard CHAR(18) COMMENT 身份证号,addre…...
GitHub 桌面版配置 |可视化界面进行上传到远程仓库 | gitLab 配置【把密码存在本地服务器】
🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 桌面版安装包下载clone 仓库操作如下GitLab 配置不再重复输入账户和密码的两个方…...
六十:HTTP/2与gRPC框架
随着互联网技术的发展,应用程序之间的通信需求日益复杂和多样化。传统的HTTP/1.x协议虽然广泛应用,但在性能和功能方面已经难以满足现代应用的需求。为了解决这些问题,HTTP/2协议和基于其之上的gRPC框架应运而生。本文将介绍HTTP/2协议的特点…...
普通的树形数据primevue的treetable组件的treetable[ ]
1,核心思想就是缺什么属性加什么属性 1.原始数据 原始数据本身就是树状,只是不是TreeNode类型的数组,这样的数据,primevue的treetable组件是展示不出来的,自己把这个数组转成node类型的,会有一个难解决的…...
数据库设计问题记录
唯一性约束和逻辑删除的冲突 问题描述 如果一张表中,存在唯一性约束,比如一些数据中的code,且数据表使用逻辑删除。当删除某行数据的时候,以后再次插入相同code的数据,数据库会报错。 问题分析 在逻辑删除中&#…...
基于springboot的汽车租赁系统丨源码+数据库+万字文档+PPT
作者简介: 作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 技术框架 开发语言:Java 框架:spring…...
计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
从0入门自主空中机器人-2-2【无人机硬件选型-PX4篇】
1. 常用资料以及官方网站 无人机飞控PX4用户使用手册(无人机基本设置、地面站使用教程、软硬件搭建等):https://docs.px4.io/main/en/ PX4固件开源地址:https://github.com/PX4/PX4-Autopilot 飞控硬件、数传模块、GPS、分电板等…...
渗透测试常用术语总结
一、攻击篇 1.攻击工具 肉鸡 所谓“肉鸡”是一种很形象的比喻,比喻那些可以被攻击者控制的电脑、手机、服务器或者其他摄像头、路由器等智能设备,用于发动网络攻击。 例如在2016年美国东海岸断网事件中,黑客组织控制了大…...
Spring Boot 介绍与应用
什么是 Spring Boot? Spring Boot 是一个用于简化 Spring 应用程序开发和部署的框架,它建立在 Spring 框架的基础之上,但去除了繁琐的配置。Spring Boot 采用“约定优于配置”的原则,默认启用了大量自动配置,使得开发…...
前端:改变鼠标点击物体的颜色
需求: 需要改变图片中某一物体的颜色,该物体是纯色; 鼠标点击哪个物体,哪个物体的颜色变为指定的颜色,利用canvas实现。 演示案例 代码Demo <!DOCTYPE html> <html lang"en"><head>&l…...
基于Android的校园导航系统
基于Android的校园导航系统是一种专为校园环境设计的移动应用程序,旨在帮助学生、教职工及访客快速、准确地找到校园内的目的地。以下是对基于Android的校园导航系统的详细介绍: 一、系统概述 基于Android的校园导航系统通常包括客户端(移动…...
ipad如何做副屏(Windows/Mac Moonlight Sunshine)
Windows 被连接主机(Windows) 要使用的话需要固定ip,不然ip会换来换去,固定ip方法本人博客有记载Github下载Sunshine Sunshine下载地址除了安装路径需要改一下,其他一路点安装完成后会打开Sunshine的Web UIÿ…...
微信小程序页面传参长度问题
需求:a页面传递参数到b页面,传递的参数是一个对象,需要进行json转换,但在小程序中传递的参数长度是有限制的,因此我们传递的时候可以,但是接收的时候,往往会被自动截取掉超出的部分,…...
Redis 安装部署[主从、哨兵、集群](windows版)
说明:该方式建议仅用于自己研究,不建议用于生产 linux 版本见:Redis 安装部署[主从、哨兵、集群](linux版) 一、Redis 下载安装 下载 下载地址:https://github.com/zkteco-home/redis-windows/releases?…...
反应力场的生成物、反应路径分析方法
关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩! 主要专栏内容包括: †《LAMMPS小技巧》: ‾ \textbf…...
安卓音频之dumpsys audio
目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...
StableAnimator模型的部署:复旦微软提出可实现高质量和高保真的ID一致性人类视频生成
文章目录 一、项目介绍二、项目部署模型的权重下载提取目标图像的关节点图像(这个可以先不看先用官方提供的数据集进行生成)提取人脸(这个也可以先不看)进行图片的生成 三、模型部署报错 一、项目介绍 由复旦、微软、虎牙、CMU的…...
蓝桥杯真题 - 异或和 - 题解
题目链接:https://www.lanqiao.cn/problems/3549/learning/ 个人评价:难度 3 星(满星:5) 前置知识:树状数组,dfs 序 整体思路 查询以节点 x x x 为根的子树下所有节点异或和,用 …...
【ES6复习笔记】let 和 const 命令(1)
ES6 中的 let 和 const 关键字 1. let 关键字 let 关键字用于声明一个变量,它具有块级作用域,这意味着变量只在声明它的块内有效。与 var 不同,let 不允许在同一作用域内重复声明同一个变量。 2. const 关键字 const 关键字用于声明一个常…...
ReconFusion: 3D Reconstruction with Diffusion Priors 论文解读
目录 一、概述 二、相关工作 1、稀疏视角NeRF 2、用于视角合成的回归模型 3、用于视角合成的生成模型 4、2D扩散用于3D生成 三、ReconFusion 四、实验 一、概述 提出可以利用三张图片生成实景三维重建的方法ReconFusion。并且在合成数据集和多视图数据集上进行训练&…...
企业安装加密软件有什么好处?
加密软件为企业的安全提供了很多便利,从以下几点我们看看比较重要的几个优点: 1、数据保护:企业通常拥有大量的商业机密、客户数据、技术文档等敏感信息。加密软件可以对这些信息进行加密处理,防止未经授权的人员访问。即使数据被…...
Linux(Centos 7.6)目录结构详解
Linux(Centos 7.6)是一个操作系统,其核心设计理念是将一切资源抽象为文件,即一切皆文件。比如系统中的硬件设备硬盘、网络接口等都被视为文件。Windows系统一般是分为C、D、E盘。而Linux(Centos 7.6)是以斜线"/"作为文件系统的开始目录&#x…...
GXUOJ-算法-第二次作业
1.矩阵连(链)乘 问题描述 GXUOJ | 矩阵连乘 代码解答 #include<bits/stdc.h> using namespace std;const int N50; int m[N][N]; int p[N]; int n;int main(){cin>>n;//m[i][j] 存储的是从第 i 个矩阵到第 j 个矩阵这一段矩阵链相乘的最小…...
BGP基础配置
使用直连接口IP地址来建立EBGP对等体关系 1、启动BGP协议 [r1]bgp 100 ----启动BGP协议,并且规定其AS号2、配置设备的RID数值,一般选择设备的loopback接口的IP地址 [r1-bgp]router-id 1.1.1.13、配置BGP对等体信息,包含了对等体的IP地址以及…...
瑞芯微全新芯片平台RK3506优势详解,高集成低功耗,为工业而生 触觉智能测评
RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台,三核Cortex-A7单核Cortex-M0多核异构设计,CPU频率达1.5Ghz, M0 MCU为200Mhz。 而RK3506芯片平台下的工业级芯片型号RK3506J,具备-40-85℃的工业宽温性能、发热量小&#…...
Alice与Bob
Alice与Bob factordb.com 用上面链接可以直接分解 得到101999和966233 按照要求让小的放前面大的放后面得到 接着进行MD5的32位小写哈希 MD5在线加密/解密/破解—MD5在线 flag{d450209323a847c8d01c6be47c81811a}...
【玩转MacBook】Git安装
Git 官网也提到了MacBook 可以使用 Homebrew 安装 Git,所以在此使用 Homebrew 安装。 1、安装 Homebrew 执行安装脚本 在 Terminal 中执行如下命令: /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.…...
【IC验证】verilog及systemverilog特殊特性的分析
verilog及systemverilog特殊特性的分析 1.概述2.赋值延迟(0)总结(1)情况一:initial中进行阻塞赋值和非阻塞赋值(不延迟)a代码b 电路图c 结果 (2)时钟a 代码b 电路图c 结果…...
Apollo中间件技术:从入门到精通
一、引言 在Java开发的微服务架构中,配置管理是一个不可或缺的重要环节。随着服务数量的增加和部署环境的复杂化,传统的手动配置管理方式已难以满足需求。Apollo作为一款开源的分布式配置中心,凭借其强大的功能和灵活的架构,成为…...
汽车行业的MES系统方案(附案例资料合集)
针对汽车行业的MES系统方案,以下是一些关键点和实施案例: 核心功能: 实时监控:MES系统通过传感器和物联网技术实时监控生产线上的每一个环节,确保信息的及时传递。数据分析:系统对收集的数据进行深度分析&a…...
Python入门:7.Pythond的内置容器
引言 Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器&…...
单片机与MQTT协议
MQTT 协议简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布 / 订阅(publish/subscribe)模式的 “轻量级” 通讯协议,该协议构建于 TCP/IP 协议上…...
记录命令行操作树莓派Wifi的方式
打开WiFi rfkill unblock wlan 关闭WiFi rfkill block wlan 设置可连接的WiFi 方法一(bullseye及以前版本才可用,bookworm版本) sudo nano /etc/wpa_supplicant/wpa_supplicant.conf network{ssid"wifi_name"psk"wifi_pas…...
Docker 安装mysql ,redis,nacos
一、Mysql 一、Docker安装Mysql 1、启动Docker 启动:sudo systemctl start dockerservice docker start 停止:systemctl stop docker 重启:systemctl restart docker 2、查询mysql docker search mysql 3、安装mysql 3.1.默认拉取最新版…...
[C#] 复数乘法的跨平台SIMD硬件加速向量算法(不仅支持X86的Sse、Avx、Avx512,还支持Arm的AdvSimd)
文章目录 一、简单算法二、向量算法2.1 算法思路2.1.1 复数乘法的数学定义2.1.2 复数的数据布局2.1.3 第1步:计算 (a*c) (-b*d)i2.1.4 第2步:计算 (a*d) (b*c)i2.1.5 第3步:计算结果合并 2.2 算法实现(UseVectors)2.…...
curl 放弃对 Hyper Rust HTTP 后端的支持
curl 放弃了对使用 Rust 编写 Hyper HTTP 后端的支持,因为用户和开发者对此功能的需求很少。 curl 创始人兼核心开发者 Daniel Stenberg 表示,尽管这项工作最初由 ISRG 赞助并且看起来很有希望,但 Hyper 支持多年来一直处于实验阶段…...
RK3506开发板:智能硬件领域的新选择,带来卓越性能与低功耗
在现代智能硬件开发中,选择一款性能稳定、功耗低的开发板是确保产品成功的关键。Rockchip最新推出的RK3506芯片,凭借其卓越的能效比、多功能扩展性和优秀的实时性能,已经成为智能家电、工业控制、手持终端等领域的热门选择。而基于RK3506的Ar…...
RBAC权限控制
1、Spring Security 是一个功能强大的Java安全框架,它提供了全面的安全认证和授权的支持。 2 SpringSecurity配置类(源码逐行解析) Spring Security的配置类是实现安全控制的核心部分 开启Spring Security各种功能,以确保Web应…...
Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)
目录 1.rwx 对于目录和文件的区别 2.gcc 编译器 2.1编译过程 2.2gcc 的其他参数 3.动态库和静态库 3.1函数库 1.rwx 对于目录和文件的区别 r 文件的内容可以被查看。支持cat、more、head...vim ;目录的内容可以被查看。ls、tree …...
如何使用远程控制工具管理你的计算机系统
在现代工作环境中,远程控制技术越来越重要,尤其是对于系统管理员、技术支持人员以及需要远程工作的人来说。远程控制不仅仅是便捷,更是提高工作效率、快速解决问题的重要手段。今天,我们将讨论一些常见的远程控制工具,…...