TGViewer
Препарируем LLM Препарируем LLM @nlp_with_heart · 375 subscribers
Post #33 612
Всем привет!

Давно конечно было постов, так как я буквально пару дней назад приехала на учебу в Австрию и до этого нужно было сделать примерно миллион дел. Надеюсь, что учеба здесь даст еще больше поводов готовить посты и рассказывать интересное из научной жизни тут:)

Сегодня я хотела сделать небольшой рассказ о том, как можно применять инструменты анализа внутренних представлений моделей для задачи написания тестов на Python по мотивам работы исследователей из Tilde Research.
Это небольшое практическое исследование подсветило мне, что методы интерпретируемости можно пробовать применять к задачам, где мы хотим как-то на ходу фильтровать генерации языковых моделей или же как-то осмысленно ограничивать то, что они генерируют и эти методы могут очень здорово работать.


Итак, к Tilde Research пришла компания по автоматической генерации кода на Python с конкретным запросом сделать так, чтобы языковая модель по данному коду программы генерировала тесты, которые проверяют валидность ввода в программу (например, что в e-mail есть символ @ и точка).

У авторов были ограничения на содержание тестов: там не должно было быть вызовов регулярных функций, так как они часто приводят к false positive errors. При этом генерируемые тесты должны были быть разумными и корректными.

Обычно с такой задачей вполне хорошо справляется промптинг, но проблема в том, что у данной компании уже достаточно большой системный промпт (> 10000 символов) для автоматизации процессов, что создает проблему. Часто модели при работе с таким большим промптом либо
а) начинают игнорировать инструкции
б) при попытке исправить одну ошибку, начинают откатывать исправления прошлых ошибок.

Поэтому было решено попробовать действовать на модель «извне» а не с помощью инструкций. А именно, было предложено научиться находить явно признаки внутри модели, которые бы реагировали на появление регулярных выражений в тексте. Значение такого признака внутри модели для конкретного текста в каком-то смысле обозначала бы вероятность того, что в тексте есть регулярное выражение. И поэтому, руками уменьшив это значение, можно как бы «заставить» модель не добавлять регулярные выражения в тест.


Итак, что сделали авторы
1. Взяли три легковесные модели для генерации: Gemma и LLaMA (2B, 8B, 9B) и хорошие датасеты с кодом.
2. Для Gemma-моделей взяли уже обученный GemmaScope SAE, а для LLaMA обучили свой SAE на датасете с кодом на Python. Эти модели отвечают за поиск нужных признаков внутри моделей-генераторов.
3. Для каждой модели из (1) с помощью (2) настроили автоматическое определение признаков-кандидатов, наиболее чувствительных к появлению регулярных выражений.
4. Далее, уже в процессе генерации нового текста моделью из (1) можно определять достаточно ли активен этот признак и если да, то вмешиваемся и уменьшаем влияние этого признака на генерацию.

Продолжение ⬇️
  • ❤ 7
More from @nlp_with_heart
  1. Oct 17, 2025Сегодня расскажу про нашу свежую статью «When Models Lie, We Learn: Multilingual Span-Leve…
  2. Oct 17, 2025Всем привет! Не освещала в своих постах кажется проблему галлюцинаций моделей, так что пор…
  3. Oct 2, 2025Исследователям надо было держать баланс между тем, чтобы а) тесты были корректным, осмысле…
  4. Sep 7, 2025Пару дней назад наткнулась на исследование о том, как конкретно дообучение LLM изменяет вн…
  5. Aug 22, 2025Вопрос «Как именно внутри LLM устроен reasoning?» остаётся достаточно сложным, но достаточ…
  6. Aug 10, 2025Тем не менее, на сегодняшний день SAE показывают результаты ниже ожидаемых в ряде задач. П…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →