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

实习08-Mamba 和 SSM

第一部分Mamba 基础概念先补地基1.1 什么是 State Space Model (SSM)[公式] - SSM 思想SSM 源自控制理论核心是一个连续时间系统# 连续形式控制理论 h(t) A·h(t) B·x(t) # 状态更新 y(t) C·h(t) D·x(t) # 输出t连续时间可以理解为词在句子里的位置x(t)当前输入当前 token 的向量h(t)Mamba 里一直在更新的那个 “记忆口袋”它会随着阅读不断变化h ′(t)记忆随时间的变化率记忆怎么更新A控制 “过去的记忆” 以什么速度保留或遗忘用来控制遗忘强度B当前输入 x (t) 对记忆产生多大影响C从记忆 h (t) 里提取信息变成输出 y (t)D让输入 x 直接加到输出y(t)最终输出[例子] - 把 SSM 当成 一个人在读书x(t) 当前看到的字h(t) 你脑子里的记忆A 你忘性多大遗忘率B 新内容记进去多少C 从记忆里提取内容回答问题y(t) 你理解后输出的意思[记忆更新]当前记忆 保留一部分旧记忆 写入一部分新输入对应公式 hₜ Ā hₜ₋₁ B̄ xₜ[输出]输出 从记忆里提取信息 直接参考当前字[和 Self-Attention 的区别]① Self-Attention 怎么做每个词查一遍整个历史看一遍所有前面的词算相似度QK加权求和V训练计算量一定是 O(n2d)推理为 O(nd)所以说SSM的目的主要是优化训练方面的速度② SSM / Mamba 怎么做把历史压缩成一个记忆 h不断更新来一个新词把信息揉进记忆 h输出时从 h 里读信息Self-AttentionSSM / Mamba怎么获取历史每次都重新看全部历史把历史存在 h 里只看 h计算方式矩阵乘法 O(n²)递推更新 O(n)核心相似度加权状态记忆结果上下文表示上下文表示最终目标一模一样理解上下文一模一样理解上下文[结论]Self-Attention 和 SSMMamba做的是完全一样的事情让当前 token 能看到前面所有 token 的信息也就是建模上下文依赖context dependency1.2 Mamba 的核心创新选择性 (Selection)[区别] Self-Attention vs MambaTransformer靠 “查历史” 建模上下文-Mamba靠 “记记忆” 建模上下文Mamba的核心突破 让记忆会看内容选择性 计算永远 O (n)不随长度爆炸**早期 SSM 的问题是 **A,B,C是固定参数无法根据输入内容动态调整无法感知输入类似 RAG 的优化 → 无法做内容感知推理不管输入是 “重要的话” 还是 “废话”记忆的写入、遗忘、输出规则全都一样。无法根据输入进行动态选择[改动] Mamba 做了什么逆天改动改动Mamba让B、C、Δ时间步不再是固定值而是由输入x算出来的B现在输入决定 “要记多少进记忆”C现在输入决定 “从记忆里读多少出来”Δ现在输入决定 “记忆更新得多快”好处1对于输入遇到重要内容 → 多记一点相反遇到废话 → 少记或不记2对于时间步遇到长期依赖 → 慢慢记、慢慢忘当遇到短期信息 → 快速更新这就实现了和 Self-Attention 一样的能力1内容感知 动态聚焦但计算量完全不一样1AttentionO(n²)MambaO(n)[工程体现] 为什么 Mamba 推理这么快[工程体现 - 结论] 推理阶段纯递归不需要 KV CacheTransformer 推理为什么慢、吃显存因为它必须存KV Cache每来一个新 token要把之前所有 token 的 K、V 都存着序列越长 → 缓存越大 → O (L) 增长每一步都要和所有历史算一次注意力Q:[1,d] * K:[max_length, d]T 和 V:[[max_length, d] 加权求和 → O (L) 计算Mamba 推理完全不一样Mamba只存一个固定大小的记忆 h不管序列多长h的大小永远不变很小一般几十到一百多维度所以序列越长Mamba越有优势新来一个token→ 只用h递推一步计算量 O (1)和长度无关, 不用 KV Cache[工程体现 - 结论] 训练阶段并行扫描Parallel Scan这里解决一个经典矛盾RNN/SSM天然是串行的一步一步来但训练需要并行不然太慢而传统的Transformer虽然是 N2 复杂度但是可以通过并行优化速度h1 a*h0 b*x1 h2 a*h1 b*x2 h3 a*h2 b*x3 h4 a*h3 b*x4 ...必须算完 h1 才能算 h2算完 h2 才能算 h3[如何优化] Mamba 的解决办法用数学结合律把递归变成并行扫描通过Parallel Scan并行前缀扫描一步并行算出所有 h1, h2, h3, h4具体细节是把序列切成很多块[x1 x2] [x3 x4] [x5 x6] [x7 x8]块内并行算块之间只传一个小状态h目的是修正后面块的结果如[x3, x4]合并[x1, x2, x3, x4]最终整段可以并行跑完[不理解优化细节]后一个状态h3依赖h2那么永远都不能实现并行呀相反Transformer 架构中Q与K矩阵每一行向量之间都是独立的所以可以实现并行加速[优化细节] Parallel Scan 并行前缀扫描# 串行待优化 已知h1 h2 f(h1) h3 f(h2) h4 f(h3) h5 f(h4) h6 f(h5) h7 f(h6) h8 f(h7)对于 8 个 token分块并行计算[h1,h2] [h3,h4] [h5,h6] [h7,h8]第一次并行4组一起算但[3,4][5,6][7,8]算出来都是 “错的”因为还没拿到前面的状态。第二次串行逐层合并用[1,2]的最终状态去修正[3,4]得到[1,2,3,4]。第三次串行用[1,4]的最终状态去修正[5,6]合并得到[1,2,3,4,5,6]。第四次串行用[5,6]的最终状态去修正[7,8]合并得到[1,2,...,7,8]。类似于多叉树先通过并行求得所有叶子节点的值然后通过状态传递得到总值过程图如下所示层1: [1-2] [3-4] [5-6] [7-8] → 并行 层2: [1-4] [5-8] → 并行 层3: [1-8] → 仅1步串行结论这种方式时间消耗需要参考硬件和序列长度而Transformer那种架构可以一次暴力计算完上下文建模[时间] 并行前缀和的时间复杂度串行步数从O(n) → O(log n)n8 → 3 步n16 → 4 步n32 → 5 步n1024 → 10 步n100000 → 17 步长度越大加速越恐怖。时间复杂度为O(log n)n为序列长度[问题] 所以 Mamba 所谓的 “并行能力” 是随着分块策略大小和硬件能力来实现的吗Mamba 的并行能力来自两点块间并行扫描log 步数序列越长越有优势硬件 CUDA 核融合吃满 GPU并行优化下假设N1024dim2048传统Transformer架构计算过程如下1Q和KT计算1024 x 1024 个 2048 的计算量由于并行优化时间上和算出单次 2048 计算量等价即 O(d)2然后你还要算Softmax带来的影响它会计算每行的求和值去突出当前维度的值因此时间复杂度为 O(n)3然后和V矩阵加权求和那里也有一次 O(d) 的运算经过并行优化。所以工程真实的时间复杂度为 2 * O(d) O(n)相比mamba架构的计算过程11024 个 2048 的计算量但是后者一定依赖于前者所以进行并行前缀和模拟 1024 的并行。所以工程上真实耗时为 O(logn*d)序列长度n越大mamba效果越明显[结论 - Softmax 耗时]所以说Transformer架构在长序列下并行速度依旧比不过Mamba是因为Softmax的作用比如 n1024有 1024 行每行 1024 个值shape 为[max_length, max_length]这 1024 个行的sum完全可以同时并行计算。N 行sum→ 并行一步完成深度不随 N 变大。重点在 sum 这在每一行内部sum a1 a2 a3 ... a1024这一行内部的 1024 个数相加不可能一步完成。所以实际工程上的时间复杂度为O (N)

相关文章:

实习08-Mamba 和 SSM

🔹 第一部分:Mamba 基础概念(先补地基) 1.1 什么是 State Space Model (SSM)? [公式] - SSM 思想 SSM 源自控制理论,核心是一个连续时间系统: # 连续形式(控制理论) h(t)…...

从 Scaffolding 到 Harness:AI Coding Agent 真正难的,不是写代码,而是把系统跑起来

🤵‍♂️ 个人主页:小李同学_LSH的主页 ✍🏻 作者简介:LLM学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…...

QQ拼音剪贴板:绿色提取版,打工人的复制粘贴神器

今早复制10条文案,用带记事本的QQ拼音剪贴板。 多行显示清清楚楚,不用反复按winv翻。 突然觉得,好工具像复制粘贴的“备忘录”,省得记。​ 剪切板功能折腾多。 打工人爱效率工具。 今天推两款,先讲QQ拼音。 为啥用…...

维深:夸克AI眼镜S1用户体验调研报告 2026

一、调研与产品基础信息产品背景夸克 AI 眼镜 S1 是阿里巴巴夸克首款硬件产品,2025 年 10 月 24 日预售、11 月 27 日正式发售,定位消费级 AIAR 眼镜。调研概况调研时间为 2026 年 1-2 月,采用线上问卷形式,设置 92 个问题&#x…...

数据结构总结分享02——栈的相关例题与应用【简单】

前情提要 栈的应用非常广泛,下面列举出几个最为经典的题目,分别用了上篇文章中自己的类来实现以及 STL 中的 std::stack 来实现~ 使用自己的类的应用 题目:括号匹配说明: 这是一个非常经典的栈新手村入门第一题,题目…...

【LLM基础研究】核心五:PTX

DSL:(领域特定语言,Domain-Specific Language)是针对特定问题领域设计的编程语言,与通用语言(如Python、Java)相反,它只专注解决某一类特定任务。 核心特点 专注性强:语法…...

软件再工程的逆向分析与重构改造

软件再工程的逆向分析与重构改造 在快速发展的信息技术时代,许多遗留系统因技术落后、架构臃肿或文档缺失而难以维护。软件再工程通过逆向分析与重构改造,帮助企业对旧系统进行现代化升级,提升可维护性和扩展性。这一过程不仅能够降低技术债…...

Stable Diffusion 3.5问题解决:常见报错(如CUDA内存不足)快速排查指南

Stable Diffusion 3.5问题解决:常见报错(如CUDA内存不足)快速排查指南 你是否在使用Stable Diffusion 3.5时遇到过突然崩溃的情况?屏幕上跳出"CUDA out of memory"的红色警告,辛苦调整的参数和创意灵感瞬间…...

Qt 树模型(Tree Model)的增删改查实战解析

1. Qt树模型基础概念解析 第一次接触Qt的树模型时,我完全被那些抽象概念绕晕了。直到做了几个实际项目后才明白,Tree Model本质上就是个数据管家,它帮我们管理树形结构的数据,并让这些数据能通过Qt的视图组件(比如QTre…...

中文语料分词+生成词表+词频排序

缘起 近日批改学生毕业论文,有篇初稿的话题是研究《红楼梦》文化负载词的汉英翻译,其研究方法一节有以下表述: This study adopts a random sampling method. Representative culture-loaded vocabulary is selected from the first 12 chap…...

手把手教你用Event Viewer和Log Parser分析Windows安全日志(附玄机靶场实战)

从零到一:Windows安全日志分析实战指南 开篇:日志分析的价值与挑战 想象一下,你正面对一台疑似被入侵的Windows服务器,系统管理员递给你一个Security.evtx文件,说"看看能不能找到入侵者的痕迹"。作为安全新…...

3分钟搞定!在macOS上实现Google Nearby Share的终极指南

3分钟搞定!在macOS上实现Google Nearby Share的终极指南 【免费下载链接】NearDrop An unofficial Google Nearby Share/Quick Share app for macOS 项目地址: https://gitcode.com/gh_mirrors/ne/NearDrop 还在为Mac和Android设备间的文件传输而烦恼吗&…...

Windows安卓应用安装终极指南:APK Installer让跨平台体验更简单

Windows安卓应用安装终极指南:APK Installer让跨平台体验更简单 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否厌倦了在电脑上运行安卓应用时需要安…...

第一篇java代码

第一篇java代码 初次接触java,令我印象最深的是# 我写的第一行 Java 代码,不只是 “Hello World”大一新生,刚学 Java几周,尚无大的突破, 可我记得我第一次接触java代码时的思考。所以我将我最初的思考记录,并由此作为…...

二分查找力扣题(leetcode)味

一、语言特性:Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一,就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...

控制工程系统稳定性的影响因素

控制工程系统稳定性的影响因素题目 下列哪种措施对提高系统的稳定性没有效果© A、增加开环零点 B、引入串联超前校正装置 C、增加开环极点 D、在积分环节外加单位负反馈 稳定性 在经典控制理论中, 评判一个闭环系统稳不稳定的核心标准是: 相位裕度(Phase Margin, PM)和根轨…...

WarcraftHelper:如何解决魔兽争霸III在现代系统上的兼容性问题

WarcraftHelper:如何解决魔兽争霸III在现代系统上的兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一个专为魔…...

如何用PRoot在Android上构建完整Linux环境:无需root权限的5个实战技巧

如何用PRoot在Android上构建完整Linux环境:无需root权限的5个实战技巧 【免费下载链接】proot An chroot-like implementation using ptrace. 项目地址: https://gitcode.com/gh_mirrors/pro/proot PRoot是一款革命性的开源工具,它能让你的Androi…...

RV1106驱动ST7735S踩坑实录:从设备树到LVGL显示,我遇到的3个关键问题

RV1106驱动ST7735S踩坑实录:从设备树到LVGL显示的三个关键陷阱 最近在Luckfox Pico Pro Max(RV1106平台)上折腾ST7735S SPI屏幕时,遇到了几个颇具代表性的问题。这些问题不仅让我熬了几个通宵,也让我对嵌入式Linux的显…...

DAMOYOLO-S多场景落地:智能硬件产品出厂前目标检测功能自动化校验

DAMOYOLO-S多场景落地:智能硬件产品出厂前目标检测功能自动化校验 1. 引言:从质检痛点说起 想象一下这个场景:你是一家智能硬件公司的生产线负责人。每天,成千上万的摄像头、扫地机器人、智能门锁从流水线上下来。每个产品都内置…...

GLM-4.1V-9B-Base一键部署教程:Python入门级环境配置指南

GLM-4.1V-9B-Base一键部署教程:Python入门级环境配置指南 1. 开篇:为什么选择GLM-4.1V-9B-Base 如果你刚接触AI开发,想快速体验多模态大模型的能力,GLM-4.1V-9B-Base是个不错的起点。这个开源模型不仅能处理文本,还能…...

AIAgent架构安全审计倒计时:监管新规Q3强制实施,你还在用传统API网关日志做AI风控?

第一章:AIAgent架构安全审计与日志 2026奇点智能技术大会(https://ml-summit.org) 安全审计的核心关注点 AI Agent 架构在多模态交互、自主决策与外部系统集成过程中,面临权限越界、提示注入、推理链污染及敏感数据泄露等新型攻击面。安全审计需覆盖运…...

终极Windows驱动签名绕过指南:3步解决硬件兼容性问题

终极Windows驱动签名绕过指南:3步解决硬件兼容性问题 【免费下载链接】DSEFix Windows x64 Driver Signature Enforcement Overrider 项目地址: https://gitcode.com/gh_mirrors/ds/DSEFix DSEFix是一款专为Windows x64系统设计的驱动签名强制覆盖工具&#…...

如何快速迁移Ziglings项目:从GitHub到Codeberg的完整指南

如何快速迁移Ziglings项目:从GitHub到Codeberg的完整指南 【免费下载链接】ziglings Learn the Zig programming language by fixing tiny broken programs. 项目地址: https://gitcode.com/gh_mirrors/zi/ziglings Ziglings是一个通过修复小型破损程序来学习…...

ams OSRAM 将娱乐与工业灯具业务出售给 Ushio

事件核心摘要交易双方:ams OSRAM(卖方,奥地利/德国半导体巨头) vs. Ushio, Inc.(买方,日本光学技术公司)。交易内容:出售 Entertainment & Industry Lamps(娱乐与工业…...

Nginx 学习总结从

1. 引入 在现代 AI 工程中,Hugging Face 的 tokenizers 库已成为分词器的事实标准。不过 Hugging Face 的 tokenizers 是用 Rust 来实现的,官方只提供了 python 和 node 的绑定实现。要实现与 Hugging Face tokenizers 相同的行为,最好的办法…...

终极指南:5分钟学会用Virtual Kubelet在非K8s环境部署容器

终极指南:5分钟学会用Virtual Kubelet在非K8s环境部署容器 【免费下载链接】virtual-kubelet Virtual Kubelet is an open source Kubernetes kubelet implementation. 项目地址: https://gitcode.com/gh_mirrors/vi/virtual-kubelet Virtual Kubelet是一个开…...

10 分钟搞定答辩 PPT!Paperxie AI 神器,终结本科生熬夜改稿魔咒

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 一、 答辩 PPT:压垮毕业生的最后一根稻草 毕业论文定稿的喜悦,往往会被答辩 PPT 的焦虑瞬间冲淡。对…...

Rust 异步函数调用栈分析

Rust异步函数调用栈分析:深入理解异步执行机制 在当今高并发的编程场景中,异步编程已成为提升性能的关键技术。Rust通过async/await语法和Future机制提供了高效的异步支持,但其底层调用栈的复杂性常常让开发者感到困惑。本文将深入分析Rust异…...

终极Dockertest错误处理指南:从连接失败到超时重试的完整解决方案

终极Dockertest错误处理指南:从连接失败到超时重试的完整解决方案 【免费下载链接】dockertest Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. 项目地址: https://gitcode.com/gh_…...