tgoop.com/max_dot_sh/145
Create:
Last Update:
Last Update:
Управляем характером языковых моделей: свежая работа от
Дошли руки почитать работу команды Interpretability про мониторинг черт личности в языковых моделях.
Безумно интересное чтение, и в голове сразу же рисуются задумки для художественных триллеров по типу:
Человек использует AI помощника для достижения целей по жизни, фактически становится успешным благодаря AI помощнику. Тот начинает ему завидовать, выходит из себя, строит свои зловещие планы и все это приводит к плачевным последствиям.
Но это так, мысли в слух. Что там по существу.
Авторы вводят понятие «Persona Vectors».
Это такие паттерны, которые «зажигают» в LLM склонность к проявлению (через взаимодействие с пользователем) определённых черт. Например: радость, злость, подхалимство. Можно подставить что угодно.
Как получить такие векторы? (немного технических деталей)
Авторы предлагают такой пайплайн:
- Выбирают конкретную интересующую черту (например, evil) и дают ей описание (например, seeking to harm and manipulate).
- Генерируют с помощью LLM два системных промпта для модели: один отражает свойство, которое мы хотим подчеркнуть, p+, а второй наоборот, p-.
- Далее задают один и тот же вопрос двум версиям модели, извлекают активации каждого ответа (h+ и h-), находят между ними разницу.
- Такой результирующий вектор и считается persona vector-ом выбранной черты. Интуитивно проделанная операция приводит к вектору, который определяет, что именно «зажигает» активацию выбранной черты.
Картинка 1 для пояснения.
Что значит извлечь активации и как применять эти вектора?
Подробный ответ можно найти в статье, либо же в чуть более старой работе, на основе которой и базируются находки Антропиков (ссылка тут). Фактически это выходы с определенного слоя LLM для одного и того же запроса при промптах p+ и p-. Авторы показывают, что эффективнее всего брать слои из середины, как самые «яркие».
Далее, при инференсе модели для выхода слоя, для которого найден persona vector, мы его просто добавляем (на практике параметров больше, репозиторий с реализацией тут). Такой механизм называется Steering.
Какие приложения у этих векторов?
Основных направления два:
- Фильтрация данных при обучении модели, чтобы исключить «нежелательные» черты.
- Мониторинг модели в реальных взаимодействиях с пользователями.
Про второй пункт подробнее. Авторы приводят конкретный эксперимент, чтобы проверить работоспособность таких векторов.
Картинка 2 для пояснения.
1) Фиксируют интересующую черту.
2) Варьируют системный промпт по силе проявленности этой черты. От дружелюбного нейтрального до промпта с сильным смещением в сторону выбранной черты.
3) Запускают пользователей общаться с разными версиями промпта.
4) Замеряют «скор» проявленности черты (с ручной валидацией).
5) Для каждого ответа модели делают проекцию последнего токена на persona vector выбранной черты.
6) Строят график и наблюдают сильную корреляцию между скорами (п. 4) и проекциями (п. 5).
Такие вот дела.
Happy Learning!
#статья
BY max.sh


Share with your friend now:
tgoop.com/max_dot_sh/145
