PEFT documentation

Вспомогательные методы

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

and get access to the augmented documentation experience

to get started

Вспомогательные методы

Набор вспомогательных функций для PEFT.

Проверка, является ли модель PEFT

peft.helpers.check_if_peft_model

< >

( model_name_or_path: str ) → bool

Параметры

  • model_name_or_path (str) — Идентификатор модели для проверки, может быть локальным или находиться на Hugging Face Hub.

Возвращает

bool

True, если модель является PEFT-моделью, иначе False.

Проверьте, является ли модель PEFT-моделью.

Временное изменение масштаба адаптера в модулях LoraLayer

peft.helpers.rescale_adapter_scale

< >

( model: Modulemultiplier: float | int )

Параметры

  • model — модель, содержащая модули LoraLayer, для которых необходимо скорректировать масштабирование.
  • multiplier (float или int) — Множитель, перемасштабирующий атрибут scaling. Должен иметь тип float или int.

Исключения

ValueError

  • ValueError — если модель не содержит ни одного экземпляра LoraLayer, что указывает на отсутствие поддержки масштабирования в модели.

Контекстный менеджер для временного изменения масштаба адаптера LoRA в модели.

Исходные значения масштабирования восстанавливаются при выходе из контекстного менеджера. Этот контекстный менеджер работает с моделями transformers и diffusers, в которые адаптеры LoRA были загружены напрямую.

Для LoRA применение этого контекстного менеджера с множителем в диапазоне [0, 1] строго эквивалентно применению wise-ft (см. #1940 для подробностей). Это может улучшить производительность модели, если существует сдвиг распределения между обучающими данными, использованными для дообучения, и тестовыми данными, используемыми во время инференса.

Warning: Сообщалось, что при использовании бэкенда MPS от Apple для PyTorch необходимо добавить короткую паузу после выхода из контекста, чтобы масштабы были полностью восстановлены.

Пример:

>>> model = ModelWithLoraLayer()
>>> multiplier = 0.5
>>> with rescale_adapter_scale(model, multiplier):
...     outputs = model(**inputs)  # Perform operations with the scaled model
>>> outputs = model(**inputs)  # The original scaling values are restored here

Контекстный менеджер для отключения приведения типа входных данных в методе forward слоёв LoRA

peft.helpers.disable_input_dtype_casting

< >

( model: Moduleactive: bool = True )

Параметры

  • model (nn.Module) — Модель, содержащая модули PEFT, для которых необходимо скорректировать приведение типа входных данных (input dtype).
  • active (bool) — Указывает, активен ли менеджер контекста (по умолчанию) или нет.

Контекстный менеджер отключает приведение типа входных данных к типу весов.

Контекстный менеджер для включения кэширования DoRA (быстрее на этапе вывода, но требует больше памяти)

класс peft.helpers.DoraCaching

< >

( enabled: bool = True )

Контекстный менеджер для включения кэширования DoRA, что повышает скорость инференса DoRA за счёт потребления памяти.

При активном кэшировании материализованный вес LoRA (B @ A) и норма веса (базовый вес + вес LoRA) кэшируются.

Даже в контексте кэширования, если модель находится в режиме обучения, кэширование отключается. При переключении модели в режим обучения кэш очищается.

Пример:

>>> from peft.helpers import DoraCaching

>>> model.eval()  # put in eval model for caching to work

>>> with DoraCaching():  # use as a context manager
...     output = model(inputs)

>>> dora_caching = DoraCaching()
>>> dora_caching(enabled=True)  # permanently enable caching
>>> output = model(inputs)
>>> dora_caching(enabled=False)  # permanently disable caching
>>> output = model(inputs)

Выбор цели KappaTune

KappaTuneSelector и find_kappa_target_modules реализуют общий процесс выбора целевых модулей из статьи KappaTune.

Метод выявляет модули с большей гибкостью (более высокой дифференциальной энтропией выходных данных) и меньшей специализацией (более низкой чувствительностью к конкретным направлениям входных данных).

Эти свойства делают выбранные модули хорошими кандидатами для смягчения катастрофического забывания в любом методе адаптации, добавляющем обучаемые параметры, включая LoRA, DoRA, LoHa, AdaLoRA и даже прямую дообучение исходных весов.

класс peft.helpers.KappaTuneSelector

< >

( model: Modulemax_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

Лёгкая утилита для вычисления чисел обусловленности по модулям / по параметрам и возврата лучших целей для LoRA.

Поддерживает:

  • Классические модули nn.Linear (target_modules в LoraConfig)
  • Современные объединённые веса MoE, хранящиеся как 3D-параметр nn.Parameter (gate_up_proj / down_proj, gate_proj / up_proj и т. д.), используемые в моделях Llama-4, Qwen2_MoE, Qwen3_MoE, Mixtral, OLMoE и аналогичных. Они возвращаются через target_parameters.

Примечания:

  • Вычисление числа обусловленности требует выполнения SVD и может занимать несколько минут на очень больших моделях. Полосу прогресса можно показать/отключить с помощью show_progress.

peft.find_kappa_target_modules

< >

( model: Moduletop_p: float = 0.2max_dim_size_to_analyze: int = 16384moe_param_suffixes: tuple[str, ...] | None = Noneshow_progress: bool = True )

Параметры

  • model (nn.Module) — Базовая модель, веса которой будут проанализированы на предмет чисел обусловленности.
  • top_p (float, optional) — Выбирает верхнюю долю кандидатов (модулей/параметров) с наименьшими числами обусеченности.
  • max_dim_size_to_analyze (int, optional) — Верхняя граница максимального размера матрицы, анализируемой с помощью SVD. По умолчанию 16384.
  • moe_param_suffixes (Optional[tuple[str, …]], optional) — Суффиксы имён параметров, используемые для идентификации объединённых тензоров MoE, которые должны возвращаться через target_parameters. Если значение равно None, используются разумные значения по умолчанию.
  • show_progress (bool, optional) — Отображать ли индикатор прогресса при вычислении чисел обусловленности (на основе SVD) для кандидатов тензоров/модулей. Отключите в CI или других неинтерактивных средах. По умолчанию True.

Удобная однострочная функция для выбора целевых модулей KappaTune. Возвращает как target_modules, так и target_parameters.

Update on GitHub