qjlDim=384 含义(TurboQuant QJL + mse2 算子)
mse2:就是 MSE最优标量量化(Lloyd‑Max)阶段 ,TurboQuant 的 Stage1;然后 Stage2 对残差做 QJL(Quantized Johnson-Lindenstrauss,量化JL随机投影) 1bit残差校正。
qjlDim = QJL sketch维度(投影后的草图向量长度 m),这里等于384。
术语拆解
- QJL :Quantized Johnson-Lindenstrauss,量化JL随机投影。
用一个高斯随机矩阵把原始残差向量投影到m维,再取符号变成1bit的±1向量,用来无偏估计原始向量内积,专门补MSE量化带来的内积偏差,KV Cache低比特量化(2/3bit)里用的核心技术。 - qjlDim(m) :QJL投影之后的草图维度(sketch dimension)
- 原始KV向量维度是
d(比如768) - 随机矩阵 S ∈ R qjlDim × d
- 输出草图:
sign(S @ residual),输出向量长度 = qjlDim - 这里
qjlDim=384:残差向量被投影到 384维,每个维度只存1bit符号(+1/-1)
- 原始KV向量维度是
mse2 + qjlDim 整体流程(TurboQuant)
- mse2:对KV向量做随机旋转 + Lloyd‑Max MSE最优标量量化(这一步就是mse2算子),得到粗量化向量;
- 计算残差
r = 原始向量 − mse2复原向量; - QJL模块:残差r乘以随机JL矩阵,投影到
qjlDim=384,取sign,保存384个1bit符号,用来推理时修正attention内积的bias。
取值意义
- qjlDim越大:草图携带信息越多,内积估计方差越小、精度越高;但存储和计算开销线性上涨(这里384是工程常用折中值);
- qjlDim越小:内存开销低,但量化误差变大,PPL上升。
补充:不要和原始embedding dim混淆。原始向量维度(例如hidden_dim=768)≠ qjlDim(投影草图维度384)。
如果你需要,我可以把这个算子的输入输出shape、昇腾CANN上tile切分策略一起整理出来。