Telegram Group Search
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
Это не всегда нам подходит, так как каждое изменение затрагивает слишком много элементов.

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

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

Однако, если же мы уже знаем какой конкретно путь в графе нам нужен и просто хотим провести какие-то оценки влияния, то данный подход является оптимальным.
ого, про нашу статью оказывается сделали доклад в Russian NLP🥸
Please open Telegram to view this post
VIEW IN TELEGRAM
🫥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
Please open Telegram to view this post
VIEW IN TELEGRAM
Существует два подхода в таком смешивании (его еще называют 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
Are_Detectors_Good_Enough?.pdf
1.3 MB
Сегодня выступаю на воркшопе Preventing and Detecting LLM Misinformation AAAI с нашей статьей по анализу датасетов с искуственными текстами. Прикладываю слайды и кратко рассказываю про мотивацию статьи:

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

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

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

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


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

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


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


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

Сайт школы
Форма подачи
2025/06/28 18:43:16
Back to Top
HTML Embed Code: