你负责一个音视频 OmniLLM 在线推理服务。每个请求被切成 N 个片段,第 i 个片段有原始词元数 l_i、模态 m_i、轻量技能识别器输出的技能分布 p_i(k),可选压缩档位 r∈{1,1/2,1/4,1/8},压缩后成本 c_i(r)=ceil(l_i*r)。离线评测给出不同技能/模态/档位下的质量损失 Δ_{k,m}(r),相邻片段压缩档位差过大还会产生时序不连续惩罚 V(r_i,r_{i+1})。线上要求 p95 延迟≤L、显存≤M,经过 profiling 可转换成总词元上限 B,同时某些高风险技能必须保留最低词元量。 请你设计一个方法,为每个片段选择压缩档位,使期望质量损失最小且满足词元、显存和风险约束。要求说明:任务如何建模;在无相邻惩罚、有相邻惩罚两种情况下如何求解或近似;时间/空间复杂度;如果 N 很大、B 很大且线上只有几十毫秒决策时间,工程上如何落地;如何处理离线损失表不准、数据漂移和约束不可行。
我会先把延迟和显存约束统一成词元预算 B=min(B_latency(L), B_memory(M)),其中映射来自线上 profiling,并按机型、batch、模型版本维护。对片段 i、档位 r 定义单点损失 a_i(r)=Σ_k p_i(k)·Δ_{k,m_i}(r),目标是最小化 Σ_i a_i(r_i)+Σ_i V(r_i,r_{i+1}),约束 Σ_i c_i(r_i)≤B,并满足高风险技能的最低保留量,例如 Σ_i p_i(k)·c_i(r_i)≥b_k。
无相邻惩罚时,这是 multi-choice knapsack。若 B 已按 token block 量化,精确 DP 为 dp[i][b]=前 i 个片段用 b token 的最小损失,转移枚举档位,复杂度 O(NBQ),空间可滚动到 O(B),Q=4。B 很大时不适合在线。若每个片段的“多保留 token 的边际收益”满足近似递减,可从最强压缩开始,用最大堆反复选择单位 token 质量收益最高的升级,复杂度 O(NQ log(NQ)),并可做档位支配剪枝。更通用的线上方案是拉格朗日松弛:最小化 Σ_i [a_i(r)+λc_i(r)],给定 λ 时每个片段独立选最优档位,O(NQ);二分 λ 得到接近 B 的解,再用小范围局部修补满足硬预算。离线可以预计算每种技能分布桶、模态、长度桶的 Pareto frontier,线上只查表和做少量修补。
有相邻惩罚且片段是时间链时,可做带预算的 Viterbi-DP:dp[i][b][r]=到第 i 段、预算 b、当前档位 r 的最小损失,转移枚举上一个档位 r',复杂度 O(NBQ^2),空间 O(BQ)。线上仍可用拉格朗日:给定 λ,目标变成 Σ_i[a_i(r_i)+λc_i(r_i)]+Σ_iV(r_i,r_{i+1}),用 Viterbi 在 O(NQ^2) 求解;二分 λ 后局部调整。若依赖不是链而是一般图,任务会接近带背包约束的 MRF,通常 NP-hard,我会限制工程形态为链/树,或用分块、束搜索、graph cut 条件子任务、局部搜索等近似,并给出质量兜底。
工程落地上,首先用规则把明显无信息片段如静音、黑帧、低运动片段标成低优先级;高风险技能如手术动作、法律/金融证据片段设置 hard floor。然后在线流程是:轻量模型得到 p_i(k);根据当前机型、batch、队列长度得到 B;查 Pareto 表;用拉格朗日/Viterbi 选档;若不可行则触发降级策略,例如拒绝超长请求、切换长上下文模型、摘要化前缀、分段推理。为了防止离线 Δ 不准,需要对技能识别器做校准,损失表按置信区间加保守项,例如 a_i(r)=E_loss+γ·uncertainty;线上做 shadow eval、人工抽检、关键任务 A/B、漂移监控,发现技能分布或质量指标漂移后回滚到更保守压缩策略。边界条件包括 B 大于原始词元数时不压缩,B 小于所有 hard floor 时返回不可行,长片段要先切块避免单段支配预算,片段边界附近可禁止压缩跳变过大。
强答应先把系统约束转成可优化的词元预算,并明确目标函数、单点损失、相邻惩罚、硬约束之间的关系。然后要能识别无相邻惩罚是多选背包,有链式相邻惩罚是带状态的 DP/Viterbi,B 很大时需要拉格朗日松弛、贪心边际收益、Pareto 剪枝等近似。高级候选人还应指出一般图依赖会导致 NP-hard,不能轻率承诺全局最优。工程部分重点看是否覆盖 profiling、在线几十毫秒决策、离线表校准、漂移监控、不可行兜底和高风险技能保护。常见错误是只说“按重要性排序贪心压缩”,没有证明适用条件;或只给 O(NB) DP,忽略 B 很大无法线上运行;或只关注平均质量,不考虑 p95 延迟、显存和安全约束。出练习者会追问:损失表如何学习;技能识别器错了怎么办;如何证明近似策略不会突破硬预算;相邻惩罚从链扩展到图时怎么办。
- 如果 Δ_{k,m}(r) 不是单调的,方法如何处理
- 如何用线上日志反推每个压缩档位的真实质量损失
- 多请求 batch 共享同一显存预算时如何联合分配