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

π0: A Vision-Language-Action Flow Model for General Robot Control

TL;DR

  • 2024 年 Physical Intelligence 发布的 VLA 模型 π0,基于 transformer + 流匹配(flow matching)架构,当前开源领域最强的 VLA 模型之一。

Paper name

π0: A Vision-Language-Action Flow Model for General Robot Control

Paper Reading Note

Paper URL:

  • https://www.physicalintelligence.company/download/pi0.pdf

Project URL:

  • https://www.physicalintelligence.company/blog/pi0

Introduction

背景

“一个人应该能换尿布、策划入侵、屠宰猪只、驾驶船只、设计建筑、写十四行诗、核对账目、砌墙、接骨、安慰垂死之人、服从命令、发号施令、协作、独立行动、解方程、分析新问题、铲粪、编程、做出美味饭菜、高效作战、英勇赴死。专业化,是昆虫的事。”
——罗伯特·海因莱因,《爱的时光足够长》

  • 在多样性这一维度上,人类智能远远超越了机器智能:也就是在不同物理环境中解决多样任务的能力,能根据环境限制、语言指令以及突发扰动作出智能反应
  • 然而,构建这样的通用机器人策略(即“机器人基础模型”)仍面临多项重大挑战:
    • 规模要求高:要实现预训练带来的全部优势,研究必须在大规模下进行
    • 模型架构合适:需开发能有效利用多源数据、同时能表达复杂交互行为的架构
    • 训练策略关键:如在自然语言与视觉模型中,许多进展都依赖于预训练和后训练阶段的数据精细策划

本文方案

  • 提出一个原型模型及其学习框架,称为 π₀(Pi-zero),展示如何应对上述三大瓶颈
    • 规模
      • 首先使用预训练视觉语言模型(VLM)训练视觉-语言-动作(VLA)模型,引入互联网上规模级的经验
      • 跨具身训练(cross-embodiment training),将来自单臂、双臂、移动操作器等多种机器人平台的数据整合在一个模型中
    • 模型架构
      • 基于流匹配(flow matching,一种扩散模型变体)的动作分块(action chunking)架构,可支持高达 50 Hz 的控制频率
    • 训练策略
      • 预训练/后训练两阶段结构。先在多样大数据上预训练,再用高质量数据微调,从而达到所需的精细控制能力。
        在这里插入图片描述

通过超过一万小时的机器人数据进行预训练,并在多个精细任务中进行微调,包括叠衣服(图2)、清理餐桌、放置餐具、装蛋、组装纸盒和打包购物物品。
在这里插入图片描述

Methods

网络架构

  • π0 模型如图 3 所示,主要由语言模型的 Transformer 主干构成。
    • 根据标准的后融合视觉语言模型(VLM)方案,图像编码器将机器人的图像观测嵌入到与语言标记相同的嵌入空间中。
    • 进一步在此主干基础上增加了特定于机器人任务的输入与输出——即本体感知状态和机器人动作。π0 使用条件流匹配(Conditional Flow Matching)来建模动作的连续分布。流匹配使模型具有高精度和多模态建模能力,特别适合高频率的精细操作任务。
      在这里插入图片描述

架构灵感来源于 Transfusion,该方法通过多个目标训练一个单一的 Transformer,利用流匹配损失监督连续输出的标记,使用交叉熵损失监督离散输出的标记。在此基础上,我们发现对机器人特定的动作与状态标记使用独立的一套权重会提升性能。这种设计类似于专家混合模型(Mixture of Experts)的两专家结构:第一专家处理图像和文本输入,第二专家处理与机器人相关的输入与输出。我们将第二组权重称为“动作专家”。

训练目标

形式上,我们要建模的数据分布为 p ( A t ∣ o t ) p(A_t | o_t) p(Atot),其中 A t = [ a t , a t + 1 , . . . , a t + H − 1 ] A_t = [a_t, a_{t+1}, ..., a_{t+H-1}] At=[at,at+1,...,at+H1] 是未来动作的一个动作块(在我们的任务中,H = 50),而 o t o_t ot 是观测。观测包括多张RGB图像、一个语言指令和机器人的本体感知状态,即
o t = [ I t 1 , . . . , I t n , ℓ t , q t ] o_t = [I^1_t, ..., I^n_t, \ell_t, q_t] ot=[It1,...,Itn,t,qt]
其中 I t i I^i_t Iti 是第 i i i 张图像(每个机器人有 2 或 3 张图像), ℓ t \ell_t t 是语言标记序列, q t q_t qt 是关节角度向量。图像 I t i I^i_t Iti 和状态 q t q_t qt 经过对应的编码器,并通过线性投影映射到与语言标记相同的嵌入空间中。

对于动作块 A t A_t At 中的每个动作 a t ′ a'_t at,我们都有一个对应的动作标记,通过“动作专家”进行处理。训练期间,这些动作标记通过条件流匹配损失进行监督:

L τ ( θ ) = E p ( A t ∣ o t ) , q ( A t τ ∣ A t ) ∥ v θ ( A t τ , o t ) − u ( A t τ ∣ A t ) ∥ 2 L_\tau (\theta) = \mathbb{E}_{p(A_t | o_t), q(A^\tau_t | A_t)} \left\| v_\theta (A^\tau_t, o_t) - u(A^\tau_t | A_t) \right\|^2 Lτ(θ)=Ep(Atot),q(AtτAt)vθ(Atτ,ot)u(AtτAt)2

其中下标表示机器人时间步,上标表示流匹配时间步, τ ∈ [ 0 , 1 ] \tau \in [0, 1] τ[0,1]

近期在高分辨率图像和视频合成中的研究表明,当与简单的线性高斯路径(或最优传输路径)联合使用时,流匹配可获得优异的经验性能。此概率路径形式为:

q ( A t τ ∣ A t ) = N ( τ A t , ( 1 − τ ) I ) q(A^\tau_t | A_t) = \mathcal{N}(\tau A_t, (1 - \tau)I) q(AtτAt)=N(τAt,(1τ)I)

实际中,网络通过以下方式训练:采样随机噪声 ε ∼ N ( 0 , I ) \varepsilon \sim \mathcal{N}(0, I) εN(0,I),计算“加噪动作”

A t τ = τ A t + ( 1 − τ ) ε A^\tau_t = \tau A_t + (1 - \tau) \varepsilon Atτ=τAt+(1τ)ε

并训练网络输出 v θ ( A t τ , o t ) v_\theta (A^\tau_t, o_t) vθ(Atτ,ot) 来匹配去噪向量场

u ( A t τ ∣ A t ) = ε − A t u(A^\tau_t | A_t) = \varepsilon - A_t u(AtτAt)=εAt

“动作专家”采用全双向注意力掩码,确保所有动作标记之间可以相互注意。在训练中,我们从一个偏向低值(即更嘈杂时间步)的 Beta 分布中采样 τ \tau τ

推理

在推理阶段,我们通过将学习到的向量场从 τ = 0 \tau=0 τ=0 积分到 τ = 1 \tau=1 τ=1 来生成动作,起始为随机噪声 A t 0 ∼ N ( 0 , I ) A^0_t \sim \mathcal{N}(0, I) At0N(0,I)。我们使用前向欧拉积分规则:

A t τ + δ = A t τ + δ v θ ( A t τ , o t ) A^{\tau + \delta}_t = A^\tau_t + \delta v_\theta(A^\tau_t, o_t) Atτ+δ=Atτ+δvθ(Atτ,ot)

其中 δ \delta δ 是积分步长,我们实验中使用10个积分步(即 δ = 0.1 \delta = 0.1 δ=0.1)。值得注意的是,推理过程可高效实现——可缓存前缀 o t o_t ot 的注意力键和值,仅需在每个积分步重新计算与动作标记相关的后缀部分。

模型细节

虽然理论上该模型可从头训练或从任意 VLM 主干微调,实践中我们使用 PaliGemma 作为基础模型。PaliGemma 是一个开源的 30 亿参数的 VLM,在规模与性能之间实现了良好平衡。我们为“动作专家”额外添加了 3 亿参数(从头初始化),使总参数量达到 33 亿。

非VLM对照模型。 除了主模型外,我们还训练了一个未使用 VLM 初始化的类似对照模型,用于消融实验。我们称之为 π0-small,其参数量为 4.7 亿,未采用VLM初始化,并针对非 VLM 初始化情境在结构上做了一些小改动,帮助更好地在我们的数据上进行训练。该模型用于评估使用 VLM 初始化带来的收益。

数据收集与训练方案

  • 预训练的目标是让模型接触到多样化的任务,从而习得通用的物理能力;而后训练的目标则是让模型能够熟练地完成具体的下游任务。预训练与后训练阶段所需的数据具有不同特点:

    • 预训练数据集应覆盖尽可能多的任务,并且在每个任务内包含多种行为方式;
    • 后训练数据集则应着重于高质量、流畅、连贯的策略表现,能够有效支持目标任务的执行。
  • 图4中展示了预训练数据混合概况。

    • 开源数据占预训练数据的 9.1%,包括 OXE、Bridge v2 和 DROID
    • 我们自建的数据集占据 9.03 亿时间步
      • 其中 1.06 亿步来自单臂机器人,
      • 7.97 亿步来自双臂机器人。
      • 总共包含 68 个任务,任务设计复杂。例如,“bussing”(收拾桌面)任务涉及将多种餐具、杯子和餐盘放入清理桶,同时将不同种类的垃圾丢入垃圾桶。

在这里插入图片描述

  • 训练配置
    • 动作向量 a t a_t at 和机器人配置向量 q t q_t qt​ 的维度固定为数据集中最大机器人维度(18 维),以容纳两个 6 自由度机械臂、两个夹爪、一个移动底座和一个升降躯干。
    • 对低维度的机器人,我们进行零填充;
    • 若图像数量少于3张,也对缺失图像位进行遮罩。
后训练(任务特化)

后训练阶段使用规模较小、与具体任务相关的数据集对模型进行微调,以便其专精于下游应用。不同任务对数据需求不同,从最简单任务仅需约 5小时数据,到复杂任务可能需要 100小时或以上。

语言与高层策略

对于如“清理桌面”这类需要语义推理和策略规划的复杂任务,我们引入高层策略(high-level policy)对任务进行分解(如将“清理桌面”分解为“捡起餐巾纸”“扔进垃圾桶”等子任务)。由于模型本身支持语言输入,我们可以使用高层VLM模型进行语义推理,其方法类似于 SayCan 等LLM/VLM规划系统。

机器人系统
  • 精细操作数据集包含 7 种机器人配置,涵盖 68 个任务
    在这里插入图片描述
机器人类型配置描述
UR5e单臂,7自由度,带夹爪。配有一个腕部摄像头和一个肩部摄像头(共2张图像)。配置与动作空间维度为7。
Bimanual UR5e两个UR5e机械臂,三张图像,配置与动作空间为14维。
Franka单臂,8维配置与动作空间,配有2张图像。
Bimanual Trossen2个6自由度的Trossen ViperX机械臂,ALOHA架构,配有两个腕部摄像头和一个底部摄像头,14维配置与动作空间。
Bimanual ARX & AgileX2个6自由度机械臂(ARX或AgileX),三张图像,14维空间。因运动学相似归为同一类。
Mobile Trossen & ARXMobile ALOHA平台,2个6自由度机械臂(ARX或Trossen ViperX),配移动底座(增加2维动作),总共14维配置 + 16维动作。3张图像。
Mobile Fibocom2个6自由度ARX机械臂,带全向移动底座,底座增加3个自由度(2平移 + 1旋转),总共14维配置 + 17维动作。

数据集比例中看起来是 Bimanual ARX 占了大头

Experiments

基础模型测试(开箱即用)

  • 与以下模型对比:
    • OpenVLA:7B参数,训练于OXE。
    • Octo:93M参数,基于扩散模型生成动作。
    • π0-small:未进行VLM初始化的小模型。
    • π0 parity:使用与baseline相同训练步数的π0版本(160k步)。
    • OpenVLA-UR5e:仅在UR5e任务上精调过的版本。

在这里插入图片描述

  • 图7显示,即使是 parity 版本的 π0 也显著优于所有 baseline,完整训练的 π0 则有压倒性优势。OpenVLA 因不支持动作块(action chunk)而效果不佳;Octo 表现稍好但表示能力有限
    在这里插入图片描述
跟随语言指令

评估 π0 与 π0-small 在语言指令下的跟随能力,任务包括:

  • 清理桌面
  • 摆放餐具
  • 杂货打包
    在这里插入图片描述

我们设置三种提示条件:

  • flat:只给出整体任务指令
  • human:中间步骤由人工专家提供(如“拿起餐巾纸并扔进垃圾桶”)
  • HL:由高层 VLM 策略生成中间语言指令

结果如图9所示:π0 明显优于 π0-small,特别是在 human 和 HL 条件下。说明 VLM 预训练显著增强了语言理解与自主任务执行能力。
在这里插入图片描述

学习全新精细操作任务
任务名称描述难度
叠碗(UR5e)叠放不同尺寸碗
叠毛巾与叠T恤相似
放保鲜盒进微波炉包含新对象“微波炉”
更换纸巾卷无预训练相似经验
抽屉收纳(Franka)打开/关闭抽屉并整理物品

比较以下方法:

  • π0(预训练+精调)
  • π0 从头训练
  • OpenVLA
  • Octo
  • ACT 与 Diffusion Policy(专为小数据精细操作任务设计)

结果如图11:π0 在所有任务上整体表现最佳,尤其在预训练任务相似的场景中效果显著。对于如“保鲜盒微波炉”这类任务,π0在仅1小时训练下即可大幅优于其他方法。
在这里插入图片描述

  • 微调还是能带来很大提升
    在这里插入图片描述

Conclusion

  • 提出了 π0 的训练框架,通过海量预训练和精调,可执行多阶段、需要策略与精细操作的任务。其关键特点包括:
    • 结合 Internet 规模的 VLM 预训练与流匹配方法表达高频动作块;
    • 使用超过 1 万小时数据、涵盖 7 种机器人配置与 68 个任务;
    • 精调覆盖 20 多个任务,超越多种现有方法;
    • 类似 LLM 的训练流程,预训练提供知识,精调对齐模型策略。

相关文章:

π0: A Vision-Language-Action Flow Model for General Robot Control

TL;DR 2024 年 Physical Intelligence 发布的 VLA 模型 π0,基于 transformer 流匹配(flow matching)架构,当前开源领域最强的 VLA 模型之一。 Paper name π0: A Vision-Language-Action Flow Model for General Robot Contr…...

RabbitMQ高级篇-MQ的可靠性

目录 MQ的可靠性 1.如何设置数据持久化 1.1.交换机持久化 1.2.队列持久化 1.3.消息持久化 2.消息持久化 队列持久化: 消息持久化: 3.非消息持久化 非持久化队列: 非持久化消息: 4.消息的存储机制 4.1持久化消息&…...

4、前后端联调文生文、文生图事件

4、前后端联调文生文、文生图事件 原文地址 1、底部【发送按钮】事件触发调用后端AI程序逻辑 <!-- 前端模板如下: --> <!DOCTYPE html> <html><head><meta charset"utf-8"><title>小薛博客LLM大模型实战</title><me…...

深度学习中的提示词优化:梯度下降全解析

深度学习中的提示词优化:梯度下降全解析 在您的代码中,提示词的更新方向是通过梯度下降算法确定的,这是深度学习中最基本的优化方法。 一、梯度下降与更新方向 1. 核心公式 对于可训练参数 θ \theta θ(这里是提示词嵌入向量),梯度下降的更新公式为:...

Midjourney 最佳创作思路与实战技巧深度解析【附提示词与学习资料包下载】

引言 在人工智能图像生成领域&#xff0c;Midjourney 凭借其强大的艺术表现力和灵活的创作模式&#xff0c;已成为设计师、艺术家和创意工作者的核心工具。作为 CSDN 博主 “小正太浩二”&#xff0c;我将结合多年实战经验&#xff0c;系统分享 Midjourney 的创作方法论&#x…...

【数字图像处理】半开卷复习提纲

1&#xff1a;要求 2张A4纸以内&#xff0c;正反面均可写 &#xff08;不过博主由于墨水浸到背面了&#xff0c;采用了把2张单面通过双面胶粘起来的方法&#xff0c;结果考前半个小时都在用这个难用的双面胶。。。&#xff09; 2&#xff1a;提纲内容 3&#xff1a;提示 考的…...

交通运输与能源融合发展——光储充在交通上的应用完整解决方案

在全球积极应对气候变化、推动可持续发展的大背景下&#xff0c;交通运输与能源领域的融合发展成为关键趋势。近日&#xff0c;交通运输部等十部门联合发布的《关于推动交通运输与能源融合发展的指导意见》&#xff0c;为这两个重要行业的协同前行指明了清晰的方向&#xff0c;…...

API 接口开放平台 Crabc 3.2 发布

2025 年 5 月 15 日&#xff0c;API 接口开放平台 Crabc 3.2 发布。 Crabc 是一款 API 接口开发平台、企业级接口管理和 SQL2API 平台。它支持动态数据源、动态 SQL 和标签&#xff0c;能接入多种 SQL 或 NoSQL 数据源&#xff0c;包括 MySQL、Oracle、达梦、TiDB、Hive、ES 和…...

基于智能推荐的就业平台的设计与实现(招聘系统)(SpringBoot Thymeleaf)+文档

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

【web应用】配置Java JDK与maven3的环境变量

文章目录 一、控制面板 - 系统 - 高级系统设置-环境变量二、用户变量和系统变量的配置方法一样&#xff1a;三、查看是否配置成功 maven有两种安装方式&#xff1a; 1、IDEA捆绑安装&#xff0c;一般是maven3【这里配置的环境变量是捆绑安装这种方式】 2、手动下载安装插件 一、…...

编程日志5.7

二叉树的功能代码 #include<iostream> using namespace std; //二叉树结点定义 template<typename T> struct TreeNode { T val;//定义了一个类型为T的成员变量val,用于存储树节点的值 TreeNode* left;//定义了一个指向TreeNode类型的指针成员变量left,…...

室内定位:热门研究方向与未解难题深度解析

I. 引言:对普适性室内定位的持续探索 A. 室内定位在现代应用中的重要性 室内定位系统(IPS)正迅速成为众多应用领域的基石技术,其重要性源于现代社会人们约70%至90%的时间在室内度过的事实 1。这些应用横跨多个行业,包括应急响应 1、智能建筑与智慧城市 6、医疗健康(如病…...

图片通过滑块小图切换大图放大镜效果显示

图片通过滑块小图切换大图放大镜效果显示 实现目标&#xff1a; 显示一组图片列表&#xff0c;鼠标进入小图记录当下小图下标&#xff0c;通过小图下标在数组中对应图片显示到大图位置&#xff1b; 鼠标进入大图位置时&#xff0c;带动滑块移动&#xff0c;并将放大两倍的大图…...

[250515] 腾讯推出 AI 编程助手 CodeBuddy,对标 Cursor

目录 腾讯推出 AI 编程助手 CodeBuddy 腾讯推出 AI 编程助手 CodeBuddy 腾讯发布 CodeBuddy&#xff0c;一款 AI 编程助手&#xff0c;旨在提升开发者效率。 主要亮点&#xff1a; CodeBuddy&#xff1a; 全新英文品牌&#xff0c;面向全球开发者。Craft 模式&#xff1a; A…...

OpenCV光流估计:原理、实现与应用

一、什么是光流&#xff1f; 光流(Optical Flow)是计算机视觉中描述图像序列中像素运动模式的重要概念。它表示图像中物体在连续帧之间的表观运动&#xff0c;是由物体或相机的运动引起的。 光流的基本假设 亮度恒常性&#xff1a;同一物体点在连续帧中的亮度保持不变时间持…...

使用 QGIS 插件 OpenTopography DEM Downloader 下载高程数据(申请key教程)

使用 QGIS 插件 OpenTopography DEM Downloader 下载高程数据 目录 使用 QGIS 插件 OpenTopography DEM Downloader 下载高程数据&#x1f4cc; 简介&#x1f6e0; 插件安装方法&#x1f30d; 下载 DEM 数据步骤&#x1f511; 注册 OpenTopography 账号&#xff08;如使用 Cope…...

PHP基础知识

【学习资料】 视频&#xff1a; https://www.bilibili.com/video/BV1Xh411S7G1?spm_id_from333.788.videopod.episodes&vd_sourcebe26b82da70367069ab00d6db4f4ffc0 文档&#xff1a;https://www.runoob.com/php/php-tutorial.html 目录 1&#xff0c;PHP是什么2&#xff…...

Kotlin 和 Java 混合开发时需要注意哪些问题

1 空安全&#xff08;Null Safety&#xff09; Kotlin 有严格的空安全机制&#xff08;如非空类型的 String 和可空类型 String?&#xff09;&#xff0c;但是 Java 没有&#xff1a; Kotlin 代码调用 Java 代码&#xff1a;Java 中的所有引用类型默认都是可空的&#xff0c…...

乘法口诀练习神器

请你利用python语言开发一个“乘法口诀练习神器”&#xff0c;主要辅助小学生练习乘法口诀&#xff0c;主要功能如下&#xff1a; 1. 能够随机循环出10道题&#xff0c;可以是乘法或者是除法。如果是乘法&#xff0c;确保两个因数都是1-9之间的整数&#xff1b;如果是除法&…...

How to configure Linux mint desktop

Backgrounds apt install mint-backgrounds-*Theme...

【golang】DNS 资源记录(RR)接口

Go 中 miekg/dns 包对 DNS 资源记录&#xff08;RR&#xff09;接口 的定义&#xff1a; type RR interface {Header() *RR_HeaderString() stringcopy() RRlen(off int, compression map[string]struct{}) intpack(...)unpack(...)parse(...)isDuplicate(r2 RR) bool }这个接…...

Vue中的自定义指令适用于哪些场景

自定义指令在 Vue 中非常灵活且功能强大&#xff0c;它们可以在多种场景中使用&#xff0c;以实现特定的 DOM 操作或行为 自定义样式和类 自定义指令可以用来动态地添加或修改元素的样式和类。这在需要根据数据动态调整样式时非常有用。 <div id"app"><d…...

边缘计算平台

本文来源 &#xff1a; 腾讯元宝 边缘计算平台是一种在靠近数据源头的网络边缘侧部署的分布式计算架构&#xff0c;通过融合网络、计算、存储和应用核心能力&#xff0c;就近提供实时、低延迟的智能服务。以下是其核心要点&#xff1a; ​​1. 定义与特点​​ ​​定义​​&a…...

2025年5月H12-831新增题库带解析

组播基础 以下关于PIM-SM(SSM)的描述&#xff0c;错误的是哪一项? PIM-SM(SSM)无需维护RPPIM-SM(SSM)模型形成的组播分发树会一直存在&#xff0c;不会因为没有组播流量而消失PIM-SM(SSM)可以在成员端DR上基于组播源地址直接反向建立SPT在PIM-SM(SSM)中依日需要注册组播源 答…...

JavaScript - 运算符之逗号操作符与逗号分隔符(逗号操作符概述、逗号操作符用法、逗号分隔符、逗号分隔符用法)

一、逗号操作符概述 【表达式 1】, 【表达式 2】, 【表达式 3】, ..., 【表达式 N】逗号操作符&#xff08;,&#xff09;允许在一个语句中从左到右执行多个表达式&#xff0c;并返回最后一个表达式的值 二、逗号操作符用法 for 循环中的多变量控制 for (let i 0, j 10; i…...

AM1.5G太阳光模拟器参数

AM1.5G太阳光模拟器的参数通常包括光谱匹配度、空间均匀性、时间稳定性等关键指标&#xff0c;这些参数对于太阳能电池的测试和校准至关重要。以下是AM1.5G太阳光模拟器的主要参数&#xff1a; 光谱匹配度 AM1.5G光谱是指大气质量为1.5时&#xff0c;太阳光在地球表面的光谱分…...

YOLO11解决方案之距离计算探索

概述 Ultralytics提供了一系列的解决方案&#xff0c;利用YOLO11解决现实世界的问题&#xff0c;包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。 测量两个物体之间的间距被称为特定空间内的距离计算&#xff0c;YOLO11使用两个边界框的中心…...

OkHttp用法-Java调用http服务

特点&#xff1a;高性能&#xff0c;支持异步请求&#xff0c;连接池优化 官方文档&#xff1a;提供快速入门指南和高级功能&#xff08;如拦截器、连接池&#xff09;的详细说明&#xff0c;GitHub仓库包含丰富示例。 社区资源&#xff1a;中文教程丰富&#xff0c;GitHub高…...

c/c++中程序内存区域的划分

c/c程序内存分配的几个区域&#xff1a; 1.栈区&#xff1a;在执行函数时&#xff0c;函数内局部变量的存储单元都可以在栈上创建&#xff0c;函数执行结束时这些存储单元自动被释放&#xff0c;栈内存分配运算内置于处理器的指令集中&#xff0c;效率很高但是分配的内存容量有…...

‌JMeter聚合报告中的任务数和并发数区别

‌JMeter聚合报告中的任务数和并发数有本质的区别。‌ 任务数&#xff08;样本数&#xff09; 任务数或样本数是指在性能测试中发出的请求数量。例如&#xff0c;如果模拟20个用户&#xff0c;每个用户发送100次请求&#xff0c;那么总的任务数或样本数就是2000次请求‌ 并发…...

70、微服务保姆教程(十三)Docker容器详细讲义

一、关于Docker 1.1为什么要用docker? 随着开发的项目越来越复杂,软件越来越多,服务器越来越多,我们在开发和部署的时候会遇到很多问题,比如: 1.不同的应用程序可能会有不同的应用环境,比如Java开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都…...

2025年5月-信息系统项目管理师高级-软考高项-成本计算题

成本计算题挣值分析、成本计算题如何学?1、PV&#xff0c;EV&#xff0c;AC需要理解&#xff0c;根据题目给出的一些个条件需要求得这些值;2、CV&#xff0c;SV&#xff0c;CPI&#xff0c;SPI公式必须记住&#xff0c;需要根据求得的值判断项目的进度和成本的执行情况&#x…...

【BotSharp详细介绍——一步步实现MCP+LLM的聊天问答实例】

BotSharp详细介绍——一步步实现MCPLLM的聊天问答实例 一、MCP原理介绍二、创建BotSharp的项目&#xff0c;实现LLM推理机器人1、新建一个 解决方案&#xff0c;结构如下&#xff1a;2、先看下 MyWeatherPlugin3、创建MyWeatherMcpAPI 三、创建 MCP Server1、添加引用2、添加工…...

[Linux性能优化] 线程卡顿优化。Linux加入USB(HID)热插拔线程占用CPU优化。Linux中CPU使用率过高优化

文章目录 [Linux性能优化] 线程卡顿优化。一、问题定位&#xff1a;CPU 资源分析二、线程卡顿现场复现线程优化前图片线程优化后图片 [Linux性能优化] 线程卡顿优化。 一、问题定位&#xff1a;CPU 资源分析 线程卡顿通常与 CPU 资源竞争、线程调度异常相关&#xff0c;第一步…...

鸿蒙OSUniApp 开发的文件上传与下载功能#三方框架 #Uniapp

使用 UniApp 开发的文件上传与下载功能 前言 在移动应用开发中&#xff0c;文件上传与下载是非常常见且重要的功能需求。无论是上传用户头像、提交表单附件&#xff0c;还是下载资源文件、缓存图片&#xff0c;这些需求几乎存在于每一个成熟的应用中。UniApp 作为一个跨平台开…...

【MySQL】基础知识

MySQL(一)基础知识 MySQL 一、结构 1.客户端 2.服务器 分布式系统 二、存储 1.空间 1.1内存 1.1.1速度 1.1.2稳定性 1.1.3大小 1.1.4使用 1.2硬盘 1.2.1速度 1.2.2稳定性 1.2.3大小 1.2.4【Java学习】反射-CSDN博客 2.体系 表-数据库-服务器 3.特点 3.1…...

产品销量数据爬虫通用模板

最近遇到各行各业的需要爬取销售数据&#xff0c;每次写一个教程相对麻烦&#xff0c;所以思前考后我还是觉得写一个通用模板更适合。所以模板需要足够的灵活性&#xff0c;让用户能够自定义选择器。比如&#xff0c;产品标题、价格、销量的CSS选择器可能因网站而异&#xff0c…...

一文讲透 Vue3 + Three.js 材质属性之皮革篇【扫盲篇】

文章目录 前言一、Three.js材质系统基础1.1 为什么选择PBR材质&#xff1f;1.2 关键参数解析 二、不同类型皮革的材质配置2.1 牛皮材质实现2.2 羊皮材质实现2.3 仿皮材质实现 三、高级贴图技术3.1 贴图制作流程3.2 组合贴图实战 四、性能优化策略4.1 贴图压缩技术4.2 材质共享4…...

mysql读写分离

一、读写分离原理 客户端连接代理层&#xff0c;代理层&#xff08;中间件&#xff09;来实现读操作给从服务器&#xff0c;写操作给主服务器。 二、示例 mycat实现读写分离 读写分离在主从复制的基础上 1客户机1代理1主2从1、网络主 192.168.10.101从1 192.168.10.102从2 …...

Java集合框架

集合 概念&#xff1a;对象的容器&#xff0c;定义了对多个对象进行操作的常用方法。可实现数组的功能 和数组的区别 数组长度固定&#xff0c;集合长度不固定 数组可以存储基本类型和引用类型&#xff0c;集合只能存储引用类型 位置&#xff1a;java.util.* Collection体…...

salesforce如何导出所有字段

在 Salesforce 中&#xff0c;导出所有字段信息&#xff08;包括字段名、API 名、字段类型、是否可报表、是否可搜索等&#xff09;通常不是一个“一键完成”的操作&#xff0c;但可以通过几种方法实现。以下是常用的几种方法&#xff1a; ✅ 方法一&#xff1a;使用 Salesforc…...

一招解决Tailwindcss4.x与其他库样式冲突问题

当项目中引入tailwindcss&#xff0c;并与其他UI库混用时&#xff0c;可能会出现样式冲突问题&#xff0c;因为tailwindcss重置了一些基础样式&#xff0c;例如&#xff1a;引入tailwindcss后&#xff0c;原生button按钮没有了默认的样式。 在老版本中解决这个问题&#xff0c…...

[Harmony]封装一个可视化的数据持久化工具

1.添加权限 在module.json5文件中添加权限 // 声明应用需要请求的权限列表 "requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC", // 权限名称&#xff1a;分布式数据同步权限"reason": "$string:distrib…...

关于AI人工智能的知识图谱简介

人工智能是计算机科学的一个重要领域&#xff0c;旨在理解和构建智能行为。人工智能可以被划分为多个子领域或分支&#xff0c;包括机器学习、深度学习、自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;、计算机视觉&#xff08;Computer Vis…...

uniapp,小程序中实现文本“展开/收起“功能的最佳实践

文章目录 示例需求分析实现思路代码实现1. HTML结构2. 数据管理3. 展开/收起逻辑4. CSS样式 优化技巧1. 性能优化2. 防止事件冒泡3. 列表更新处理 实际效果总结 在移动端应用开发中&#xff0c;文本内容的"展开/收起"功能是提升用户体验的常见设计。当列表项中包含大…...

RabbitMQ 消息模式实战:从简单队列到复杂路由(一)

RabbitMQ 初相识 在当今分布式系统大行其道的技术领域中&#xff0c;消息队列作为实现系统间异步通信、解耦以及流量削峰的关键组件&#xff0c;发挥着不可或缺的作用。而 RabbitMQ&#xff0c;无疑是消息队列领域中一颗耀眼的明星。自 2007 年诞生以来&#xff0c;RabbitMQ 凭…...

阿里云ECS部署Dify

一&#xff1a;在ECS上面安装Docker 关防火墙 sudo systemctl stop firewalld 检查防火墙状态 systemctl status firewalld sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里镜像源&#xff0c;安装并启动docker [base] nameCentOS-$releas…...

Missashe考研日记—Day37-Day43

Missashe考研日记—Day37-Day43 写在面前 本系列博客用于记录博主一周的学习进度&#xff0c;具体知识总结在目前已有的笔记中&#xff1a; 1.高数强化学习笔记2.计网复习笔记 本周五到周日有其他安排&#xff0c;所以今天就把这一周的先更新了。 专业课408 这周学了计网的…...

DB-GPT扩展自定义app配置说明

简介 文章主要介绍了如何扩展一个自定义app插件&#xff0c;这里先看下生成效果&#xff0c;生成的内容其实还是有问题的&#xff0c;后续博主会调整提示词看看能不能优化生成效果 修改代码 代码详情 # chat_di是从chat_normal复制过来的&#xff0c;这里只改了提示词 from d…...

2025年11月软考各科目难度及适合人群分析

2025上半年软考考试报名已结束&#xff0c;不少小伙伴已经在咨询下半年的考试科目了&#xff0c;今天就给大家推荐几个好考的科目。 一、2025下半年软考考试科目 2025下半年软考考试时间为11月8日至11日。 根据计考办发布的《关于2025年度计算机技术与软件专业技术资格&…...