7000长文:一文读懂Agent,大模型的下一站

什么是Agent?为什么是Agent?

在这里插入图片描述

大模型除了Chat外还能做什么用?

当我们将大型模型视为“核心调度器“时,它就变成了我们的Agent。借助任务规划、记忆及外部工具等能力,大型模型能够识别出应该执行的任务以及执行方式,从而实现自主决策。

并非单纯地“执行任务的工具”,Agent更具备一种类似于具有主观能动性的人的“仿主体性”。这种拟主体性即指Agent以模仿人类的方式,实现从“计划”,“组织”,“执行”,“学习”等过程直至完成一个任务。

图片

Agent的主动模式相对于传统软件或机械的被动模式来说,无疑带来了革新。我们可以为Agent设定能力范围,让它自主地发现问题、设定目标、构思策略、挑选方案、执行任务并进行检查更新。

因此,Agent可被视为“具备自主智能的实体”,也被广泛地称作智能体。当前的Agent主要被分为三种类型:单体Agent、多Agent协作(Multi-Agent)、以及与人交互的Agent。

面对一个“任务”,人类描述一个“目标”,然后将这个任务的执行交给Agent。AI接受目标并自主地进行“感知环境”,“形成记忆”,“完成规划”,“选择行动”,“观察和纠正错误”等一系列以任务目标为导向的行动。

基于大模型的AI Agent并非一种“新技术”,而更象是面向大型语言模型(LLMs)的一种“新的管理方式”。

基于Prompt的与大型模型互动的方式更像是静态的“输入-输出”,而AI Agent给大模型提供了一个进行“动态决策”的框架,它使得大模型有能力处理更复杂、更多样化的决策任务,从而为大型模型从“语言”成功以稳固的基础迈向“真实世界”。

从CoT到Agent

什么是CoT

在深入理解思维链(Chain of Thought, CoT)之前,我们先来认识两个概念,即“语言智能”和“推理”。

“语言智能”可以被看作是使用基于自然语言的概念去理解经验事物,并对概念间进行推理的能力。而“推理”更常被理解为根据已知前提推出新结论的过程,这通常涉及到多个步骤并形成了关键的“中间概念”,它们有助于解决复杂问题。

图片

当我们让大型模型对复杂问题进行分解,将其转换为一步步可解决的子问题,大模型的性能得以显著提升。此时,这些推理的步骤便构成了我们所称的思维链 CoT。

一个完整的CoT形式的Prompt通常由三部分组成:指令(Instruction)、逻辑依据(Rationale)和示例(Exemplars),比如:

  • 指令(Instruction):“请你解决这个复杂的数学问题:求一个立方体的对角线长度,它的边长为’a’。”
  • 逻辑依据(Rationale):“首先,我们知道直角三角形中的勾股定理,然后,这个问题可以通过勾股定理解决。先找出立方体的一个面(一个平方),然后找出该平方的对角线长度,这就形成了一个新的直角三角形,该三角形的边长包括立方体的边,面的对角线,及我们要找的立方体的对角线。”
  • 示例(Exemplars):“让我们来执行它。首先,一个立方体的一个边面是一个正方形,而正方形的对角线长度可以通过勾股定理求出,即d=sqrt(a^2 + a^2)= asqrt(2)。接下来,我们需要找出立方体的对角线,这会涉及到一个新的直角三角形,他的边长是a, asqrt(2) 和立方体的对角线。再次应用勾股定理,我们可以得出立方体对角线长度为 sqrt(a^2 + 2a^2)= asqrt(3)。”

以上结构就是一个CoT形式的完整解析过程。

为什么使用CoT

  1. 提升了大模型的推理能力:通过将复杂问题拆解为简单的子问题,CoT大大增强了模型的推理能力。它还尽可能地减少了模型在解决问题时忽视关键细节的现象,从而确保计算资源始终集中在解决问题的核心步骤上。
  2. 提高了模型的可解释性:与单纯输出结果的模型相比,CoT可以展示模型的解题过程,帮助我们更好地理解模型是如何工作的。同时,其解题步骤的输出也为我们提供了错误定位的依据。
  3. 增强了模型的可控性:CoT让模型一步步展示解题步骤,我们通过观察这些步骤可以更大程度地影响模型的问题解决过程,避免模型成为无法控制的“完全黑盒”。
  4. 提升了模型的灵活性:只需添加一句“Let’s think step by step”,CoT方法便可在各种大型模型中使用。此外,CoT赋予模型的分步思考能力并不仅仅局限于“语言智能”,在科学应用与AI Agent构建等领域也均可发挥重要作用。

何时使用CoT

CoT (Chain of Thought) 的运用能够有效提升模型解决复杂任务的效率和准确度。如何理解这种差异效应呢?

  • 任务复杂度: 对于简单的任务,如查找特定信息或回答事实性问题,CoT的优势可能不明显,因为这些任务的解决方法直接且单一;然而,当面临复杂任务,例如编写全面的项目报告或进行复杂的数学求解,CoT的序列推理过程可以显著提升模型的表现,通过分解和逐步解答,大大提高了问题解决的准确性。
  • 模型规模与算力: 此外,CoT的效益也与模型的规模以及可用的算力有关。对于较小的模型,它们可能没有足够的计算能力或内部表现形式空间来有效地实施CoT。相反,较大的模型,特别是那些配备有大量计算资源的模型,更能有效地运用CoT策略,因为他们可以在信息处理和理解中,通过持续的、连续的推理过程,更加深入地理解相关上下文。
  • **任务之间的关联性:**CoT策略也依赖于处理的多个子任务之间的关联性。如果这些子任务在概念性或主题性上有一定的关联性,那么通过CoT,模型就可以很自然地建立起这些基础知识和子任务之间的联系,“桥梁”作用显现,如联合乘法和加法运算规则解决更复杂的数学问题。这种关联性允许模型在解答过程中,把先前步骤的信息有效地用在后续步骤里,从而提高整体任务的解决效率。

CoT如何到Agent

AI Agent需要对接收到的信息进行深度理解,这包括但不限于从环境中收集的反馈,以及从用户接收的指令。这个理解的过程不仅包括了信息的收集和分析,更加重要的是对所收集信息进行深度解析,实施有效的意图识别。这可以将解析的结论转化为模型下一步的具体任务,这个过程就像人类大脑的工作过程:从接收信息,对信息进行处理和理解,然后基于理解结果形成决策,再从决策转化为具体行动。

CoT就在这个过程中发挥了关键的作用,它通过序列化的思考模式,让智能体能更有效地理解和处理输入信息。

CoT帮助增强智能体进行决策的可靠性。它将任务分解为一系列小步骤,然后通过逻辑推理,逐一解决这些小步骤,最终将这些解决方案整合为完成整个任务的方案。

这种逐步解决问题的方法,可以大大降低在面对复杂任务时,因信息过多或过于复杂,而导致的错误决策。同时,这种方法也提高了整个解决方案的可追踪性和可验证性。

**CoT的核心功能在于将计划、行动与观察相互结合,弥补推理与行动之间的差距。**这种思考模式允许AI Agent在预测可能遇到的异常情况时制定有效的对策,以及在与外部环境交互的同时积累新信息、验证预先设定的预测,提供新的推理依据。

CoT就像是一个强大的精确度和稳定性引擎,帮助AI Agent在复杂环境中保持高效的工作效率。

Agent怎么落地?

为什么Agent落地这么难?

  • 在未知领域中的泛化能力:尽管 AI Agent 的出现本身就拓展了大模型解决更加复杂未知领域问题的能力,但是由于缺乏与现实世界真正“具身”的交互,因此一个可以做到浏览网页的 Agent 是否通过同一套框架与工程手段就可以做到操控无人机编组,这一问题仍然悬而未决;
  • Agent 的过度交互问题:为了完成任务,Agent 需要与环境进行大量复杂多步的交互,而一些研究也表明 Agent 很有可能会陷入到不断交互的循环陷井之中,在交互循环中无意义的空转,并且,由于 Agent 解决问题缺乏“效率”,因此由此生出的日志的存储与信息检索也将成为新的问题;
  • 个性化 Agent:人手一个的私人智能助理是一个美好的畅想但是一个真正的个性化 Agent 的实现还面临许多问题,目前个性化 Agent 的研究有三条技术进路,分别是从定制化的 Prompt 出发,从微调出发以及从模型编辑出发,但是这些进路都有各自的问题,并且当下研究都主要聚焦于特定的问题背景,目前还不存在一套完整统一的解决方案;
  • 多智能体社会:如何扩大大模型 Agent 的数量,以组成一个多智能体的社会用于观察“社会行为的涌现”也是一个非常有意思的方向,但是多智能体的计算开销是阻碍这一领域发展的关键问题;
  • Agent 安全问题:当 Agent 逐步进入人们的日常生活,Agent 与 CoT 的安全性问题就必须得提上日程,譬如老生常谈得隐私泄露、权限滥用、有毒信息等等问题,此外,当 Agent 应用于现实世界后,此外,由于缺少现实世界真正多模态的反馈,譬如人类智能可以感受到“痛”,而 AI Agent 不会有这方面的信息输入,因此如何对完全不同质的两类主体进行“对齐”也将是关键问题;
  • Agent 的评价:如何客观的评估一个 Agent 的能力也将是 AI Agent 发展带给我们的新问题,想想几年前 NLP 时代的数据集刷榜的评估方式,这种传统评价方式必然不适用于一个不断与外部环境打交道的 Agent。此外,一个做对了 99 步但生成答案错误的智能体可以本身能力要优于一个做错了 99 步但生成答案正确的智能体,因此 Agent 评价也呼唤除了评估执行任务的成功率以外的新指标、新方法。

从实践层面,影响目前Agent落地的问题主要有如下两方面:

  • API质量差,没有形成生态

Agent在2B领域落地,有些类似ChatGPT Plugin搬到2B领域。但ChatGPT Plugin发布之后,实际落地的情况与预期有很大差距,我们分析背后原因在于两个:一是背后的API不够丰富、质量差(比如描述不清晰),二是试图用一个模型解决所有的垂直问题(大模型对于垂直场景的理解未必足够)。第一个问题在国内尤其严重。企业服务API生态在欧美非常成熟和开放,中国还很不完善,开发者很难赚到钱。这些让Agent很难真正在生产环境落地。

  • 开放场景 vs 封闭场景

Agent的落地效果与场景的封闭程度也很相关。一个典型的对比是Agent在法律助手 vs 出行预订场景。前者场景不够封闭,经常有新知识(如新的法律法规、新的判例)出现,API也不够完善。要做成真正的律师“助手”还有比较大的挑战,比较现实的是做成一个帮助律师整理文档、搜索案例的提效工具。而后者场景封闭(可以穷举)、API丰富(机票、酒店等都有明确的API),在落地中的效果要好很多。最理想的落地情况,是有大量垂直领域数据(给到大模型做预训练)、场景封闭、问题基本可穷****举

Agent已经有哪些落地的场景?

创作与生成助手

当前在企业应用中以内容创作生成为主要能力的AI Agent从技术上至少有两种:

1、单Agent的内容生成。简单地将大模型的生成能力通过API集成到其他应用与业务流程中,替代或简化原来由人工完成的部分工作。比如:

  • 在线培训管理系统中,利用AI自动根据课件创建考题/考卷
  • 在数字营销流程中,利用AI生成精确营销话术甚至撰写营销方案
  • 市场分析的AI Agent基于互联网搜索或开放数据生成市场分析报告
  • 电子商务企业借助AI自动批量生成商品摘要
  • 媒体行业通过AI生成新闻摘要;学术平台借助AI生成论文摘要

这种类型的AI助手,如果内容简单的情况下,可以借助Prompt工程实现(与C端个人助手并无本质区别),如果内容复杂或者较长,可以拆分多任务执行Prompt,或者使用工具来分段生成。

2、基于多Agent协作(可能还有人类)的内容生成。典型的为虚拟机器人软件公司,由AI Agent担任多个软件开发岗位,通过相互协作完成某个软件开发任务。

这种多Agent协作型的助手可以借助Multi-Agents框架来简化开发与实现。比如MetaGPT,可以根据自然语言描述的开发任务,组建Agent团队(PM、架构师、程序员、QA等),遵循SOP并最终输出完整软件开发的成果(文档、代码、API说明等)。

图片

或者可以尝试定义一个文章作者+三个文章批评专家,通过多轮讨论优化,实现高质量的文章输出。

企业知识助手

在企业应用中,通过“外挂”私有知识库来扩充大模型的知识储备,以提供基于自然语言的、对话式的企业私有知识访问(对应到AI Agent的基本能力之一:持久化记忆),以解决通用大模型在面向企业应用时领域知识不足导致的幻觉问题。

这种“外挂”的方式就是检索增强生成技术(Retrieval-Augmented Generation,RAG),本质是借助于在大模型输入时携带相关的私有知识上下文,让大模型理解、总结、整理并回答用户问题

RAG 通过在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程,极大地提升了内容的准确性和相关性。

RAG 有效地缓解了幻觉问题,提高了知识更新的速度,并增强了内容生成的可追溯性,使得大型语言模型在实际应用中变得更加实用和可信。

图片

在技术架构图中可以看到LangChain或者LlamaIndex大模型主流应用开发基础框架。这两个基础框架对大量的模型、文档加载器、向量数据库、嵌入模型等做了抽象封装,并对RAG应用过程中的知识检索、Prompt组装等过程做了简化,可以大大简化开发过程。

另一类可以使用具备开箱即用能力的RAG应用构建平台,比如百度的灵境、天工的开放平台、COZE、FastGPT等,都提供了完善的RAG应用构建工具。FastGPT确实好用,COZE的白嫖GPT4(8k)更香。

数据分析助手

在现有的企业数据分析应用中,无论是中小型企业自定义的简单报表查询,还是大型企业基于专业数据仓库与BI工具的经营分析系统,尽管在决策支持中发挥了重大作用,但是在使用中仍然存在一些可见的不足,这也常常使得BI类的应用很难达到预期的建设目标。

而现在基于大模型的数据分析助手(Data Agent),通过在企业应用中将自然语言转换成数据分析的语言或代码,比如对API的调用、对数据库的访问、甚至编写数据分析代码,来达到获取数据、分析数据与可视化结果的目的

企业内的数据分析场景(至少是一部分场景)在未来可以转变为:业务人员通过自然语言与Agent对话(比如:我需要了解一下上季度各大区的销售与增长情况),完成数据查询、统计、分析甚至洞察。

在实现Data Agent,目前主要通过三种技术途径:

  • 自然语言转数据分析的API,text2API

类似现有的一些BI工具会基于自己的语义层开放出独立的API用于扩展应用,因此如果把自然语言转成对这些数据分析API的调用,是一种很自然的实现方式。当然完全也可以自己实现这个API层。

这个方案的特点是受到API层的制约,在后面我们会分析。

  • 自然语言转关系数据库SQL,text2SQL

这也是目前最受关注的一种大模型能力(本质上也是一种特殊的text2code)。由于SQL是一种相对标准化的数据库查询语言,且完全由数据库自身来解释执行,因此把自然语言转成SQL是最简单合理、实现路径最短的一种解决方案。

  • 自然语言转数据分析的语言代码,即text2Code

即代码解释器方案。简单的说,就是让AI自己编写代码(通常是Python)然后自动在本地或者沙箱中运行后获得分析结果。当然目前的Code Interpreter大多是针对本地数据的分析处理(如csv文件),因此在面对企业应用中的数据库内数据时,需要在使用场景上做特别考虑。

这种方案的特点是可以利用Python语言自身强大的数据科学库,且独立于数据库。

这里推荐几个除Langchain之外构建数据分析助手的工具与项目:

  • **DB-GPT:**一个国内团队的以重新定义数据交互为使命的强大开源项目,包含完整的前后台项目实现,实现了多场景下的交互数据分析。包括数据库分析、Excel分析、仪表盘分析等,该项目的另一个特点是后端大模型的可伸缩管理架构。另外还有一个专注于微调Text2SQL模型与评估的开源项目。
  • **OpenAgents:**一个来自香港团队的开源项目,Data Agent是其中一个重要的Agent实现。当前主要实现了对本地结构化数据文档的数据分析,其特点是提供了两种数据分析方法供选择,一种是基于SQL,一种是基于代码解释器。
  • **OpenInterpreter:**当前最强大的开源代码解释器,完美地复刻了OpenAI的代码解释器实现,但是可以完全在本地部署与使用,利用它来实现本地的数据分析与可视化是一个不错的选择。

应用/工具助手

AI应用/工具助手就是能够把自然语言转换成对企业应用或者互联网开放API调用的一种基础Agent形式。

应用助手的基本原理是比较简单的,其复杂性主要体现在大模型对自然语言转API的能力,类似于上述的text2API

推荐以下几个项目:

  • **LangChain:**LangChain中的Agent组件,通过组装多个Tools,封装与简化了大模型使用工具的过程,可以让你专注于Tools的创建即可。
  • **Assistants API:**这是OpenAI官方最新放出构建AI助手的API,如果你条件具备,也可以基于此构建企业AI助手,充分利用其强大的gpt4模型。其中对工具的使用主要体现在其对Function Calling功能的支持。
  • **OpenAgents:**该项目中的Plugins Agent实现了对大量开放API的智能使用,并且可以灵活配置增加新的Plugin,可以参考其实现。

自定义的流程助手

一种类似RPA(机器人流程自动化)的AI智能体。其主要能力是结合RPA实现网络浏览、操作与探索的动作与过程,实现由AI控制的工作流程。

通过自定义的流程助手,将Agent作为企业的数字员工,来简化企业日常工作中重复性较高、流程与规则固定、大批量的前端操作性事务,比如多平台订单数据分析、合并、计算,批量联系客户等。

利用大模型的理解与分析推理能力,可以让AI更加智能的规划与分解任务过程,然后借助浏览器完成执行;且在未来可以利用像GPT-4V这样的视觉模型,更智能的理解界面元素与功能,实现完全自主的智能操作,具备更强的自适应能力。

Agent适合在哪些场景落地?

做到比人(普通员工)好

当我把生成的文章拿给我们的专业内容编辑同事,她撇撇嘴,这只能给60分啊。但是我们要的不就是这60分?

客户不一定要求Agent达到专家水平,很多场合只要比普通员工好就够了。Agent PK的,实际上是月薪几千元的员工。比如,公司IT部门要响应业务人员的各种需求(如临时报表)。如果提供对话式UI,通过几轮对话让业务人员说明白需求,Agent来自动生成,做到这个,客户已经愿意买单了。这样IT团队可以从琐碎中解脱出来,做更重要的事。

  • Text to SQL

Text to SQL 在企业落地上有很多案例,以上例子本质上就是Text to SQL, 只不过多了很多新的数据来源:比如从商业化中最值钱的文档(合同、财报、简历、招投标书等)中提取数据。把这些数据连同专家知识一起灌给大模型,把信息抽出来,通过Text to SQL来回答问题,这件事已经很值钱了,可复制性也很强。

  • 写代码

帮程序员写代码这个场景毋庸多言。一个有趣的发现,是大模型些代码大部分时间做的是写正则表达式。正则表达式是个没多少人会写、但是很好用的东西。程序员调试,之前在这里经常花很多时间,用了大模型之后发现很快就能解决。这带给我们一个启发:有很多人类不擅长但AI很擅长的细分领域,是最适合Agent去落地探索的。

  • 解决头部问题是落地关键

我们看到在Agent领域有很多漂亮的Demo, 但能否将企业转化成为真正的长期付费者,一个核心是当这个工具真的进入企业后,员工是不是可以真正把它用起来解决问题。Agent肯定会有不好用的地方,关键是要先能把大部分员工的头部问题解决掉。做到这个,再出现一些小众长尾问题,能让大部分用户觉得,这是人的问题而不是AI的问题,就好办了(这种情况下,人会调整自己使用Agent的方式,比如更改询问方式等等,通过人向AI靠拢的方式解决的一部分长尾问题)。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/881347.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解锁自动化新境界:KeymouseGo,让键盘和鼠标动起来!

文章目录 解锁自动化新境界:KeymouseGo,让键盘和鼠标动起来!背景:为何选择KeymouseGo?KeymouseGo简介安装KeymouseGo简单函数使用应用场景常见问题与解决方案总结 解锁自动化新境界:KeymouseGo,…

在WPF中自定义控件时如何选择基类

在WPF中需要自定义控件,首要要选择需要继承的基类 FrameworkElement 这是常用的最低级的基类。通常,只有当希望重写OnRender()方法并使用DrawingContext从头绘制内容时,才会继承该类。 Control 当从头开始创建控件时,这是最常用…

Vue2知识点

注意:笔记内容来自网络 1Vue指令 指令是指&#xff1a;带有v-前缀的特殊标签属性 1.1 v-html v-html&#xff08;类似 innerHTML&#xff09; 使用语法&#xff1a;<p v-html"intro">hello</p>&#xff0c;意思是将 intro 值渲染到 p 标签中 类似 i…

【 ACM独立出版,见刊后1个月检索!!!】第二届通信网络与机器学习国际学术会议(CNML 2024,10月25-27)

第二届通信网络与机器学习国际学术会议&#xff08;CNML 2024&#xff09; The 2nd International Conference on Communication Networks and Machine Learning 官方信息 会议官网&#xff1a;www.cn-ml.org The 2nd International Conference on Communication Networks an…

JavaEE: 深入探索TCP网络编程的奇妙世界(二)

文章目录 TCP核心机制TCP核心机制二: 超时重传为啥会丢包?TCP如何对抗丢包?超时重传的时间设定超时时间该如何确定? TCP核心机制 书接上文~ TCP核心机制二: 超时重传 在网络传输中,并不会一帆风顺,而是可能出现"丢包情况"~ 为啥会丢包? 产生丢包的原因有很多…

倒序循环(一)

题目描述 输入一个正整数n&#xff0c;输出从 n~ 1 递减的序列。 输入格式 一行一个整数 n 输出格式 n 行&#xff0c;每行一个符合题目要求的整数 样例数据 样例输入#1 5样例输出#1 5 4 3 2 1样例输入#2 6样例输出#2 6 5 4 3 2 1数据范围 对于100%的数据&#xff…

C语言浮点型数据在内存中的存储(23)

文章目录 前言一、浮点数在内存中的存储练习引入浮点数的存储浮点数存的过程 二、浮点数取的过程E不全为0或不全为1E全为0E全为1 三、再回顾练习总结 前言 哎&#xff0c;之前写了一篇&#xff0c;可是中途退出没保存&#xff0c;只能再写一遍了~   浮点数在内存中的存储跟整…

python线程(python threading模块、python多线程)(守护线程与非守护线程)

文章目录 Python多线程入门1. Python多线程概述2. threading模块基础- Thread 类: 这是一个代表线程的类。可以通过创建Thread类的实例来新建一个线程。- Lock 类: 在多线程环境中&#xff0c;为了防止数据错乱&#xff0c;通常需要用到锁机制。Lock类提供了基本的锁功能&#…

ArcGIS10.2/10.6安装包下载与安装(附详细安装步骤)

相信从事地理专业的小伙伴来说&#xff0c;应该对今天的标题不会陌生。Arcgis是一款很常用的地理信息系统软件&#xff0c;主要用于地理数据的采集、管理、分析和展示。目前比较常见的版本有ArcGIS 10.2和ArcGIS 10.6。 不可否认&#xff0c;Arcgis具有强大的地图制作、空间分…

第4步CentOS配置SSH服务用SSH终端XShell等连接方便文件上传或其它操作

宿主机的VM安装CENTOS文件无法快速上传&#xff0c;也不方便输入命令行&#xff0c;用SSH终端xshell连接虚拟机的SSH工具就方便多了&#xff0c;实现VM所在宿主机Win10上的xshell能连接vm的centos要实现以下几个环节 1、确保宿主机与虚拟机的连通性。 2、虚拟机安装SSH服务&…

针对Docker容器的可视化管理工具—DockerUI

目录 ⛳️推荐 前言 1. 安装部署DockerUI 2. 安装cpolar内网穿透 3. 配置DockerUI公网访问地址 4. 公网远程访问DockerUI 5. 固定DockerUI公网地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

AJAX(一)HTTP协议(请求响应报文),AJAX发送请求,请求问题处理

文章目录 一、AJAX二、HTTP协议1. 请求报文2. 响应报文 三、AJAX案例准备1. 安装node2. Express搭建服务器3. 安装nodemon实现自动重启 四、AJAX发送请求1. GET请求2. POST请求(1) 配置请求体(2) 配置请求头 3. 响应JSON数据的两种方式(1) 手动&#xff0c;JSON.parse()(2) 设置…

毕业设计选题:基于ssm+vue+uniapp的校园商铺系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

分发饼干00

题目链接 分发饼干 题目描述 注意点 1 < g[i], s[j] < 2^31 - 1目标是满足尽可能多的孩子&#xff0c;并输出这个最大数值 解答思路 可以先将饼干和孩子的胃口都按升序进行排序&#xff0c;随后根据双指针 贪心&#xff0c;将当前满足孩子胃口的最小饼干分配给该孩…

旋转矩阵乘法,自动驾驶中的点及坐标系变换推导

目录 1. 矩阵乘法的内项相消 2. 左右乘&#xff0c;内外旋与动静坐标系 3. 点变换 3.1 点旋转后的点坐标表示 3.2 坐标系旋转后的点坐标表示 4. 坐标变换的实质 1. 矩阵乘法的内项相消 关于旋转变换&#xff0c;离不开矩阵的乘法&#xff0c;而矩阵乘法的物理意义和本身数…

[Linux#55][网络协议] 序列化与反序列化 | TcpCalculate为例

目录 1. 理解协议 1.1 结构化数据的传输 序列化与反序列化 代码感知&#xff1a; Request 类 1. 构造函数 2. 序列化函数&#xff1a;Serialize() 3. 反序列化函数&#xff1a;DeSerialize() 补充 4. 成员变量 Response 类 1. 构造函数 2. 序列化函数&#xff1a;…

【软件基础知识】什么是 API,详细解读

想象一下,你正在使用智能手机上的天气应用。你打开应用,瞬间就能看到实时天气、未来预报,甚至是空气质量指数。但你有没有想过,这些数据是如何神奇地出现在你的屏幕上的?答案就在三个字母中:API。 API,全称Application Programming Interface(应用程序编程接口),是现代软件世…

MYSQL面试知识点手册

第一部分&#xff1a;MySQL 基础知识 1.1 MySQL 简介 MySQL 是世界上最流行的开源关系型数据库管理系统之一&#xff0c;它以性能卓越、稳定可靠和易用性而闻名。MySQL 主要应用在 Web 开发、大型互联网公司、企业级应用等场景&#xff0c;且广泛用于构建高并发、高可用的数据…

工程师 - PFM介绍

在电子电路设计中&#xff0c;PFM&#xff08;Pulse Frequency Modulation&#xff0c;脉冲频率调制&#xff09;是一种调制技术&#xff0c;其主要特点是在负载变化时调整脉冲的频率&#xff0c;而保持脉冲的宽度&#xff08;时间长度&#xff09;相对恒定。与PWM&#xff08;…

记忆化搜索专题——算法简介力扣实战应用

目录 1、记忆化搜索算法简介 1.1 什么是记忆化搜索 1.2 如何实现记忆化搜索 1.3 记忆化搜索与动态规划的区别 2、算法应用【leetcode】 2.1 题一&#xff1a;斐波那契数 2.1.1 递归暴搜解法代码 2.1.2 记忆化搜索解法代码 2.1.3 动态规划解法代码 2.2 题二&#xff1…