ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MRL自适应分类教程:Model Cascades阈值级联如何省算力又保精度

MRL自适应分类教程:Model Cascades阈值级联如何省算力又保精度 MRL自适应分类教程Model Cascades阈值级联如何省算力又保精度【免费下载链接】MRLCode repository for the paper - Matryoshka Representation Learning项目地址: https://gitcode.com/gh_mirrors/mrl/MRLMRLMatryoshka Representation Learning套娃表示学习是一个用单一模型同时支持多种维度特征表示的开源项目。它的核心玩法之一——自适应分类Adaptive Classification——通过Model Cascades阈值级联机制让简单的样本用小维度模型快速出结果困难的样本才升级到大维度模型从而在几乎不损失精度的前提下大幅节省算力。本文带你从原理到实操完整掌握这套方案。为什么需要阈值级联传统分类模型只有一种规格不管你输入的是明显是猫还是模棱两可的图都用完整的 2048 维特征 完整分类头来推理。对简单样本来说这是纯粹的浪费。MRL 的巧妙之处在于训练时就让前 8 维、16 维、32 维……直到 2048 维的每一段特征都能独立分类类似俄罗斯套娃一层套一层。实现这个能力的核心是 MRL.py 中的 MRL_Linear_Layer 与 Matryoshka_CE_Loss 损失函数。于是推理时就可以玩级联先用最小维度如 8 维做预测计算 softmax 置信度置信度超过阈值→ 直接输出结果省时省算力置信度低于阈值→ 升级到下一个更大的维度16 维 → 32 维 → ……直到自信或用完所有层级。Model Cascades 是怎么工作的官方在 Model_Cascades.ipynb 中实现了完整的贪心阈值级联Threshold based model cascades流程如下阈值搜索在 (0, 1) 区间对每一对相邻维度8→16、16→32、……、1024→2048做网格搜索100 个候选阈值找出准确率最高的切换阈值留出验证从 5 万张验证图中随机抽 1 万张搜索阈值在剩余 4 万张上报告结果避免过拟合多次平均整个流程重复 30 个随机种子取平均保证结论可靠提前终止Early Stopping你可以给级联设置最大维度上限比如最多只升到 128 维进一步压缩算力预算。从 notebook 中的统计结果可以看到当允许升到 128 维时平均实际使用的维度只有约 45.7 维而 Top-1 准确率仍可达 76.4% 左右——绝大部分样本在很小的维度上就被自信地分完了。 上图是论文 Figure 6蓝色 MRL-AC自适应级联曲线整体位于橙色 FF固定特征曲线左上方——同样的准确率表示尺寸小 14 倍约 37 维 vs 512 维。动手实践三步跑通 MRL 阈值级联第 1 步获取代码git clone https://gitcode.com/gh_mirrors/mrl/MRL cd MRL pip3 install -r requirements.txt第 2 步运行推理并保存置信度级联策略依赖每张图在各维度上的softmax 概率所以推理时必须加--tta --save_softmax --save_gt三个参数注意只有自适应分类需要--tta测试时增强用于获得更可靠的置信度估计。具体说明见 model_analysis/README.mdcd inference python pytorch_inference.py --path 模型权重.pt --dataset V1 \ --mrl --tta --save_softmax --save_gt --save_predictions第 3 步打开 Notebook 复现级联策略进入 model_analysis/ 目录打开 Model_Cascades.ipynb把文件路径指向你上一步保存的softmax.pth和gt.pth依次运行即可得到各层级的贪心阈值、级联准确率和平均维度统计。 实践要点速查要点说明必须加--tta置信度估计更可靠论文级联结果均基于 TTA搜索/验证分离1 万张搜阈值4 万张验证防止刷榜可设维度上限想更省算力就限制最大级联维度代价是轻微掉点阈值是贪心的每次只在相邻两个维度间决策简单高效常见疑问小维度模型到底会迷糊在哪一个自然的问题是8 维、16 维的小模型差在哪官方用 GradCAM 可视化给出了答案GradCAM.ipynb小维度模型在同一上级类别内的细粒度区分上容易混淆例如把岩蟒Rock Python和蟒蛇Boa Constrictor搞混。而阈值级联恰好对症下药简单、有区分度的样本用小维度快速处理容易混淆的同族样本因置信度低自动升级到大维度模型由更清醒的特征来定夺。进阶级联思想还能省多少算力阈值级联的思路不止用于分类。项目的检索模块 retrieval/ 用同样的漏斗思想提出了Funnel Retrieval先用低维度召回 200 个近邻再用升维 缩小候选集的方式多级重排最终在 ImageNet-1K 上以128× 更少的 MFLOPs/Query达到 2048 维全量检索的精度。总结MRL 的 Model Cascades 阈值级联把一个模型、多种算力规格变成了现实原理小维度先预测置信度不够就升级到更大维度贪心逐层决策效果同等 76.3% 准确率下表示尺寸比 512 维固定特征小 14 倍实操--tta --save_softmax --save_gt保存概率 → 打开 Model_Cascades.ipynb 三步跑通延伸同一思想在检索Funnel Retrieval中可再省128× 算力。对于部署端算力受限、样本难度分布不均的场景这套自适应方案是一个既省又稳的实用选择。【免费下载链接】MRLCode repository for the paper - Matryoshka Representation Learning项目地址: https://gitcode.com/gh_mirrors/mrl/MRL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表