Transformers documentation

Kernels

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kernels

Esta página documenta las utilidades de configuración de kernels.

kernelize

transformers.kernelize

< >

( model: PreTrainedModelmode: Mode | None = None )

Registra temporalmente los envoltorios de kernel ocultos para que kernelize pueda descubrirlos y reemplazarlos.

KernelConfig

clase transformers.KernelConfig

< >

( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )

Clase de configuración de kernel. Esta clase se utiliza para configurar el mapeo de kernel de un modelo.

create_compatible_mapping

< >

( modelcompile = False )

Transforma un simple kernel_mapping de la forma: { “RMSNorm”: (“kernels-community/layer_norm:LlamaRMSNorm”, {“version”: 1, “trust_remote_code”: True}), … },

o para una ruta local:

{ “RMSNorm”: “/home/user/liger_kernels:LigerRMSNorm”, … },

en un mapeo anidado:

{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LayerRepository( repo_id=“kernels-community/layer_norm”, layer_name=“LlamaRMSNorm”, version=1, trust_remote_code=True, ) } } }

o para una ruta local:

{ “RMSNorm”: { “cuda”: { Mode.INFERENCE: LocalLayerRepository( repo_path=Path(“/home/user/liger_kernels”), layer_name=“LigerRMSNorm”, ) } } }

que es compatible con la biblioteca kernels.

El dispositivo se infiere a partir de los parámetros del modelo si no se proporciona. El modo se infiere a partir del estado de entrenamiento del modelo.

sanitize_kernel_mapping

< >

( model )

Parámetros

  • model — La instancia del modelo cuyos módulos se verifican para comprobar si tienen atributos kernel_layer_name registrados.

Lanza

ValueError

  • ValueError — Si un layer_name no está registrado en el modelo, si un device no es compatible, o si un repo_name no es una cadena válida de ‘org/repo:layer_name’.

Valida el kernel_mapping para asegurarse de que:

  1. Cada layer_name en el mapeo se registra en el modelo (es decir, el modelo contiene un módulo con un kernel_layer_name coincidente).
  2. Cada valor de kernel es
    • una cadena de la forma ‘org/repo:layer_name’ o una tupla con la misma cadena y un diccionario de {“revision”/“version/trust_remote_code”: …},
    • o un diccionario que mapea los tipos de dispositivos admitidos a dichos valores, como se muestra arriba.
  3. Cada clave de dispositivo en un dict es una de “cuda”, “rocm”, “xpu”, “npu”, “neuron”, “tpu” o “mps”.
  4. Cada clave trust remote code debe ser un bool.
  5. Cada clave de revisión o versión debe existir de forma mutuamente exclusiva si se ha pasado explícitamente.
  6. Cada repo_name es un nombre de repositorio y capa válido en el formato ‘org/repo:layer_name’ (es decir, una cadena que contiene tanto una barra diagonal como dos puntos).
  7. Si se detecta una ruta local, debe estar en el formato ‘/abs/path:layer_name’, donde la ruta absoluta apunta al repositorio del kernel, como “/home/user/layer_norm”.
Update on GitHub