You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v5.22.2).
内核
本页记录了内核配置工具。
kernelize
临时注册隐藏的内核包装器,以便 kernelize 能够发现并替换它们。
KernelConfig
class transformers.KernelConfig
< source >( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )
内核配置类。该类用于配置模型的内核映射。
将如下形式的简单 kernel_mapping 进行转换: { “RMSNorm”: (“kernels-community/layer_norm:LlamaRMSNorm”, {“version”: 1, “trust_remote_code”: True}), … },
或对于本地路径:
{ “RMSNorm”: “/home/user/liger_kernels:LigerRMSNorm”, … },
嵌套映射:
{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LayerRepository( repo_id=“kernels-community/layer_norm”, layer_name=“LlamaRMSNorm”, version=1, trust_remote_code=True, ) } } }
或对于本地路径:
{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LocalLayerRepository( repo_path=Path(“/home/user/liger_kernels”), layer_name=“LigerRMSNorm”, ) } } }
与 kernels 库兼容。
如果未提供,设备将从模型的参数中推断。 模式将从模型的训练状态中推断。
sanitize_kernel_mapping
< source >( model )
验证 kernel_mapping,以确保:
- 映射中的每个 layer_name 都已在模型中注册(即模型包含一个具有匹配 kernel_layer_name 的模块)。
- 每个 kernel 值
- 一个形如 ‘org/repo:layer_name’ 的字符串,或一个元组,其中包含与字符串相同的内容以及一个字典 {“revision”/“version/trust_remote_code”: …},
- 或一个字典,将受支持的设备类型映射到上述此类值。
- 字典中的每个设备键都是 “cuda”、“rocm”、“xpu”、“npu”、“neuron”、“tpu” 或 “mps” 之一。
- 每个 trust remote code 键必须是一个 bool。
- 如果显式传递了修订号或版本键,则它们必须互斥且仅存在一个。
- 每个 repo_name 都是格式为 ‘org/repo:layer_name’ 的有效仓库和层名称(即一个同时包含斜杠和冒号的字符串)。
- 如果检测到本地路径,其格式应为 ‘/abs/path:layer_name’,其中绝对路径指向内核仓库,例如 “/home/user/layer_norm”。