Effort 算法:LLM 推理效率的新思路
新推理算法设计,有潜力显著提升 LLM 推理效率。兼具学术研究和工程应用价值。
新推理算法设计,有潜力显著提升 LLM 推理效率。兼具学术研究和工程应用价值。
一种可能用于 LLM 推理的新算法
借助 Effort,你可以实时、平滑地调整 LLM 模型在推理过程中执行的计算量。
当 effort 为 50% 时,它在 Apple Silicon 芯片上的运行速度与常规矩阵乘法相当;当 effort 为 25% 时,速度可以提升一倍,同时仍能保留大部分质量。
你还可以选择不加载最不重要的权重。
目前它只针对 Mistral 实现,但无需重新训练,理论上同样适用于其他所有模型——只需要转换成另一种格式,并进行一些预计算。
你可以从 Github 下载这里的实现。获取转换后的权重后,应该可以直接运行。
目前只实现了 FP16 版本。乘法运算本身很快,但整体推理在一些非核心环节仍有改进空间,例如 softmax、attention 求和等操作。
Mixtral 和 Q8 版本正在开发中。
对了,它还支持动态调整模型加载到内存中的比例。加载时,你可以省略最不重要的 10%、20% 或 30% 权重。无需任何转换步骤——它只会少加载一些数据。你也可以把它理解成一种临时的 distillation。
现在让我们看看它的实际效果。
你可以从 Github 下载并亲自测试。
回到 benchmark 的话题……
接下来讨论质量,先从乘法近似本身开始。
然后把注意力转向模型本身。
如果你仍然持怀疑态度——换作是我也会如此——请查看“需要帮助!”一节,了解要进行更完善的测试还需要哪些工作。
初步结果,以及尚未整理成文档的 Mixtral 实验,看起来已经足够稳健,值得发布。不过,我还是希望上面的内容足以说服你亲自试试 0.0.1B 版本。
bucketMul 简介
GPU 实现
MoE、quantization 及其他内容
棘手的细节(或者说:需要帮助!)
关于作者