Transformers documentation

Ядра

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

Ядра

На этой странице описаны утилиты для настройки ядер.

kernelize

transformers.kernelize

< >

( model: PreTrainedModelmode: Mode | None = None )

Временно зарегистрируйте обёртки скрытых ядер, чтобы kernelize мог обнаружить и заменить их.

KernelConfig

класс transformers.KernelConfig

< >

( kernel_mapping = Noneuse_local_kernel = Falseinherit_mapping = True )

Класс конфигурации ядра. Этот класс используется для настройки отображения ядра для модели.

create_compatible_mapping

< >

( modelcompile = False )

Преобразует простую 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

< >

( model )

Параметры

  • model — экземпляр модели, модули которой проверяются на наличие зарегистрированных атрибутов kernel_layer_name.

Исключения

ValueError

  • ValueError — если layer_name не зарегистрирован в модели, если устройство не поддерживается или если repo_name не является корректной строкой формата ‘org/repo:layer_name’.

Проверяет kernel_mapping, чтобы убедиться, что:

  1. Каждый layer_name в отображении зарегистрирован в модели (то есть модель содержит модуль с соответствующим kernel_layer_name).
  2. Каждое значение ядра — это
    • строка вида ‘org/repo:layer_name’ или кортеж, содержащий такую же строку и словарь {“revision”/“version/trust_remote_code”: …},
    • или словарь, сопоставляющий поддерживаемые типы устройств с такими значениями, как описано выше.
  3. Каждый ключ устройства в словаре — это одно из значений: “cuda”, “rocm”, “xpu”, “npu”, “neuron”, “tpu” или “mps”.
  4. Каждый ключ trust remote code должен быть типа bool.
  5. Каждый ключ ревизии или версии должен существовать взаимоисключающим образом, если он был передан явно.
  6. Каждый repo_name является допустимым именем репозитория и слоя в формате ‘org/repo:layer_name’ (то есть строкой, содержащей как слэш, так и двоеточие).
  7. Если обнаружен локальный путь, он должен иметь формат ‘/abs/path:layer_name’, где абсолютный путь указывает на репозиторий ядра, например “/home/user/layer_norm”.
Update on GitHub