显然,你可以在加载时跳过整个Transformer模块,且性能影响极小

Reddit r/LocalLLaMA 工具

摘要

一位开发者为llama.cpp的一个分支实现了--skip-layers标志,基于近期论文,允许用户在加载时跳过整个Transformer模块,且性能影响极小。这为在有限硬件上运行大模型提供了另一种方法,与量化和构建时剪枝相辅相成。

其好处是提供了另一种技巧,使得原本无法在硬件上运行的模型得以运行。目前人们依赖量化,而这只是一个额外的工具(两者也可结合使用)。受近期(非常酷的)论文启发,我为llama.cpp的一个分支实现了--skip-layers标志,因此它永远不会实例化你指定跳过的模块。构建时剪枝已存在(--prune-layers、mergekit passthrough等);这只是同一思路的运行时版本。需要注意的是,跳过哪些模块的效果差异可达几个数量级,因此我必须附带一个选择机制。结果、图表和失败案例都在文章里。 - 文章:https://open.substack.com/pub/itayinbarr/p/you-can-skip-llm-layers-at-runtime - 分支:https://github.com/itayinbarr/llama.cpp 欢迎提出你的看法!
查看原文

相似文章

跳层还是循环?学习LLM中的Program-of-Layers

Hugging Face Daily Papers

本文介绍了PoLar,一个学习针对冻结transformer层的输入特定执行程序的框架,允许层被跳过、保留或重复。与固定深度方法相比,它提高了准确性并减少了推理开销。

@mylifcc: 你想象中的所谓大模型升级:多买 H100、花几百万美元重训练、把参数从 70B 堆到 700B……

X AI KOLs Timeline

Apple 研究人员的论文《Decoding Looped Transformers Better for (Almost) Free》表明,通过对比解码(Contrastive Decoding)复用推理时被丢弃的中间状态,可以在零训练成本的前提下将计算消耗降低 47%,同时将数学问题的 pass@1 从 61% 提升到 73%——这标志着大模型发展正从硬件堆叠转向算法层面的精细优化。

@askalphaxiv: 另一项关于循环Transformer的酷研究。他们提出一个问题:“我们能否直接在推理时循环一个冻结的、现成的检查点…

X AI KOLs Timeline

本研究介绍了一种技术,通过使用阻尼Runge-Kutta子步骤,在推理时循环冻结的、现成的Transformer检查点,将Transformer层视为残差ODE中的欧拉步骤。这无需微调、架构更改或新权重即可增加额外的潜在计算,在MMLU-Pro、GPQA和ARC等知识任务上显示出收益。