微软具身智能感知交互多面手!Magma:基于基础模型的多模态AI智能体

  • 作者: Jianwei Yang, Reuben Tan, Qianhui Wu, Ruijie Zheng, Baolin Peng, Yongyuan Liang, Yu Gu, MuCai, SeonghyeonYe, JoelJang, Yuquan Deng, Lars Liden, Jianfeng Gao

  • 单位:微软研究院,马里兰大学,威斯康星大学麦迪逊分校,KAIST,华盛顿大学

  • 论文标题:Magma: A Foundation Model for Multimodal AI Agents

  • 论文链接:https://www.arxiv.org/pdf/2502.13130

  • 项目主页:https://microsoft.github.io/Magma/

  • 代码链接:https://github.com/microsoft/Magma

主要贡献

图片

  • Magma不仅具备多模态理解能力,还具备在数字和物理环境中进行智能体任务所需的时空推理能力的模型,能够处理来自不同领域(包括数字和物理)的多模态输入。

  • 提出Set-of-Mark(SoM)和Trace-of-Mark(ToM)来显著增强模型的时空智能,以便进行动作对齐和规划,使得Magma能够在大量异构数据集上进行有效预训练。

  • 创建了大规模的预训练数据集,包含来自开源视觉语言数据集、UI数据、机器人数据和人类教学视频的多样化样本,为模型的广泛任务适应提供了基础。

  • 通过广泛的实验验证,Magma在多个任务上表现出色,特别是在UI导航和机器人操作任务上达到了SOTA。

研究背景

研究问题

近年来,基于视觉-语言-动作(VLA)模型的AI智能体引起了广泛关注,但这些模型通常针对特定任务进行训练,导致在不同环境和任务之间的泛化能力有限。

本文的任务是开发能够感知视觉刺激、语言输入和其他环境数据的自主智能体,并在物理和数字环境中产生有意义的具身动作以完成特定任务。

研究难点

该问题的研究难点包括:

  • 不同环境(如2D数字世界和3D物理世界)之间的固有差异;

  • 如何有效地将视觉语言理解能力(言语智能)与视觉空间世界中的规划和行动能力(时空智能)结合起来。

相关工作

  • 大模型(LMMs)

    • 论文介绍了LLMs和结合视觉数据的模型,如GPT-4V(ision)和LLaVA等。

    • 这些模型通过结合视觉数据和语言模型的能力,在多模态任务上取得了显著进展。

    • 近年来,研究人员开发了多种LMMs来处理更广泛的任务和模态。

  • 数字世界中的UI智能体

    • 讨论了设计自主GUI智能体以代替人类用户执行任务的研究。这方面的工作包括训练端到端模型直接预测下一个动作,以及利用现有的多模态模型(如GPT-4V)来执行用户任务。

    • 这些方法通常依赖于DOM信息或视图层次结构来获取屏幕上可交互元素的精确位置。

  • 机器人领域的视觉-语言-动作(VLA)

    • 探讨了几项研究,这些研究调查了LMMs在机器人中的应用。这些研究包括在机器人轨迹数据上微调LMMs,以输出离散的机器人动作token。

    • RT-2、OpenVLA、LLARVA和TraceVLA等工作展示了如何通过视觉轨迹预测和视觉轨迹提示来提高机器人的时空感知能力。

图片

多模态智能体建模

问题定义

定义了一个通用的多模态AI智能体的问题框架,能够处理过去视觉观察和文本任务描述,并输出一组token作为其响应。多模态AI智能体的定义如下:

其中:

  • 是过去的一系列视觉观察(例如图像序列)。

  • 是一个文本描述的任务。

  • 表示上下文信息。

  • 表示第 个token 是语言token还是空间token。

该框架适用于不同的任务,具体如下:

  • UI导航:在2D屏幕截图中,任务可能是“预订酒店”,输出应包括表示动作语义类型的token(例如“type”、“click”等)以及动作应用的位置( 或 )。

  • 机器人操作:在3D世界中,任务可能是“关闭抽屉”,输出包括末端执行器的6-DoF位移(),在某些情况下还包括一个额外的维度来指示夹持器是否打开。

  • 多模态理解任务:当任务仅涉及时(例如VQA任务),问题被简化为生成输入图像/视频的文本描述和/或对象位置的多模态理解任务。

输出表示

  • 为了便于模型学习,论文将所有输出转换为文本token。具体来说,他们将2D动作转换为文本字典,并使用LLMs中很少使用的最后256个离散语言token来表示机器人动作。

  • 尽管如此,不同任务之间仍存在显著的冲突,并在实验中展示了如何缓解这些挑战以在广泛的训练数据上训练智能体。

方法

该部分讨论了构建多模态AI智能体基础模型的两个关键挑战:预训练目标(Pretraining objectives)和数据扩展(Data scaling-up)。

  • 预训练目标(Pretraining Objectives)

    • 论文面临如何创建统一的预训练接口以促进联合训练的挑战。直接预测UI导航的2D坐标和机器人任务的3D位置存在领域差距。

    • 为了解决这个问题,提出使用Set-of-Mark(SoM)提示。SoM用于在图像上实现动作对齐,简化了任务并帮助模型预测可操作点的数值token。

  • 数据扩展(Data Scaling-up)

    • 现有的视觉-语言-动作数据集数量有限且缺乏多样性。

    • 论文提出使用Trace-of-Mark(ToM)来扩展数据集。ToM通过在视频中预测未来轨迹来增强模型的能力,帮助模型理解时间动态并从原始视频中获取动作监督。

通过结合SoM和ToM,能够在不同类型的任务之间实现无缝协同,并有效地扩展数据集。

Set-of-Mark (SoM)

SoM 是一种提示策略,用于增强模型在图像上的动作对齐能力。

  • 输入处理:给定一个图像观察值 和任务描述 ,模型首先提取一组候选区域或点 ,这些区域或点是可操作的(例如,可点击的按钮或机器人手臂的位置)。

  • token叠加:在图像上叠加token和框(如果有的话),并用数值标签token这些位置,形成一个新的token图像 。

  • 输出生成:模型需要选择候选token并给出原始坐标,以便于动作对齐。公式表示为: 其中, 是 的子集。

  • 应用场景:SoM适用于UI截图、机器人操作和人类视频等多种场景。通过使用不同的网络(如图像分割模型、目标检测模型)来获取候选区域,模型可以有效地进行动作对齐。

Trace-of-Mark (ToM)

ToM 是一种从视频中学习动作规划的方法,通过预测未来的动作轨迹来增强模型的时间动态理解能力。具体方法如下:

  • 输入处理:给定一个视频序列的视觉观察值 ,模型沿时间轴扩展到未来 帧,形成未来帧序列 。

  • 轨迹提取:在当前帧 的 个token中,提取未来 帧中对应位置的轨迹 。

  • 输出生成:模型不仅需要预测动作类型和有效token,还需要预测有效token的未来轨迹: 其中, 是 的轨迹序列的子集。

  • 应用场景:ToM通过预测未来的动作轨迹,帮助模型在视频数据中学习动作规划。这种方法不仅减少了token的数量,还能捕捉更长的时间动态和动作相关的对象动态。

智能体模型

  • 为了保留Magma所需的多模态理解能力,视觉观察通过视觉编码器编码后,与语言token一起输入到一个解码器中。

  • 视觉编码器采用ConvNeXt,支持任意图像分辨率的编码。

  • 最终的智能体建模被描述为一个自回归解码过程,模型根据视觉输入和语言任务描述生成输出token。

多模态智能体预训练

数据集

为了开发一个具有语言和空间智能的基础模型,能够处理多种智能体任务,论文从广泛的图像、视频和机器人领域中收集了一个综合的预训练数据集。

机器人操作数据
  • 来源:遵循OpenVLA的研究方法,使用Open-X-Embodiment的数据集。

  • 内容:包含用于机器人任务的9.4百万个图像-语言-动作三元组,这些三元组是从326K条轨迹中提取的。

UI导航数据
  • 来源:利用两个预训练数据集,SeeClick和Vision2UI。

  • 内容:包括用于UI导航的屏幕截图和相关标注。

指导性视频
  • 来源:编辑ic-Kitchen、Ego4d、Something-Something v2和其他相关指导性视频,这些视频提供丰富的粗粒度目标驱动的人类动作。

  • 内容:包含大量的人类日常活动视频片段,用于学习智能体模型的执行能力。

多模态理解数据
  • 来源:包括ShareGPT4V的1.2百万个合成图像-文本对,以及LLaVA-1.5的665K图像指令调整数据。

  • 内容:用于保留基础模型的通用多模态理解能力。

SoM和ToM生成

SoM用于UI导航
  • 应用:应用于所有UI数据以学习统一的动作定位。

  • 生成:基于DOM树和Android视图层次结构提取边界框,并在图像上绘制token。

SoM和ToM用于视频和机器人数据
  • 应用:使用token和轨迹作为替代动作监督来预训练Magma模型,用于动作定位和规划。

  • 生成:使用点跟踪模型CoTracker从视频段中提取未来轨迹,并应用同源变换去除全局运动。

预训练

通过上述数据集和标注,创建了一个全面的预训练套件,涵盖了不同的数字和物理环境、语言和空间标注以及各种多模态理解和智能体任务。

数据集规模
  • UI导航:约2.7百万个UI导航屏幕截图。

  • 机器人操作:970K条轨迹,包含9.4百万个图像-语言-动作三元组。

  • 视频:超过25百万个样本,来自约4百万个一致的短视频片段。

  • 多模态理解:1.2百万个图像和文本对。

预训练架构
  • 默认设置:使用LLaMA-3-8B作为语言骨干网络,ConvNext-XXlarge作为视觉骨干网络。

  • 训练:使用Magma-SFT(820K)进行最多三轮预训练,学习率为1e-5。

实验

zero-shot评估

zero-shot评估旨在验证Magma模型在不经过特定任务微调的情况下,能否在多种智能体任务上表现出色。研究者们在不同的基准测试上评估了Magma的zero-shot迁移能力。

UI导航
  • 数据集:使用ScreenSpot和VisualWebBench评估UI动作定位和导航。
    • ScreenSpot:用于评估UI动作定位,包含iOS、Android、macOS、Windows和网页的屏幕截图。

    • VisualWebBench:用于评估网页UI的理解和导航。

  • 结果:Magma在UI导航任务上显著优于其他通用领域的多模态模型和特定领域的智能体模型。特别是,Magma在屏幕截图上的表现比使用GPT-4V和OmniParser的方法更好。

机器人操作
  • 数据集:使用SimplerEnv评估机器人操作。
    • SimplerEnv:包含多个机器人操作任务,用于评估机器人在模拟环境中的操作能力。

  • 结果:Magma在机器人操作任务上表现出色,成功率显著高于其他模型,尤其是在复杂任务中。

多模态理解
  • 数据集:在VQA任务上评估模型的通用性和文本丰富性。
    • VQAv2:用于评估视觉问答任务。

    • POPE:用于评估对象幻觉任务。

  • 结果:Magma在多模态理解任务上也表现出色,优于其他模型。

高效微调

高效微调部分展示了通过适度微调,预训练的Magma模型如何轻松转移到各种下游智能体任务。

UI导航
  • 数据集:在Mind2Web和AITW上微调,评估网页和移动UI导航能力。
    • Mind2Web:用于评估文本驱动的网页UI导航。

    • AITW:用于评估Android UI导航。

  • 结果:Magma在UI导航任务上优于开源或商业模型,显示出其在实际应用中的强大能力。

机器人操作
  • 数据集:在真实机器人数据和模拟环境中微调,评估任务适应能力和泛化能力。
    • 真实机器人:在WidowX机器人上评估复杂的多任务操作。

    • 模拟环境:在LIBERO基准测试上评估任务适应能力。

  • 结果:Magma在真实机器人操作任务中表现出色,能够处理复杂的日常对象操作任务,并且在未见过的任务上也能保持良好的泛化能力。

空间推理能力

论文认为,Magma模型在UI导航和机器人操作任务上表现出的改进性能,主要是由于其空间推理能力的提高。

为了验证这一点,论文在几个具有挑战性的空间推理基准测试上评估了Magma模型的效果。

基准测试

使用了几个基准测试来评估Magma模型的空间推理能力:

  • VSR:是评估模型在视觉场景中进行空间推理的能力的基准测试。在zero-shot设置下评估了Magma模型,并与其他方法进行了比较。

  • BLINK:是多模态语言模型基准测试,专注于评估模型在视觉-语言任务中的感知能力。论文展示了Magma模型在没有特定指令微调的情况下,在BLINK数据集上的表现。

  • SpatialEval:是综合性的空间推理基准测试,涵盖了多种空间推理任务。论文在zero-shot设置下评估了Magma模型,并与其他方法进行了比较。

结果分析

  • Magma的表现

    • 在VSR和SpatialEval基准测试上,Magma模型显著优于现有的方法,显示出其在空间推理任务上的强大能力。

    • 尽管Magma模型在预训练时只使用了大约2900万张图像,但在这些基准测试上的表现与使用1.5亿张图像进行预训练的CogVLM相当。

  • 消融研究

    • 论文还进行了消融研究,以验证SoM和ToM预训练任务对提高Magma模型空间推理能力的效果。

    • 结果表明,使用SoM和ToM进行预训练显著提高了Magma模型在空间推理任务上的表现。

    • 此外,论文还发现,去除训练数据中的视频会导致BLINK任务上的性能下降约8%,这进一步证明了视频数据在预训练中的重要性。

结论
  • 通过这些评估,证明Magma模型在空间推理任务上的优异表现主要归功于其在预训练过程中通过SoM和ToM任务获得的空间推理能力的提升。

  • 这些结果表明,Magma模型不仅在多模态理解任务上表现出色,而且在需要复杂空间推理的任务上也具有强大的能力。

接下来主要关注评估Magma模型在多模态理解任务上的表现,通过一系列基准测试来验证Magma在处理多模态输入(如图像和视频)时的能力。

图像理解任务

论文通过连续微调的方式,评估Magma在图像理解任务上的表现,并将其与其他现有的多模态模型进行比较。

数据集
  • MME(Multimodal Multiple Choice):用于评估模型在多模态选择题任务上的表现。

  • GQA(Generic Question Answering):用于评估模型在通用视觉问答任务上的表现。

  • ChartQA:用于评估模型在图表理解任务上的表现。

结果
  • MME和GQA:Magma在大多数任务上优于最近提出的多模态模型,显示出其在多模态理解任务上的优势。

  • ChartQA:Magma在图表理解任务上取得了显著的提升,特别是在需要复杂逻辑推理的任务上。

预训练任务的影响
  • SoM和ToM的贡献:研究者的消融实验表明,使用SoM和ToM进行预训练任务有助于提高Magma在多模态理解任务上的表现,特别是在图表理解任务上。

视频理解任务

在多个视频理解任务上评估了Magma的表现,以验证其在处理动态多模态输入时的能力。

数据集
  • IntentQA:用于评估模型在视频意图识别任务上的表现。

  • NextQA:用于评估模型在视频上下文理解任务上的表现。

  • VideoMME:用于评估模型在视频多模态任务上的表现。

  • MVBench:用于评估模型在多模态视频理解任务上的表现。

结果
  • 视频任务:Magma在大多数视频任务上优于现有的最先进模型,显示出其在处理视频数据时的竞争力。

  • 视频任务的优势:Magma在视频任务上的表现优于LongVA等模型,尽管其使用的视频和文本数据量较小。

预训练任务的影响
  • ToM的贡献:研究者的实验表明,ToM预训练任务有助于提高Magma在视频任务上的表现,特别是在动作预测和序列生成任务上。

讨论

该部分讨论了Magma模型的社会影响、局限性以及负责任的人工智能(Responsible AI)方面的考虑。

社会影响和局限性

为了开发一个具有语言和空间智能的多模态基础模型,能够处理数字和物理环境中的多样化任务,论文从广泛的图像、视频和机器人领域中整理了一个综合的预训练数据集。具体来说:

  • UI导航数据:使用了两个预训练数据集SeeClick和Vision2UI。

  • 教学视频:为了学习能够执行日常任务的智能体模型,论文编译了来自Epic Kitchen、Ego4d、Something-Something v2和其他教学视频的数据。

  • 机器人操作数据:遵循OpenVLA的方法,利用Open-X-Embodiment中的机器人数据。

  • 多模态理解数据:包括少量的多模态预训练数据ShareGPT4V,以及LLaVA-1.5和其他特定领域的指令调整数据,以保留预训练模型的通用多模态理解能力。

尽管如此,教学视频中的人物身份和活动分布并不代表全球人类人口和社会的多样性。意识到使用这些数据进行训练可能会引入无意的性别、种族和其他偏见。因此,论文将在发布模型时确保有必要的免责声明,并强调模型的使用场景和预期用途。

负责任的AI

  • 论文强调,模型专门设计用于在受控的Web UI和Android模拟器中进行UI导航,以及在机器人操作任务中使用。

  • 建议的使用场景应限于被训练的环境,即配备有机器人臂和日常物品的封闭环境,以及运行在计算机上的Android模拟器进行UI操作。

  • 对于UI导航任务,研究人员应确保人类始终在控制中,对智能体系统生成的每个动作进行监督。由于模型本身不能自行行动,研究人员使用的子模块在执行UI导航动作时应确保不会因执行模型提出的UI动作而导致意外后果。

  • 论文还提到,尽管模型在UI导航和机器人操作方面表现出色,但作为产品不可用于剥削性场景。恐怖威胁者可能将模型作为自动化UI导航的基础,利用特定的训练数据来针对特定恶意任务进行训练。这是与智能体模型相关的通用风险。

总结

  • 论文提出了Magma,第一个能够在数字和物理世界中理解和执行多模态输入的基础模型。

  • 通过引入SoM和ToM技术,Magma显著增强了时空智能,并在多个任务上取得了新的SOTA结果。

  • 该模型的训练数据集广泛且多样,涵盖了图像、视频和机器人领域的多种数据类型,确保了模型的泛化能力。

  • 总体而言,Magma为多模态AI智能体的发展提供了一个强大的基础模型。

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

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

相关文章

解决Docker Desktop启动后Docker Engine stopped问题

一、问题描述 当我们更新了Docker Desktop后,在重新打开就显示【Docker Engine stopped(Docker引擎已经停止)】,无法正常使用Docker,如下图所示: 二、问题分析 1、检查电脑主板的CPU是否开启虚拟化; 2、需检查Docker所需的功能是否开启; 3、检查WSL是否匹配; Docker的…

微信小程序:完善购物车功能,购物车主页面展示,详细页面展示效果

一、效果图 1、主页面 根据物品信息进行菜单分类,点击单项购物车图标添加至购物车,记录总购物车数量 2、购物车详情页 根据主页面选择的项,根据后台查询展示到页面,可进行多选,数量加减等 二、代码 1、主页面 页…

微服务学习(2):实现SpringAMQP对RabbitMQ的消息收发

目录 SpringAMQP是什么 为什么采用SpringAMQP SpringAMQP应用 准备springBoot工程 实现消息发送 SpringAMQP是什么 Spring AMQP是Spring框架下用于简化AMQP(高级消息队列协议)应用开发的一套工具集,主要针对RabbitMQ等消息中间件的集成…

echarts柱状图不是完全铺满容器,左右两边有空白

目录 处理前:echarts柱状图不是完全铺满容器,左右两边有空白处理前:通过调整 grid 组件配置处理后效果修改代码:1. 调整 grid 组件配置原理解决办法 2. 处理 xAxis 的 boundaryGap 属性原理解决办法 3. 调整 barMaxWidth 和 barMi…

【K8S】Kubernetes 基本架构、节点类型及运行流程详解(附架构图及流程图)

Kubernetes 架构 k8s 集群 多个 master node 多个 work nodeMaster 节点(主节点):负责集群的管理任务,包括调度容器、维护集群状态、监控集群、管理服务发现等。Worker 节点(工作节点):实际运…

千峰React:案例二

完成对html文档还有css的引入&#xff0c;引入一下数据&#xff1a; import { func } from prop-types import ./购物车样式.css import axios from axios import { useImmer } from use-immer import { useEffect } from reactfunction Item() {return (<li classNameacti…

C语言【指针篇】(四)

前言&#xff1a;正文1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 两段有趣的代码4.3.1 typedef关键字 5. 函数指针数组6. 转移表 总结 前言&am…

GitCode 助力 python-office:开启 Python 自动化办公新生态

项目仓库&#xff1a;https://gitcode.com/CoderWanFeng1/python-office 源于需求洞察&#xff0c;打造 Python 办公神器 项目作者程序员晚枫在运营拥有 14w 粉丝的 B 站账号 “Python 自动化办公社区” 时&#xff0c;敏锐察觉到非程序员群体对 Python 学习的强烈需求。在数字…

对话Stack Overflow,OceanBase CTO 杨传辉谈分布式数据库的“前世今生”

近日&#xff0c; OceanBase CTO 杨传辉受邀出席全球知名开发者论坛 Stack Overflow 的最新一期播客节目&#xff0c;与 Stack Overflow 高级内容创作官 Ryan Donovan 展开对话。双方围绕分布式数据库的可靠性、一致性保障、HTAP 架构以及 AI 时代分布式数据库的发展趋势等热点…

小结:计算机网路中的性能指标小结

发现B站的这套课程不错&#xff0c;开始学习并笔记之&#xff1a;计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;_哔哩哔哩_bilibili 1) 速率 2) 带宽 3) 吞吐量 带宽1 Gb/s的以太网&#xff0c;代表其额定速率是1 Gb/s&#xff0c;这个数值也…

seasms v9 注入漏洞 + order by注入+​information_schema​解决方法

目录 一、当注入时&#xff0c;information_schema被禁用的解决方法 1.通过sys库可以获取到表名和库名 2.通过无列名注入join获取列名 二、seasms v9 注入漏洞 三、order by注入 一、当注入时&#xff0c;information_schema被禁用的解决方法 information_schema数据库是My…

FFmpeg-chapter2-C++中的线程

1 常规的线程 一般常规的线程如下所示 // CMakeProject1.cpp: 定义应用程序的入口点。 //#include "CMakeProject1.h" #include <thread> using namespace std;void threadFunction(int index) {for (int i 0; i < 1000; i){std::cout << "Th…

【华三】从零开始掌握SR技术:原理、架构与应用全解析

【华三】从零开始掌握SR技术&#xff1a;原理、架构与应用全解析 一、初识SR&#xff1a;路由技术的新革命1.1 传统网络的困扰&#xff1a;从真实案例看技术瓶颈1.1.1 企业网络运维之痛问题2&#xff1a;流量工程实现困难问题3&#xff1a;网络智能化缺失 1.2 SR的诞生意义&…

CogBlobTool工具

CogBlobTool是一款专用于图像斑点检测于分析的 工具&#xff0c;通过灰度值阈值分割和特征过滤&#xff0c;帮助在复杂背景中提取目标区域&#xff0c;并计算几何属性。 效果图 注意&#xff1a;在这里只有一张图像可以不使用模板匹配工具 CogBlobTool工具的功能 斑点检测于…

大模型应用案例 | 大模型+金融运维,擎创携手某证券创新运维能力新范式

一、当大模型遇上金融运维&#xff1a;一场让告警处理“脱胎换骨”的变革 2022年底&#xff0c;ChatGPT的横空出世让AI技术彻底出圈&#xff1b;短短两年后&#xff0c;大模型已悄然潜入金融行业的“心脏地带”——运维系统。面对指数级暴增的告警信息、碎片化的处理流程&#…

Linux三种网络方式

前言 发现运维啥都得会&#xff0c;这周就遇到了网络问题自己无法解决&#xff0c;因此痛定思痛学一下。 参考文献 你管这破玩意叫网络&#xff1f; 桥接模式、NAT模式、仅主机模式&#xff0c;原来是这样工作的 交换机 构成局域网&#xff0c;实现所有设备之间的通信。 …

基于PHP和MySQL的用户登录注册系统实现

系统架构 系统采用前后端分离的架构&#xff0c;使用PHP作为后端语言&#xff0c;MySQL作为数据库。以下是系统的整体架构图&#xff1a; 这个架构图展示了系统的三个主要层次&#xff1a; 前端界面层&#xff1a;包含用户交互的三个页面&#xff08;注册、登录和欢迎页面&am…

脚本无法获取响应主体(原因:CORS Missing Allow Credentials)

背景&#xff1a; 前端的端口号8080&#xff0c;后端8000。需在前端向后端传一个参数&#xff0c;让后端访问数据库去检测此参数是否出现过。涉及跨域请求&#xff0c;一直有这个bug是404文件找不到。 在修改过程当中不小心删除了一段代码&#xff0c;出现了这个bug&#xff0…

【计网】计算机网络概述

第一章 计算机网络概述 1.2 因特网概述1.2.1 网络、互联网和因特网1.2.2 因特网发展的三个阶段1.2.3 因特网的标准化工作1.2.4 因特网的组成 1.3 三种交换方式1.3.1 电路交换1.3.2 分组交换1.3.3 报文交换1.3.4 三种交换的对比 1.4 计网的定义与分类1.4.1 定义1.4.2 分类 1.5 计…

前端依赖nrm镜像管理工具

npm 默认镜像 &#xff1a;https://registry.npmjs.org/ 1、安装 nrm npm install nrm --global2、查看镜像源列表 nrm ls3、测试当前环境下&#xff0c;哪个镜像源速度最快。 nrm test4、 切换镜像源 npm config get registry # 查看当前镜像源 nrm use taobao # 等价于 npm…