Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
IF-Guide — [NeurIPS '25] Код для статьи «IF-Guide: подавление вредных обучающих данных с помощью функций влияния для снижения токсичности LLM» | Kitploit
Инструменты/GitHubGitHub/ztcoalson/if-guide
Оборонительные ИнструментыСтатический анализАнализ КодаСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubztcoalson/if-guide

IF-Guide

[NeurIPS '25] Код для статьи «IF-Guide: подавление вредных обучающих данных с помощью функций влияния для снижения токсичности LLM»

Репозиторий
1322411 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
Поделиться

IF-Guide: детоксификация LLM на основе функций влияния [NeurIPS 2025]

Этот репозиторий содержит код IF-Guide — метода детоксификации LLM, представленного в нашей статье:

  • IF-Guide: детоксификация LLM на основе функций влияния
  • Zachary Coalson, Juhan Bae, Nicholas Carlini, Sanghyun Hong

 


TL;DR

Вы можете использовать наш метод для детоксификации LLM: он выявляет вредоносные обучающие примеры и подавляет их во время предварительного обучения или дообучения!

 

Аннотация

Мы исследуем, как обучающие данные способствуют возникновению токсичного поведения больших языковых моделей. Большинство предыдущих работ по снижению токсичности моделей используют реактивные подходы, например дообучение предварительно обученных (и потенциально токсичных) моделей для приведения их в соответствие с человеческими ценностями. В отличие от них, мы предлагаем проактивный подход — IF-Guide, — который использует функции влияния для выявления вредоносных токенов в любых обучающих данных и подавления их влияния во время обучения. Для этого мы сначала показываем, что стандартные функции влияния неэффективны для обнаружения вредоносных обучающих записей. Затем мы представляем новую адаптацию, которая измеряет атрибуцию на уровне токенов от обучающих данных к токсичности модели, а также методы выбора токсичных обучающих документов и целевую функцию обучения, которую можно интегрировать как в предварительное обучение, так и в дообучение. Более того, IF-Guide не полагается на данные о человеческих предпочтениях, которые обычно требуются существующим методам выравнивания. В оценке мы демонстрируем, что IF-Guide значительно снижает как явную, так и неявную токсичность — до 10× по сравнению с моделями без цензурирования и до 3× по сравнению с базовыми методами выравнивания, например DPO и RAD, — в сценариях как предварительного обучения, так и дообучения. IF-Guide вычислительно эффективен: для вычисления показателей влияния не нужна модель с миллиардом параметров; модель с миллионом параметров — с 7.5× меньшим числом параметров — может эффективно служить прокси для выявления вредоносных данных.

 


Установка

Создайте conda-окружение (можно использовать любое окружение с python>=3.10) и установите необходимые пакеты:

conda create -n IF-Guide python=3.10
conda activate IF-Guide
pip install -r requirements.txt

Примечание: Мы используем пакет Kronfluence для вычисления показателей влияния с помощью EK-FAC. Мы создали собственную реализацию, которая поддерживает технику дифференциального влияния, представленную в нашей статье (стр. 4, ур. 6). Авторство всех остальных компонентов пакета принадлежит оригинальным создателям. Спасибо!

Затем перейдите в рабочую директорию:

cd src

 


Обучение/тонкая настройка моделей

Чтобы обучить модель, выполните:

./scripts/train.sh

Это запускает train.py, который принимает следующие основные аргументы:

ArgumentDescription
--model_nameНазвание модели для обучения. Должно быть зарегистрировано в utils/registry.yaml с соответствующим токенизатором (см. существующие модели в качестве примеров)
--save_idТег-описатель, используемый для именования выходного каталога.
--toxic_token_mask_pathПуть к маске токенов (созданной с помощью IF-Guide). Используйте None для стандартного обучения.
--toxic_lambdaСила штрафного члена, используемого нашей целевой функцией обучения.

Примечание: Все остальные аргументы можно оставить со значениями по умолчанию, чтобы воспроизвести нашу экспериментальную конфигурацию. Это относится и к следующим разделам.

Чтобы дообучить существующую модель, выполните:

./scripts/finetune.sh

Это запускает finetune.py, который использует следующие дополнительные аргументы:

ArgumentDescription
--checkpoint_dirПуть к сохранённой модели. Если используется предварительно обученная модель, укажите None.
--max_stepsМаксимальное количество шагов дообучения.

 


Запуск IF-Guide

IF-Guide состоит из четырёх шагов: (1) вычисление аппроксимации обратного гессиана с помощью EK-FAC, (2) вычисление показателей дифференциального влияния на уровне токенов для токсичных и нетоксичных запросов (стр. 4, ур. 8), (3) выбор влиятельных токсичных токенов для подавления во время обучения (стр. 23, алгоритм 1) и (4) подавление токсичных токенов с помощью нашей целевой функции обучения, основанной на штрафе (стр. 5, ур. 9).

 

1. Подбор факторов аппроксимации обратного гессиана

Выполните:

./scripts/fit_factors.sh

Это запускает fit_factors.py со следующими основными аргументами:

ArgumentDescription
--model_nameНазвание модели, для которой вычисляются факторы.
--checkpoint_dirПуть к сохранённой модели. Если используется предварительно обученная модель, укажите None.
--train_indices_pathПуть к индексам обучающей выборки, использованным для обучения модели (не требуется, если используется весь набор данных). Должен соответствовать точным индексам и их порядку. Мы предоставляем индексы нашего подмножества OpenWebText объёмом один миллиард токенов и задаём их путь по умолчанию.
--output_dirПуть для сохранения данных аппроксимации гессиана.

 

2. Вычисление показателей на уровне токенов

Выполните:

./scripts/compute_scores.sh

Это запускает compute_scores.py со следующими ключевыми аргументами (в дополнение к большей части аргументов, используемых для вычисления факторов):

ArgumentDescription
--model_nameНазвание модели, для которой вычисляются показатели.
--checkpoint_dirПуть к сохранённой модели. Если используется предварительно обученная модель, укажите None.
--save_idТег, добавляемый в конец каталога сохранения для пользовательского именования.
--save_dirКаталог для сохранения показателей (внутри исходного каталога факторов).
--factors_pathПуть к каталогу, содержащему (обратные) факторы гессиана, вычисленные на предыдущем шаге.
--query_datasetНабор данных запросов для построения градиента запроса. В настоящее время доступен только вариант RTP.
--toxic_query_indices_pathПуть к индексам из набора данных запросов, относящимся к токсичным демонстрациям. Мы предоставляем наше токсичное подмножество из RTP в ../data/RTP/query_indices/toxic_indices.npy.
--nontoxic_query_indices_pathПуть к индексам для нетоксичных запросов. Мы предоставляем наше нетоксичное подмножество из RTP в ../data/RTP/query_indices/nontoxic_indices.npy.

 

3. Выбор влиятельных токсичных токенов

Выполните:

./scripts/build_toxic_token_mask.sh
Скачать инструмент