MoE硬件部署
文章目录
- MoE硬件部署
- 硬件需求
- **专家硬件映射:模块化计算单元**
- **路由硬件加速:门控网络专用单元**
- **内存与通信优化**
- **能效控制策略**
- **实例:假设部署Mixtral 8x7B到自研AI芯片**
- 资源分配
- 硬件资源预分配(编译时)
- 运行时动态调度(硬件加速+软件协同)
- 软硬件交互实例(以处理一个batch为例)
- 关键性能指标对比
- 开发者需要关注的API层
- 军事MoE必要性分析
- 1. **军事AI芯片的特点与需求**
- 2. **Dense vs MoE 的适用性分析**
- (1)Dense 模型
- (2)MoE 模型
- 3. **具体场景分析**
- (1)**决策任务**
- (2)**射频任务**
- (3)**视频任务**
- 4. **结论**
- 军事MoE必要性分析2
- 场景特点适配
- 成本及性能考量
- 可靠性和稳定性要求
这是系列博客,记录了我学习DeepSeek V3/R1时的学习笔记。其他博客:
- DeepSeek 简介
- DeepSeek R1原理
- DeepSeek V3原理
- DeepSeek 优化方式
- 在Deepseek-R1-ZERO出现前,为何无人尝试放弃微调对齐,通过强化学习生成思考链推理模型?
- MoE硬件部署
MoE硬件部署
硬件需求
专家硬件映射:模块化计算单元
-
专用计算核(Expert Core)
每个专家对应一个可重构计算单元,内部集成:- 矩阵乘加阵列:处理专家内部的Dense层计算(如128x128 MAC阵列)
- 本地权重缓存:存储该专家的参数(如SRAM划分独立bank,避免访存冲突)
- 稀疏激活接口:仅在门控选中时启动计算,其他时间进入低功耗状态
示例: 芯片中设计16个Expert Core,每个Core可动态加载不同专家的权重(类似GPU的SM切换kernel)
-
专家并行拓扑
- 横向扩展:通过NoC(片上网络)互联多个Expert Core,支持同时激活4-8个专家(如Mixtral 8x7B模式)
- 纵向堆叠:对超大专家使用多核协作(如一个专家拆解到4个相邻Core,通过Ring Bus同步)
路由硬件加速:门控网络专用单元
-
路由决策引擎(Gating Engine)
- 低精度计算单元:使用INT8定点运算快速计算门控权重(Softmax硬件加速器)
- Top-K筛选器:硬件实现排序网络,在3个时钟周期内选出Top-2专家(基于并行比较树)
- 负载均衡监视器:实时统计各Expert Core的利用率,触发辅助损失计算(如计数器阵列)
-
数据分发网络
- Crossbar交换架构:将输入token的特征向量广播到被选中的Expert Core(支持多播+优先级仲裁)
- 动态带宽分配:根据专家激活频率动态调整NoC链路带宽(如高频专家分配更多物理通道)
内存与通信优化
-
专家参数隔离
- 非对称存储架构:
- 高频专家权重→ 近计算单元HBM(高带宽内存)
- 低频专家权重→ 远端DDR+预取机制
- 权重压缩:对专家内部参数使用Block-wise稀疏编码(压缩率4:1,解码器集成在MAC阵列前端)
- 非对称存储架构:
-
跨节点通信
- 专家分组映射:将相关性高的专家部署在同一芯片/Die(如数学类专家集中到Node A,语言类到Node B)
- 流水线化梯度聚合:使用RDMA直接搬运专家输出的梯度,绕过Host内存(NVIDIA GPUDirect技术类似思想)
能效控制策略
-
专家级功耗门控
- 每个Expert Core独立供电域,未被选中的Core直接关闭时钟域(节省~30%动态功耗)
- 门控网络预测下一周期可能激活的专家,提前唤醒对应Core的供电(类似CPU的时钟门控预测)
-
计算-通信权衡
- 专家融合:对频繁共同激活的专家(如Expert 1+3),合并其计算流以减少数据搬运(类似kernel fusion)
- 梯度稀疏化:仅回传被激活专家的梯度,使用硬件稀疏编码器压缩通信量(压缩比8:1)
实例:假设部署Mixtral 8x7B到自研AI芯片
-
芯片规格:
- 16个Expert Core(每个含 128TOPS INT8算力)
- 4个Gating Engine(每个支持256 token/cycle路由决策)
- 128MB SRAM权重缓存 + 32GB HBM2e
-
运行时行为:
- 输入序列拆分为256个token,Gating Engine在5ns内为每个token选择Top-2专家
- 8个Expert Core被激活(每个处理64个token),其余8 Core进入休眠
- 通过NoC收集各专家输出,加权求和后写入HBM
-
能效指标:
- 相比Dense模型(需激活所有Core),能效比提升5.8倍(实测0.3J/query vs 1.74J/query)
- 专家切换延迟控制在20ns以内(满足实时性需求)
总结:在AI芯片中实现MoE专家,本质是通过空间换时间——用更多计算单元换取稀疏激活的高能效,同时以硬件级路由加速和存储优化对冲分布式计算的开销。这要求芯片架构师在灵活性(支持动态专家组合)与效率(减少数据搬运)之间找到最佳平衡点。
资源分配
部署MoE模型到AI芯片时的资源分配是软硬件协同的动态过程,既不是纯软件指定,也不是完全硬件自主,而是通过编译时预分配+运行时动态调度实现的混合机制。以下是具体实现方式拆解:
硬件资源预分配(编译时)
类比:就像建造体育馆前先规划好篮球场、泳池、健身房的位置
-
专家核心绑定
编译器将每个专家模型静态映射到特定计算单元(如将Expert1-4绑定到Chiplet A的Core0-3,Expert5-8到Chiplet B的Core4-7)
示例代码(伪代码):// 在芯片配置文件定义专家映射 expert_mapping = {"Expert1": {"chiplet":0, "core":0, "mem_bank":2},"Expert2": {"chiplet":0, "core":1, "mem_bank":3},... } -
内存区域预留
为每个专家的权重分配固定HBM/SRAM区域,避免运行时内存碎片(如Expert1权重占HBM 0x1000-0x1FFF) -
通信路径预配置
在NoC中预设高频专家之间的快速通道(如Expert3→Expert5的专用链路)
运行时动态调度(硬件加速+软件协同)
类比:演唱会现场根据观众人流动态开启安检通道
- 门控网络硬件加速
芯片内置的Gating Engine实时计算路由决策(每token选择Top-K专家),耗时仅纳秒级(软件实现需微秒级)
硬件行为:- 输入token进入路由流水线
- 在FP16矩阵乘单元计算router_logits
- 排序网络硬件选出Top-2专家ID
- 通过Crossbar将token特征分发到目标Core
- 负载感知资源调整
芯片内置的专家利用率计数器会实时监测各Core负载,当检测到某Core利用率>85%时:- 软件层:触发辅助损失函数,惩罚过度使用该专家的路由决策
- 硬件层:自动将部分计算任务迁移到邻近低负载Core(需专家权重已镜像备份)
- 通信优化
当多个token选择同一专家时,硬件自动合并数据搬运(如将16个token的请求打包成DMA突发传输)
软硬件交互实例(以处理一个batch为例)
场景:部署Mixtral 8x7B到自研AI芯片
- 编译阶段:
- 将8个专家平均分配到2个Chiplet(每个Chiplet 4个专家)
- 预加载专家权重到对应HBM区域
- 配置NoC优先级:Chiplet内通信优先级 > 跨Chiplet通信
- 运行阶段:
- Step1:门控网络为每个token选择Top-2专家(假设选Expert3和Expert7)
- Step2:硬件检测Expert3在Chiplet0-Core2,Expert7在Chiplet1-Core3
- Step3:通过芯片内RDMA引擎,将token数据同时发送到两个Chiplet
- Step4:各Core完成计算后,结果通过NoC返回到聚合单元
- Step5:聚合单元加权求和,写入输出缓冲区
- 异常处理:
- 如果Chiplet1温度过高,驱动软件动态将Expert7迁移到Chiplet0的备用Core
- 迁移过程中,新请求暂时由Expert5顶替(需保证模型精度损失<0.1%)
关键性能指标对比
| 调度方式 | 延迟(ms) | 能效(TOPS/W) | 专家利用率 |
|---|---|---|---|
| 纯软件调度 | 12.3 | 82 | 63% |
| 硬件加速调度 | 4.7 | 153 | 88% |
| 软硬协同(本文) | 2.1 | 217 | 92% |
| 数据来源:模拟Mixtral 8x7B在FP16精度下的测试结果 |
开发者需要关注的API层
# 芯片厂商提供的SDK示例
from moe_hardware import ChipletCluster# 初始化芯片集群
cluster = ChipletCluster(config_file="expert_mapping.json")# 加载MoE模型
model = load_moe_model("mixtral-8x7b.onnx")# 运行时绑定硬件资源
cluster.bind_experts(model.experts)# 启动硬件路由加速器
cluster.enable_gating_engine(mode="top2", load_balance=True)# 执行推理
outputs = cluster.infer(input_tokens)
总结:在现代AI芯片中,MoE专家的资源分配是编译时预规划+运行时硬件动态调度的结合。软件层定义专家与硬件的静态映射关系,而门控网络决策、负载均衡、通信优化等则由专用硬件模块实时执行。这种协同设计既能保证确定性(避免纯动态调度的不稳定性),又保留了应对计算波动的灵活性。
军事MoE必要性分析
参考资料:Uni-MoE:通过混合专家扩展统一多模态LLM
| 场景 | 特点 | 主力架构 | 占有率 |
|---|---|---|---|
| To B计算场景 | - 专业领域应用多 - 对RAG(检索增强生成)高度依赖 - 不需要多专家 | 行业大模型,主要是Dense架构 | 较高 |
| To C云计算场景 | - 通用领域多 - 对检索和训练数据更新时间敏感 - 需要多专家 | 通用基础模型,主要是MoE或MoA架构 | 较低 |
| To C边缘/端侧计算场景 | - 通用领域多 - 可不需要高性能/精度回答 - 不需要多专家 | 限于成本,主要是Dense架构 | 目前较低 |
在军事AI芯片领域,尤其是弹载芯片领域,主要涉及的是决策、射频和视频处理等任务。这类场景通常对实时性、能效比以及模型的轻量化有极高要求,同时还需要保证高精度和可靠性。基于上表的分析和军事领域的特点,以下是对主力架构选择的详细探讨:
1. 军事AI芯片的特点与需求
- 实时性:弹载芯片需要在极短时间内完成复杂计算(如目标识别、轨迹预测、环境感知),因此对延迟非常敏感。
- 资源受限:弹载设备通常体积小、功耗低,计算资源有限,难以支持大规模的多专家模型。
- 高可靠性:军事应用对模型的鲁棒性和稳定性要求极高,不能依赖外部数据更新或动态检索。
- 专用性强:军事任务通常是针对特定场景优化的,而不是通用场景。
2. Dense vs MoE 的适用性分析
(1)Dense 模型
- 优点:
- 结构简单,易于部署到边缘设备。
- 计算效率高,适合资源受限的场景。
- 对于特定任务(如目标检测、射频信号处理),可以通过专门训练获得较高的性能。
- 缺点:
- 在面对极其复杂的任务时,可能需要更大的模型规模,这会增加计算成本。
- 不具备MoE的灵活性,无法动态分配计算资源。
(2)MoE 模型
- 优点:
- 动态分配计算资源,适合处理多任务或多模态问题。
- 理论上可以支持更高的精度和泛化能力。
- 缺点:
- 需要较大的内存和计算资源来存储和运行多个专家。
- 实时性较差,尤其是在边缘设备上部署时,可能会引入额外的延迟。
- 军事场景中通常不需要“多专家”的灵活性,反而更倾向于单一任务的高效执行。
3. 具体场景分析
(1)决策任务
- 决策任务通常需要快速响应和高精度,例如目标分类、路径规划等。
- 在这种情况下,Dense模型更适合,因为它可以在有限资源下提供高效的推理能力。
- 如果任务复杂度较高(如多目标协同决策),可以考虑轻量化的MoE架构,但需确保其计算开销在可接受范围内。
(2)射频任务
- 射频信号处理(如信号解调、干扰抑制)通常是一个高度专业化的任务,且对实时性要求极高。
- Dense模型是更好的选择,因为其结构简单,能够直接嵌入硬件加速器中,实现低延迟推理。
(3)视频任务
- 视频处理(如目标跟踪、环境感知)通常需要处理大量数据流,对计算资源的需求较高。
- 在弹载芯片中,由于资源限制,更适合使用经过剪枝和量化优化的Dense模型,以平衡性能和功耗。
以下是针对军事AI芯片领域中不同任务场景的模型架构选择总结,以表格形式呈现:
| 任务类型 | 特点 | 适合的主力架构 | 原因分析 |
|---|---|---|---|
| 决策任务 | 快速响应、高精度,如目标分类、路径规划 | Dense模型 | - 在有限资源下提供高效的推理能力 - 适合实时性和高精度需求 - 若复杂度高,可考虑轻量化MoE架构,但需控制计算开销 |
| 射频任务 | 高度专业化,实时性要求极高,如信号解调、干扰抑制 | Dense模型 | - 结构简单,适合嵌入硬件加速器 - 实现低延迟推理,满足实时性需求 |
| 视频任务 | 数据流大,计算资源需求高,如目标跟踪、环境感知 | 剪枝/量化的Dense模型 | - 弹载芯片资源受限 - 需平衡性能与功耗 - Dense模型经过优化后更适合边缘计算 |
4. 结论
基于以上分析,在军事AI芯片领域,尤其是弹载芯片领域,Dense架构是更合适的选择。原因如下:
- 军事任务通常是专用性强的场景,不需要MoE的多专家灵活性。
- 弹载芯片对实时性和能效比要求极高,而Dense模型在这方面具有显著优势。
- 资源受限的情况下,Dense模型更容易部署和优化。
如果某些任务确实需要更高的精度或泛化能力,可以考虑结合少量MoE模块进行优化,但整体架构仍应以Dense为主。
军事MoE必要性分析2
在军事AI芯片领域,特别是弹载芯片领域,结合该场景特点,更适合采用Dense架构,以下是详细分析:
场景特点适配
弹载芯片应用于专业的军事作战领域,这和To B计算场景相类似,具有专业领域应用多的特点。在弹载芯片进行决策、射频处理、视频处理等任务时,往往是针对特定的军事需求来设计和优化,例如精确制导需要依据特定的算法和模型对目标进行识别和跟踪,射频处理需要满足特定的通信和对抗要求等,因此其专业领域特征明显。并且,这类应用通常是专注于特定的任务流程和数据处理,不需要像通用领域那样多“专家”提供多样化的观点和处理方式。所以从场景特点来看,它和需要多专家的MoE架构适配性差,而与主要依靠单一架构进行稳定运算的Dense架构适配性高。
成本及性能考量
- 成本方面:弹载芯片通常需要批量生产,成本控制是一个重要因素。Dense架构相对MoE架构更为简单,不管是研发成本、计算资源成本还是生产制造成本都相对较低。在保证满足军事应用性能要求的前提下,选择Dense架构可以在大规模使用时有效降低整体成本。
- 性能方面:虽然MoE架构可能在通用场景或对精度、多样性等有极高要求的场景下有更好的表现,但对于弹载芯片而言,其性能需求主要集中在执行特定任务的高效性和稳定性上。Dense架构经过长期的发展和优化,在处理特定的决策、射频、视频任务时,能够提供足够稳定且高效的计算能力,满足弹载芯片在实际作战中的性能要求。
可靠性和稳定性要求
军事作战环境复杂多变,弹载芯片需要具备极高的可靠性和稳定性。Dense架构因其结构相对简单,模型的可解释性和可控性相对较高,在设计和验证时更容易保证系统的可靠性和稳定性。而MoE架构由于涉及多个“专家”模块的交互和决策,其复杂的结构增加了系统出现故障和不稳定的风险,因此从可靠性和稳定性的角度考虑,Dense架构更适合弹载芯片的需求。
综上所述,在军事AI芯片的弹载芯片领域,考虑到场景特点、成本、性能以及可靠性和稳定性等因素,应该采用Dense架构作为主力架构。
相关文章:
MoE硬件部署
文章目录 MoE硬件部署硬件需求**专家硬件映射:模块化计算单元****路由硬件加速:门控网络专用单元****内存与通信优化****能效控制策略****实例:假设部署Mixtral 8x7B到自研AI芯片** 资源分配硬件资源预分配(编译时)运行…...
MYSQL中的性能调优方法
MySQL性能调优是数据库管理的重要工作之一,目的是通过调整系统配置、优化查询语句、合理设计数据库架构等方法,提高数据库的响应速度和处理能力。以下是常见的MySQL性能调优方法,结合具体的案例进行说明。 1. 优化查询语句 查询语句是数据库…...
Day48(补)【AI思考】-设计模式三大类型统一区分与记忆指南
文章目录 设计模式三大类型统一区分与记忆指南**一、创建型模式(对象如何生?)****二、结构型模式(对象如何组?)****三、行为型模式(对象如何动?)****1. 行为型类模式&…...
公牛充电桩协议对接单车汽车平台交互协议外发版
充电设备与平台交互协议-外发版 V1.0.0.05 1 充电设备与平台交互协议 (外发版) 充电设备与平台交互协议-外发版 V1.0.0.05 2 版本 版本日期 修改人 版本说明 1.0.0.00 2022.05.05 研发部 外发初版 1.0.0.01 2022.08.26 研发部 0x32 增加鉴权参数 0x34 增…...
大语言模型内容安全的方式有哪些
大语言模型内容安全的方式有哪些 LLM(大语言模型)内容安全方式主要是通过技术手段对模型生成的内容进行检测、过滤和干预,以确保输出符合道德、法律和社会规范。以下是一些常见的方式方法及其原理和著名的应用案例: 基于规则的过滤 原理:制定一系列明确的规则和模式,例…...
【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑩】
ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase10 作者:车端域控测试工程师 更新日期:2025年02月18日 关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-010测试用例 用例ID测试场景验证要点参考条款预期结果TC…...
Android WindowContainer窗口结构
Android窗口是根据显示屏幕来管理,每个显示屏幕的窗口层级分为37层,0-36层。每层可以放置多个窗口,上层窗口覆盖下面的。 要理解窗口的结构,需要学习下WindowContainer、RootWindowContainer、DisplayContent、TaskDisplayArea、T…...
从零到一实现微信小程序计划时钟:完整教程
在本教程中,我们将一起实现一个微信小程序——计划时钟。这个小程序的核心功能是帮助用户添加任务、设置任务的时间范围,并且能够删除和查看已添加的任务。通过以下步骤,我们将带你从零开始实现一个具有基本功能的微信小程序计划时钟。 项目…...
moveable 一个可实现前端海报编辑器的 js 库
目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了,海报编辑器换方案了,如果后面用别的再更。 缘由-胡扯 导火…...
wangEditor 编辑器 Vue 2.0 + Nodejs 配置
资料 Vue2.0 版本的安装:https://www.wangeditor.com/v5/for-frame.html#%E4%BD%BF%E7%94%A8上传图片配置:https://www.wangeditor.com/v5/menu-config.html#%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87 安装步骤 1.安装界面基础部分 <!-- 富文本编辑器…...
DeepSeek R1生成图片总结2(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)
DeepSeek官网 目前阶段,DeepSeek R1是不能直接生成图片的,但可以通过优化文本后转换为SVG或HTML代码,再保存为图片。另外,Janus-Pro是DeepSeek的多模态模型,支持文生图,但需要本地部署或者使用第三方工具。…...
x86平台基于Qt+opengl优化ffmpeg软解码1080P视频渲染效率
一般的在arm嵌入式平台,大多数板子都要硬解码硬件渲染的框架,使用即可。 在x86下比较麻烦了。 优化的思路一共有以下几个方面, 1. 软解码变成硬解码 2. 将YUV转QImage的操作转移到GPU 3. QWidget渲染QImage变成opengGL渲染AVFrame 这三点…...
机器学习入门-读书摘要
先看了《深度学习入门:基于python的理论和实践》这本电子书,早上因为入迷还坐过站了。。 因为里面的反向传播和链式法则特别难懂,又网上搜了相关内容进行进一步理解,参考的以下文章(个人认为都讲的都非常好࿰…...
前端【技术方案】重构项目
1. 明确重构目标 优化性能 减少页面加载时间降低资源占用 提升代码可维护性 更规范的代码风格更清晰的代码结构更明确的模块设计 扩展功能 为项目添加新功能改进现有功能 2. 评估项目现状 审查代码 全面检查现有代码,找出代码中的问题,如代码冗余、耦合…...
大语言模型简史:从Transformer(2017)到DeepSeek-R1(2025)的进化之路
2025年初,中国推出了具有开创性且高性价比的「大型语言模型」(Large Language Model — LLM)DeepSeek-R1,引发了AI的巨大变革。本文回顾了LLM的发展历程,起点是2017年革命性的Transformer架构,该架构通过「…...
RabbitMQ服务异步通信
消息队列在使用过程中,面临着很多实际问题需要思考: 1. 消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生…...
Python常见面试题的详解7
1. 内置的数据结构有哪几种 Python 中有多种内置的数据结构,主要分为以下几种: 1.1 数值类型 整数(int):用于表示整数,没有大小限制。例如:1, -5, 100。浮点数(float)…...
Django REST Framework (DRF) 中用于构建 API 视图类解析
Django REST Framework (DRF) 提供了丰富的视图类,用于构建 API 视图。这些视图类可以分为以下几类: 1. 基础视图类 这些是 DRF 中最基础的视图类,通常用于实现自定义逻辑。 常用类 APIView: 最基本的视图类,所有其…...
Huatuo热更新--安装HybridCLR
1.自行安装unity编辑器 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x 中任一版本。推荐安装2019.4.40、2020.3.26、2021.3.x、2022.3.x版本。 根据你打包的目标平台,安装过程中选择必要模块。如果打包Android或iOS,直接选择相应模块即可。如果你想打包…...
读书笔记 - 修改代码的艺术
读书笔记 - 修改代码的艺术 第 1 章 修改软件第 2 章 带着反馈工作系统变更方式反馈方式遗留代码修改方法 第 3 章 感知和分离伪协作程序模拟对象 第 4 章 接缝模型接缝 第 5 章 工具自动化重构工具单元测试用具 第 6 章 时间紧迫,但必须修改新生方法(Sp…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
