每日基础课

← 返回日报
基础知识 第一则

残差连接:今天真正弄懂

先记住

先记住:一句话定义 + 一句记忆口诀

通俗讲解

一句话定义:残差连接就是让一层或几层网络不要只学“完整答案”,而是学“在原输入上需要改多少”,最后把“原输入”和“改动量”相加。口诀:不会全重做,就学改一点;原路加旁路,深层更好练。

生活类比:你在改一段字幕。普通网络像“把整段字幕重新写一遍”。残差连接像“保留原字幕,只标出需要修改的地方”。如果原字幕已经差不多对了,你只要改几个字。这样更省力,也更不容易改坏。

必要公式:

常见残差块写法是:

`y = F(x) + x`

逐个解释:

  • `x`:输入。比如一段音频特征、一帧图像特征、一个 token 特征。
  • `F(x)`:网络层学到的“变化量”。也叫残差分支。它通常由卷积、线性层、归一化、激活函数等组成。
  • `+`:逐元素相加。要求 `F(x)` 和 `x` 的形状一样。
  • `y`:输出。它等于“原来的 x”加上“网络认为要补充或修正的部分”。

如果形状不一样,就常写成:

`y = F(x) + P(x)`

  • `P(x)`:投影分支。常用 `1x1` 卷积或线性层,把 `x` 的维度变成和 `F(x)` 一样。
  • 例如通道数从 64 变成 128,就不能直接加,要先用 `P(x)` 对齐形状。

它解决什么问题:

核心问题:深层网络难训练。

没有残差连接时,网络层数加深后,经常出现:

  • 梯度传不到前面。
  • 前面层学得很慢。
  • 训练误差反而变高。
  • 模型明明更深,却不一定更好。
  • 网络容易把已经有用的表示“改坏”。

残差连接的好处:

  • 给信息一条“直通路”。
  • 给梯度一条“回传捷径”。
  • 让网络更容易学“微调”,而不是每层都重建全部表示。
  • 如果某些层暂时没学好,至少 `x` 可以直接过去,不至于完全断掉。

在音视频理解里可以这样想:

  • 语音特征里已经有音色、能量、韵律信息。
  • 视频帧特征里已经有人脸、嘴部动作、场景信息。
  • 后面的层不必每次都推翻重来。
  • 它只需要逐步修正、补充、更抽象。
先想再展开答案
残差连接最常见公式是什么?
`y = F(x) + x`
残差连接主要缓解什么训练问题?
深层网络难训练,信息和梯度难以顺畅传递
残差连接和拼接连接的核心区别是什么?
残差是相加,通常维度不变;拼接是通道合并,维度变大
发展脉络 · 现状 · 未来

发展流程:

  • 之前怎么做

早期深度网络通常是简单堆层:

`输入 → 层1 → 层2 → 层3 → ... → 输出`

每一层都把前一层输出完全变换一次。

问题是:层数变深后,训练变难。不是只因为过拟合,也不是只因为参数多,而是优化本身变难。一个很深的网络,理论上至少应该能学成“前面浅层网络 + 后面几层什么都不做”。但实际训练时,它不容易自动学出“什么都不做”的恒等映射。

  • 为什么出现残差连接

残差连接的关键想法是:

如果最优情况是“保持原样”,那网络不用费力学 `H(x)=x`。 只要让 `F(x)=0`,就有:

`y = F(x) + x = x`

这比让一堆非线性层精确学出“输入等于输出”容易得多。

也就是说:

  • 普通网络学目标:`H(x)`
  • 残差网络改成学:`F(x) = H(x) - x`
  • 最后再还原:`H(x) = F(x) + x`

所以它叫“残差”。因为它学的是“目标和输入之间的差”。

  • 现在怎么用

现在残差连接非常常见。它不只在 ResNet 里用,也在 Transformer、Conformer、语音模型、视频模型、多模态模型里大量出现。

典型位置:

  • 卷积网络:一个残差块包住几层卷积。
  • Transformer:自注意力模块外面有残差连接,前馈网络外面也有残差连接。
  • 音频模型:卷积块、时序建模块、注意力块中常用。
  • 视频模型:2D/3D 卷积块、时空注意力块中常用。
  • 说话人日志:说话人嵌入提取网络、语音分割模型、音频 Transformer/Conformer 编码器里常见。

主流模型中的实际位置与用法:

  • ResNet 图像/视频骨干

一个典型残差块:

`输入 x → 卷积 → 归一化 → 激活 → 卷积 → 归一化 → 加回 x → 激活`

它常用于图像帧特征提取。视频模型会把它扩展到时空卷积,比如处理连续帧。

  • Transformer 编码器

常见结构:

`x = x + SelfAttention(x)` `x = x + FeedForward(x)`

意思是:

  • 注意力模块负责补充“上下文关系”。
  • 前馈网络负责做“每个位置的非线性变换”。
  • 残差连接保留原始表示,避免每个模块都完全覆盖旧信息。
  • 音频理解

在语音识别、音频事件检测、说话人识别里,输入常是 log-mel 频谱或其他声学特征。

残差连接常出现在:

  • CNN 声学前端。
  • TDNN/ResNet 风格说话人嵌入网络。
  • Conformer 编码器。
  • 音频 Transformer 块。

它的作用是让模型在多层处理中保留低层声学线索,比如音色、能量、频谱结构,同时逐层加入更高层语义或说话人信息。

  • 说话人日志 diarization

说话人日志要回答:“什么时候谁在说话”。

残差连接常间接帮忙:

  • 在说话人嵌入网络中,提取更稳定的 speaker embedding。
  • 在分帧分类网络中,帮助长层数模型稳定训练。
  • 在 Transformer/Conformer 时序编码器中,保留局部声学信息,同时建模长时间上下文。
  • 在多麦克风或音视频 diarization 中,帮助融合音频、视觉、人脸、嘴动等特征。

与相近概念的区别:

  • 残差连接 vs 跳跃连接

跳跃连接是大类。残差连接是其中一种。

  • 跳跃连接:只要信息跨过一些层传过去,都算。
  • 残差连接:特指把输入和分支输出相加,常见形式是 `F(x)+x`。

所以:残差连接属于跳跃连接,但不是所有跳跃连接都是残差连接。

  • 残差连接 vs 拼接连接

拼接连接常见于 U-Net、DenseNet:

`y = concat(F(x), x)`

残差连接是:

`y = F(x) + x`

区别:

  • 相加:形状必须一样;输出维度通常不变。
  • 拼接:沿通道维拼起来;输出维度会变大。
  • 相加更轻量。
  • 拼接保留信息更显式,但计算和内存更大。
  • 残差连接 vs 恒等映射

恒等映射是 `y=x`,完全不改。

残差连接是 `y=F(x)+x`,既能保留原输入,也能加入修改量。

如果 `F(x)=0`,残差连接就退化成恒等映射。

  • 残差连接 vs 门控连接

门控连接会学一个“开关”:

`y = gate * F(x) + x`

或者类似形式。

残差连接通常直接相加,没有显式开关。

门控更灵活,但也更复杂。残差连接更简单稳定。

  • 残差连接 vs 归一化

归一化,比如 BatchNorm、LayerNorm,主要让数值分布更稳定。

残差连接主要让信息和梯度更容易通过。

它们经常一起用,但解决的问题不完全一样。

当前局限:

事实:

  • 残差连接不是万能药。
  • 它不能保证模型一定更准。
  • 如果模型设计很差,只加残差也救不了。
  • 如果 `F(x)` 和 `x` 形状不一致,必须做投影或调整。
  • 残差相加可能让特征尺度变大,所以常配合归一化、缩放或合适初始化。
  • 在非常深的网络里,残差结构仍然需要仔细设计,比如归一化放在前面还是后面。

未来可能作用:

事实部分:

  • 残差连接已经是深度模型的基础组件。
  • 它在 CNN、Transformer、语音模型、视频模型、多模态模型中都会继续使用。
  • 它对训练深层网络仍然很重要。

推测部分:

  • 未来模型可能会更常使用“可学习残差强度”,让模型决定保留多少旧信息、加入多少新信息。
  • 在音视频说话人日志中,残差结构可能继续用于更长上下文建模,比如长会议、多人重叠语音、音视频联合建模。
  • 多模态模型中,残差连接可能帮助模型在融合时不过度破坏单模态信息,例如保留纯音频说话人线索,同时加入人脸和嘴动信息。

学习资料建议:

Dive into Deep Learning 的 ResNet 章节适合用来“看代码理解”。重点看两点:第一,残差块怎么写;第二,为什么加了旁路后深层网络更容易训练。不要只背 ResNet 名字,要亲手跑一个小残差块。

自测
  • 为什么说残差连接让网络更容易学“什么都不做”?
  • 如果 `F(x)` 的输出形状是 `[32, 128]`,而 `x` 是 `[32, 64]`,为什么不能直接相加?应该怎么办?
  • 在 Transformer 里,为什么注意力模块和前馈模块外面通常都要加残差连接?
类比
残差连接像改字幕:不要整段重写,保留原稿,只写修改意见,最后把修改意见加回原稿。
动手练习 第二则

残差连接:动手实现

练习目标

10-20分钟小练习目标、输入输出和验收标准

参考实现

练习目标:用 PyTorch 写一个最小残差块,比较“普通块”和“残差块”的前向输出与梯度回传。

输入:随机生成的张量 `x`,形状是 `[batch, dim]`,例如 `[4, 8]`。

输出:

  • 普通块输出形状。
  • 残差块输出形状。
  • 输入 `x` 收到的梯度大小。
  • 观察残差连接是否真的把 `x` 直接加回输出。

验收标准:

  • 代码能直接运行。
  • 输出形状都是 `[4, 8]`。
  • 残差块中能看到 `y = F(x) + x`。
  • 反向传播后,`x.grad` 不是 `None`,且有数值。

思路:

我们写两个模块:

  • `PlainBlock`:普通网络块,只输出 `F(x)`。
  • `ResidualBlock`:残差网络块,输出 `F(x) + x`。

为了看得更清楚,我们让 `F(x)` 是一个小 MLP:

`Linear → ReLU → Linear`

完整可运行代码:

import torch
import torch.nn as nn

# 为了结果可复现
torch.manual_seed(42)


class PlainBlock(nn.Module):
    """
    普通块:只学习 F(x)
    输入形状:  [batch, dim]
    输出形状:  [batch, dim]
    """
    def __init__(self, dim):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(dim, dim),
            nn.ReLU(),
            nn.Linear(dim, dim)
        )

    def forward(self, x):
        return self.net(x)


class ResidualBlock(nn.Module):
    """
    残差块:学习 F(x),最后加回 x
    y = F(x) + x
    输入形状:  [batch, dim]
    输出形状:  [batch, dim]
    """
    def __init__(self, dim):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(dim, dim),
            nn.ReLU(),
            nn.Linear(dim, dim)
        )

    def forward(self, x):
        fx = self.net(x)
        y = fx + x
        return y


def grad_norm(tensor):
    """
    计算梯度大小。
    如果梯度不存在,返回 None。
    """
    if tensor.grad is None:
        return None
    return tensor.grad.norm().item()


def main():
    batch = 4
    dim = 8

    # 同一个输入,用于普通块
    x_plain = torch.randn(batch, dim, requires_grad=True)

    # 同一个数值的输入,用于残差块
    # clone + detach 是为了让它成为一个独立叶子张量
    x_res = x_plain.clone().detach().requires_grad_(True)

    plain_block = PlainBlock(dim)
    residual_block = ResidualBlock(dim)

    # 为了公平,把两个块的参数设成一样
    residual_block.net.load_state_dict(plain_block.net.state_dict())

    # 前向传播
    out_plain = plain_block(x_plain)
    out_res = residual_block(x_res)

    print("输入 x 的形状:", x_plain.shape)
    print("普通块输出形状:", out_plain.shape)
    print("残差块输出形状:", out_res.shape)

    # 验证残差块是否等于 F(x) + x
    with torch.no_grad():
        fx = residual_block.net(x_res)
        check = torch.allclose(out_res, fx + x_res)
        print("残差块是否满足 y = F(x) + x:", check)

    # 构造一个很简单的 loss
    # 这里用所有输出求和,方便观察梯度
    loss_plain = out_plain.sum()
    loss_res = out_res.sum()

    # 反向传播
    loss_plain.backward()
    loss_res.backward()

    print("普通块输入梯度 norm:", grad_norm(x_plain))
    print("残差块输入梯度 norm:", grad_norm(x_res))

    # 展示一小部分数值
    print("\n普通块输出前 1 行:")
    print(out_plain[0])

    print("\n残差块输出前 1 行:")
    print(out_res[0])

    print("\n输入 x 前 1 行:")
    print(x_res[0])

    print("\n残差块中的 F(x) 前 1 行:")
    print(fx[0])

    print("\n可以手动理解:残差块输出 = 输入 x + F(x)")


if __name__ == "__main__":
    main()
代码拆解与真实用法

逐段解释代码:

  • `PlainBlock`
self.net = nn.Sequential(
    nn.Linear(dim, dim),
    nn.ReLU(),
    nn.Linear(dim, dim)
)

这是一个小型前馈网络。它输入 `[batch, dim]`,输出还是 `[batch, dim]`。

如果 `batch=4`,`dim=8`:

  • 输入是 `[4, 8]`
  • 第一层线性层输出 `[4, 8]`
  • ReLU 不改变形状,还是 `[4, 8]`
  • 第二层线性层输出 `[4, 8]`

普通块的前向是:

return self.net(x)

也就是只输出 `F(x)`。

  • `ResidualBlock`

核心代码:

fx = self.net(x)
y = fx + x
return y

这里:

  • `x` 形状是 `[4, 8]`
  • `fx` 形状也是 `[4, 8]`
  • 所以可以逐元素相加
  • 输出 `y` 形状还是 `[4, 8]`

这就是最小残差连接。

  • 为什么要复制输入
x_res = x_plain.clone().detach().requires_grad_(True)

这是为了让普通块和残差块用相同数值的输入,但各自独立计算梯度。

否则两个实验会混在一起,不方便观察。

  • 为什么复制参数
residual_block.net.load_state_dict(plain_block.net.state_dict())

这是为了让两个块里的 `F(x)` 一样。

这样区别只来自一个地方:

  • 普通块:`F(x)`
  • 残差块:`F(x) + x`
  • loss 的作用
loss_plain = out_plain.sum()
loss_res = out_res.sum()

这是构造一个简单目标。不是为了训练好模型,只是为了触发反向传播。

然后:

loss_plain.backward()
loss_res.backward()

PyTorch 会计算输入 `x` 的梯度。

  • 梯度怎么看
tensor.grad.norm().item()

表示梯度整体大小。

残差块的梯度会多一条从输出直接回到输入的路径。直观上,`y = F(x) + x` 中的 `+ x` 让梯度可以更直接地传回 `x`。

张量形状总结:

  • `x_plain`: `[4, 8]`
  • `x_res`: `[4, 8]`
  • `F(x)`: `[4, 8]`
  • `out_plain`: `[4, 8]`
  • `out_res`: `[4, 8]`
  • `x.grad`: `[4, 8]`

常见错误:

  • 形状不一样还直接加

错误例子:

fx.shape = [4, 16]
x.shape = [4, 8]
y = fx + x

这会报错。

解决方法:

  • 让网络输出维度和输入一致。
  • 或者加一个投影层,把 `x` 从 8 维变成 16 维。
  • 忘记 `requires_grad=True`

如果输入没有设置:

requires_grad=True

那么 `x.grad` 可能是 `None`。

  • 以为残差连接就是多加一层

不是。残差连接不是“增加一层普通层”。它是把输入绕过中间层,再加到输出上。

  • 以为残差连接一定提高准确率

不一定。它主要让深层模型更容易训练。准确率还取决于数据、结构、训练方法和任务。

它在真实模型中的对应位置:

  • ResNet 中

练习里的:

y = self.net(x) + x

对应 ResNet 里的:

y = conv_block(x) + x

只是真实 ResNet 常用卷积处理图像或视频特征。

  • Transformer 中

练习里的 `self.net(x)` 可以对应前馈网络:

x = x + feed_forward(x)

注意力模块也类似:

x = x + self_attention(x)
  • 说话人日志中

如果你做 speaker diarization,常见输入可能是:

  • `[batch, time, feature_dim]` 的声学特征
  • 或 `[batch, time, embedding_dim]` 的说话人/片段表示

残差连接通常放在时序编码模块里:

x = x + temporal_block(x)

它保留原始帧级声学信息,同时让模型学习上下文修正量。

再练一步
  • 把 `dim=8` 改成 `dim=16`,确认代码仍能运行,并观察输出形状变化
  • 写一个 `ProjectionResidualBlock`,让输入维度是 8,输出维度是 16,用 `nn.Linear(8, 16)` 投影 `x` 后再相加
类比
代码记忆法:`return block(x) + x`,先改一点,再加回原件。

往期记录 161 条记录

2026年08月12日LayerNorm 与 Pre-Norm:今天真正弄懂foundationLayerNormPre-Normresidual
2026年08月12日LayerNorm 与 Pre-Norm:动手实现practicePythonPyTorchLayerNorm 与 Pre-Norm
2026年08月11日信息粒缓存编排interviewPrefixDAGMinCostFlowSemanticHash
2026年08月11日表示一个折线图的最少线段数codeGeometryArrayMath
2026年08月11日RMSNorm:今天真正弄懂foundationRMSNormnormalizationLLaMA
2026年08月11日RMSNorm:动手实现practicePythonPyTorchRMSNorm
2026年08月10日长上下文块复用interviewPrefixCachingDynamicProgrammingIntervalScheduling
2026年08月10日到达终点数字codeMathParityGreedy
2026年08月10日多教师蒸馏调度interviewMinCostFlowDynamicProgrammingParetoFrontier
2026年08月10日定长子串中元音的最大数目codeStringSliding WindowTwo Pointers
2026年08月06日长窗注意力稳健化interviewNumericalStabilitySoftmaxPositionBias
2026年08月06日执行操作使数据元素之和大于等于 KcodeGreedyMathEnumeration
2026年08月05日必须拿起的最小连续卡牌数codehashmaparrayslidingwindow
2026年08月04日绝对差不超过限制的最长连续子数组codesliding windowmonotonic queuedeque
2026年08月03日证据路由与采样优化interviewRoutingSubmodularLatency
2026年08月01日查询引导长视频采样interviewSubmodularKnapsackTemporalCoverage
2026年08月01日边界元素是最大值的子数组数目codeStackArrayMonotonicStack
2026年07月30日受限内存推理调度interviewLLM-servingKV-cacheScheduling
2026年07月29日技能感知词元压缩interviewTokenCompressionMultimodalKnapsack
2026年07月27日递归验证预算分配interviewAStarBanditSubmodular
2026年07月26日推理早停预算分配interviewOptimalStoppingSequentialTestCalibration
2026年07月26日二叉树中所有距离为 K 的结点codeTreeBFSDFS
2026年07月25日流式同传轨迹调度interviewStreamingMonotonicAlignmentLatencyControl
2026年07月25日分割回文串codepalindromebacktrackingdynamicprogramming
2026年07月24日最大节点价值之和codeGreedyBitManipulationTree
2026年07月23日长音视频工具调度interviewTool RoutingDAG SchedulingSubmodular Maximization
2026年07月20日流式多模态记忆检索interviewStreaming MemoryMultimodal RetrievalTemporal Indexing
2026年07月20日T 秒后青蛙的位置codeTreeDFSProbability
2026年07月20日约束预算模型路由interviewModel RoutingConstrained OptimizationContextual Bandit
2026年07月20日匹配模式数组的子数组数目 IIcodeArrayKMPStringMatching
2026年07月20日受限显存解码调度interviewLLMCompilerKVCacheScheduling
2026年07月20日填充每个节点的下一个右侧节点指针 IIcodeTreeBFSLinkedList
2026年07月02日变分信息瓶颈Information BottleneckVariational BoundRate-Distortion
2026年07月01日CTC序列对齐算法CTCForward-Backward AlgorithmBlank Token
2026年07月01日故障流行病学Core DumpStatistical DebuggingFault Localization
2026年06月30日哈希嵌入压缩Hash EmbeddingFeature HashingEmbedding Compression
2026年06月29日一致性蒸馏Consistency ModelsProgressive DistillationODE Trajectory
2026年06月29日原生推理引擎Native RuntimeggmlInference Engine
2026年06月28日无分类器引导Classifier-Free GuidanceGuidance ScaleScore Interpolation
2026年06月25日MVDR波束成形MVDR BeamformingSpatial FilteringCovariance Estimation
2026年06月24日神经缩放定律Scaling LawsCompute-Optimal TrainingPower Law
2026年06月23日最小贝叶斯风险解码Minimum Bayes RiskDecision TheoryHypothesis Selection
2026年06月23日PID控制与生成调控PID ControllerFeedback ControlClosed-loop Generation
2026年06月22日生成模型评估度量Frechet Inception DistanceGenerative EvaluationFeature Statistics
2026年06月21日浮点量化收缩偏差FP4 TrainingShrinkage BiasLow-Precision Arithmetic
2026年06月21日模型上线仿真Deployment SimulationShadow TestingOffline Evaluation
2026年06月20日现代联想记忆Hopfield NetworkAssociative MemoryEnergy-Based Model
2026年06月19日离散扩散语言模型Discrete DiffusionAbsorbing StateConcrete Score
2026年06月18日循环变换器架构Looped TransformerWeight TyingAdaptive Computation
2026年06月17日韵律建模演进Prosody PredictionF0 ModelingDuration Prediction
2026年06月16日说话人日志Speaker DiarizationSpeaker EmbeddingEEND
2026年06月15日偏好对齐优化Preference OptimizationDPOReward Modeling
2026年06月14日多令牌并行预测Multi-Token PredictionSpeculative DecodingParallel Decoding
2026年06月13日流匹配生成模型Flow MatchingRectified FlowOptimal Transport Path
2026年06月13日实时管线延迟预算Latency BudgetPipeline OrchestrationTime-to-First-Token
2026年06月12日MoE路由机制Mixture of ExpertsSparse GatingRouter Design
2026年06月11日连续自回归生成Continuous AutoregressiveLatent PredictionAudioVAE
2026年06月10日KV缓存压缩KV Cache CompressionToken EvictionAttention Sparsity
2026年06月09日浏览器端模型推理WebGPUBrowser InferenceClient-side ML
2026年06月02日残差向量量化Residual Vector QuantizationAudio TokenizationNeural Codec
2026年05月31日彩色噪声扩散采样Colored NoiseSpectral BiasSDE Solver
2026年05月31日算子融合编译原理Kernel FusionOperator Fusiontorch.compile
2026年05月20日AI生成内容溯源 (7 chars) ✓Content ProvenanceC2PASynthID
2026年05月19日推理委托设计模式 (8 chars) ✓ Let me now write the full content for both topics. Actually, I realize I should double-check: is "Runtime Abstraction" or "Delegate Pattern" too close to any covered keyword? Looking at the list: Cluster Scheduling, Co-design, Collective Communication, Computational Expressiveness, CUTLASS... No, none of these overlap. OK, let me finalize and write everything out. Let me reconsider the engineering topic one more time. The title "推理委托设计模式" is good but maybe I should make it even more specific and interesting. What about focusing on the "graph partitioning" aspect - how ML runtimes decide which operations to delegate to which backend? This is a more specific and technically interesting angle. No, I think the broader "delegate pattern" is better because it covers the full picture and is more useful to the reader. Let me write it all out now. For the engineering topic, let me think about the history: - Early days: frameworks were monolithic (Caffe, early TensorFlow) - TensorRT (2017): NVIDIA's specialized inference engine, initially standalone - ONNX Runtime (2019): Microsoft introduced "Execution Providers" - the first major delegate-like abstraction - TFLite delegates (2018-2019): TensorFlow Lite introduced delegate API for GPU, NNAPI, etc. - ExecuTorch (2023-2024): PyTorch's answer to edge inference with a clean delegate API - 2025-2026: MLX delegate, Qualcomm AI Engine Direct delegate, etc. This is a rich history. Let me write it up. Actually, I want to make sure I have the dates right: - TensorRT was first released around 2016-2017 - ONNX was announced in 2017 - ONNX Runtime was open-sourced in 2018-2019 - TFLite was released in 2017, delegates came later - ExecuTorch was announced at PyTorch Conference 2023 OK, let me write everything now. I'll be thorough. One more thought: for the MATH section of the engineering topic, I could discuss the graph partitioning problem formally, or I could discuss the cost model for deciding whether to delegate. Let me think... The graph partitioning for delegation can be formalized as: - Given a computation graph $G = (V, E)$ where $V$ is the set of operations and $E$ is data dependencies - And a set of delegates $D = \{d_1, ..., d_m\}$ where each delegate supports a subset of operations $S_i \subseteq V$ - Find a partition $P = \{P_0, P_1, ..., P_m\}$ (where $P_0$ is the fallback/CPU partition) that minimizes total execution time - Subject to: each $
2026年05月17日连续批处理异步化
2026年05月10日连续潜在扩散语言模型Continuous Latent DiffusionNon-autoregressive LMDiffusion Language Model
2026年05月10日零样本跨语言语音克隆Zero-shot Voice CloningCross-lingual TTSIPA Phoneme Representation
2026年05月09日最优传输音频距离Optimal TransportFréchet Audio DistanceRiemannian Metric
2026年05月09日推荐系统推理核内广播优化Intra-kernel BroadcastEmbedding TableRecommendation Inference
2026年05月08日扩散Transformer异常值令牌Outlier TokensDiffusion TransformerAttention Sink
2026年05月08日WebRTC低延迟语音工程WebRTCReal-time AudioJitter Buffer
2026年05月07日音素级深度伪造检测原理Phoneme-level Deepfake DetectionSelf-supervised Speech EmbeddingEmotional Speech Synthesis
2026年05月07日AI训练网络协议工程哲学Multi-path Reliable ConnectionRDMA over EthernetCollective Communication
2026年05月05日对抗解纠缠说话人验证Speaker DisentanglementAdversarial TrainingCross-lingual Verification
2026年05月05日LLM推理为何用语言Chain-of-ThoughtLatent ReasoningToken Space
2026年05月01日跨架构知识蒸馏原理Cross-Architecture DistillationDiffusion LMAutoregressive Teacher
2026年05月01日AI评估计算瓶颈工程LLM Evaluation InfrastructureBenchmark SaturationEval Compute Bottleneck
2026年04月29日平衡传输语音增强Schrödinger BridgeStochastic Differential EquationSpeech Enhancement
2026年04月29日深度学习理论形成Deep Learning TheoryLoss LandscapeNeural Tangent Kernel
2026年04月28日语义进度函数原理Semantic Progress FunctionDiffusion TrajectoryNonlinear Denoising
2026年04月28日大模型OCR选型认知OCR BenchmarkModel Selection BiasCost-Performance Tradeoff
2026年04月27日说话人验证核心原理Speaker Verificationd-vectorECAPA-TDNN
2026年04月27日GPU核函数语言选型GPU Kernel EngineeringCuTe DSLCUTLASS
2026年04月26日时长控制TTS原理Duration ModelingProsody ControlAutoregressive TTS
2026年04月26日AI研究价值评估困境Research EvaluationPublication BiasPeer Review
2026年04月25日全双工对话建模原理Full-Duplex DialogueTurn-TakingVoice Activity Detection
2026年04月25日流式TTS文本规范化Text NormalizationStreaming TTSInverse Text Normalization
2026年04月24日离散扩散语言模型原理Discrete DiffusionMasked Diffusion Language ModelAbsorbing Diffusion
2026年04月24日跟进ML研究的认知工程Information OverloadResearch TriageSpaced Repetition
2026年04月23日一致性正则化ASR原理Consistency RegularizationUnified ASRTransducer
2026年04月23日流式TTS文本规范化工程Text NormalizationStreaming TTSInverse Text Normalization
2026年04月22日神经编码器伪影检测Neural Audio CodecArtifact DetectionForensic Residual
2026年04月22日AI研究复现危机工程Reproducibility CrisisML EngineeringExperimental Rigor
2026年04月21日扩散SNR偏差校正原理Signal-to-Noise RatioDiffusion Timestep BiasScore Matching
2026年04月21日论文复现危机根治工程Reproducibility CrisisAblation StudyExperimental Rigor
2026年04月20日音频时序定位原理Temporal GroundingAudio Event DetectionCross-modal Alignment
2026年04月20日论文复现危机根因Reproducibility CrisisBenchmark OverfittingEvaluation Validity
2026年04月19日流匹配对齐原理Flow Matching AlignmentReward Gradient BackpropagationTrajectory Optimization
2026年04月19日分布式训练任务编排Distributed Training OrchestrationCluster SchedulingFault Tolerance
2026年04月18日最优传输信号融合Optimal TransportWasserstein BarycenterTime-Frequency Resolution
2026年04月18日分布式训练任务调度Distributed Training OrchestrationJob SchedulingCluster Resource Management
2026年04月17日扩散语音识别原理Masked Diffusion Language ModelDiscrete DiffusionASR Decoding
2026年04月17日Mel尺度跨文化偏差Mel ScalePsychoacousticsCultural Bias
2026年04月16日音频水印对抗原理Audio WatermarkingSemi-FragilePsychoacoustic Masking
2026年04月16日推测解码草稿树工程Speculative DecodingDraft TreeBlock Diffusion
2026年04月15日对抗流模型原理Continuous Normalizing FlowAdversarial TrainingFlow Matching
2026年04月15日代理状态可观测性工程Agent ObservabilityDistributed TracingState Machine Debugging
2026年04月14日过程奖励模型原理Process Reward ModelStep-level SupervisionReasoning Chain
2026年04月13日离散令牌音源分离Discrete Token ModelingSource SeparationConditional Generation
2026年04月13日超算API工程哲学Distributed Training OrchestrationSupercomputer API DesignFault Tolerance
2026年04月12日信息瓶颈原理演进Information BottleneckVariational IBDisentanglement
2026年04月12日Safetensors格式工程哲学SafetensorsModel SerializationMemory-Mapped IO
2026年04月11日归一化层演进原理Layer NormalizationRMS NormalizationBatch Normalization
2026年04月11日GEMM自调优后端工程GEMM AutotuningTorchInductorCuteDSL
2026年04月10日多令牌预测原理Multi-Token PredictionSpeculative DecodingMedusa Heads
2026年04月10日ML从业者认知校准Calibration BiasCapability IllusionBenchmark Overfitting
2026年04月09日编码器-解码器LM原理Encoder-Decoder LMCross-Attention ConditioningSequence-to-Sequence
2026年04月09日torch.compile归一化优化torch.compileLayerNormRMSNorm
2026年04月08日KV缓存压缩原理KV Cache CompressionRoPE Position EncodingAttention Score Estimation
2026年04月08日音效基础模型工程Sound Effect GenerationFoundation ModelFoley Synthesis
2026年04月07日可验证奖励强化学习Verifiable RewardRLVRProcess Reward Model
2026年04月07日LLM技能退化认知机制Cognitive OffloadingSkill AtrophyDesirable Difficulty
2026年04月06日音素可解释说话人验证Phoneme-aware Speaker VerificationInterpretable BiometricsLocal Acoustic Evidence
2026年04月06日音频幻觉攻击评估Hallucination AttackAudio Language Model ReliabilityAdversarial Probing
2026年04月05日潜在空间推理原理Latent Space ReasoningContinuous RepresentationToken-Free Inference
2026年04月05日mRNA模型极低成本训练Biology Foundation ModelCross-Species TransferLow-Budget Training
2026年04月04日编码器-解码器TTS原理Encoder-Decoder TTSText ConditioningPositional Capacity
2026年04月04日大模型训练的MXFP8工程MXFP8MicroscalingMixed Precision Training
2026年04月03日在线知识蒸馏原理Online DistillationKnowledge TransferStudent-Teacher
2026年04月03日MoE专家并行调度工程Expert ParallelismMixture of ExpertsAll-to-All Communication
2026年04月02日波形潜空间扩散TTSwaveform latent diffusionnon-autoregressive TTSlatent space acoustic modeling
2026年04月02日波形隐空间扩散原理waveform latent spacediffusion TTSVAE audio codec
2026年04月02日LLM量化权重工程weight quantizationLLM compression4-bit quantization
2026年04月02日扩散语言模型离散生成Discrete DiffusionMasked Diffusion Language ModelNon-autoregressive TTS
2026年04月02日LLM后训练库工程演进RLHF engineeringPPO training stabilityreward hacking
2026年04月02日声学证据瓶颈原理Audio Evidence BottleneckAcoustic GroundingAudio Language Model
2026年04月02日状态空间模型音频建模State Space ModelMambaSelective Scan
2026年04月02日实时语音增强工程选型Real-time Speech EnhancementNoise SuppressionStreaming Inference
2026年04月02日对话上下文压缩原理Context CompressionAbstractive SummarizationCross-Attention Fusion
2026年04月02日说话人匿名化工程Speaker AnonymizationVoice ConversionStreaming Inference
2026年04月02日视听语音识别融合Audio-Visual Speech RecognitionLip ReadingViseme
2026年04月02日GPU训练吞吐加速工程MXFP8MoE TrainingExpert Parallelism
2026年04月01日熵驱动多样性生成diversity samplingtypicality biasrepulsion in latent space
2026年04月01日说话人分割工程选型speaker diarizationbenchmark methodologystreaming ASR pipeline
2026年03月31日转向检测联合建模turn-taking detectionvoice activity detectionjoint acoustic-linguistic modeling
2026年03月31日基准测试的系统性失效benchmark contaminationevaluation validityLLM judge reliability
2026年03月31日扩散模型声学生成diffusion modelscore matchingstochastic differential equation
2026年03月31日TTS开源生态竞争open-weight TTStime-to-first-audiomultilingual speech synthesis
2026年03月30日注意力机制变体演进Multi-Head AttentionGrouped Query AttentionMulti-head Latent Attention
2026年03月30日设备端语音推理架构on-device inferenceExecuTorchvoice agent pipeline
2026年03月29日混合自回归流匹配TTSautoregressive semantic tokensflow matching acoustic decoderhybrid TTS architecture
2026年03月29日NCCL超时诊断方法论NCCL watchdog timeoutdistributed training debuggingcollective communication
2026年03月29日混合架构音频表示Mambastate space modelaudio representation learning
2026年03月29日DeepSeek预训练加速工程MXFP8 trainingexpert parallelismMoE pretraining
2026年03月27日说话人验证度量学习speaker verificationmetric learningcurriculum learning
2026年03月27日MX浮点格式加速训练MXFP8microscalingmixed precision training
2026年03月26日TTS模型极限压缩model compressionknowledge distillationTTS on-device
2026年03月26日小模型极限压缩哲学model compressionknowledge distillationquantization
2026年03月25日流匹配生成原理flow matchingrectified flowODE
2026年03月25日神经音频编解码器neural audio codecresidual vector quantizationEnCodec
2026年03月25日推测解码加速推理speculative decodingdraft modeltoken verification