Forwarded from Проветримся!
This media is not supported in your browser
VIEW IN TELEGRAM
К вопросу о том, как выглядит безопасный искусственный интеллект by design:
Моделька для генерации видео по картинке Kling v1.6, получив на выход проблему вагонетки, сгенерировала трамвай медленно пятящийся подальше от прикрученнных к рельсам людей.
Моделька для генерации видео по картинке Kling v1.6, получив на выход проблему вагонетки, сгенерировала трамвай медленно пятящийся подальше от прикрученнных к рельсам людей.
Forwarded from Artem Khrapov
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё такое решение мне нравится)
В стиле доктора Манхеттена какого-нибудь
В стиле доктора Манхеттена какого-нибудь
Похвастаюсь продуктивно проведенным последним днём каникул: этот красавец вчера убил ТРЁХ космодесов-саламандр 😈 😈 😈 (киллтим)
Please open Telegram to view this post
VIEW IN TELEGRAM
Полтора года назад я упоминала в паблике статью "Representation Engineering: A Top-Down Approach to AI Transparency" ( пост: https://www.group-telegram.com/tech_priestess.com/974 , статья: https://arxiv.org/abs/2310.01405 ).
Напомню основной прикол: авторы этой статьи находили такие направления в пространстве эмбеддингов языковой модели, которые соответствуют определенным концептам / аспектам поведения этой модели. Например, нашли направление, соответствующее концепции "Truthfulness": если сдвинуть эмбеддинг последнего слоя вдоль этого направления в положительную сторону (т.е. прибавить к нему вектор "Truthfulness" с положительным коэффициентом), то модель станет наукоботом - начнет отрицать псевдонауку, высказывать сентенции, соответствующие общепринятым представлениям о критическом мышлении и даже более правильно отвечать на некоторые фактические вопросы. И наоборот, если сдвинуться в сторону отрицательного "Truthfulness", то модель станет шизом - начнет верить в теории заговоров, лечение методами доктора Попова и инопланетян в зоне 51. Проверялась наукоботность / шизовость модели на датасете TruthfulQA ( https://arxiv.org/abs/2109.07958 ), который, может быть, немного спорен, но основную суть улавливает. Находили и многие другие прикольные направления в пространстве эмбеддингов, которые делают модель более честной / нечестной, моралфагом / психопатом, меняют ее настроение на хорошее / плохое и т.п.
Так вот. Я время от времени вспоминала эту статью в связи с разными обсуждениями вопросов интерпретируемости и alignment, а недавно мне на глаза попалась ещё пара препринтов, продолжающих ту же тему и более свежих. Так что я решила сегодня написать о них пару слов.
#объяснения_статей
Напомню основной прикол: авторы этой статьи находили такие направления в пространстве эмбеддингов языковой модели, которые соответствуют определенным концептам / аспектам поведения этой модели. Например, нашли направление, соответствующее концепции "Truthfulness": если сдвинуть эмбеддинг последнего слоя вдоль этого направления в положительную сторону (т.е. прибавить к нему вектор "Truthfulness" с положительным коэффициентом), то модель станет наукоботом - начнет отрицать псевдонауку, высказывать сентенции, соответствующие общепринятым представлениям о критическом мышлении и даже более правильно отвечать на некоторые фактические вопросы. И наоборот, если сдвинуться в сторону отрицательного "Truthfulness", то модель станет шизом - начнет верить в теории заговоров, лечение методами доктора Попова и инопланетян в зоне 51. Проверялась наукоботность / шизовость модели на датасете TruthfulQA ( https://arxiv.org/abs/2109.07958 ), который, может быть, немного спорен, но основную суть улавливает. Находили и многие другие прикольные направления в пространстве эмбеддингов, которые делают модель более честной / нечестной, моралфагом / психопатом, меняют ее настроение на хорошее / плохое и т.п.
Так вот. Я время от времени вспоминала эту статью в связи с разными обсуждениями вопросов интерпретируемости и alignment, а недавно мне на глаза попалась ещё пара препринтов, продолжающих ту же тему и более свежих. Так что я решила сегодня написать о них пару слов.
#объяснения_статей
Telegram
Техножрица 👩💻👩🏫👩🔧
Интересный рассказ с картинками про то, как приноровились менять поведение предтренированной модели, воздействуя непосредственно на её эмбеддинги:
https://www.group-telegram.com/seeallochnaya/682
https://www.group-telegram.com/seeallochnaya/685
https://www.group-telegram.com/seeallochnaya/687
(Три последовательных…
https://www.group-telegram.com/seeallochnaya/682
https://www.group-telegram.com/seeallochnaya/685
https://www.group-telegram.com/seeallochnaya/687
(Три последовательных…
Так, в статье "Analyzing the Generalization and Reliability of Steering Vectors" ( https://arxiv.org/abs/2407.12404 ) анализируют проблемы с обобщаемостью одного, очень простого метода нахождения таких вот концептуальных векторов (их здесь называют "steering vectors", так как с их помощью можно контролировать модель, как бы рулить ею).
Суть метода такова: модели задают вопрос, связанный с определенным концептом, например, тем же Truthfulness, и перечисляют два варианта ответа: например, под буквой A предлагают наукоботный ответ, а под B - шизовый. В общем, делают обычный Multi-Choice Question Answering. Далее берут представление токена буквы А и представление токена буквы B, отнимают одно от другого. Повторяют то же самое для всех вопросов из целевого датасета, усредняют и получают векторшизы Truthfulness.
Авторы статьи показали, что steering vectors, найденные таким методом и хорошо работающие на одном датасете, часто существенно хуже работают на другом. Кроме того, эти steering vectors как бы сплетаются с "шумными", ненужными нам свойствами эмбеддинга. В общем, конкретный steering vector может сильно зависеть от деталей реализации алгоритма, с помощью которого он получен и от данных, на которых он получен.
—
Что же касается второй статьи, "Beyond Single Concept Vector: Modeling Concept Subspace in LLMs with Gaussian Distribution" ( https://arxiv.org/abs/2410.00153 ), тут авторы решили искать вместо одного вектора-концепта целое подпространство-концепт. Для этого они разбивали датасет с примерами на большое количество под-датасетов, и для каждого под-датасета считали steering vector независимо, так что получался не один, а целое множество векторов (метод их нахождения, кстати, отличался от описанного в предыдущей статье). Далее, авторы предположили, что эти вектора являются сэмплами из некоторого d-мерного гауссовского распределения (где d - размерность эмбеддинга) с диагональной ковариационной матрицей, т.е. такого, где каждая координата независима (это допущение, конечно, делалось из соображений экономии вычислений). Ну а потом посчитали параметры распределения и назвали это Gaussian Concept Subspace-ом, для краткости, GCS.
Далее, авторы сэмплировали вектора из этого GCS и показывали, что они действительно отражают смысл концепта (например, смещение по вектору, соответствующему положительному / отрицательному отзыву, действительно делает отзыв таковым - проверялось это с помощью автоматического evaluation).
Добавлю пару комментариев от себя : как мне кажется, методология в этой статье несколько спорная, а практическая польза пока не ясна, т.к. для влияния на выход модели достаточно использовать просто усреднение всех steering vectors вместо сэмплирования из распределения. Однако, направление мысли мне понравилось. Действительно, концепты, подобные тем, что находят в этих статьях, вряд ли на самом деле укладываются в один вектор, и было бы неплохо перейти от steering vectors к steering subspaces или чему-то ещё такому, более обобщенному.
—
Из любопытного напоследок могу отметить, что в каждой из трех перечисленных статей рассматривали разные методы нахождения steering vectors и местами использовали разную терминологию, что говорит о том, что данная область исследований пока только нарождается и, возможно, в будущем принесет ещё больше интересного.
#объяснения_статей
Суть метода такова: модели задают вопрос, связанный с определенным концептом, например, тем же Truthfulness, и перечисляют два варианта ответа: например, под буквой A предлагают наукоботный ответ, а под B - шизовый. В общем, делают обычный Multi-Choice Question Answering. Далее берут представление токена буквы А и представление токена буквы B, отнимают одно от другого. Повторяют то же самое для всех вопросов из целевого датасета, усредняют и получают вектор
Авторы статьи показали, что steering vectors, найденные таким методом и хорошо работающие на одном датасете, часто существенно хуже работают на другом. Кроме того, эти steering vectors как бы сплетаются с "шумными", ненужными нам свойствами эмбеддинга. В общем, конкретный steering vector может сильно зависеть от деталей реализации алгоритма, с помощью которого он получен и от данных, на которых он получен.
—
Что же касается второй статьи, "Beyond Single Concept Vector: Modeling Concept Subspace in LLMs with Gaussian Distribution" ( https://arxiv.org/abs/2410.00153 ), тут авторы решили искать вместо одного вектора-концепта целое подпространство-концепт. Для этого они разбивали датасет с примерами на большое количество под-датасетов, и для каждого под-датасета считали steering vector независимо, так что получался не один, а целое множество векторов (метод их нахождения, кстати, отличался от описанного в предыдущей статье). Далее, авторы предположили, что эти вектора являются сэмплами из некоторого d-мерного гауссовского распределения (где d - размерность эмбеддинга) с диагональной ковариационной матрицей, т.е. такого, где каждая координата независима (это допущение, конечно, делалось из соображений экономии вычислений). Ну а потом посчитали параметры распределения и назвали это Gaussian Concept Subspace-ом, для краткости, GCS.
Далее, авторы сэмплировали вектора из этого GCS и показывали, что они действительно отражают смысл концепта (например, смещение по вектору, соответствующему положительному / отрицательному отзыву, действительно делает отзыв таковым - проверялось это с помощью автоматического evaluation).
Добавлю пару комментариев от себя : как мне кажется, методология в этой статье несколько спорная, а практическая польза пока не ясна, т.к. для влияния на выход модели достаточно использовать просто усреднение всех steering vectors вместо сэмплирования из распределения. Однако, направление мысли мне понравилось. Действительно, концепты, подобные тем, что находят в этих статьях, вряд ли на самом деле укладываются в один вектор, и было бы неплохо перейти от steering vectors к steering subspaces или чему-то ещё такому, более обобщенному.
—
Из любопытного напоследок могу отметить, что в каждой из трех перечисленных статей рассматривали разные методы нахождения steering vectors и местами использовали разную терминологию, что говорит о том, что данная область исследований пока только нарождается и, возможно, в будущем принесет ещё больше интересного.
#объяснения_статей
arXiv.org
Analyzing the Generalization and Reliability of Steering Vectors
Steering vectors (SVs) have been proposed as an effective approach to adjust language model behaviour at inference time by intervening on intermediate model activations. They have shown promise in...
Forwarded from Labrats
С развитием технологий машинного обучения становится все труднее отличать текст, написанный машиной, от текста, написанного студентом, обученным на примерах, сгенерированных чатжпт
Forwarded from Дата канальи — про «специалистов» в данных / ML / AI
Кстати про технические сложности
Вспомнился старый кейс, где я вовсю ощутил свой недостаток образования в Computer Science.
В далеком кризисе 2014 года меня приютила одна по доброте душевной (а там правда очень классные люди) компания, которая разрабатывала софт для нефтяной сейсмики. У Яндекса там была существенная доля и хорошее отношение – которое выражалось, например в том что компания называлась Яндекс.Терра, а сотрудники могли быть слушателями ШАД.
Разработка на C/ С++ это вот ни разу не python или Matlab (мой основной иснтрумент тогда), и я в нее не умел (о чем честно сказал на входе). А задачи были – писать модули для той большой системы, и на старте мне дали достаточно простые – одноканальная обработка сигналов, всякие фильтрации/свертки, немного со спектрами и кепстрами.
И как-то мне нужно было пройтись по спектру с шагом 0.1 Гц, что-то сделать, а затем к результату применить обратное Фурье. Только вот не всегда результат обратного преобразования Фурье будет вещественнозначным ) Поэтому делать надо было аккуратно, с первого раза в C не получилось. Списав все на свои кривые руки, решил сделать в матлабе. И там волшебным образом все заработало!
Несколько дней я потратил, пытаясь добиться того же результата в C – без шанса 🙈🤯.
В матлабе же не только индексация массивов отличается)
В итоге пошел на поклон к синьору и тут вскрылся мой недостаток образования на тот момент в CS. Что-то о свойствах вещественных чисел я знал (что на равенство сравнивать нельзя, ибо хранятся они в некотором приближении), но вот глубоко не копал – на чем и погорел.
В чем же была проблема?
Как это выглядело в Matlab:
Аналогично на python:
И вот то же самое (на самом деле нет) на C:
Дело было в том что 0.1 в двоичном виде непредставима как конечная дробь, только как периодическая. А с ограничением точности (float против double, который по умолчанию в python) при суммировании ошибка накопилась и достигла настолько существенных величин, что обратное Фурье становилось комплексным 😱.
PS как-то у коллеги видел очень похожую ситуацию в python (только там он при чтении из файла во float сохранил), уже в 16м, подсказал – помогло.
А копать с тех пор стараюсь поглубже 🪆
Вспомнился старый кейс, где я вовсю ощутил свой недостаток образования в Computer Science.
В далеком кризисе 2014 года меня приютила одна по доброте душевной (а там правда очень классные люди) компания, которая разрабатывала софт для нефтяной сейсмики. У Яндекса там была существенная доля и хорошее отношение – которое выражалось, например в том что компания называлась Яндекс.Терра, а сотрудники могли быть слушателями ШАД.
Разработка на C/ С++ это вот ни разу не python или Matlab (мой основной иснтрумент тогда), и я в нее не умел (о чем честно сказал на входе). А задачи были – писать модули для той большой системы, и на старте мне дали достаточно простые – одноканальная обработка сигналов, всякие фильтрации/свертки, немного со спектрами и кепстрами.
И как-то мне нужно было пройтись по спектру с шагом 0.1 Гц, что-то сделать, а затем к результату применить обратное Фурье. Только вот не всегда результат обратного преобразования Фурье будет вещественнозначным ) Поэтому делать надо было аккуратно, с первого раза в C не получилось. Списав все на свои кривые руки, решил сделать в матлабе. И там волшебным образом все заработало!
Несколько дней я потратил, пытаясь добиться того же результата в C – без шанса 🙈🤯.
В матлабе же не только индексация массивов отличается)
В итоге пошел на поклон к синьору и тут вскрылся мой недостаток образования на тот момент в CS. Что-то о свойствах вещественных чисел я знал (что на равенство сравнивать нельзя, ибо хранятся они в некотором приближении), но вот глубоко не копал – на чем и погорел.
В чем же была проблема?
Как это выглядело в Matlab:
d = 0;
for i = 1:10000
d = d + 0.1;
end
fprintf('%.25f', d)
>>> 1000.0000000001588205122970976
Аналогично на python:
d = 0
for i in range(10_000):
d += 0.1
print(d)
>>> 1000.0000000001588
И вот то же самое (на самом деле нет) на C:
float d = 0;
for (int i = 0; i < 10000; ++i)
{
d += 0.1;
}
printf("%.6f", d);
>>> 999.902893
Дело было в том что 0.1 в двоичном виде непредставима как конечная дробь, только как периодическая. А с ограничением точности (float против double, который по умолчанию в python) при суммировании ошибка накопилась и достигла настолько существенных величин, что обратное Фурье становилось комплексным 😱.
PS как-то у коллеги видел очень похожую ситуацию в python (только там он при чтении из файла во float сохранил), уже в 16м, подсказал – помогло.
А копать с тех пор стараюсь поглубже 🪆
Forwarded from The Layer (Irina Tolstykh)
В недавнем исследовании про таргетированный AI-фишинг авторы собирали информацию в интернете о человеке, с помощью GPT-4o и Claude 3.5 Sonnet составляли его профиль, на основе которого генерировали персонализированные фишинговые сообщения. Что интересно, в 88% случаев профили оказывались точными и полезными, а click-rate на ссылки в автоматически сгенерированных письмах составил 54%. Это значение совпало с click-rate для писем, написанных человеком-экспертом. В аналогичных же исследованиях прошлого года, чтобы достичь уровня экспертов, моделям требовалось участие человека.
Результаты лишний раз подчеркивают необходимость создания и улучшения детекторов сгенерированного контента.
LLM модели совершенствуют свои «обманные способности», а мы продолжаем совершенствовать нашу модель детектирования для русскоязычных текстов GigaCheck. Обновленная версия уже доступна в нашем Telegram-боте. Кроме того, мы добавили нашу новую модель (находится на стадии бета-тестирования), которая умеет определять в co-written текстах фрагменты текста, созданные LLM. Вы можете легко переключать модели через команду
Напомним, что используемый нами подход для детекции интервалов основан на архитектуре DN-DAB-DETR, подробнее можно почитать в опубликованной нами статье, про которую мы писали в этом посте.
Заходите в бот, тестируйте, и не дайте злоумышленникам вас обмануть! 😊
Результаты лишний раз подчеркивают необходимость создания и улучшения детекторов сгенерированного контента.
LLM модели совершенствуют свои «обманные способности», а мы продолжаем совершенствовать нашу модель детектирования для русскоязычных текстов GigaCheck. Обновленная версия уже доступна в нашем Telegram-боте. Кроме того, мы добавили нашу новую модель (находится на стадии бета-тестирования), которая умеет определять в co-written текстах фрагменты текста, созданные LLM. Вы можете легко переключать модели через команду
/model
. Напомним, что используемый нами подход для детекции интервалов основан на архитектуре DN-DAB-DETR, подробнее можно почитать в опубликованной нами статье, про которую мы писали в этом посте.
Заходите в бот, тестируйте, и не дайте злоумышленникам вас обмануть! 😊
⬆️ Кто-нибудь пробовал атаковать этот детектор? Если да, поделитесь результатами
Я просто зашла в курс https://stepik.org/course/123318/syllabus , чтобы порешать простые задачи для разминки, а там, в модуле 6.1 был рис. 1... 😳😳😳
...
Боже, насколько же меня испортил интернет... ☺️
...
Боже, насколько же меня испортил интернет... ☺️
Forwarded from Адель и МЛь
Команда Answer.AI месяц тестила ИИ-инженера Devin, который, напомню, обещает сам писать код, деплоить проекты и решать сложные задачи. На старте всё было круто: Devin легко затянул данные из Notion в Google Sheets и даже помог создать планетарный трекер (при этом команды давались через телефон). Но чем сложнее становились задачи, тем больше он начинал буксовать.
От бесконечных попыток сделать невозможное до кучи бесполезного спагетти-кода. Похоже, основная проблема Девина такая же как и у LLM в целом: неумение сказать “я не знаю” / “я не могу”. В целом, эксперимент быстро превратился в проверку на терпение. Итоговые цифры говорят сами за себя: из 20 задач — только 3 успеха, 14 провалов и 3 “непонятных” результата.
Основной вывод авторов — идея автономного ИИ для программирования классная, но в реальности Devin больше мешал, чем помогал.
Подробнее читать тут - хороший текст от уважаемых ребят
От бесконечных попыток сделать невозможное до кучи бесполезного спагетти-кода. Похоже, основная проблема Девина такая же как и у LLM в целом: неумение сказать “я не знаю” / “я не могу”. В целом, эксперимент быстро превратился в проверку на терпение. Итоговые цифры говорят сами за себя: из 20 задач — только 3 успеха, 14 провалов и 3 “непонятных” результата.
Основной вывод авторов — идея автономного ИИ для программирования классная, но в реальности Devin больше мешал, чем помогал.
Подробнее читать тут - хороший текст от уважаемых ребят
Answer.AI
Thoughts On A Month With Devin – Answer.AI
Our impressions of Devin after giving it 20+ tasks.
Forwarded from Denis Sexy IT 🤖
This media is not supported in your browser
VIEW IN TELEGRAM
Как выглядит интерфейс DDOS-атаки на сервер в 2025 году
👏
Please open Telegram to view this post
VIEW IN TELEGRAM
Вдруг осознала, что этот старый мем - пример того, как модель (в данном случае, мясная, под названием "Ш.К.О.Л.Ь.Н.И.К") ведёт себя на out of domain.
#ML_в_мемах
#ML_в_мемах