abstracts with a human heart
202 subscribers
8 photos
1 file
7 links
пишу об интерпретируемости языковых моделей, детекции машинной генерации и галлюцинациях
Download Telegram
Forwarded from grokaem себя
Понедельничное нетех обсуждения. Метод, которому меня научила PHD студентка и который немного поменял мой подход к жизни в целом.

#grokaem_seby_thoughts

За день у меня может быть масса теорий и гипотез, которые я хотела бы проверить. Вот только в день у меня как минимум два проекта. Я очень не люблю держать все в голове. Стараюсь уходить домой без раздумий о задачах. Да, какой-то баг или мысль может как дементор меня преследовать и испариться с быстрым решением где-то в душе, но вот помнить все - нет, спасибо, у меня есть жизнь вне этого всего.

И вот проблема с которой я столкнулась: появляется идея - я ее записываю и забываю, а что хотел сказать автор? Ну проверишь ты это и что?

Поэтому новый паттерн для всех гипотез, которые у меня появляются:
🏔
Гипотеза:
Результат, который я ожидаю:
Как проверить:

🏔

И необходимо не лениться, а заполнять полностью и нормальными словами! Так я могу вернуться и понять, а что я вообще хотела проверить и почему. Это в разы ускоряет процессы

Да, это кажется очевидным, но почему-то все наставники, что у меня были, не заставляли меня это делать, а зря! Пример такой записи в комментариях.
Activation Patching

Начну серию постов про Activation Patching, где это может быть полезно и что важно учитывать в применении.


Это один из ключевых методов механической интерпретируемости (mechanistic interpretability), и задача звучит так:


🅰️Есть модель на основе трансформера, и какая-то отдельная задача, для который хотелось бы понять, какие конкретно части нашей модели отвечают за ее решение.


Для получения понятной картины происходящего, сейчас берут довольно несложные задачи, так, наиболее изученной на данный момент является задача IOI - Indirect Object Identification, в которой подается предложение с двумя действующими объектами и модель должна определить каким объектом нужно закончить предложение. Пример

🅰️When Mary and John went to the store, John gave a drink to

Мы в целом понимаем, что здесь правильный ответ Mary, но как модели это понять? Оказывается, эту задачу можно разбить на три шага, которые и выполняются внутри модели.

Итак, в работе Wang et al. были определени явные слои и головы модели для GPT-2 Small (в которой всего 110M параметров), которые отвечали за

а) определение, какое конкретно имя в примере повторяется (duplicate token heads и induction heads)

б) "подавление" важности имени, которые повторилось (S-Inhibition heads)

в) наоборот, повысить важность второго, не повторенного в промпте имени, и по сути предсказать его (name mover heads).

Все три типа голов представлены на картинке, и возникает вполне логичный вопрос - а как эти головы были найдены? Так вот, метод называется path patching и является частным случаем activation patching.

Если кратко, то промпт редактируется следующим образом - имя John подменяется на Mary, модель запускается на корректном промпте и на изменном, и выход с некоторых частей модели на изменнем промпте "подкладывается" вместо тех же выходов, но на первоначальном промтпе. Измерив разницу в логитах, можно оценить вклад той или иной головы в некоторым слое.
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня напишу про то, как мы можем оценивать какие части модели влияют на определенное поведение

Из статьи Transformer Circuit Faithfulness Metrics Are Not Robust

Модель можно представить как вычислительный граф.

🟡Вершинами в зависимости от целей можно рассматривать разные сущности, так в языковых моделях обычно фокусируются на attention головах и на многослойных перцептронах (MLP), которые получают на вход информацию из голов. (см картинку)

🟡Ребрами графа буду являться связи между вершинами, т.е, ребро появляется, если одна из вершин передает что-то другой.

Если нам интересно как конкретно одна голова влияет на весь процесс, мы можем подменять ее выход и смотреть, как меняется поведение модели. Однако, в этом случае меняется и поведение всех последующих элементов, так как они теперь получают измененную информацию на вход, и, соотвественно могут совсем по другому ее обработать.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌1
Это не всегда нам подходит, так как каждое изменение затрагивает слишком много элементов.

Можно сузить влияние, изменяя уже конкретную связь между двумя элементами модели, то есть влияя на ребро только между двумя вершинами нашего графа. Но и здесь все что идет после этого ребра будет подвержено влиянию.
💊2
Наконец, самое точечное влияние - когда мы выделям конкретный путь в графе от начала и до конца, и меняем только что-то внутри него.

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

Однако, если же мы уже знаем какой конкретно путь в графе нам нужен и просто хотим провести какие-то оценки влияния, то данный подход является оптимальным.
🌭4
ого, про нашу статью оказывается сделали доклад в Russian NLP🥸
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯2🔥1
🫥Paper Watch Are AI Detectors Good Enough? A Survey on Quality of Datasets With Machine-Generated Texts

В новом выпуске #paperwatch рассказываем про эффективность существующих методов детекции AI-сгенерированных текстов и подходы для оценки качества датасетов, содержащий подобные тексты.

👀Запись
💭Статья
📺Слайды

@mashkka_ds

#paperwatch #llm #nlp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5🎉32👏1
Сегодня хочу рассказать о достаточно простой и короткой статье-туториале о способах интервенции модели.

Итак, наша мотивация довольно проста - определить, какие части модели отвечают за решение некоторой задачи. Так, в текущем посте сосредоточимся на задае factual recall. Например:

The Colloseum is in … ?


Модель должна продолжить словом Rome.

Такое простое задание требует от модели как минимум три навыка - работа с английским языком, определение, что речь идет о какой-то существующей локации, а также работа со связью Колизей <—> Рим (достопримечательность <—> местоположение). Чтобы найти, какие конкретно части модели отвечают за каждую из этих подзадач, мы можем модифицировать наш промпт чтобы явно проверять каждый из навыков (см. рисунок)

Допустим мы хотим понять, как модель работает с landmark recall. Возьмем промпт с другой локацией:

The Louvre is in …. ?


Гипотеза: при работе с обоими промптами будут срабатывать части модели, отвечающие конкретно за наш landmark recall. При этом, для второго промпта части, связанные конкретно с Колизеем и Римом, не будут активированы.

Однако чтобы именно определить что внутри модели заставляет ее выдавать Рим, нам придется «смешать» выходы (например, активации) нашей модели на этих промптах.

Продолжение⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Существует два подхода в таком смешивании (его еще называют activation patching) - Noising и Denoising. Что у них общего - после запуска модели на одном промпте, мы сохраняем активации модели (либо же какую-то другую информацию, например полносвязные слои), а при запуске на втором промпте, заменяем истинные активации на те, что мы сохранили. Наша цель, найти путь внутри модели который либо ломает поведение модели на некоторой задаче, либо наоборот, сохраняет его.

В нашей задаче, где мы хотим проверить работу модели с локациями, назовём «чистым» промптом наш промпт с Колизеем и Римом, а «поврежденным» (corrupted) - промпт с Лувром в Париже.

⭐️Denoising - когда мы подмешиваем активации с чистого промпта к поврежденному. Так как мы запускаем на втором промпте, то модель сначала выдает Париж. При увеличении количества замененных активаций, в какой-то момент модель станет выдавать Рим вместо Парижа. Таким образом, мы найдем части модели, который достаточны для связи локации в вопросе с Римом и соотвественно выдачи именно Рима в ответе.

⭐️Noising - когда, наоборот, мы подмешиваем активации с поврежденного промпта к чистому. Тут изначально модель выдает Рим (так как мы запускаем на чистом промпте), но в какой-то момент она перестанет это делать, и таким образом, noising позволяет найти путь в модели, необходимый для определения локации с Римом, так как при его изменении «ломается» поведение модели

В статье еще можно прочитать про различные любопытные моменты связанные с настройкой интерпретацией всего того, что мы получаем в результате activation patching😈

Оригинальная статья: How to use and interpret activation patching
Please open Telegram to view this post
VIEW IN TELEGRAM
😍6
Are_Detectors_Good_Enough?.pdf
1.3 MB
Сегодня выступаю на воркшопе Preventing and Detecting LLM Misinformation AAAI с нашей статьей по анализу датасетов с искуственными текстами. Прикладываю слайды и кратко рассказываю про мотивацию статьи:

Если сравнить результаты с соревнований по детекции искуственных текстов и с тем, какой результат выдают реальные детекторы, то мы увидим довольно сильное расхождение. На соревнованиях участники выбивают точность под 100%, да и в статьях про новые детекторы
авторы часто репортят схожие метрики.

Понятно, что реальные тексты чаще сложнее и длиннее тех, что встречаются в выборках, однако тем не менее, все текущие детекторы работают гораздо хуже, если вообще не на уровне рандома.

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

В самой статье мы запускаем некоторые методы детекции на 17 выборках с соревнований и из статей, а также предлагаем новые методы анализа качества выборок с искуственными текстами.


Что мы выявили: почти для каждого датасета получилось так, что на каких-то методах он проявил себя плохо, а на каких-то хорошо - т.е в теории можно использовать ансамбль детекторов различной природы, чтобы находить аспект, по которому можно достаточно хорошо разделить искуственный текст от человеческого.

Надеемся нашей статьей развить какую-то дискуссию о качествах датасетов для детекции и об адаптации "теоретических" детекторов к реальным текстам


Статья на OpenReview
🔥118🎉3
Последние пару месяцев была довольно сильно занята проектами по работе, поэтому не получалось уделять блогу достаточно времени, очень хочу это наверстать на майских праздника.


Тем не менее, хотелось бы поделиться, что сейчас идет (и почти заканчивается!) набор в летнюю школу по машинному обучению в Лиссабоне. Я была в ней в прошлом году, и помимо достаточно интересных и продвинутых лекций каждый день, к нам приезжали с гостевыми лекциями создатель Mamba, один из разработчиков Gemini, глава Cohere. Как мне кажется, это очень классное место, чтобы вживую пообщаться с коммьюнити, узнать что-то новое и посмотреть Лиссабон. Так что всем кто ищет куда бы поехать на лето, советую рассмотреть эту школу!

Сайт школы
Форма подачи
8🙏4
Всем привет!

Искала какой-то повод для себя вернуться после отпуска и водоворота рабочих проектов, а тут мой канал прорекламировали (https://t.iss.one/boris_again) так что посчитаю для себя это знаком вернуться!


В последнее время стала много времени уделять исследованию по анализу качества текстов. Расскажу сегодня немного про задачу и зачем вообще ей заниматься. Буду рада и вашим мыслям в комментариях.


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


Сначала мы обратились к работам лингвистов, однако они больше занимаются либо анализом читаемости текста (например, поймет ли текст 5-классник), либо разработкой технических метрик, например наполненность терминами, что, конечно можно использовать, но это не всегда показательно и интерпретируемо.


Вторая идея - обратиться к задаче Discourse Coherence и попробовать надстроить над ней что-то сверху. Данная задача посвящена анализу логических связей внутри текста, например, построения связей «причина-следствие»

Это выглядит более релевантным, но тут стоит отметить, что конечно LLM скорее пишет более связные тексты (ведь надо же как-то размазывать одну мысль на весь параграф), чем человек, но при этом информативность текста все еще может быть низкой.


Мы все еще в процессе формализации задачи и поиске интерпретируемых способов оценка, но в заключение хочется отметить, что пока мы исследовали эту задачу, стало ясно, что анализ качества содержания текста кажется действительно более полезной вещь, чем просто детектор авторства, поскольку отфильтровывать недостаточные качественные тексты любого авторства всегда будет актуально и может использоваться например доя самопроверки при написании текстов.
11🔥5