当前位置: 首页 > news >正文

AI速读:解锁LLM下Game Agent的奇妙世界

在 AI 浪潮中,大语言模型(LLMs)正重塑游戏智能体格局。想知道基于 LLMs 的游戏智能体如何运作,在各类游戏中有何惊艳表现,未来又将走向何方?

大型语言模型(LLMs)的兴起为游戏智能体的发展注入了强大动力,引发学界和业界广泛关注。这篇论文全面且深入地回顾了基于 LLMs 的游戏智能体相关研究,内容涵盖智能体框架、核心组件、应用实例以及未来发展趋势等多个关键层面。

论文标题:A Survey on Large Language Model Based Game Agents
来源:arXiv:2404.02039 [cs.AI] + 链接:http://arxiv.org/abs/2404.02039

基于 LLMs 的游戏智能体框架

游戏设定与策略表示

在游戏环境里,智能体与环境的交互常用马尔可夫决策过程(MDP)来描述。与传统智能体不同,基于 LLMs 的智能体依赖 LLMs 处理自然语言。它将游戏策略以文本形式呈现,依据观察到的游戏状态生成推理内容,进而决定采取何种行动,这种方式让智能体对复杂环境的理解和应对更具灵活性。

核心组件

  • 记忆模块:它如同智能体的 “大脑仓库”,存储着过去积累的丰富经验、各种想法以及掌握的技能。在游戏进程中,记忆模块帮助智能体快速回忆起有用信息,使智能体在不同情节中保持连贯的行动逻辑,不断优化自身游戏策略,以更好地应对各类复杂情况。
  • 推理模块:此模块堪称基于 LLMs 的智能体区别于传统 AI 的核心所在。通过语言进行策略规划,智能体能够在复杂多变的游戏潜在空间中展开探索,有效解决更为复杂的任务。不过,其初始推理能力源自预训练数据,所以在实际应用中,通过与环境积极互动来持续提升推理能力显得尤为重要。
  • 输入 / 输出模块:输入模块的作用是把游戏世界的各种信息转化为 LLMs 能够理解的自然语言形式,让智能体得以利用预训练所积累的知识,而不是像传统强化学习(RL)智能体那样一切从头开始学习。输出模块则负责将 LLMs 生成的行动决策转化为游戏环境可以执行的具体指令,实现智能体在游戏中的实际操作。

示例分析

  • 井字棋(Tic - Tac - Toe):输入模块把井字棋 3×3 棋盘上的符号状态转化为文本描述。记忆模块存储着过往游戏中的走法(情景记忆)以及通用的游戏策略(语义知识),比如 “形成双威胁(fork)可获胜” 这类策略。推理过程通过树状搜索对不同落子位置的后续结果进行评估,最终输出行动决策,再由输出模块转化为实际的落子操作,更新棋盘状态。
  • 宝可梦对战(Pokémon Battles):输入模块将对战中的各种状态信息,如宝可梦的属性、技能、生命值等,转化为文本形式。记忆模块不仅记录近期对战的具体情况,还从中提炼出属性相克等语义知识。推理时,智能体结合当前对战状态和记忆中的知识,选择最佳行动,比如根据对方宝可梦属性和自身宝可梦状态来决定是否切换宝可梦以及使用何种技能,最后输出模块将决策转化为游戏中的实际行动指令。

核心组件详细剖析

记忆系统

  • Working Memory:受限于预训练条件,LLMs 的上下文长度存在一定限制。为了有效处理长序列信息,可采用位置插值 / 外推(例如 PI、LongRoPE 等方法)以及并行上下文处理(如 PCW、PoSE 等技术)来扩展上下文窗口,增加智能体能够处理的信息长度。同时,通过软令牌压缩(像 AutoCompressor、ICAE 等)和分层总结(例如 Nugget、WDMM 等)等手段来解决信息过载问题,让智能体在有限的资源下高效处理信息。
  • Long-term Memory:长期记忆包含情景记忆(记录特定的游戏事件)、语义记忆(存储游戏相关的事实性知识)和程序记忆(掌握游戏中的任务执行技能)。其组织形式丰富多样,有文本块、键值对、树结构、知识图等,甚至还能将信息存储在模型参数之中。不同的组织形式对应着不同的检索方式,并且可以通过言语强化(即从失败和成功的经验对比中学习)来显著提升智能体的性能。
推理

  • Deliberate Prompting:包含思维链(CoT)、结构推理(如 Self - Consistency、GPTLens 等)和心理理论(ToM)思维等多种方法。思维链(CoT)能够促使 LLMs 在生成最终答案之前进行中间步骤的推理,显著提升智能体处理复杂任务的能力,不过可能会出现行动不一致的情况。结构推理则通过改进推理路径的选择,有效解决了这一问题。心理理论(ToM)思维帮助智能体更好地理解其他游戏参与者的意图,在各类游戏场景中都发挥着重要作用。
  • 监督微调:通过在收集到的游戏轨迹数据上对 LLMs 进行微调,使智能体能够学习到专家玩家的推理方式和行动策略。其中,行为克隆是直接模仿专家的游戏轨迹,拒绝采样微调则是挑选符合特定标准的样本进行训练,以提高智能体的学习效果。
  • 强化学习:基于策略的方法(例如 PPO)主要是训练 LLMs 作为智能体的决策策略,同时学习价值模型来评估行动的优势程度。价值 - based 方法侧重于学习估计状态 - 行动对的预期回报。过程奖励建模(PRM)则为智能体的推理步骤提供实时反馈,有效提升推理效率,让智能体在不断试错中优化策略。
  • 直接偏好优化:以 DPO 为例,它通过对比学习的方式,最大化优质生成结果与较差生成结果之间的差异,这种方法简化了训练过程,并且降低了内存成本,提高了训练的效率和效果。
输入 / 输出

  • 输入:根据游戏状态的模态不同,输入方式主要有文本观察(直接利用游戏中已有的文本描述信息)、符号状态描述(将结构化的游戏状态信息转化为文本提示)、视觉到文本转换(借助外部视觉模型将游戏画面等视觉信息处理为文本)和多模态 LLM 感知(直接运用多模态 LLMs 同时处理图像和文本等多种信息)。
  • 输出:LLMs 生成的高级文本行动需要转化为具体的游戏行动,实现方式包括直接使用高级行动(在合适的游戏场景中直接应用 LLMs 生成的高级指令)、通过低级控制器转换(将高级行动进一步细化为低级的控制序列)和程序性行动(输出结构化的代码来执行具体操作),但每种方式在实际应用中都面临着各自独特的挑战。

在各类游戏中的应用

  1. 冒险游戏:冒险游戏分为文本冒险游戏(像 TextWorld、Jericho 等)和视频冒险游戏(例如 Red Dead Redemption 2)。在文本冒险游戏中,游戏进程高度依赖常识知识,LLMs 可以作为强大的语言先验,有效引导智能体采取合理行动。在视频冒险游戏方面,如 Cradle 项目利用 GPT - 4V 来感知游戏屏幕画面,并据此控制游戏角色的行动。
  2. 交流游戏:包括狼人杀(Werewolf)、阿瓦隆(Avalon)和外交(Diplomacy)等游戏。这类游戏的难点在于需要智能体准确推断其他玩家的意图,同时巧妙隐藏自身意图。LLMs 通过推理和策略学习参与到这类游戏中,然而,像 GPT - 3.5 在某些复杂情况下,仍然存在难以制定有效策略以及准确执行策略的问题。
  3. 竞争游戏:例如星际争霸 II(StarCraft II)、宝可梦对战、国际象棋(Chess)和扑克(Poker)等。这些游戏是检验智能体推理和规划能力的重要基准。在这些游戏中,LLMs 能够实现与人类玩家相当的游戏表现,比如 PokéLLMon 在宝可梦对战中能够充分利用游戏反馈信息,不断优化自身对战策略。
  4. 合作游戏:涵盖合作烹饪、实体家庭合作和合作建造与探索等多种任务类型,并且分为去中心化合作(如在 Overcooked 游戏中,智能体需要推断伙伴的意图以实现有效协作)和中心化合作(例如在 Minecraft 游戏中,通过中央调度器来分配任务)两种模式。LLMs 的应用有助于显著提升团队协作的效率,促进智能体之间的协同配合。
  5. 模拟游戏:可细分为人类和社会模拟(比如 Generative Agents 模拟人类的日常生活场景)、文明模拟(如 CivRealm 模拟人类历史的发展进程)和实体模拟(例如在虚拟环境中执行各种实际任务)。在这些模拟游戏中,LLMs 主要用于模拟各种场景和进行决策,帮助玩家更好地体验和管理复杂的虚拟世界。
  6. 建造与探索游戏:以 Minecraft 和 Crafter 为典型代表,智能体在这类游戏中面临着收集材料、规划建造以及探索游戏世界等多重任务。在建造任务中,LLMs 可以作为规划器,将复杂的建造目标分解为具体的子目标和步骤。在探索任务中,LLMs 又可以充当目标生成器,例如 Voyager 在 Minecraft 中能够根据自身当前状态自动生成合理的探索目标。

未来研究方向展望

  1. 游戏基准:高质量的游戏基准对于提升基于 LLMs 的智能体能力起着至关重要的作用。不同类型的游戏能够有针对性地培养智能体的特定技能,例如包含丰富语义知识的游戏有助于智能体进行知识发现;具有复杂决策空间的游戏能够有效锻炼智能体的推理能力;动作类游戏可以用于评估智能体的视觉感知和低级控制能力;竞争与合作类游戏能够检验智能体的心理理论推理水平;模拟游戏则有利于促进智能体涌现行为的研究。
  2. 环境中的自我进化:智能体的自我进化可以通过基于模型的方法(比如利用强化学习技术来改进智能体的推理和决策过程,精心设计合适的奖励函数,并确保训练过程的稳定性)和基于记忆的方法(例如从过往经验中提取和存储有用的语义知识,进行言语强化学习,构建高效的记忆模块,以支持智能体的持续进化)来实现。
  3. 智能体社会模拟:未来在智能体社会模拟方面,可以从三个主要方向展开拓展研究。一是构建更为准确的认知框架,以更精准地捕捉人类认知的复杂性;二是创建更加逼真的建模环境,使其能够更好地反映现实世界的复杂性;三是开展大规模模拟,通过解决并行计算等技术挑战,实现对大量智能体的有效处理和模拟。

总结

本文系统全面地回顾了基于 LLMs 的游戏智能体相关研究,从智能体框架搭建到核心组件剖析,从多种游戏应用实例到未来研究方向展望,为该领域的研究人员提供了极为全面且有价值的参考,有力地推动了该领域的进一步发展。
本文由 AI 辅助完成。

相关文章:

AI速读:解锁LLM下Game Agent的奇妙世界

在 AI 浪潮中,大语言模型(LLMs)正重塑游戏智能体格局。想知道基于 LLMs 的游戏智能体如何运作,在各类游戏中有何惊艳表现,未来又将走向何方? 大型语言模型(LLMs)的兴起为游戏智能体的…...

个人所得税

文章目录 一、名词解释二、个人所得税计算方法 (举例)1.累计预扣预缴应纳税所得额、本期应预扣预缴税额2.个人所得税预扣率表一3.个人所得税计算举例 三、专项附加扣除政策介绍四、年度汇算清缴政策介绍五、常见问答 一、名词解释 累计预扣法是指扣缴义务人在一个纳税年度内预…...

DEA-Net:基于细节增强卷积和内容引导注意力的单图像去雾

IEEE TIP 2024 | DEA-Net:基于细节增强卷积和内容引导注意力的单图像去雾 DEA-Net: Single image dehazing based on detail-enhanced convolution and content-guided attention paper name: DEA-Net: Single image dehazing based on detail-enhanced convolutio…...

StringEscapeUtils:给你的字符串穿上“防弹衣“——转义工具类深度解析

各位代码勇士们好!今天我们要聊的是Apache Commons Lang3中的StringEscapeUtils工具类。如果说StringUtils是瑞士军刀,那StringEscapeUtils就是你的字符串保镖,专门负责在各种危险场合保护你的字符串安全! 一、为什么需要字符串转…...

Sharding-JDBC 系列专题 - 第二篇:广播表(Broadcast Tables)

Sharding-JDBC 系列专题 - 第二篇:广播表(Broadcast Tables) 本系列专题旨在帮助开发者深入掌握 Sharding-JDBC,一个轻量级的分布式数据库中间件。本篇作为系列的第二篇文章,将详细讲解 广播表(Broadcast Tables) 的概念、配置、使用场景、工作原理以及实战案例。广播表…...

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRect)

文章目录 一、构造与初始化方法二、坐标与尺寸获取三、坐标与尺寸设置四、几何运算方法五、移动与调整方法六、状态判断方法七、类型转换方法八、操作符重载九、静态方法十、特殊方法附录方法速查表注意的问题交集和并集图解 📘 PySide6.QtCore.QRect 使用整数精度定…...

常见的页面报错

目录 1、 405报错,方法不允许 2、 404报错,未找到资源 404报错的两种可能: 1、前端找不到后端的资源: 2、后端找不到返回的资源: 3、 400报错,错误的请求 后端返回的数据类型与前端不匹配 前端传递的参…...

人机共跑,马拉松人型机器人同跑

马拉松比赛对人形机器人来说,是一场对硬件极限的测试,涉及机械、传感器、能源管理等多个方面。用户问的是硬件方面的考察和改进,这意味着我的回答需要聚焦于硬件性能,而不是算法或软件的优化。 对人形机器人硬件的考研 机械结构与…...

ES6 第一讲 变量定义 堆与栈 字符串的扩展和数值型的扩展

文章目录 1.ES6变量定义2.ES6堆和栈3.字符串的扩展3.1 模板字符串3.2 判断是否以指定的字符串开头或结尾3.3 字符串重复输出3.4 填充方法3.5 去除前后字符串空格3.6 返回参数指定位置的字符 4. 数值型的扩展4.1 二进制0B 八进制0O4.2 判断是否是一个无穷大的数字 (判…...

Linux 动、静态库的实现

前言:当我们写了一段代码实现了一个方法,如果我们不想把方法的实现过程暴露给别人看,可以把代码打包成一个库,其中形成后缀为.a的是静态库,后缀为.so的为动态库;当别人想使用你的方法时,把打包好…...

linux多线(进)程编程——(9)信号量(二)

前言 上一篇文章我们讲解了信号量的基础用法,这一篇文章我们承接上面的内容,给大家进一步提升对信号量的理解。如果没有看过上一篇文章,请大家移步linux多线(进)程编程——(9)信号量(一) 案例…...

编码器---正交编码器

一、正交编码器定义与核心作用 正交编码器(Orthogonal Encoder),又称增量式编码器,是一种通过输出两路相位差90的脉冲信号(A相、B相)来测量旋转角度、速度和方向的传感器。其核心优势是通过A/B相的脉冲顺序…...

【HDFS入门】HDFS故障排查与案例分析:从日志分析到实战解决

目录 1 HDFS故障排查概述 2 三大常见故障类型解析 2.1 块丢失问题处理流程 2.2 副本不足问题架构 2.3 DataNode无法启动诊断 3 日志分析实战技巧 3.1 NameNode日志分析框架 3.2 DataNode日志分析流程 4.1 实战案例分析 4.2 集群性能突然下降 4.2 数据读写异常处理 …...

爆肝整理!Stable Diffusion的完全使用手册(二)

继续介绍Stable Diffusion的文生图界面功能。 往期文章详见: 爆肝整理!Stable Diffusion的完全使用手册(一) 下面接着对SD的文生图界面的进行详细的介绍。本期介绍文生图界面的截图2,主要包含生成模块下的采用方法、调度类型、迭…...

经典算法 表达式求值

表达式求值 问题描述 给你一个只包含、-、*、/、0、1、2、3、4、5、6、7、8、9的字符串求出该字符串所代表的表达式的值。这里的除法,为了简便,为整数除法,所以答案一定也是一个整数。保证0不作被除数。 示例输入 (16*(141))((13)*(74))*…...

【Java】接口interface学习

参考资料::黑马程序员入门到飞起上 1 概述 在学习完抽象类后,我们了解到抽象类中既可以包含抽象方法,也能有普通方法、构造方法以及成员变量等。而接口则是一种更为彻底的抽象形式。在JDK7及之前的版本中,接口内全部为抽象方法&…...

数据结构实验7.1:二叉树的遍历

文章目录 一,实验目的二,实验描述三,基本要求四,算法分析五,实验操作六,示例代码七,运行效果一,实验目的 深入理解树与二叉树的基本概念,包括节点、度、层次、深度等,清晰区分二叉树与一般树的结构特点,为后续学习和应用打下坚实基础。熟练掌握用递归方法实现二叉树…...

seata db模式,nacos注册中心,spring boot ,spring cloud ,jdk1.8 完成的配置步骤

1. 环境准备 确保以下环境已经安装并正常运行: JDK 1.8MySQL(或其他支持的数据库)Nacos Server(用于注册中心和配置中心)Seata Server 2. 配置 Seata Server (1) 下载并解压 Seata 从 Seata 官方 GitHub 下载最新版…...

C++进阶-多态

文章目录 C进阶--多态概念多态的定义及实现多态的构成条件实现多态的两个重要条件虚函数虚函数的重写及覆盖协变析构函数的重写(面试被问及最好需要举例说明)override和final关键字重载,重写(覆盖),隐藏&am…...

Linux教程-常用命令系列三

文章目录 1. 网络安全常用命令1. su (Switch User)2. chmod (Change Mode)3. chown (Change Owner)4. ps (Process Status)5. who6. top7. free8. kill9. gedit10. find总结 2. 字符串显示命令2.1 基本语法2.2 常用选项2.3 核心功能与示例2.3.1 输出字符串2.3.2 输出变量2.3.3 …...

GIS开发笔记(9)结合osg及osgEarth实现三维球经纬网格绘制及显隐

一、实现效果 二、实现原理 按照5的间隔分别创建经纬线的节点,挂在到组合节点,组合节点挂接到根节点。可以根据需要设置间隔度数和线宽、线的颜色。 三、参考代码 //创建经纬线的节点 osg::Node *GlobeWidget::createGraticuleGeometry(float interv…...

nuxt3前端开发以及nuxt3和nuxt2项目的详细差异点

以下是 Nuxt 3 前端开发的详细指南以及与 Nuxt 2 的核心差异总结,涵盖配置、开发模式、API 变化等关键方面: 一、Nuxt 3 前端开发核心要点 1. 项目初始化 # Nuxt 3 npx nuxi init <project-name> cd <project-name> npm install npm run dev# Nuxt 2 (对比) np…...

Android学习总结之APK打包流程

一、预处理阶段&#xff08;编译前准备&#xff09; 1. AIDL 文件处理&#xff08;进程间通信基础&#xff09; 流程&#xff1a; 用于实现 Android 系统中不同进程间的通信&#xff08;IPC&#xff09;。在项目构建时&#xff0c;AIDL 编译器会将 .aidl 文件编译为 Java 接口…...

java面试篇(常见的集合底层原理)

集合 1、arraylist源码分析 三种构造方法&#xff1a; 扩容的逻辑&#xff1a; 2、ArrayList的底层实现原理是什么&#xff1f; ArrayList listnew ArrayList(10)中的list扩容几次 3、如何实现数组和List之间的转换 4、LinkedList和arraylist的区别 5、hashmap的实现原理 二叉…...

RAG框架精选2

原文链接:https://i68.ltd/notes/posts/20250406-llm-rag2/ 清华Hyper-RAG 使用超图驱动的RAG对抗LLM幻觉论文链接:https://arxiv.org/pdf/2504.08758项目仓库:https://github.com/iMoonLab/Hyper-RAG清华Hyper-RAG&#xff1a;利用超图建模高阶关系&#xff0c;让DeepSeek/Q…...

Redis进阶学习

什么是Redis&#xff1f; Redis是一个key-value结构的非关系型数据库&#xff0c;将数据存储在内存中&#xff0c;结构简单&#xff08;五种数据结构&#xff1a;string、list、set、zset、hash&#xff09;&#xff0c;数据读写速度快&#xff0c;还可以将数据持久化到硬盘上。…...

【读书笔记·VLSI电路设计方法解密】问题63:为什么可测试性设计对产品的财务成功至关重要

可测试性设计至关重要,因为我们不希望将劣质或故障部件交付给客户。向客户交付过多不良部件意味着财务灾难,更会损害企业声誉并导致商业机会流失。 若设计中未嵌入可测试性设计(DFT),区分良品与不良品的唯一方法就是由应用工程师或客户在实际应用环境中测试芯片。此时芯片…...

Federated Weakly Supervised Video Anomaly Detection with Multimodal Prompt

标题&#xff1a;联邦弱监督视频异常检测的多模态提示方法 原文链接&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/35398 源码链接&#xff1a;https://github.com/wbfwonderful/Fed-WSVAD 发表&#xff1a;AAAI-2025 摘要&#xff08;Abstract&#xff09; …...

计算机视觉与深度学习 | LSTM原理,公式,代码,应用

LSTM(长短期记忆网络)详解 一、原理 LSTM(Long Short-Term Memory)是RNN的改进版本,通过引入门控机制(输入门、遗忘门、输出门)和细胞状态(Cell State),有效解决传统RNN的梯度消失/爆炸问题,擅长捕捉长距离依赖关系。 核心思想: 细胞状态(C_t):贯穿整个时间步…...

UI界面工程,如何使用控制台

我们通常会使用print函数向控制台输出调试信息。但创建UI界面工程时&#xff0c;默认不会显示控制台。 通过如下方法切换到控制台 项目属性—链接器—系统—子系统—窗口改为控制台...

mysql——基础知识

关键字大小写不敏感 查看表结构中的 desc describe 描述 降序中的 desc descend 1. 数据库的操作 1. 创建数据库 create database 数据库名;为防止创建的数据库重复 CREATE DATABASE IF NOT EXISTS 数据库名;手动设置数据库采用的字符集 character set 字符集名;chars…...

UE虚幻4虚幻5动画蓝图调试,触发FellOutOfWorld事件和打印输出,继续DeepSeek输出

找到了一个pdf&#xff0c;本来想写个翻译的&#xff0c;但还是算了&#xff0c;大概看了下&#xff0c;这类文档很全面&#xff0c;内容很多&#xff0c;但都不是我要的&#xff0c;我想要一个动画蓝图&#xff0c;搜索Montage&#xff0c;或者Anim 只占了一行&#xff08;几百…...

52单片机LED实验

文章目录 前言点亮一个LEDLED闪烁 LED灯亮灭交替LED流水灯 前言 我所用的板子是普中的STC89C52RC&#xff0c;创建文件的过程中如果你发现keil文件找不到单片机依赖&#xff0c;那怎么办呢 下面从创建新项目讲起 首先打开keil软件&#xff0c;点击project new一个新的projec…...

【C++详解】C++入门(一)命名空间、缺省参数、函数重载

文章目录 一、命名空间命名空间的基本特性命名空间的使用 二、C输入输出用法三、缺省参数(默认参数)定义用法 四、函数重载 一、命名空间 命名空间的基本特性 #include <stdio.h> #include <stdlib.h>int rand 10;int main() {// 编译报错&#xff1a;error C23…...

AWS Linux快速指南:5分钟搭建多用户图形界面

一、概述 本指南将帮助您在AWS上快速部署一个支持多用户、带图形界面和浏览器的Linux环境。我们将使用Ubuntu Server作为基础,配合轻量级的Xfce桌面环境和VNC服务。同时,我们还将提供不同用户规模下的实例规格推荐。 二、实例规格推荐 根据您的用户规模,我们推荐以下EC2实例…...

kotlin,编码、解码

kotlin写程序确实简洁&#xff0c;就是函数式编程对我这种用惯了过程的&#xff0c;换思想有难度。package org.exampleimport java.io.File import java.io.FileNotFoundExceptionval byteToHanzi mapOf(0x00 to "凡", 0x01 to "周", 0x02 to "张&q…...

从零创建 Docker 镜像(基于 OCI 格式)

更现代的 OCI 镜像格式&#xff0c;采用了 OCI Image Format Specification&#xff0c;其中文件引用使用 blobs/sha256/<hash> 的形式&#xff0c;层和配置存储在 blobs/sha256/ 目录下&#xff0c;并且包含 LayerSources 字段。这种格式在较新的 Docker 版本和 OCI 兼容…...

JavaScript 版本号比较

问题描述&#xff1a; 实现 &#xff1a; <script>const compare function(v1,v2){const arr1 v1.split(.)const arr2 v2.split(.)for(let i 0;i<arr1.length||i<arr2.length;i){const a arr1[i]||0const b arr2[i]||0if(a>b){return 1}else if(a<b){…...

MySQL为什么默认使用RR隔离级别?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL为什么默认使用RR隔离级别?】面试题。希望对大家有帮助&#xff1b; MySQL为什么默认使用RR隔离级别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL 默认使用 RR&#xff08;Repeatable Read&#xff09;…...

第37讲|AI+农业气象建模:预测极端天气对农业的影响

目录 ✨ 导语:天气不可控,但影响可以预测 📦 一、数据准备:融合农业与气象 ⚡ 二、极端天气如何“定义”? 🔧 三、模型选择与结构设计 🔁 时间序列模型:LSTM 🎯 非时序模型:XGBoost / LightGBM 🧪 四、案例实战:用LSTM预测小麦产量下降风险(受极端天气…...

(done) 吴恩达版提示词工程 1. 引言 (Base LLM 和 Instruction Tuned LLM)

url: https://www.bilibili.com/video/BV1Z14y1Z7LJ/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 LLM 有两种&#xff1a; 1.基础 LLM&#xff0c;通过文本训练数据预测后面的内容。 这种 LLM 当你给它提问&#xff1a;What is…...

Vue如何实现样式隔离

1. 使用 CSS Modules CSS Modules 允许你在 Vue 组件中定义局部作用域的 CSS&#xff0c;这样可以避免全局样式的冲突 步骤如下&#xff1a; 在你的 Vue 组件中&#xff0c;创建一个 <style> 标签并添加 module 属性。 <template><div :class"$style.c…...

Sentinel源码—6.熔断降级和数据统计的实现二

大纲 1.DegradeSlot实现熔断降级的原理与源码 2.Sentinel数据指标统计的滑动窗口算法 2.Sentinel数据指标统计的滑动窗口算法 (1)滑动窗口介绍 (2)StatisticSlot使用滑动窗口算法进行数据统计 (1)滑动窗口介绍 一.滑动窗口原理 滑动窗口不会指定固定的时间窗口起点与终点…...

B+树删除和测试

B树删除和测试 5.1 高级接口&#xff1a;B 树作为键值存储 在本章中&#xff0c;我们将实现 B 树的高级接口&#xff0c;使其能够作为键值存储&#xff08;Key-Value Store&#xff09;使用。这些接口包括插入和删除操作&#xff0c;并处理根节点的维护。 1. 插入接口 1.1 I…...

常用算法解析:从基础排序到图论应用

一、算法基础与设计原则 算法是计算机解决问题的核心工具&#xff0c;其五大基本特性决定了程序的可靠性&#xff1a; 有穷性&#xff1a;算法必须能在有限步骤内终止确定性&#xff1a;每步操作无歧义可行性&#xff1a;可被计算机执行输入输出&#xff1a;具备数据交互能力…...

Java Web项目(一)

框架 java web项目总工分为两部分&#xff1a;客户端&#xff08;前端&#xff09;和服务端&#xff08;后端&#xff09; 客户端发起请求&#xff0c;服务端接受请求并进行处理 发起请求的方式&#xff1a;from表单、jQuery ajax from表单 造成全局的变化&#xff0c;在发…...

兴达易控DP主站网关数据映射快速配置案例

兴达易控DP主站网关数据映射快速配置案例 在工业自动化的领域&#xff0c;不同通讯协议之间的转换是常见的需求。特别是Profibus DP与Modbus-RTU这两种广泛应用于不同系统和设备的通讯协议&#xff0c;它们之间的数据转换显得尤为重要。本文将详细探讨兴达易控Profibus DP主站…...

Tailwindcss 入门 v4.1

以 react 为例&#xff0c;步骤如下&#xff1a; npm create vitelatest my-app -- --template react 选择 React 和 JavaScript 根据上述命令的输出提示&#xff0c;运行以下命令 cd my-app npm install npm run dev 一个 React App 初始化完成。 安装 Tailwindcss theme …...

通过 WebSocket 接收和播放 WSS 协议视频流

1.创建wss协议视频 1.1必备包 npm install ws ffmpeg-installer/ffmpeg fluent-ffmpeg 说明&#xff1a;安装以下三个包。 1.2代码实现 说明&#xff1a;创建WebSocket服务器&#xff0c;端口为8080 import { WebSocket, WebSocketServer } from ws; // 导入 WebSocket 和 W…...

HTML 如何改变字体颜色?深入解析与实践指南

网页上的字体颜色是网页设计中至关重要的元素之一&#xff0c;它像字体大小一样&#xff0c;对于提升用户体验起着举足轻重的作用。精心选择和运用字体颜色&#xff0c;能够增强页面的可读性、突出重点信息、营造特定的情感氛围&#xff0c;甚至直接影响用户的视觉感受和品牌认…...