llmcompressor.pipelines
用于编排不同压缩策略的压缩流水线。
提供各种压缩流水线,包括基础、顺序、独立、层顺序和无数据方法。每个流水线协调不同的压缩技术和工作流程,以根据特定需求和约束进行最佳模型优化。
模块
-
basic– -
cache– -
data_free– -
independent– -
registry– -
sequential–
类
-
BasicPipeline– -
CalibrationPipeline– -
DataFreePipeline– -
IndependentPipeline– -
SequentialPipeline– -
Subgraph–指定模型图的可执行子图的数据类
函数
-
dispatch_for_sequential–使用顺序管道调度模型进行顺序校准。
-
get_sequential_targets–根据修饰符列表和数据集参数推断顺序目标
-
trace_subgraphs–追踪模型以生成子图,其中每个顺序目标都恰好属于
BasicPipeline
Bases: CalibrationPipeline
CalibrationPipeline
Bases: ABC, RegistryMixin
方法
-
from_modifiers–根据可用的修饰符和
from_modifiers classmethod
根据可用的修饰符和任何用户规范推断要使用的校准流水线
参数
-
(修饰符List[Modifier]) –要应用于模型的修饰符
-
(userOptional[str], 默认值:None) –用户传入的流水线名称
返回
-
CalibrationPipeline–要与数据一起调用的 CalibrationPipeline 实例(如果不是无数据)
源文件在 llmcompressor/pipelines/registry.py
DataFreePipeline
Bases: CalibrationPipeline
IndependentPipeline
Bases: CalibrationPipeline
SequentialPipeline
Bases: CalibrationPipeline
Subgraph dataclass
Subgraph(
graph: Graph,
input_names: Set[str],
consumed_names: Set[str],
_code: Optional[PythonCode] = None,
)
指定模型图的可执行子图的数据类
参数
-
(graphGraph) –模型图的子图
-
(input_namesSet[str]) –编译后的 forward 函数的参数名称
-
(consumed_namesSet[str]) –任何后续子图未使用的参数名称,因此可以从中间缓存中删除
方法
-
forward–执行子图中的操作
forward
执行子图中的操作
参数
-
–\*args子图 forward 函数的参数输入
-
–\**kwargs子图 forward 函数的关键字输入
返回
-
Dict[str, Any]–
源代码位于 llmcompressor/pipelines/sequential/helpers.py
dispatch_for_sequential
使用顺序管道调度模型进行顺序校准。模型将被卸载到 CPU,如果可用,则调度到 CUDA/XPU 设备。移除任何现有的钩子。
参数
-
(modelPreTrainedModel) –要分发的模型
返回
-
PreTrainedModel–已调度的模型
源代码位于 llmcompressor/pipelines/sequential/helpers.py
get_sequential_targets
get_sequential_targets(
modifiers: List[Modifier],
model: PreTrainedModel,
args: DatasetArguments,
) -> List[str]
根据修饰符列表和数据集参数推断顺序目标
参数
-
(modelPreTrainedModel) –正在校准的模型
-
(修饰符List[Modifier]) –校准期间应用的修饰符列表
-
–dataset_args用户传递的数据集参数
返回
-
List[str]–顺序目标列表
源代码位于 llmcompressor/pipelines/sequential/helpers.py
trace_subgraphs
trace_subgraphs(
model: PreTrainedModel,
sample_input: Dict[str, Any],
sequential_targets: List[str],
ignore: List[str],
) -> List[Subgraph]
追踪模型以生成子图,其中每个顺序目标都恰好属于一个子图,并且按顺序执行每个子图等效于执行原始模型
参数
-
(modelPreTrainedModel) –正在追踪的模型
-
(sample_inputDict[str, Any]) –在执行期间其值将发生变化的输入,但其 len、bool 和 contains 值在批次中假定为常量
-
(sequential_targetsList[str]) –匹配顺序目标的模式列表
-
(ignoreList[str]) –追踪期间要跳过的函数和方法名称
返回
-
List[Subgraph]–按执行顺序排列的子图列表
源代码位于 llmcompressor/pipelines/sequential/helpers.py
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | |