llmcompressor.modifiers
用于应用各种优化技术的压缩修改器。
提供核心修改器系统,用于将量化、剪枝、蒸馏和其他优化方法等压缩技术应用于神经网络。包括基础类、工厂模式和用于可扩展压缩工作流的接口。
模块
-
autoround– -
awq– -
factory– -
interface– -
logarithmic_equalization– -
modifier– -
pruning– -
quantization– -
smoothquant– -
transform– -
utils–
类
-
Modifier–所有修改器继承的基类。
-
ModifierFactory–用于加载和注册修改器的工厂
-
ModifierInterface–定义所有修改器必须实现的契约
Modifier
基类: ModifierInterface, HooksMixin
所有修改器继承的基类。修改器用于修改模型的训练过程。定义了所有修改器可用的基本属性和方法。
生命周期: 1. 初始化 2. on_event -> * 如果 self.start <= event.current_index 则 on_start * 如果 self.end >= event.current_index 则 on_end 5. 最终化
参数
-
–index修改器在模型修改器列表中的索引
-
–group修改器的组名
-
–start修改器的起始步长
-
–结束修改器的结束步长
-
–更新修改器的更新步长
方法
-
finalize–为给定模型和状态最终化修改器。
-
initialize–为给定模型和状态初始化修改器。
-
on_end–on_end 在修改器结束时调用,必须实现。
-
on_event–on_event 在事件触发时调用。
-
on_finalize–on_finalize 在修改器最终化时调用。
-
on_initialize–on_initialize 在修改器初始化时调用。
-
on_start–on_start 在修改器开始时调用。
-
on_update–on_update 在模型需要更新时调用。
-
should_end–:param event: 检查修改器是否应该结束的事件
-
should_start–:param event: 检查修改器是否应该开始的事件
-
update_event–根据给定事件更新修改器。进而调用
属性
-
finalized(bool) –:return: 如果修饰符已最终确定,则为 True
-
initialized(bool) –:return: 如果修饰符已初始化,则为 True
finalize
为给定模型和状态最终化修改器。
参数
-
(stateState) –模型的当前状态
-
–kwargs最终化修改器的附加参数
引发
-
RuntimeError–如果修改器未初始化
源代码位于 llmcompressor/modifiers/modifier.py
initialize
为给定模型和状态初始化修改器。
参数
-
(stateState) –模型的当前状态
-
–kwargs初始化修改器的附加参数
引发
-
RuntimeError–如果修改器已最终化
源代码位于 llmcompressor/modifiers/modifier.py
on_end
on_end 在修改器结束时调用,必须由继承的修改器实现。
参数
源代码位于 llmcompressor/modifiers/modifier.py
on_event
on_event 在事件触发时调用。
参数
源代码位于 llmcompressor/modifiers/modifier.py
on_finalize
on_finalize 在修改器最终化时调用,必须由继承的修改器实现。
参数
-
(stateState) –模型的当前状态
-
–kwargs最终化修改器的附加参数
返回
-
bool–如果修改器成功最终化则为 True,否则为 False
源代码位于 llmcompressor/modifiers/modifier.py
on_initialize abstractmethod
on_initialize 在修改器初始化时调用,必须由继承的修改器实现。
参数
-
(stateState) –模型的当前状态
-
–kwargs初始化修改器的附加参数
返回
-
bool–如果修改器成功初始化则为 True,否则为 False
源代码位于 llmcompressor/modifiers/modifier.py
on_start
on_start 在修改器开始时调用,必须由继承的修改器实现。
参数
源代码位于 llmcompressor/modifiers/modifier.py
on_update
on_update 在相关模型必须根据传入事件进行更新时调用。必须由继承的修改器实现。
参数
源代码位于 llmcompressor/modifiers/modifier.py
should_end
参数
-
(eventEvent) –检查修改器是否应该结束的事件
返回
- –
如果修改器应根据给定事件结束,则为 True
源代码位于 llmcompressor/modifiers/modifier.py
should_start
参数
-
(eventEvent) –检查修改器是否应该开始的事件
返回
-
bool–如果修改器应根据给定事件开始,则为 True
源代码位于 llmcompressor/modifiers/modifier.py
update_event
根据给定事件更新修改器。进而根据事件和修改器设置调用 on_start、on_update 和 on_end。如果修改器未初始化则立即返回。
参数
引发
-
RuntimeError–如果修改器已最终化
源代码位于 llmcompressor/modifiers/modifier.py
ModifierFactory
用于加载和注册修改器的工厂
方法
-
create–从已注册的修改器中实例化给定类型的修改器。
-
load_from_package–:param package_path: 要从中加载修改器的包的路径
-
refresh–一个通过重新加载修改器来刷新工厂的方法
-
register–注册一个修改器类供工厂使用。
create staticmethod
从已注册的修改器中实例化给定类型的修改器。
参数
-
(类型_str) –要创建的修改器的类型
-
–framework修改器适用的框架
-
(allow_registeredbool) –是否允许已注册的修改器
-
(allow_experimentalbool) –是否允许实验性修改器
-
–kwargs在实例化期间传递给修改器的其他关键字参数
返回
-
Modifier–已实例化的修改器
引发
-
ValueError–如果找不到给定类型的修改器
源代码在 llmcompressor/modifiers/factory.py
load_from_package staticmethod
参数
-
(package_pathstr) –要从中加载修改器的包的路径
返回
-
Dict[str, Type[Modifier]]–已加载的修改器,作为名称到类的映射
源代码在 llmcompressor/modifiers/factory.py
refresh staticmethod
一个通过重新加载修改器来刷新工厂的方法。注意:这将清除所有先前注册的修改器。
源代码在 llmcompressor/modifiers/factory.py
register staticmethod
注册一个修改器类供工厂使用。
参数
-
(类型_str) –要注册的修改器的类型
-
(modifier_classType[Modifier]) –要注册的修改器的类,必须继承自 Modifier 基类
引发
-
ValueError–如果提供的类未继承自 Modifier 基类或不是一个类型
源代码在 llmcompressor/modifiers/factory.py
ModifierInterface
基类:ABC
定义所有修改器必须实现的契约
方法
-
finalize–完成修改器
-
initialize–初始化修改器
-
update_event–根据事件更新修改器
属性
-
finalized(bool) –:return: 如果修饰符已最终确定,则为 True
-
initialized(bool) –:return: 如果修饰符已初始化,则为 True
finalize abstractmethod
完成修改器
参数
-
(stateState) –模型的当前状态
-
–kwargs用于修改器最终化的附加关键字参数
源代码在 llmcompressor/modifiers/interface.py
initialize abstractmethod
初始化修改器
参数
-
(stateState) –模型的当前状态
-
–kwargs用于修改器初始化的附加关键字参数
源代码在 llmcompressor/modifiers/interface.py
update_event abstractmethod
根据事件更新修改器
参数