llmcompressor.pipelines.sequential.ast_utils.auto_wrapper
类
-
AutoWrapper–根据以下模式自动包装不可跟踪的代码
AutoWrapper
基类: NodeTransformer
根据以下模式自动包装不可跟踪的代码
以下模式将被自动包装 1. 条件无法静态评估的 If 语句 2. 被忽略的函数 (_update_causal_mask) 3. 星号元组解包 4. 星号参数解包
另请参阅:https://github.com/vllm-project/llm-compressor/pull/1411
方法
-
auto_wrap–修改 AST,自动包装任何不可跟踪的代码段。要包装的段
-
visit_Call–包装使用 (4) 可变参数或 (2) 匹配忽略列表的任何函数
-
visit_Delete–从
self._local_names中移除任何已删除的名称, -
visit_FunctionDef–移除阻止前向函数重新编译的装饰器
-
visit_If–尝试静态评估
if语句的条件。如果 -
visit_Name–将任何新名称添加到
self._local_names中, -
visit_Tuple–(3) 包装任何使用星号解包的元组
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
auto_wrap
修改 AST,自动包装任何不可跟踪的代码段。通过代码分析和基本模式匹配来确定要包装的代码段
参数
-
(treeModule) –包含原始前向函数定义的模块
返回
-
Module–包含添加了包装器函数定义和函数调用的模块
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
visit_Call
包装使用 (4) 可变参数或 (2) 匹配忽略列表的任何函数
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
visit_Delete
从 self._local_names 中移除任何已删除的名称,这些名称用于确定函数包装器的参数
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
visit_FunctionDef
移除阻止前向函数重新编译的装饰器。例如,add_start_docstrings_to_model_forward
由于 _wrapper_fn_defs 是在 visit 完成后附加的,因此此函数不会影响包装器函数
参数
-
(节点FunctionDef) –将要剥离装饰器的函数定义
返回
-
FunctionDef–没有装饰器的函数定义
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
visit_If
尝试静态评估 if 语句的条件。如果条件无法静态评估 (1),则尝试包装 if 语句
参数
-
(节点If) –可能被包装的
if语句
返回
-
Union[If, Assign]–如果
if语句无法静态评估,则返回将条件替换为True或False的if语句。否则,返回一个包装器函数调用
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
visit_Name
将任何新名称添加到 self._local_names 中,这些名称用于确定函数包装器的参数
源代码在 llmcompressor/pipelines/sequential/ast_utils/auto_wrapper.py
visit_Tuple
(3) 包装任何使用星号解包的元组