自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 Python遍历怎么用

可以把 Python 的遍历先记成一个选择表:只关心元素时直接遍历:不要为了得到元素而写:这种情况下直接 更清楚。你刚才生成 chunk ID 的场景最适合:返回的内容可以理解成:默认从 开始,也可以指定从 开始:适用场景:3. :同时遍历多个集合假设有两个列表:使用:相当于配对:在你的 RAG 代码里:注意长度不一致默认情况下, 遇到最短的集合就停止:结果只有: 会被静默忽略。你的 Python 3.13 可以使用 ,长度不同就直接报错:在 和 必须一一对应时,推荐

2026-08-06 16:05:44 221

原创 维纳滤波 vs IRM 掩蔽

这意味着 DNN 可以学到"谐波结构"——如果100Hz和200Hz同时有能量,那300Hz大概率也是语音。DNN 完全绕过了这个问题——它不需要显式知道噪声长什么样,它只需要看过。不过,我们当前的 DNN(无论是频谱映射还是 IRM)都有一个。但真实语音的时频结构远比这个复杂。维纳滤波的核心难题是。,就能自动学会区分语音和噪声。DNN 的隐层可以学到这些。(257维),隐层可以。,而维纳滤波做不到。

2026-07-23 13:05:05 301

原创 子空间方法和NMF的基本思想

谱减法和维纳滤波是地基,子空间方法和NMF是"过渡层,子空间方法和NMF在现在的工业界和学术界已经基本被深度学习取代了,但它们承载了两个对后续极其重要的概念。

2026-07-23 12:42:55 240

原创 传统语音增强方法系统讲解

│ 传统方法的核心矛盾││ 方法越简单(谱减法)→ 假设越强 → 实际越不准 → 效果越差│ 方法越复杂(NMF) → 计算越慢 → 越难实时 → 工程越难落地││ 所有传统方法共同的瓶颈:│ 1. 噪声统计特性难以准确估计│ 2. 无法充分利用语音的结构性先验│ 3. 非平稳噪声场景下性能急剧下降。

2026-07-20 11:08:25 368

原创 语音增强(Speech Enhancement)从无到有的完整发展脉络

传统方法的本质是基于假设的数学推导。它们不依赖训练数据,但严重依赖对语音和噪声统计特性的先验假设。一旦遇到非平稳噪声(如背景人声、交通噪声、突发噪声),性能就会急剧恶化。这促使研究者寻找能"学习"而非"假设"的方法。浅层方法验证了数据驱动的可行性,但受限于模型容量和训练技术,无法充分建模语音复杂的时频结构。直到2006年 Hinton 提出深度学习训练方法后,这个领域才真正迎来革命。深度学习让语音增强从"基于假设的推导"转向"基于数据的拟合"。目标:从幅度谱 → 时频掩蔽 → 复数域 → 时域波形网络。

2026-07-20 09:20:52 432

原创 从前史到 Conv-TasNet

参考原始论文:Conv-TasNet 论文明确把它定义为 encoder、separation、decoder 三阶段,并说明其用 TCN 的 dilated 1-D convolution blocks 来估计 masks;Conv-TasNet 不是抛弃 mask,而是把 mask 从 STFT 频谱空间搬到了一个网络学出来的时域隐空间里,并用 TCN 高效估计 mask。直觉上,它有点像 STFT 的频谱图,但不是固定正弦余弦基,而是网络学出来的“适合分离的声学基”。这其实是分对了,但顺序反了。

2026-07-16 14:45:41 272

原创 如何修改obsidian应用中Excalidraw插件的字体样式?

现在这套补丁已经把 Excalidraw 的画布文字强制走第 4 字体,也就是。到时候如果又恢复成旧字体,就需要重新套一次这次的。指向的字体文件,画布里结束输入后的文字也会跟着换。,并确认这个字体支持中文/英文。如果以后 Excalidraw 插件更新了,,最好复制到 Obsidian 库内部。注意第二个键名插件里本来就拼错了,是。当前最省事的日常换字体,只改。完全退出 Obsidian。,不要改成正确拼写。

2026-07-15 21:15:53 268

原创 U-Net 网络详解

U-Net = 编码器(下采样提取语义)+ 解码器(上采样恢复尺寸)+ 跳跃连接(把浅层细节搬运给深层)要看得远(感受野大)又要看得清(分辨率高),而这两者本来是不可兼得的。U-Net 通过跳跃连接巧妙地"作弊"——让解码器同时拥有两者的能力。

2026-07-14 10:00:00 311

原创 转置卷积(Transposed Convolution)—— 上采样

转置卷积 = 每个输入像素 × 卷积核,然后按 stride 间隔"铺"到输出图上,重叠的地方相加。它不是真正的"反卷积",只是一种能放大特征图的可学习上采样方法。

2026-07-14 09:00:00 582

原创 CRN(Convolutional Recurrent Network)详解

在实时语音增强中,第 t 帧的输出只能依赖第 t 帧及之前的输入,不能"偷看"未来帧。CRN = 卷积编码器(提取多尺度频谱特征)+ LSTM 瓶颈(建模时间动态)+ 卷积解码器(恢复高分辨率频谱)+ 跳跃连接(保留细节)它用 CNN 解决了"怎么看频谱"的问题,用 LSTM 解决了"怎么记时间"的问题,用因果卷积解决了"能不能实时"的问题——是语音增强领域从"实验室模型"走向"真实产品"的关键架构之一。

2026-07-13 22:11:34 389

原创 下采样(Downsampling)和上采样(Upsampling)

下采样是"抓大放小"——扔掉细节,抓住主要特征;上采样是"以小猜大"——根据特征,把低分辨率恢复成高分辨率。两者经常成对出现,比如 U-Net:左边不断下采样提取特征,右边不断上采样还原尺寸,中间还有跳跃连接把细节补回来。

2026-07-13 21:23:30 577

原创 实例演示ICM理想比掩码和RCM复数比掩码的区别

对比项IRMcRM掩码值0.4470.4470.447(单个实数)0.4−0.2j0.4 - 0.2j0.4−0.2j(复数,实部+虚部)乘法对象只乘幅度Y相位处理保留带噪相位53.13°53.13°53.13°自动修正为26.57°26.57°26.57°结果1.3421.789j1.3421.789j❌21j2 + 1j21j✅能否完美重建?不能(除非相位恰好相同)能(理论上完美)

2026-07-13 14:34:47 166

原创 BERT 模型的运行机制及DistilBERT 的蒸馏压缩过程

教师模型 BERT 在预测词汇时,不仅给出最高概率的词,还会给出整个词表的概率分布(例如“狗”的概率是 0.85,“猫”是 0.10,“汽车”是 0.001)。这种概率分布包含了极其丰富的“暗知识(Dark Knowledge)”,揭示了词汇之间的语义相似性。这是 BERT 理解“上下文”的核心数学操作。但在蒸馏过程中,DistilBERT 学习的是教师模型输出的“软标签”(Soft Targets)。)时,概率分布变得更平滑,使得原本接近于 0 的概率(如“猫”和“汽车”的差异)被放大,供学生模型学习。

2026-06-03 16:09:29 378

原创 ARM64和AMD64有什么区别,怎么知道自己的系统是哪个版本

AMD64(别名:x86_64、x64):是x86架构的64位扩展标准,由AMD率先设计推出,Intel后续全面兼容(曾用名EM64T/Intel 64),是目前桌面PC、笔记本、主流服务器的通用64位架构。并非只有AMD处理器才用AMD64,Intel酷睿/至强系列的64位处理器均基于此架构。ARM64(别名:AArch64)

2026-04-16 19:19:14 2452

原创 STFT(Short-Time Fourier Transform,短时傅里叶变换)

在音频信号处理与现代 AI 语音降噪领域,STFT(短时傅里叶变换)是将一维的声音波形转化为二维“时频图”的。理解现代音频算法(如复数掩码 CRM 和 Conformer 架构),必须首先彻底拆解 STFT 的底层齿轮。

2026-04-15 10:00:00 964

原创 骨传导加速度计

是现代高端降噪耳机(如 AirPods Pro、华为 FreeBuds Pro 等)实现“在狂风和嘈杂地铁里依然能清晰通话”的终极硬件秘密。它本质上。传统的空气麦克风靠捕捉空气气压的变化来录音,所以它不可避免地会录到风声、汽车声。而骨传导加速度计紧紧贴着你的耳道皮肤或面颊,它,只捕捉你说话时,声带震动顺着头骨传导过来的。既然是空间加速度计,它必然包含。

2026-04-15 08:00:00 219

原创 语音活动检测 (Voice Activity Detection, 简称 VAD)

是音频处理系统中的核心底层组件。从严格的信号处理定义来看,它是一个。其核心任务是:从连续输入的音频流中,通过实时计算信号的物理特性,精准判定当前帧(Frame)属于。

2026-04-14 10:00:00 936

原创 复数比掩码 (Complex Ratio Mask, 简称 CRM)

理想实数比例掩码 (IRM):就像一个只有“音量旋钮”的收音机。它只能把带噪信号的向量拉长或缩短,无法改变它的角度。如果角度一开始就被噪音带偏了,它永远回不到正确的轨道上。复数比掩码 (CRM):就像一个高级的“2D 飞行摇杆”。它既能推拉(调音量),又能左右旋转(调相位)。AI 算出精确的MrM_rMr​和MiM_iMi​,强行把被噪音撞歪的音频向量,旋转回绝对精准的原始角度。

2026-04-14 10:00:00 393

原创 理想实数比例掩码(Ideal Ratio Mask,简称 IRM)

掩码 (Mask)这就好比在时频图上覆盖一层“滤网”。网格的每个点对应一个频率。比例 / 实数 (Ratio / Real Number)在更早的时代,人们用的是“二值掩码 (IBM, Ideal Binary Mask)”,非黑即白(要么保留乘 1,要么杀掉乘 0),导致声音断断续续。IRM 的伟大突破在于引入了“比例”。它输出的是一个介于0.00.00.0到1.01.01.0之间的纯实数小数(比如 0.8、0.3)。这意味着它允许“半透明”的过滤,保留了声音的平滑过渡。理想 (Ideal)

2026-04-13 21:45:27 440

原创 均方根能量 (Root Mean Square Energy, 简称 RMS Energy)

是音频信号处理中最基础、也最符合人类听觉直觉的一个特征指标。简单来说,如果“时频图”展示了声音的细节,“频谱重心”展示了声音的明暗,那么。在声学和物理学中,我们不能简单地用波形图上的“最高点(峰值)”来代表声音有多大,这时候就必须引入 RMS。我们将从它的数学反推过程、物理意义以及它与“峰值”的区别进行硬核拆解。

2026-04-13 14:09:06 505

原创 SNR、SIR、SINR

在音频和通信领域,人们经常把挂在嘴边,但真正让顶尖算法工程师抓狂、也是衡量“目标人提取(TSE)”算法好坏的终极硬核指标,其实是。。

2026-04-13 13:34:47 947

原创 如何看懂时频图

看懂时频图(Spectrogram),本质上是要理解一维的时间信号是如何通过数学变换,被展开成包含的三维信息平面的。我们将从它的数学源头——**短时傅里叶变换(STFT)**开始推演,然后解析它的视觉映射规则,最后通过典型的物理信号结构来建立直观的读图能力。

2026-04-10 11:25:02 790

原创 如何用滑动窗口(Sliding Window)和语义边界(Semantic Boundary)来进行科学切块?

想象一下,如果一份 10 万字的 PDF 被极其暴力地按每 500 个字符切一刀。当这两块文本分别被送进 Embedding 模型时,为了防止这种“语义碎裂”,工业界演进出了。我们把它们的物理执行过程全部拆开!

2026-03-28 12:00:00 445

原创 RAG向量库如何进行数据保鲜?

市面上 90% 甚至 99% 业余 RAG 系统的把 10 亿篇文档用大模型 Embedding 成 1536 维的向量存进 Milvus 数据库,这是一个。如果公司 HR 今天上午 10 点刚刚修改了《报销手册》,而你的向量库还是昨天晚上的全量索引,那么下午 2 点员工去问 Agent 时,大模型就会看着旧的,一本正经地输出已经被废弃的旧政策。为了解决这个“延时性”和“旧数据”的灾难,顶尖的 AI 架构师在工程底层引入了。我们绝不省略任何步骤,把这三套机制在服务器内存和网络里的流转过程彻底解剖!

2026-03-27 20:51:40 422

原创 RAG 与向量检索的底层算法

BM25 把词频统计、罕见度权重、反作弊和长度惩罚全部揉进了一个没有超参数需要训练的解析解公式里。它在查找特定名字、型号、代码时,是极其精准的“狙击枪”。

2026-03-27 20:32:19 858

原创 三大分词算法

BPE= 靠频次,自底向上合并。(目前最主流,因为简单暴力且编码确定)。WordPiece= 靠互信息概率,自底向上合并。(BERT 时代的王者)。Unigram= 靠整体信息损失,自顶向下淘汰。(极其优雅的概率模型)。= 包含并执行上述算法的工业级 C++ / Rust 代码库。

2026-03-26 12:00:00 614

原创 有限状态自动机 (FSA) 和抽象语法树 (AST)

在计算理论中,一个确定的有限状态自动机MMMMQΣδq0FMQΣδq0​F。QQQ(状态集合):Agent 停留在宿主程序中的“节点”。例如:q0q_0q0​START(接收用户输入状态)q1q_1q1​(等待大模型返回思考结果状态)q2q_2q2​(宿主程序调用本地 Java API 状态)q3q_3q3​(高危操作,挂起等待人类点击确认状态)Σ\SigmaΣ(事件/输入字母表):触发状态改变的条件。

2026-03-25 21:09:58 574

原创 CoT(思维链)和ReAct

Thought。

2026-03-25 21:09:09 474

原创 BPE 算法的硬核拆解——理解词表(Vocabulary)是如何从零训练出来的,以及字符串是如何被切碎的

BPE分词机制在处理不同语言时存在显著效率差异。该算法通过统计相邻字节对频次进行合并,自底向上构建词表。英文和代码由于ASCII字符仅占1字节且重复模式多,合并效率高,常见组合可压缩为单一Token。而中文每个字符通常占3字节,且语料占比低,导致合并机会少,往往需多个Token表示单个汉字。这种差异使得相同Token限额下,模型能处理的英文/代码字符量远超中文。通过Python代码可完整模拟BPE训练过程,直观展示合并规则如何影响最终分词效果。理解这一机制对优化多语言处理至关重要。

2026-03-24 10:12:00 2368 5

原创 Unicode和UTF-8到底有什么区别?MySQL建表时如何选择编码格式?其他字符编码的底层机制?

编码名称占用字节核心应用场景ASCII1纯英文底层系统、基础网络协议头GBK1 或 2解析国内老旧的 Windows 文本文件、早期的中文 BBS 数据UTF-162 或 4Java/C# 的内存字符串内部表示、Windows OS 内部 APIUTF-8(mb4)1 到 4现代互联网的绝对霸主。所有的 Web 前后端通信、所有的 MySQL 数据库建表、所有喂给 LLM 的文本,统统使用 UTF-8。

2026-03-24 10:11:27 492

原创 从数学和矩阵运算的底层逻辑来透视 仅解码器 Transformer (Decoder-only Transformer) 自回归解码阶段的全过程

摘要:KV Cache通过缓存已计算的键值矩阵,将自回归解码的计算复杂度从O(N²)降至O(1),实现高效推理。但这一机制带来严重的内存瓶颈——LLaMA-7B模型处理4096个token时KV Cache占用达2GB,远超边缘设备容量。更致命的是内存带宽限制,每生成一个token需全量读取缓存,导致计算核心持续等待数据传输。这种"空间换时间"的策略在边缘设备上形成双重打击:内存容量不足引发OOM,低带宽造成硬件利用率暴跌。论文《Jupiter》正是针对这一物理限制提出的优化方案。

2026-03-23 13:42:47 575

原创 旋转位置编码(Rotary Position Embedding, RoPE)

RoPE(旋转位置编码)通过复数空间旋转巧妙地将相对位置信息融入注意力机制。传统方法直接添加位置向量会破坏词间距离关系,而RoPE将位置编码转化为对空间坐标系的旋转操作:将高维向量两两分组,每组独立进行二维旋转,使内积结果仅依赖相对位置差(m-n)。这种旋转通过轻量的逐元素乘法实现,仅作用于Q、K矩阵而不干扰V矩阵,确保注意力得分精确反映词间距。RoPE的数学优雅性使其成为大模型处理长上下文的核心技术。

2026-03-23 13:42:32 363

原创 从数学和矩阵运算的底层逻辑来透视 仅解码器 Transformer (Decoder-only Transformer) 预填充阶段的全过程

摘要:本文详细解析了Decoder-only Transformer架构的核心流程,这是LLaMA、Mistral和GPT等大模型的基础。首先通过词嵌入和位置编码将文本转化为矩阵,然后通过QKV投影生成查询、键和值矩阵。重点阐述了掩码自注意力机制如何实现"从左到右"的生成特性,包括打分矩阵计算、掩码操作和softmax归一化。接着介绍了多头注意力机制、残差连接与层归一化,以及前馈神经网络的作用。最后通过一个"我 爱 学习"的微型案例,演示了输入矩阵化、QKV生成和掩码

2026-03-18 18:02:26 636 1

原创 词嵌入(Word Embedding)和位置编码(Positional Encoding)

Transformer架构中词嵌入和位置编码的机制差异显著:词嵌入通过可学习的嵌入矩阵将离散词语映射为稠密向量,模型通过海量数据训练不断调整矩阵参数;而位置编码则基于预设的正弦/余弦公式生成,为序列注入绝对和相对位置信息。两者相加形成模型输入,前者捕捉语义,后者保留语序。现代模型如LLaMA采用旋转位置编码(RoPE)等改良技术,但核心目标仍是解决序列无序性问题。这种设计体现了神经网络中学习参数与预设规则的巧妙结合。

2026-03-18 18:00:28 496

原创 莫比乌斯反演(Möbius Inversion)

本文提出了一种基于莫比乌斯反演的高效算法,用于计算给定数组中所有元素两两最小公倍数之和。通过将问题转化为数值频率统计,利用数论技巧消除条件判断,最终将时间复杂度从O(N²)优化至O(M log M)。关键步骤包括:1)使用桶排序统计数值频率;2)提取公因数并枚举gcd;3)应用莫比乌斯函数简化互质条件;4)调换求和顺序分离变量。该算法通过预处理两个核心数组,实现了百万级别数据的高效计算,将理论运行时间从十秒级降至毫秒级。

2026-03-17 22:57:44 291

原创 文件解析:ProcessGroupNCCL.cpp

时,每一次数据并行的梯度同步、模型并行的权重切分传递、亦或是分布式的显式发送接收,都会穿透 Python 层,在这份文件中寻找到对应的方法,并转化为原生的 NVIDIA NCCL API 调用,投递到 GPU 上执行。,那么你调用的任何同步 / 异步的分布式操作最终都会落在它所在的底层 —— 也就是这个 C++ 文件里的方法。其核心职责是将 PyTorch 的底层。简单地说,当你使用 PyTorch 进行分布式训练(比如。)时,如果你指定的 backend(后端)是。PyTorch 中的分布式操作大多是。

2026-03-04 19:41:22 432

原创 如何配置go环境并用vscode运行

1、E盘gosy文件夹下新建一个文件夹名为:firstProject。3、在终端输入:go mod init firstProject。3、点击新建,把下载好的bin目录粘贴进去。5、终端输入:go run main.go。2、点击环境变量,找到Path点击编辑。OK,恭喜你可以开始编写go文件了~~完成配置后关闭vscode!会出现一个go.mod文件,如下。1、Win+s输入"环境变量"2、右键用vscode打开。4、新建main.go文件。

2026-01-29 21:48:11 347

原创 如何修改VScode里的注释

【代码】如何修改VScode里的注释。

2026-01-29 15:03:58 325

原创 拒绝“资源内耗”:一文读懂分布式训练中的 DMA 与 RDMA

DMA解决了内部冲突(计算 vs. 通信抢夺 GPU 核心)。RDMA解决了外部障碍(机器间通信的软件开销和高延迟)。正是通过对这两种底层技术的精妙结合,DistTrain 才能在 1172 块 GPU 上训练 72B 多模态模型时,跑出高达54.7% 的 MFU(算力利用率)。

2026-01-28 18:28:17 657

原创 深度解密 StepCCL:如何通过 DMA 释放被 NCCL “霸占”的 GPU 计算力?

当通信内核运行并占据 SM 时,留给计算内核(GEMM)的 SM 数量就会减少,甚至会因为缓存竞争和调度延迟,导致同时运行的 GEMM 性能显著下降。这种计算与通信的“资源内耗”,使得简单的计算通信重叠(Overlap)难以发挥最大效力。:由于不依赖内核融合,StepCCL 甚至可以跨模块隐藏通信(例如在交叉注意力机制中重叠通信),这是传统方案无法做到的。:将一个巨大的 GEMM 及其对应的通信(如 All-Gather)分解为多个较小的“单元对”。,看它是如何通过底层架构创新实现通信开销的“完美隐藏”。

2026-01-27 22:28:57 334

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除