深入浅出解析大模型:探索智能体(Agent)

news2024/11/24 2:40:02
大语言模型 vs 人类

大语言模型很强大,就像人类的大脑一样拥有思考的能力。如果人类只有大脑,没有四肢,没有工具,是没办法与世界互动的。如果我们能给大模型配备上四肢和工具呢?大模型是不是就会打破次元壁,从数字世界走向现实世界,与现实世界实现梦幻联动呢?

大语言模型(后文将用 LLM 指代)可以接受输入,可以分析&推理、可以输出文字\代码\媒体。然而,其无法像人类一样,拥有规划思考能力、运用各种工具与物理世界互动,以及拥有人类的记忆能力。

  • LLM:接受输入、思考、输出

  • 人类LLM(接受输入、思考、输出)+ 记忆 + 工具 + 规划

如果我们给 LLM 配备上:与物理世界互动的工具、记忆能力、规划思考能力。LLM 是否就可以像人类一样,能够自主思考并规划完成任务的过程,能检索记忆,能使用各种工具提高效率,最终完成某个任务。

智能体是什么

智能体的英文是 Agent,AI 业界对智能体提出了各种定义。个人理解,智能体是一种通用问题解决器。从软件工程的角度看来,智能体是一种基于大语言模型的,具备规划思考能力、记忆能力、使用工具函数的能力,能自主完成给定任务的计算机程序。

图 1. 由 LLM 驱动的智能体系统

如图 1 所示,在基于 LLM 的智能体中,LLM 的充当着智能体的“大脑”的角色,同时还有 3 个关键部分:

  • 规划(Planning) : 智能体会把大型任务分解为子任务,并规划执行任务的流程;智能体会对任务执行的过程进行思考和反思,从而决定是继续执行任务,或判断任务完结并终止运行。

  • 记忆(Memory): 短期记忆,是指在执行任务的过程中的上下文,会在子任务的执行过程产生和暂存,在任务完结后被清空。长期记忆是长时间保留的信息,一般是指外部知识库,通常用向量数据库来存储和检索。

  • 工具使用(Tool use) 为智能体配备工具 API,比如:计算器、搜索工具、代码执行器、数据库查询工具等。有了这些工具 API,智能体就可以是物理世界交互,解决实际的问题。

智能体能做什么

相信看到这里,我们已经对智能体有了基本的认知。如果你还觉得智能体这个概念有点抽象,没关系,现在我们来点好玩的,一起来看看智能体能玩出什么花样?

智能体之调研员

调研员智能体,可以根据用户的调研问题,从搜索引擎上搜索资料并总结,然后生成调研报告。这里使用 MetaGPT 框架中的调研员示例来展示一个智能体的实际作用及其构成。

运行一下试试
  `~ python3 -m metagpt.roles.researcher "特斯拉FSD vs 华为ADS"`

  • 智能体执行调研

图2. 从搜索引擎进行搜索并获取Url地址列表

(图左为冯·诺依曼;右为奥本海默;背后是世界上第一台冯·诺依曼架构的“现代”计算机)

图3. 浏览网页并总结网页内容

图4.生成调研报告

  • 输出调研报告metaGPT 生成并保存了调研报告

文件:特斯拉FSD vs 华为ADS.md

图5

拆解调研员

调研员智能体构成

回到前文所说的,如果仅有 LLM 这个大脑,是无法完成整个调研流程的。在调研员智能体中,为 LLM 大脑配备了规划、工具、记忆的能力,使得他能独立完成调研任务,下面列出其基本构成,构成分三部分:角色、工具、记忆。在角色中,会注册各种工具,定义思考规划的方式,以及本身具备的短期记忆能力。

图解调研员智能体

图6

智能体的关键构成

img

智能体 如上图所示,在基于 LLM 的智能体中,LLM 的充当着智能体的“大脑”的角色,同时还有 3 个关键部分:规划(Planning)、记忆(Memory)、工具使用(Tool use)

规划(Planing)

规划,可以为理解观察和思考。如果用人类来类比,当我们接到一个任务,我们的思维模式可能会像下面这样:

  • 我们首先会思考怎么完成这个任务。

  • 然后我们会审视手头上所拥有的工具,以及如何使用这些工具高效地达成目的。

  • 我们会把任务拆分成子任务(就像我们会使用 TAPD 做任务拆分)。

  • 在执行任务的时候,我们会对执行过程进行反思和完善,吸取教训以完善未来的步骤

  • 执行过程中思考任务何时可以终止

这是人类的规划能力,我们希望智能体也拥有这样的思维模式,因此可以通过 LLM 提示工程,为智能体赋予这样的思维模式。在智能体中,最重要的是让 LLM 具备这以下两个能力:

子任务分解

通过 LLM 使得智能体可以把大型任务分解为更小的、更可控的子任务,从而能够有效完成复杂的任务。

思维链(Chain of Thoughts, CoT)

思维链已经是一种比较标准的提示技术,能显著提升 LLM 完成复杂任务的效果。当我们对 LLM 这样要求「think step by step」,会发现 LLM 会把问题分解成多个步骤,一步一步思考和解决,能使得输出的结果更加准确。这是一种线性的思维方式。

思维链的 prompt 可以像是如下这样(这里只是一个极简的 prompt,实际会按需进行 prompt 调优):

template="Answer the question: Q: {question}? Let's think step by step:"   

思维树(Tree-of-thought, ToT)

对 CoT 的进一步扩展,在思维链的每一步,推理出多个分支,拓扑展开成一棵思维树。使用启发式方法评估每个推理分支对问题解决的贡献。选择搜索算法,使用广度优先搜索(BFS)或深度优先搜索(DFS)等算法来探索思维树,并进行前瞻和回溯。

图7

反思和完善

智能体在执行任务过程中,通过 LLM 对完成的子任务进行反思,从错误中吸取教训,并完善未来的步骤,提高任务完成的质量。同时反思任务是否已经完成,并终止任务。

ReAct

(刚接触到这个单词时,脑子里冒出来的是 「React 是由 Facebook 开源的一个进行创建用户界面的一款 JavaScript 库…」,打住,我们好像走错片场了,此 React 非彼 ReAct •﹏• )

ReAct(Yao et al. 2023) ,《ReAct: Synergizing Reasoning and Acting in Language Models》 这篇论文提出一种用于增强大型语言模型的方法,它通过结合推理(Reasoning)和行动(Acting)来增强推理和决策的效果。

  • 推理(Reasoning): LLM 基于「已有的知识」或「行动(Acting)后获取的知识」,推导出结论的过程。

  • 行动(Acting): LLM 根据实际情况,使用工具获取知识,或完成子任务得到阶段性的信息。

为什么结合推理和行动,就会有效增强 LLM 完成任务的能力?这个问题其实很好回答,我们用上面的「调研员智能体」举例,我提出了问题:「特斯拉 FSD 对比华为 ADS」,下面列出几种不同规划模式的推演:

  • 仅推理(Reasoning Only):LLM 仅仅基于已有的知识进行推理,生成答案回答这个问题。很显然,如果 LLM 本身不具备这些知识,可能会出现幻觉,胡乱回答一通。

  • 仅行动(Acting Only):大模型不加以推理,仅使用工具(比如搜索引擎)搜索这个问题,得出来的将会是海量的资料,不能直接回到这个问题。

  • 推理+行动(Reasoning and Acting):LLM 首先会基于已有的知识,并审视拥有的工具。当发现已有的知识不足以回答这个问题,则会调用工具,比如:搜索工具、生成报告等,然后得到新的信息,基于新的信息重复进行推理和行动,直到完成这个任务。其推理和行动的步骤会是如下这样:

推理1:当前知识不足以回答这个问题,要回答该问题,需要知道什么是「特斯拉FSD 」和「华为ADS」   行动1:使用搜索工具搜索「特斯拉FSD 」和「华为ADS」的资料   观察1:总结行动1的内容      推理2:基于行动1和观察1的信息,得知这是关于两个自动驾驶提供商的方案对比,基于已有的信息,现在需要生成报告   行动2:使用生成报告的工具,生成调研报告   观察2:任务完成   

图8

通过巧妙的 promt 提示设计,使得 LLM 重复地执行推理和行动,最终完成任务。ReAct 的 prompt 模版的大致思路为:

Thought(思考): ...   Action(行动): ...   Observation(观察): ...      Thought(思考): ...   Action(行动): ...   Observation(观察): ...      ...(Repeated many times(重复多次))   

记忆(Memory)

记忆是什么?当我们在思考这个问题,其实人类的大脑已经在使用记忆。记忆是大脑存储、保留和回忆信息的能力。记忆可以分为不同的类型:

  1. 短期记忆(或工作记忆):这是一种持续时间较短的记忆,能够暂时存储和处理有限数量的信息。例如,记住一个电话号码直到拨打完毕。

  2. 长期记忆:这是一种持续时间较长的记忆,可以存储大量信息,从几分钟到一生。长期记忆可以进一步分为显性记忆和隐性记忆。显性记忆,可以有意识地回忆和表达的信息,显性记忆又可以分为情景记忆(个人经历的具体事件)和语义记忆(一般知识和概念)。隐性记忆,这种记忆通常是无意识的,涉及技能和习惯,如骑自行车或打字。

仿照人类的记忆机制,智能体实现了两种记忆机制:

  • 短期记忆:在当前任务执行过程中所产生的信息,比如某个工具或某个子任务执行的结果,会写入短期记忆中。记忆在当前任务过程中产生和暂存,在任务完结后被清空。

  • 长期记忆:长期记忆是长时间保留的信息。一般是指外部知识库,通常用向量数据库来存储和检索。

工具使用(Tool use)

LLM 是数字世界中的程序,想要与现实世界互动、获取未知的知识,或是计算某个复杂的公式等,都离不开不工具。所以我们需要为智能体配备各种工具以及赋予它使用工具的能力。

工具是什么?它可以是锤子、螺丝刀,也可以是函数(function)、软件开发工具包(sdk)。工具是人类智慧的具象化,扩展我们的能力,提升工作效率。在智能体中,工具就是函数(Function),工具使用就是调用函数(Call Function)。

在 LLM 中实现函数调用,使用到 LLM 的这个能力:

Function Calling

Function Calling 是一种实现大型语言模型连接外部工具的机制。通过 API 调用 LLM 时,调用方可以描述函数,包括函数的功能描述、请求参数说明、响应参数说明,让 LLM 根据用户的输入,合适地选择调用哪个函数,同时理解用户的自然语言,并转换为调用函数的请求参数(通过 JSON 格式返回)。调用方使用 LLM 返回的函数名称和参数,调用函数并得到响应。最后,如果需求,把函数的响应传给 LLM,让 LLM 组织成自然语言回复用户。

function calling 具体工作流程如下图所示:

图9

不同 LLM 的 API 接口协议会有所不同,下文将以OpenAI 的 API 协议为例,说明如何实现 Function Calling

函数描述

我们可以按照智能体的需要来实现函数,比如前文的「调研员」智能体,为其实现了这些函数:WebBrowseAndSummarize:浏览网页并总结网页内容;ConductResearch:生成调研报告等。如果是一个智能家居的智能体,可能会需要这些函数:开关灯、开光空调、获取环境信息等。函数的实现在这里不展开赘述,一个函数可以自行编码实现,也可以通过调用外部 API 实现。

假设你的函数已经被实现,我们需要向 LLM 描述这个函数,函数描述的必备要素:

  • 函数名

  • 函数的功能描述

  • 函数的请求参数说明

  • 函数的响应参数说明(可选)

「查询最近天气」的函数描述:

tools = [   {           "type": "function",           "function": {               "name": "get_n_day_weather_forecast",               "description": "获取最近n天的天气预报",               "parameters": {                   "type": "object",                   "properties": {                       "location": {                           "type": "string",                           "description": "城市或镇区 如:深圳市南山区",                       },                       "format": {                           "type": "string",                           "enum": ["celsius", "fahrenheit"],                           "description": "要使用的温度单位,摄氏度 or 华氏度",                       },                       "num_days": {                           "type": "integer",                           "description": "预测天数",                       }                   },                   "required": ["location", "format", "num_days"]               },           }       }   ]   

调用 LLM 获得函数的请求参数

Function Calling 是通过请求 LLM 的 chat API 实现的,在支持 Function Calling 模型的 chat API 参数中,会有一个 functions 参数 (或 tools,不同 LLM 的参数会有所不同) ,通过传入这个参数,大模型则会知道拥有哪些参数可供使用。并且会根据用户的输入,推理出应该调用哪些函数,并将自然语言转成函数的请求参数,返回给请求方。下面以 OpenAI 的 SDK 举例:

from openai import OpenAI      def chat_completion_request(messages, tools=None, tool_choice=None, model="gpt-3.5-turbo"):       try:           response = client.chat.completions.create(               model=model,               messages=messages,               tools=tools,               tool_choice=tool_choice,           )           return response       except Exception as e:           print("Unable to generate ChatCompletion response")           print(f"Exception: {e}")           return e         if __name__ == "__main__":       messages = []       messages.append({"role": "system", "content": "不要假设将哪些值输入到函数中。如果用户请求不明确,请要求澄清"})       messages.append({"role": "user", "content": "未来5天深圳南山区的天气怎么样"})       chat_response = chat_completion_request(           messages, tools=tools       )       tool_calls = chat_response.choices[0].message.tool_calls    print("===回复===")    print(tool_calls)   

LLM 将会返回get_n_day_weather_forecast函数的调用参数:

===回复===   [ChatCompletionMessageToolCall(id='call_7qGdyUEWp34ihubinIUCTXyH', function=Function(arguments='{"location":"深圳市南山区","format":"celsius","num_days":5}', name='get_n_day_weather_forecast'), type='function')]      // 格式化看看:chat_response.choices[0].message.tool_calls:   [     {       "id": "call_7qGdyUEWp34ihubinIUCTXyH",       "function": {         "arguments": {           "location": "深圳市南山区",           "format": "celsius",           "num_days": 5         },         "name": "get_n_day_weather_forecast"       },       "type": "function"     }   ]   

调用函数

调用方获得 LLM 返回的函数调用信息(函数名称和调用参数)后,自行调用函数,并得到函数执行的响应。如果有需要,还可以把函数执行的响应追加到 chat API 的对话中传给 LLM,让 LLM 组织成自然语言回复用户。

# 执行函数   for tool_call in tool_calls:       function = tool_call.function.name       arguments_list = json.loads(tool_call.function.arguments)       function_to_call = globals().get(function)       result = function_to_call(**arguments_list)       print("===" + function + "===")       print(result)          # 把函数调用结果加入到对话历史中       messages.append(        {               "tool_call_id": tool_call.id,  # 用于标识函数调用的 ID               "role": "user",               "name": function,               "content": "函数执行结果为:" + str(result)           }       )   # 函数执行结果传给LLM,组织成自然语言回复用户   chat_response = chat_completion_request(    messages, tools=tools)   print("===回复===")   print(chat_response.choices[0].message.content)   

执行结果:

===get_n_day_weather_forecast===   [{'date': '2023-04-01', 'location': '深圳市南山区', 'temperature': '20°C', 'description': '晴朗'}, {'date': '2023-04-02', 'location': '深圳市南山区', 'temperature': '21°C', 'description': '多云'}, {'date': '2023-04-03', 'location': '深圳市南山区', 'temperature': '22°C', 'description': '晴朗'}, {'date': '2023-04-04', 'location': '深圳市南山区', 'temperature': '23°C', 'description': '多云'}, {'date': '2023-04-05', 'location': '深圳市南山区', 'temperature': '24°C', 'description': '晴朗'}]   ===回复===   未来5天深圳南山区的天气情况如下:   - 4月1日:晴朗,温度20°C   - 4月2日:多云,温度21°C   - 4月3日:晴朗,温度22°C   - 4月4日:多云,温度23°C   - 4月5日:晴朗,温度24°C      请注意天气预报仅供参考,实际情况可能会有所变化。   

智能体的开发框架

现在(2024 年 5 月)如果你想要开发一个 AI 智能体,已经比大模型爆发的初期方便太多了,随着 AI 应用需求的持续火热,智能体框架层出不穷。智能体开发框架,会抽象和封装那些被高频使用的模块,如记忆能力、规划能力、RAG 能力、大模型调用等。使用智能体框架,可让帮助你快速搭建智能体。

根据 awesome-ai-agents的整理,无论是开源的还是闭源的,智能体应用框架在各个领域,比如自定义智能体、编码、研究、数据分析、多智能体等等,都有比较有代表性的产品可供选择。

图10

上文曾使用到MetaGPT,MetaGPT 是一个多智能体框架,多智能体框架可以帮你开发一个由多个不同职责的智能体组合起来的多智能体。举个例子,如果我们想开发一个多智能体软件团队,该软件团队可以根据用户需求交付代码,其内部会通过测试代码、评审代码来提升代码质量。该多智能体将包含:开发(coder)、测试(tester)、评审人(reviewer)这三个不同职责的智能体,他们各司其职,互相协作完成任务。下图的左侧是多智能体的协作流程,右侧是单智能体的工作流程。

图11

展望

随着大模型的百花齐放,LLM 会支持更长的上下文、更大的参数规模,其推理能力也会愈发强大。因此,基于大模型搭建的智能体(AI Agent)的能力边界也在不断突破。通过智能体技术,我们可以创建各种各样的 AI 应用,比如:Copilot、DB-GPT 等等,一些 AI 应用已经成为工作生活中不可缺少的存在。相信 AI 应用的将会快速全面地重构我们曾经习以为常的软件形态和交互方式,以及提升人类的生产效率。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

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

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

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

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

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

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GD32F4xx USB MSC Host调试记录

本文记录GD32F4xx MCU的RTX系统工程内移植USB MSC Host的例程代码,适配自制的电路板,实现向USB内写入数据。有关USB的一些基础信息,可以参考本专栏的另一篇文章《GD32 MCU USB开发学习记录》。 目录 1. USB MSC host 例程1.1、硬件接口2.2、USB msc host 例程2.2.1 工程目录…

dz论坛可可积分商城插件价值399元

界面简洁美观大方,适合各类站点。支持多用户商城,可让商家入驻站点发布商品,亦可站长自己发布商品。支持向商家抽佣抽成功能,可设置商家在成交商品后按一定比例扣除抽成,达到网站盈利目的采用队列技术处理,…

【ubuntu22.04】 搭建自己的镜像站 【harbor】【docker compose】【超详细】

文章目录 什么是 harbor特点主要功能 部署配置 dns初始化下载 dns编辑 named.conf.local编辑 named.conf.options配置正向解析配置反向解析解析扩展 部署 harbor修改配置执行 prepare执行 install.sh查看镜像访问 自制镜像创建镜像仓库上传镜像开始推送拉取镜像 什么是 harbor …

宏队列和微队列

1、javascript是一个单线程语言。 javascript 语言的目的(待补充) 2、主线程执行完成之后,再执行微队列,微队列执行完成后再执行宏队列 3、promise的构造函数传入的回调函数是同步执行 4、promise的then函数会直接加入微队列&…

Java 中的 LinkedHashMap

让我们从一个简单的 Java 代码片段开始,演示如何在 Java 中创建和使用 LinkedHashMap。 import java.util.LinkedHashMap; public class LinkedHashMapCreation { public static void main(String[] args) { // Create a LinkedHashMap of S…

【AI知识点】批归一化(Batch Normalization)

批归一化(Batch Normalization,BN) 是一种用于加速神经网络训练并提高模型稳定性的方法,最早由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出。批归一化通过在每一层对神经网络中的激活值进行标准化,使得每一层的…

半路出家:如何转行成为软件开发者——之找到一份工作

一、前言 一个半路出家的软件开发者,尽管只有短短几年软件开发的相关经验,却可以凭借他在其他领域积累的丰厚经验,最终一举超过单纯拥有更多软件开发经验的同行【有时拥有不同的专业背景(甚至是与软件完全不搭界的行业&#xff09…

SpringBoot赋能旅游管理:系统设计与实现

第三章 系统分析 3.1可行性分析 对所有的系统来说,都有可能会受到时间和空间上的制约。所以,我们在设计每一个项目的时候,必须对该系统实行可行性分析,这样不但能够降低项目的危害,还能改降低人力、物力和财力的损耗。…

弱网(不限于 Wi-Fi)环境的传输优化分析

参见 Wi-Fi弱网传输优化不成功有感 早在几年前还做传输优化时,我就非常不赞同在弱网环境激进传输的优化策略,我一直觉得这是在劣化传输,这观点一直影响着我,我也屡次因为这个与经理发生冲突。这观点如下表述: 弱网环…

【SpringSecurity】基本流程

【中文文档: Spring Security 中文文档 :: Spring Security Reference】 【英文文档&#xff1a;Spring Security】 以下内容只是记录springsecurity最简单的一种验证流程&#xff0c;所有配置基本都是默认的配置。 引入依赖 <dependency><groupId>org.springf…

GPU Puzzles讲解(一)

GPU-Puzzles项目可以让你学习到GPU编程和cuda核心并行编程的概念&#xff0c;通过一个个小问题让你理解cuda的编程和调用&#xff0c;创建共享显存空间&#xff0c;实现卷积和矩阵乘法等&#xff0c;通过每个小问题之后还会奖励一个狗狗小视频&#x1f601; 下面是项目的仓库&…

大模型面试宝典:问题全集及权威解答

导读 自ChatGPT开启大模型时代以来&#xff0c;大模型正迎来飞速发展&#xff0c;现在从事大模型开发相关工作可谓是处在时代的风口。那么大模型面试需要哪些技能和技巧呢&#xff0c;本文详细整理了全套的面试问题及答案&#xff0c;希望对大家有所帮助&#xff01; 目录 [x…

脉冲神经网络(SNN)论文阅读(六)-----ECCV-2024 脉冲驱动的SNN目标检测框架:SpikeYOLO

原文链接&#xff1a;CSDN-脉冲神经网络&#xff08;SNN&#xff09;论文阅读&#xff08;六&#xff09;-----ECCV-2024 脉冲驱动的SNN目标检测框架&#xff1a;SpikeYOLO Integer-Valued Training and Spike-Driven Inference Spiking Neural Network for High-performance …

MySQL数据库专栏(二)SQL语句基础操作

目录 数据库操作 创建数据库 查看数据库 选择数据库 删除数据库 数据表操作 数据表数据类型 数据表列约束 数据表索引 创建表 查看表 查看表结构 删除表 数据表的增删改操作 …

自由学习记录

约束的泛型通配符? Java中的泛型 xiaomi和byd都继承了car&#xff0c;但是只是这两个类是car的子类而已&#xff0c;而arraylist<xiaomi> ,arraylist<byd> 两个没有半毛钱继承关系 所以传入的参数整体&#xff0c;是car的list变形&#xff0c;里面的确都能存car…

YOLO11改进 | 卷积模块 | 添加选择性内核SKConv【附完整代码一键运行】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 在标准卷积神经网络 (CNN) 中&#xff0…

单调栈day54|42. 接雨水(高频面试题)、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比

单调栈day54|42. 接雨水&#xff08;高频面试题&#xff09;、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比 42. 接雨水84. 柱状图中最大的矩形两道题思维导图的汇总与对比 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱…

2025,企业管理平台的理想模型V0.1

1.前言 近期出于综合考虑&#xff0c;准备休息一段时间......... 在这段时间里&#xff0c;准备重新梳理下企业管理平台应该具备的能力.并准备使用开源项目来一次组合式组装&#xff0c;最终形成一个初步可行的运行平台。 2.企业管理平台的主要组成 企业管理平台不是独立存…

《python语言程序设计》2018版第8章20题使用Rational类编写一个程序(上)-修改一下8-4Rational类我认为的错误

首先抄一下Rational类,可以安静的抄一遍 一、抄写中的问号 各种报错的截图1各种报错的截图2各种报错的截图3各种报错的截图4添加一个str我将n和d修改为self 书中214-215页间程序清单8-4的代码如下: class Rational:def __init__(self, numerator1, denominator0):divisor gcd(…

产品经理内容分享(二):AI产品经理的入门路线图

引言 想象这样一个场景&#xff1a;早晨的阳光穿透窗帘&#xff0c;投射在新一代智能机器人上&#xff0c;它正静静等待着你的第一个命令开始全新的一天。这样的场景听起来像是科幻小说里的情节&#xff0c;但实际上&#xff0c;这正是AI产品经理们工作的成果。如果你对这样的…