智慧城市大模型来啦!港大百度推出UrbanGPT

在这里插入图片描述
论文作者解读链接:https://blog.csdn.net/qq_42715656/article/details/136681839

项目链接:https://urban-gpt.github.io/
代码链接:https://github.com/HKUDS/UrbanGPT
论文链接:https://arxiv.org/abs/2403.00813
研究实验室链接:https://sites.google.com/view/chaoh/home

1. 摘要

时空预测旨在对不断变化的动态城市场景进行预测和洞察,涵盖了时间和空间两个维度。其目的是预测城市生活各个方面的未来时空模式、趋势和事件,包括交通、人口流动和犯罪率。尽管大量相关工作致力于开发神经网络技术来准确预测时空数据,但值得注意的是,许多方法很大程度上依赖于拥有足够的训练样本来生成精确的时空表示。不幸的是,数据稀缺的问题在实际的城市传感场景中普遍存在。在某些情况下,从下游场景收集任何标记数据变得具有挑战性,从而进一步加剧了问题。因此,有必要建立一个能够在不同的时空场景中表现出强大的泛化能力的时空模型。

受大语言模型(LLMs)的显著成就的启发,我们的目标是创建一个时空大语言模型,能够在广泛的下游城市任务中展现出卓越的泛化能力。为了实现这一目标,我们提出了UrbanGPT,它将时空依赖编码器与指令微调范式无缝集成到一起。这种集成使得语言模型能够理解时间和空间之间的复杂相互依赖关系,在数据稀缺的情况下进行更全面、更准确的预测。为了验证我们方法的有效性,我们对各种公共数据集进行了广泛的实验,涵盖不同的时空预测任务。结果一致表明,所设计的UrbanGPT始终优于最先进的基准模型。这些发现突显了在标记数据稀缺的零样本情景下构建大型语言模型进行时空学习的潜力。

2. 概述

2.1 现有问题

  • 挑战1:稀缺标签数据和重新训练的巨大开销

虽然当前的时空神经网络技术已被证明非常有效,但它们严重依赖于大量标记数据以生成准确的预测。然而,实际城市感知场景中普遍存在的数据稀缺问题带来了重大挑战。例如,由于成本高昂,在整个城市空间部署传感器来监控全市交通量或空气质量是不切实际的。此外,现有模型在应对新地区或城市预测任务时不具备良好的泛化能力,需要重新训练以生成时空表征。

  • 挑战2:LLMs和现有时空模型都不具备零样本场景的泛化能力

如图1所示,大语言模型LLaMA可根据输入文本对流量模式的推断。然而,它在处理具有复杂时空依赖性的数字时间序列数据方面的局限性有时会导致相反的预测结果。另一方面,预训练的基线模型能够很好地编码时空依赖关联。然而,它可能会由于对源数据集的过拟合导致其在零样本场景下表现不佳。

  • 挑战3:如何将LLMs的出色推理能力扩展到时空预测场景

时空数据的独特特征与LLMs中所编码的知识之间的存在差距,如何减少这一差距进而建立在广泛的城市任务中具有出色的泛化能力时空大语言模型是一项重大挑战。


图1:与大语言模型和时空图神经网络相比,UrbanGPT在零样本场景下能够更好地预测出未来的时空趋势

2.2 本文贡献

  1. 据我们所知,这是首次尝试开发一种能够在不同数据集上预测各种城市现象的时空大型语言模型,尤其是在训练样本受限的情况下。
  2. 本文提出了时空预测框架UrbanGPT,它使得大语言模型能够理解时空之间错综复杂的相互依赖关系。通过将时空依赖编码器无缝集成到指令微调范式中,有效地将时空上下文与大语言模型相结合。
  3. 在现实世界数据上进行的大量实验证明了本文提出的UrbanGPT在零样本时空学习场景中具有出色的泛化能力。这些发现突显了该模型的强大泛化能力,表明它在准确预测和理解时空模式方面的有效性,即使在零样本场景下也是如此。

3. 方法

在这里插入图片描述
图2:UrbanGPT整体架构

3.1 时空依赖编码器

尽管大型语言模型在语言处理方面表现出色,但它们在理解时空数据中固有的时序演化模式方面面临挑战。为了克服这一困难,本文提出融合时空依赖编码器以增强大语言模型捕获时空上下文中的时间依赖关系的能力。具体地,所提出的时空编码器包括两个关键部分:门控扩散卷积层和多层次关联注入层:
在这里插入图片描述

上式 E r ∈ R T × d \mathbf{E}_r\in \mathbb{R}^{T\times d} ErRT×d初始化时空嵌入,从原始时空数据 X \mathbf{X} X中获得。 E r ′ \mathbf{E}_r' Er E r \mathbf{E}_r Er的切片,用于进行残差操作缓解梯度消失。我们使用一维扩散卷积核 W ˉ k \bar{\mathbf{W}}_k Wˉk, W ˉ g ∈ R T g × d i n × d o u t \bar{\mathbf{W}}_g \in \mathbb{R}^{T_g\times d_{in}\times d_{out}} WˉgRTg×din×dout来编码时间关联。Sigmoid激活函数 δ \delta δ用于控制多层卷积运算的信息保留程度。在进行门控时间扩展卷积层编码后,我们能够有效地捕获多个时间步长中的时间依赖性,从而生成时间表示。这些表示包含不同级别的时间依赖关系,反映了各种具有粒度感知的时间演化模式。为了保留这些信息模式,我们引入了一个多层次关联注入层,该层被设计为包含不同层次之间的相关性:
在这里插入图片描述

其中 W ˉ k ∈ R T s × d o u t × d o u t \bar{\mathbf{W}}_k \in \mathbb{R}^{T_s\times d_{out}\times d_{out}} WˉkRTs×dout×dout是形如 W ˉ k \bar{\mathbf{W}}_k Wˉk的卷积核,在经过层编码后,我们使用一个简单的线性层融合门控扩散卷积层和多层次关联注入层的结果,最终的时空依赖性表征表示为 Ψ ~ ∈ R R × T × d \tilde{\Psi}\in \mathbb{R}^{R\times T\times d} Ψ~RR×T×d。为了解决下游可能出现的各种城市场景集,本文提出的时空编码器在建模空间相关性时独立于图结构。因为在零样本预测环境中,实体之间的空间关系可能是未知的或难以确定的。这确保UrbanGPT在广泛的城市环境中的适用性。

3.2 时空指令微调框架

3.2.1 时空数据-文本对齐

为了使语言模型能够有效地理解时空模式,对齐文本和时空信息至关重要。这允许模型融合不同模态,从而产生信息更丰富的表示。通过集成文本和时空域的上下文特征,模型可以捕获互补信息并提取更具表示能力的高层语义表示。为了实现这一点,本文利用轻量级对齐模块来投影时空依赖性表示 Ψ ~ \tilde{\Psi} Ψ~。投影操作采用线性层参数 W p ∈ R d × d L \mathbf{W}_p\in \mathbb{R}^{d \times d_L} WpRd×dL进行,其中 d L d_L dL表示大语言模型常用的隐藏维度。所得到的投影 H ∈ R R × F × d L \mathbf{H}\in \mathbb{R}^{R\times F\times d_L} HRR×F×dL,在指令中使用特殊的标记表示为: <ST_start>,<ST_HIS>,…,<ST_HIS>,<ST_end>。其中,<ST_start>和<ST_end>为标识时空标记的开始和结束的标识符,这些标识符可以通过扩展其词汇量来包含在大语言模型中。占位符<ST_HIS>表示时空标记,对应于隐藏层中的投影 H \mathbf{H} H。通过使用该技术,模型获得了识别时空依赖性的能力,从而提高了其在城市场景中成功执行时空预测任务的能力。

3.2.2 时空提示指令

在时空预测的场景中,时间和空间信息都包含了有价值的语义细节,有助于模型理解特定上下文下的时空模式。例如,清晨和高峰时间段的交通流量有很大的不同,并且商业区和住宅区之间的交通模式也存在差异。因此,将时间和空间信息表示为提示文本的对时空预测任务是有益的,我们利用大语言模型的文本理解能力来编码这些信息。在UrbanGPT框架中,我们集成了多粒度的时间信息和空间细节,作为大语言模型的指令输入。时间信息包括一周的日期和时间等因素,而区域信息包括城市、行政区域和附近的兴趣点(POI)数据等,如图3所示。通过合并这些不同的元素,UrbanGPT能够识别和理解复杂的时空环境下不同区域和时段的时空模式,从而增强其零样本推理能力。

在这里插入图片描述
图3:编码时间和位置感知信息的时空提示指令

3.2.3 大语言模型的时空指令微调

使用指令微调LLMs以生成文本格式的时空预测存在两个挑战。首先,时空预测通常依赖于数值数据,其结构和模式与语言模型擅长处理的自然语言不同,后者侧重于语义和句法关系。其次,LLMs通常使用多分类损失进行预训练以预测词汇,从而得到潜在结果的概率分布。而回归任务则需要连续值分布。为了解决这些挑战,UrbanGPT采用了一种不同的策略,不直接预测未来的时空值,而是生成辅助预测过程的预测标记。这些标记随后通过回归层,将隐藏表示映射为生成更准确的预测值:
在这里插入图片描述

上式中预测标记的隐藏表征表示为 Γ r , f ∈ R d L \Gamma_{r,f}\in \mathbb{R}^{d_L} Γr,fRdL,其中预测标记可通过扩充大语言模型词表的方式引入。 W 1 , W 2 , W 3 \mathbf{W}_1,\mathbf{W}_2,\mathbf{W}_3 W1,W2,W3为回归层的权重矩阵, [ ⋅ , ⋅ ] [·,·] [⋅,⋅]为拼接操作。

4. 实验

4.1 零样本预测性能

4.1.1 相同城市内未见区域的预测

跨区域场景使用来自相同城市内某些区域的数据来预测模型未见的其他区域的未来情况。通过对模型在跨区域预测中的表现的全面分析,我们可以注意到三个重要的观察结果:

  1. 优越的零样本预测性能。 表1中的结果突出了所提出的模型在不同数据集上的回归和分类任务中的卓越性能,超过了零射击预测中的基线模型。UrbanGPT的成功可以归因于两个关键因素。i) 时空-文本对齐。时空上下文信号与语言模型的文本理解能力的对齐对模型成功起着关键作用。这种融合使模型能够有效地利用从时空信号中编码的城市动态和由大语言模型提供的对文本上下文的全面理解,从而扩展了模型在零样本场景的预测能力。ii) 时空指令微调。自适应调整过程使LLMs能够有效地整合指令中的关键信息,增强其对空间和时间因素之间复杂关系和依赖性的理解。 通过将时空指令微调与时空依赖编码器无缝合并, UrbanGPT成功地保留了通用且可转移的时空知识,进而实现零样本场景中的精确预测。
  2. 增强了对城市语义的理解。 城市语义提供了对多样的空间和时间特性的重要见解。所提出的方法在各种数据集上对模型进行训练,丰富其对不同时段和地理位置的时空动态的理解。相比之下,基准模型往往优先考虑编码时空依赖关系,忽视了区域、时段和数据类别之间的语义差异。通过将全面的语义信息注入UrbanGPT中,我们显著增强了其在先前未见的区域中进行准确零样本预测的能力。
  3. 稀疏数据场景中的性能提升。 稀疏数据环境中预测时空模式是具有挑战性的,因为当数据点稀缺时,模型容易出现过拟合。在预测犯罪等情况下,数据通常是稀疏的,在这一条件下,基线在跨区域预测任务中表现困难,导致召回率低,表明可能存在过拟合的问题。为了克服这个限制,我们的模型通过使用有效的时空指令微调范式,将时空学习与大语言模型相结合。通过融入丰富的语义见解,所提出的方法增强了模型的时空表示能力,使其能够有效处理稀疏数据,并实现改进的预测准确性。

在这里插入图片描述
表1:跨区域零样本预测场景性能比较

4.1.2 跨城市预测任务

为了评估模型在跨城市预测任务中的性能,我们对芝加哥出租车数据集进行了测试。(该数据集没有出现在训练阶段)。如图4所示,结果显示模型在每个时间步长上都始终优于比较方法,这说明UrbanGPT能够对跨城市知识进行有效的转移。通过整合时空编码器与时空指令微调范式,模型有效地捕获了普遍且特殊的时空模式,使其能够做出准确的预测。此外,通过考虑不同的地理信息和时间因素以及学到的转移知识,模型具备将相似功能区域和历史时期所表现出的时空模式进行关联的能力。这种全面的理解为跨城市场景下进行精确的零样本预测提供了重要的见解。

在这里插入图片描述
图4:跨城市零样本预测场景性能比较

4.2 典型的有监督预测任务

这章节主要探索UrbanGPT在端到端有监督预测场景下的表现,具体地,我们利用时间间隔跨度更广的测试数据集来测试模型在长期时空预测中的有效性。例如,使用2017年的数据训练模型,并使用2021年的数据进行评估。结果表明,UrbanGPT相对于基线具有显着优势,突显了其长期时间跨度场景的卓越泛化能力。此特性减少了频繁重新训练或增量更新的需要,使模型更符合实际应用。此外,实验还证实引入额外的文本知识不会阻碍模型性能或引入噪声,从而进一步验证了利用大语言模型增强时空预测任务的可行性。
在这里插入图片描述
表2:端到端有监督设置下的预测性能评估

4.3 消融实验

  1. 时空上下文的影响:-STC。 从指示文本中移除时空信息后出现了性能衰减,这可能由于缺乏时间信息,使得模型仅依赖于时空编码器来编码与时间相关的特征和执行预测任务。此外,空间信息的缺失阻碍了模型捕捉空间相关性的能力,使得分析不同区域的不同时空模式具有挑战性。
  2. 使用多个数据集进行指令微调的影响:-Multi。 我们仅在NYC-taxi数据集进行训练。由于缺乏不同的城市指标的信息,限制了模型充分揭示城市时空动态的能力。因此,该模型的性能并不理想。通过整合来自多个来源的不同时空数据,模型可以有效地捕获不同地理位置的独特特征及演化的时空模式。
  3. 时空编码器的影响:-STE。 我们从模型中移除了时空编码器。结果表明,时空编码器的缺失显著地阻碍了大语言模型在时空预测场景中的预测性能。这强调了所提出的时空编码器在提高模型的预测能力方面所发挥的关键作用。
  4. 指令微调中的回归层:T2P。 我们直接指示UrbanGPT以文本格式生成其预测。次优的性能表现主要是由于训练过程中依赖于多类损失来进行优化,导致模型的概率输出和时空预测所需的连续值分布之间的不匹配。为了弥补这一差距,我们在模型中加入了一个回归预测器,显著提高了它在回归任务生成更精确的数值预测的能力。

在这里插入图片描述
图5:UrbanGPT消融实验

4.4 模型鲁棒性研究

本节评估了UrbanGPT在不同时空模式场景下的稳健性。我们根据特定时间段内数值变化程度的大小(例如出租车流量)对区域进行分类。较低的方差表明稳定的时间模式,而较高的方差表明时空模式多样化的地段,如活跃商业区或人口稠密地区。如图6所示,大多模型在方差较低的区域表现良好,因为这些区域的时空模式相对稳定。然而,基线在方差较高的区域中表现不佳,特别是在方差处于 (0.75, 1.0] 范围的区域,这一限制可能源自基线模型在零样本场景下难以推断未见区域的复杂时空模式。在实际应用中,人口密集或繁华区域的准确预测对于城市治理至关重要,例如交通灯控制和安全调度。UrbanGPT在(0.75, 1.0]区间表现出显着的性能提升,突显了所提出方法的强大的零样本预测能力。
在这里插入图片描述
图6:模型鲁棒性研究

4.5 案例研究

案例研究评估了不同大语言模型在零样本时空预测场景中的有效性,如表3所示。结果表明各种LLMs能够根据所提供的指令生成预测,这说明了提示设计的有效性。例如,ChatGPT 依赖于历史平均值,而不是在其预测中明确纳入时间或空间数据。Llama-2-70b分析特定时间段和区域,但在编码数值时间序列依赖性方面遇到挑战,导致预测性能不佳。Claude-2.1有效地总结和分析历史数据,利用高峰时段模式和兴趣点来实现更准确的流量趋势预测。 所提出的 UrbanGPT 通过时空指令微调范式将时空上下文信号与大语言模型的推理能力无缝集成,使得预测数值和时空趋势有了显着的改进。这些发现强调了框架在捕获普遍时空模式方面的潜力和有效性,使零样本时空预测成为可能。

在这里插入图片描述
表3:不同的LLMs对纽约市自行车流量的零样本预测案例。

5. 总结与展望

这项工作提出了UrbanGPT,一个能够在不同的城市场景中具有良好泛化能力的时空大型语言模型。为了实现时空上下文信号与LLMs无缝对齐,本文引入了一种时空指令微调范式。这赋予UrbanGPT在各种类型的城市数据中学习通用和可迁移的时空模式的卓越能力。大量实验分析展示了UrbanGPT架构及其关键组件的卓越有效性。然而,需要注意的是,虽然结果是令人鼓舞的,但在未来的研究中仍然存在待解决的限制。作为第一步,我们积极收集更多种类的城市数据,以增强和完善UrbanGPT在更广泛的城市计算领域的能力。此外,理解UrbanGPT的决策过程也是重要的。虽然该模型表现出卓越的性能,但提供可解释性同样重要。未来的研究也将集中于赋予UrbanGPT模型解释其预测的能力。

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

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

相关文章

编曲制作软件Fruity Loops Studio 21 中文版及新如何选择适合FL Studio 版本

如果你有着满腔的音乐才华&#xff0c;想要自己在家里发片吗&#xff1f;还是听 MOBY 的电子舞曲不过瘾&#xff0c;要再帮他做做 REMIX&#xff1f;有朋友会说&#xff0c;我不懂乐理&#xff0c;不懂五线谱&#xff0c;怎么制作音乐&#xff1f;这话说得很好&#xff0c;说到…

力扣-[700. 二叉搜索树中的搜索]

递归法 确定递归函数的参数和返回值 递归函数的参数传入的就是根节点和要搜索的数值&#xff0c;返回的就是以这个搜索数值所在的节点。 代码如下&#xff1a; public TreeNode searchBST(TreeNode root, int val) 确定终止条件 如果root为空&#xff0c;返回null&#xff0c…

Apache Paimon系列之:认识Paimon

Apache Paimon系列之&#xff1a;认识Paimon 一、认识Paimon二、统一存储三、基本概念1.文件布局2.Snapshot3.清单文件4.数据文件5.分区6.一致性保证 一、认识Paimon Apache Paimon的架构&#xff1a; 如上架构所示&#xff1a; 读/写&#xff1a;Paimon 支持多种读/写数据和…

4、设计模式之建造者模式(Builder)

一、什么是建造者模式 建造者模式是一种创建型设计模式&#xff0c;也叫生成器模式。 定义&#xff1a;封装一个复杂对象构造过程&#xff0c;并允许按步骤构造。 解释&#xff1a;就是将复杂对象的创建过程拆分成多个简单对象的创建过程&#xff0c;并将这些简单对象组合起来…

使用 ReclaiMe Pro 进行 RAIDZ 数据恢复

天津鸿萌科贸发展有限公司是 ReclaiMe Pro 数据恢复软件授权代理商。 ZFS 是一个开源文件系统&#xff0c;主要用于 FreeNAS 和 NAS4Free 存储系统。在开发 ZFS 时&#xff0c;主要目标是可靠性&#xff0c;这是通过写时复制、冗余元数据、日志等不同功能来实现的。ZFS 使用自…

修改表结构

目录 修改表结构 创建数据表插入数据 修改已有列 修改 member 表的 name 列的定义 为表增加列 增加一个 address 列&#xff0c;这个列上不设置默认值 增加一个 sex 列&#xff0c;这个列上设置默认值 删除表中的列 删除 sex 列 Oracle从入门到总裁:​​​​​​https…

SpringSecurity两种验证方式及调用流程

一、HttpBasic方式 <security:http-basic/> 二、Formlogin方式 <security:form-login login-page"/userLogin" /> 三、SpringSecurity执行流程

【LeetCode】升级打怪之路 Day 18:二叉树题型 —— 树的深度、高度、路经

今日题目&#xff1a; 104. 二叉树的最大深度111. 二叉树的最小深度110. 平衡二叉树257. 二叉树的所有路径112. 路径总和 目录 Problem 1&#xff1a;树的深度LC 104. 二叉树的最大深度 【easy】LC 111. 二叉树的最小深度 【易错】 Problem 2&#xff1a;树的高度LC 110. 平衡二…

工具推荐:有哪些工具可以搭建本地知识库?

大家是否心头藏着一个个的记录本&#xff0c;里面写满了工作日常、业务过程、个人想法等等&#xff0c;但是随着这个记录本日渐丰满&#xff0c;寻找特定信息的难度也在逐渐增大。如果有一个空间&#xff0c;既像你的记录本一样方便记录&#xff0c;又可以快速检索&#xff0c;…

19113133262(微信同号)2024年环境能源与全球市场营销国际学术会议(ICEEGM 2024)

2024年环境能源与全球市场营销国际学术会议&#xff08;ICEEGM 2024) 会议主题: (主题包括但不限于, 更多主题请咨询会务组苏老师) 节能技术 煤矿工程与技术 能源存储技术 可再生能源 热能与动力工程 能源工程与环境工程 可再生能源技术和系统 能源安全和清洁利用 矿…

1688平台最关键的接口接入实例|获得1688商品详情| 按关键字搜索商品| 按图搜索1688商品(拍立淘)| 获得淘口令真实url

参数说明 通用参数说明 version:API版本key:调用key,测试key:test_api_keyapi_name:API类型[item_get,item_search]cache:[yes,no]默认yes&#xff0c;将调用缓存的数据&#xff0c;速度比较快result_type:[json,xml,serialize,var_export]返回数据格式&#xff0c;默认为jsonl…

springboot的maven多模块如何混淆jar包

springboot的maven多模块如何混淆jar包 一.简介二. 示例2.1 基本配置2.2 结果 三. 错误3.1 错误13.2 错误2 四. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一.简介 …

[Linux][CentOs][Mysql]基于Linux-CentOs7.9系统安装并配置开机自启Mysql-8.0.28数据库

目录 一、准备工作&#xff1a;获取安装包和相应工具 &#xff08;一&#xff09;所需安装包 &#xff08;二&#xff09;安装包下载链接 &#xff08;三&#xff09;在服务器上创建文件夹并上传安装包 二、安装MySql &#xff08;一&#xff09;删除系统自带的mariadb …

华为三层交换机:ACL的基本实验

实验要求&#xff1a; PC1不允许访问PC3&#xff0c;PC3可以访问PC1 分析问题&#xff1a; PC1不允许访问PC3&#xff0c;问题中含有“目标地址”则我们需要设置目标地址&#xff0c;这样基本ACL是不行的&#xff0c;必须使用高级ACL [sw1]acl ? INTEGER<2000-2999>…

发那科数控机床FanucCNC(NCGuide)仿真模拟器配置和数据采集测试

开发日记3.12 此篇用于记录发那科数控机床(Fanuc CNC)采集程序开发中&#xff0c;用虚拟机做测试时&#xff0c;虚拟机的配置和使用以支持采集软件开发和测试。 配置虚拟机使用仿真软件 下载VMware15 「链接&#xff1a;https://pan.xunlei.com/s/VNsl9Gmb14ANBiiNlsT7vA2LA…

选择格行随身WiFi代理的八大理由:揭秘其无可比拟的优势!2024适合普通人的靠谱创业项目!

在竞争激烈的创投圈中中&#xff0c;格行随身WiFi以其独特的八大优势脱颖而出&#xff0c;成为创业者的首选品牌。那么&#xff0c;它究竟凭借什么成为了创业黑马呢&#xff1f;接下来&#xff0c;让我们一一揭秘。 01l品牌运营 行业唯一做统一发货&#xff0c;统一售后的品牌…

Java中 final、finally、finalize 有什么区别?

1、典型回答 final、finally、finalize 是 Java 中三个不同的关键字&#xff0c;它们除了长得像之外&#xff0c;其他的&#xff08;作用和含义&#xff09;完全不同。 它们三个的区别就好像&#xff1a;雷、雷锋、雷峰塔之间的区别。&#xff08;是三个完全不同的东西&#…

深入理解Vue3中利用mitt:实现轻量级事件监听与触发

深入理解Vue3中利用mitt&#xff1a;实现轻量级事件监听与触发 摘要&#xff1a;本文将介绍如何在Vue3中利用mitt库实现轻量级的事件监听与触发。我们将详细介绍mitt库的特性和使用方法&#xff0c;并通过实际示例展示如何在Vue3组件中应用mitt。 一、引言 在前端开发中&…

android studio 老项目突然编译不了,一直下载gradle以及插件

以前这个项目一直可以编译放了几个月&#xff0c;我换了一个windows帐号登录&#xff0c;结果编译不了 之前使用的是gradle-7.2.0&#xff0c;现在由于这几天开会&#xff0c;可能网络不畅通更新不了插件。 原因一&#xff0c;Google仓库连不上 build.gradle注释掉google()和…

web:shrine

题目 点进题目后显示如下 查看源代码&#xff0c;查看可知为ssti注入。还设置了过滤的名单。 先可以测试一下是否存在ssti模板注入 payload \shrine\{{2-2}} 回显成功&#xff0c;存在ssti模板注入 绕过思路&#xff0c;代码里有过滤&#xff0c;会把()替换&#xff0c;这里…