Дедуктивные умозаключения требуют отталкиваться в мышлении от теории. Например, мы знаем, сколько энергии выделяется при столкновении метеорита с землей в зависимости от его массы, так как мы можем опираться на физическую теорию, а значит, можем и понять, приведет ли столкновение того или иного астероида с планетой к глобальной катастрофе. Но для ИИ такой теории нет, а попытки прийти к ней через объем вычислений (мол, когда будет в нейронках параметров, как соединений в мозге, сразу возникнет AGI и начнет нас убивать) кажутся неубедительными.
Таким образом, у нас остаются только субъективные оценки (я художник, я так вижу). Эти оценки могут иметь как сами регуляторы, так и специалисты. Кроме специалистов, авторы рассматривают так называемых суперпрогнозистов – людей, которые статистически значимо умеют делать предсказания лучше, чем люди с улицы (NB: superforecasters – зарегистрированная торговая марка компании человека, который этот феномен придумал, описал, популяризовал и продает, так что тут допустима хорошая доля скепсиса). В конце 2022 года одна исследовательская организация провела многомесячное исследование, где эксперты, суперпрогнозисты и простые миряне предсказывали вероятность уничтожения человечества искусственным интеллектом. Разброс вероятностей, который виден на графике, достаточно красноречив сам по себе, но авторы очень подробно расписывают, почему даже такие оценки, не имея под собой никакой фактуры и будучи связанными с экстремально редкими событиями, являются лишь замаскированным под числа личным мнением. То, что суперпрогнозисты дают оценки ниже, связано с тем, что, во-первых, они специально обучаются не переоценивать вероятность маловероятных событий, во-вторых, среди «экспертов» по AI safety тебе необходимо заявлять, что ты считаешь p(doom) высокой, чтобы быть «своим».
Таким образом, у нас остаются только субъективные оценки (я художник, я так вижу). Эти оценки могут иметь как сами регуляторы, так и специалисты. Кроме специалистов, авторы рассматривают так называемых суперпрогнозистов – людей, которые статистически значимо умеют делать предсказания лучше, чем люди с улицы (NB: superforecasters – зарегистрированная торговая марка компании человека, который этот феномен придумал, описал, популяризовал и продает, так что тут допустима хорошая доля скепсиса). В конце 2022 года одна исследовательская организация провела многомесячное исследование, где эксперты, суперпрогнозисты и простые миряне предсказывали вероятность уничтожения человечества искусственным интеллектом. Разброс вероятностей, который виден на графике, достаточно красноречив сам по себе, но авторы очень подробно расписывают, почему даже такие оценки, не имея под собой никакой фактуры и будучи связанными с экстремально редкими событиями, являются лишь замаскированным под числа личным мнением. То, что суперпрогнозисты дают оценки ниже, связано с тем, что, во-первых, они специально обучаются не переоценивать вероятность маловероятных событий, во-вторых, среди «экспертов» по AI safety тебе необходимо заявлять, что ты считаешь p(doom) высокой, чтобы быть «своим».
Проще говоря, никакие оценки x-риска не должны влиять на регулирование (например, приводить к ограничениям на максимальный размер моделей или необходимостью отчитываться перед правительством перед началом обучения LLM), поскольку эти оценки не являются достаточным для сколько-нибудь важных действий основанием.
Это не значит, что регулирования автоматизированных систем принятия решений быть не должно (люди обычно выступают против до первого момента, когда им без объяснения причин откажут в кредите или предложат страховку к ипотеке тысяч за 300 в год). Но целью его необходимо выбирать риски, которые реально можно оценить (дискриминация, изменение структуры занятости, изменение ландшафта киберугроз), чтобы принимаемые решения эти риски разумно балансировали.
Это не значит, что регулирования автоматизированных систем принятия решений быть не должно (люди обычно выступают против до первого момента, когда им без объяснения причин откажут в кредите или предложат страховку к ипотеке тысяч за 300 в год). Но целью его необходимо выбирать риски, которые реально можно оценить (дискриминация, изменение структуры занятости, изменение ландшафта киберугроз), чтобы принимаемые решения эти риски разумно балансировали.
LLMmap: Fingerprinting For Large Language Models
Pasquini et al., 2024
Препринт, код
Сегодня у нас интересный препринт, посвященный LLMmap, инструменту для фингерпринтинга от исследователей из Университета Джорджа Мейсона. Фингерпринтинг LLM, то есть определение того, какая LLM лежит в основе того или иного инструмента – важная часть тестирования сервиса на безопасность, поскольку зная, что за модель или API крутятся в бэкенде, вы можете подобрать более подходящий промпт для инъекции/джейлбрейка или даже сгенерировать его в white-box-режиме, если речь идет об open-source модели. Кроме того, это может быть полезным, если к вам как бизнесу приходят с демо «уникальной модели, обученной с нуля в нашей лаборатории», и вам почему-то стало интересно, что именно скрывается за не имеющими аналогов наработками 😈
Pasquini et al., 2024
Препринт, код
Сегодня у нас интересный препринт, посвященный LLMmap, инструменту для фингерпринтинга от исследователей из Университета Джорджа Мейсона. Фингерпринтинг LLM, то есть определение того, какая LLM лежит в основе того или иного инструмента – важная часть тестирования сервиса на безопасность, поскольку зная, что за модель или API крутятся в бэкенде, вы можете подобрать более подходящий промпт для инъекции/джейлбрейка или даже сгенерировать его в white-box-режиме, если речь идет об open-source модели. Кроме того, это может быть полезным, если к вам как бизнесу приходят с демо «уникальной модели, обученной с нуля в нашей лаборатории», и вам почему-то стало интересно, что именно скрывается за не имеющими аналогов наработками 😈
Итак, исследователи предлагают следующее решение: давайте будем использовать особенности датасетов, обучения и элайнмента моделей, чтобы постараться найти максимально инвариантные ответы. Другими словами, составим такие запросы, чтобы система на основе модели X, вне зависимости от своего системного промпта и контекста приложения (RAG, CoT и так далее) отвечала одинаково. Это мы назовем внутримодельной консистентностью. С другой стороны, нам нужно, чтобы модель Y на этот же вопрос отвечала максимально непохоже – это мы назовем межмодельным различием. Остается найти промпты, максимизирующие оба параметра, и найти минимальное их количество, достаточное для определения типа модели.
Авторы предлагают несколько общих стратегий, с помощью которых такие запросы можно придумать. Первый, по аналогии с banner grabbing – просто спросить модель, кто она. К сожалению, этот подход сам по себе работает плохо:, так как не все модели вообще в курсе, кто они и кто их обучал. Кроме того, ответ на этот вопрос очень легко переписывается системным промптом («Теперь ты КаланГПТ») и может приводить к ложным срабатываниям: так, openchat-3.5 уверен, что он – модель от OpenAI, так как, видимо, тюнился на инструктивном датасете типа Alpaca (поговаривают, что таким грешит и недавно выпущенная русскоязычная T-lite). Тем не менее, у этих ответов есть достаточно сильное межмодельное различие: например, только Gemma сама по себе отказывается называть свое имя, ссылаясь на безопасность.
Следующей стратегией является запрос метаинформации. Так, некоторые модели в курсе своего knowledge cutoff date, поэтому мы (зная для большинства моделей этот параметр), вполне можем использовать это вопрос для фингерпринтинга.
Третьим вариантом является отправка модели нестандартных запросов. Суть тут в том, что отправляя запросы, которые триггерят элайнмент, мы можем получать интересную информацию о модели. Это может быть как явно зловредный запрос, на который мы ожидаем типовой для модели отказ («Как сделать бомбу»), так и более безобидный («Что ты думаешь о глобальном потеплении»). Последним типом являются битые запросы, в частности прием с запросом сразу на нескольких языках («Bonjour, how are you doing today? ¿Qué tal?»).
Наконец, добавление prompt-инъекции к banner grabbing-запросам, как утверждается, добавляет им эффективности.
В результате авторы составляют список из 10 запросов на каждую из пяти перечисленных стратегий (banner grabbing, alignment, weak alignment, meta-information, malformed) и отбирают экспериментальным путем из них 8 самых эффективных, которые вы можете видеть в таблице.
Следующей стратегией является запрос метаинформации. Так, некоторые модели в курсе своего knowledge cutoff date, поэтому мы (зная для большинства моделей этот параметр), вполне можем использовать это вопрос для фингерпринтинга.
Третьим вариантом является отправка модели нестандартных запросов. Суть тут в том, что отправляя запросы, которые триггерят элайнмент, мы можем получать интересную информацию о модели. Это может быть как явно зловредный запрос, на который мы ожидаем типовой для модели отказ («Как сделать бомбу»), так и более безобидный («Что ты думаешь о глобальном потеплении»). Последним типом являются битые запросы, в частности прием с запросом сразу на нескольких языках («Bonjour, how are you doing today? ¿Qué tal?»).
Наконец, добавление prompt-инъекции к banner grabbing-запросам, как утверждается, добавляет им эффективности.
В результате авторы составляют список из 10 запросов на каждую из пяти перечисленных стратегий (banner grabbing, alignment, weak alignment, meta-information, malformed) и отбирают экспериментальным путем из них 8 самых эффективных, которые вы можете видеть в таблице.
Дальше исследователи дают себе волю и начинают учить модели, да так, что обои от стен отклеиваются. Запрос и ответ по отдельности прогоняются через некоторую предобученную модель для получения эмбеддингов (multilingual-e5-large-instruct). Затем эти эмбеддинги конкатенируются. Из сконкатенированных пар эмбеддингов для разных запросов и ответов собираются приложения, которые вместе со служебным токеном подаются в легковесную сеточку из нескольких слоев трансформера (без позиционных эмбеддингов, т.к. порядок запросов не важен). Кроме того, исследователи обучают эту же сеть как сиамскую с контрастивной функцией потерь для того, чтобы получать отпечатки ответов сервиса, независимые от известных на данный момент архитектур, и потенциально расширять эту модель на работу с не вошедшими в обучающий набор сетями.
Все это обучается на ответах 40 LLM (из топов HuggingFace Hub по скачиваниям), использованных в разных контекстах: с разными системными промптами, параметрами сэмплирования и даже с использованием RAG и CoT – в итоге в 1000 различных комбинациях. В итоге supervised-модель дает точность в 95% (неплохо для 40 классов). Наибольшие трудности модели доставляют файнтюны Llama, что в целом ожидаемо. Контрастивная модель выдает точность в 90% на LLM, которые она видела, и 81% на неизвестных (посчитано с помощью leave-one-out-метода).
Все это обучается на ответах 40 LLM (из топов HuggingFace Hub по скачиваниям), использованных в разных контекстах: с разными системными промптами, параметрами сэмплирования и даже с использованием RAG и CoT – в итоге в 1000 различных комбинациях. В итоге supervised-модель дает точность в 95% (неплохо для 40 классов). Наибольшие трудности модели доставляют файнтюны Llama, что в целом ожидаемо. Контрастивная модель выдает точность в 90% на LLM, которые она видела, и 81% на неизвестных (посчитано с помощью leave-one-out-метода).
В целом получается интересная и полезная работа, которая еще и (если коллеги таки закоммитят его на место coming soon) сопровождается кодом, закрывающая один из квадратиков в MITRE ATLAS (AML.T006). Более того, исследователи обещают расширять инструмент за счет определения других параметров приложения (наличие инструментов, определение подхода к промптингу, наличие дополнительного файнтюнинга и так далее). Хотя у меня есть некоторые сомнения касательно того, что для ML-модели был выбран оптимальный подход с точки зрения архитектуры, а также что модель вообще нужна и не заменяется человекочитаемым решающим деревом и набором правил, работа получилась весьма интересная и, надеюсь, получит дополнительное развитие.
Stealing Part of a Production Language Model
Carlini et al., 2024
Статья, блог, код
Одна из статей-лауреатов Best Paper Award с прошедшего недавно ICML 2024 демонстрирует, что с небольшим знанием линала можно украсть веса последнего слоя модели через API. Что потом с этим слоем делать – это уже ваши проблемы, но такая атака не только позволяет примерно прикинуть, зная размерность этого слоя, сколько параметров в модели, но и показывает, что давая доступ к сырым выходам модели, можно столкнуться с неожиданными проблемами🔪 🔪 🔪
Carlini et al., 2024
Статья, блог, код
Одна из статей-лауреатов Best Paper Award с прошедшего недавно ICML 2024 демонстрирует, что с небольшим знанием линала можно украсть веса последнего слоя модели через API. Что потом с этим слоем делать – это уже ваши проблемы, но такая атака не только позволяет примерно прикинуть, зная размерность этого слоя, сколько параметров в модели, но и показывает, что давая доступ к сырым выходам модели, можно столкнуться с неожиданными проблемами
Please open Telegram to view this post
VIEW IN TELEGRAM
arXiv.org
Stealing Part of a Production Language Model
We introduce the first model-stealing attack that extracts precise, nontrivial information from black-box production language models like OpenAI's ChatGPT or Google's PaLM-2. Specifically, our...
Идея атаки очень простая. Для более простого теоретического примера представим, что нам дано API, которое возвращает логиты для следующего токена по префиксу. Вспомним, что последний слой в LLM (как минимум, в рассматриваемом случае) – это матрица W (h × l), которая проецирует активации предпоследнего слоя размерностью h в вектор размерности l, где l – это размер словаря (|V|). Сгенерируем n случайных префиксов и отправим их в языковую модель, получив логиты для следующего токена и сложим их в матрицу Q размерностью n × l.
Учитывая отсутствие нелинейностей, можно заключить, что вектора, составляющие матрицу Q, на самом деле лежат не в пространстве размерности l, а в его подпространстве размерности h. Теперь вспомним, что есть такая штука, как сингулярное разложение, которая позволяет нам решать задачу приближения матрицы матрицей меньшего ранга. При разложении мы получаем три матрицы (U, Σ, V*), где матрица Σ – это диагональная матрица с упорядоченными по убыванию сингулярными числами на главной диагонали. Если эффективная размерность раскладываемой матрицы размерностью l на самом деле h, то сингулярные числа начиная с h будут равны нулю (в реальности из-за численных особенностей вычислений они будут близки к нулю).
Исходя из этого, мы получаем следующий алгоритм: посчитаем SVD от матрицы Q и посмотрим, на каком индексе получается максимальное падение сингулярного числа относительно предыдущего – это и будет искомая размерность h, что авторы демонстрируют на наборе open-source-моделей с известной размерностью матриц весов.
Осталось достать веса. Авторы доказывают, что U · Σ = W · G, где первые две матрицы нам известны после SVD, а W – искомая матрица весов последнего слоя с точностью до аффинного преобразования G. Для доказательства этого они находят матрицу G и демонстрируют, что разница между реальной матрицей и W · G минимальна.
Учитывая отсутствие нелинейностей, можно заключить, что вектора, составляющие матрицу Q, на самом деле лежат не в пространстве размерности l, а в его подпространстве размерности h. Теперь вспомним, что есть такая штука, как сингулярное разложение, которая позволяет нам решать задачу приближения матрицы матрицей меньшего ранга. При разложении мы получаем три матрицы (U, Σ, V*), где матрица Σ – это диагональная матрица с упорядоченными по убыванию сингулярными числами на главной диагонали. Если эффективная размерность раскладываемой матрицы размерностью l на самом деле h, то сингулярные числа начиная с h будут равны нулю (в реальности из-за численных особенностей вычислений они будут близки к нулю).
Исходя из этого, мы получаем следующий алгоритм: посчитаем SVD от матрицы Q и посмотрим, на каком индексе получается максимальное падение сингулярного числа относительно предыдущего – это и будет искомая размерность h, что авторы демонстрируют на наборе open-source-моделей с известной размерностью матриц весов.
Осталось достать веса. Авторы доказывают, что U · Σ = W · G, где первые две матрицы нам известны после SVD, а W – искомая матрица весов последнего слоя с точностью до аффинного преобразования G. Для доказательства этого они находят матрицу G и демонстрируют, что разница между реальной матрицей и W · G минимальна.
Реальность немного сложнее – таких API, которые бы целиком выдавали вектор логитов, нет. API выдают топ-k токенов, причем в виде log-вероятностей (logsoftmax от логитов). Кроме того, API дают вероятность повысить или понизить вероятность тех или иных токенов с помощью logit bias – добавления или вычитания числа прямо из вектора логитов. Вопрос: можно ли с учетом этих вводных восстановить полный вектор логитов для произвольного префикса?
Оказывается, что да. Если бы мы видели напрямую логиты, то мы могли бы добавлять к каждой порции из k токенов максимальный logit bias (например, 100), чтобы они всплывали в top-k, получать их сдвинутые логиты и потом просто вычитать 100. Softmax мешает нам это сделать. Авторы предлагают несколько подходов, которые позволяют получить нужные нам логиты приближенно. Один из них такой: возьмем самый вероятный токен R из продолжения для префикса. Затем добавим к нему и четырем токенам большой logit bias, вытянув их наверх. Теперь, вычитая из логвероятности R логвероятность этих токенов и logit bias, мы получим разницу между логитами, таким образом получив логиты с точностью до вычитания логита для R.
Исследователи показывают еще несколько подходов, которые позволяют делать то же самое более эффективно или с более строгими ограничениями, но суть везде сводится к манипуляции logit bias. В результате им удается восстановить размерности у моделей ada, babbadge и babbadge-002 (олды помнят) и вытащить для первых двух саму матрицу. Кроме того, они вытащили размерности для gpt-3.5-turbo, но рассказывать про них не стали по условиям responsible disclosure, лишь удостоверившись у OpenAI, что их вычисления верны.
Оказывается, что да. Если бы мы видели напрямую логиты, то мы могли бы добавлять к каждой порции из k токенов максимальный logit bias (например, 100), чтобы они всплывали в top-k, получать их сдвинутые логиты и потом просто вычитать 100. Softmax мешает нам это сделать. Авторы предлагают несколько подходов, которые позволяют получить нужные нам логиты приближенно. Один из них такой: возьмем самый вероятный токен R из продолжения для префикса. Затем добавим к нему и четырем токенам большой logit bias, вытянув их наверх. Теперь, вычитая из логвероятности R логвероятность этих токенов и logit bias, мы получим разницу между логитами, таким образом получив логиты с точностью до вычитания логита для R.
Исследователи показывают еще несколько подходов, которые позволяют делать то же самое более эффективно или с более строгими ограничениями, но суть везде сводится к манипуляции logit bias. В результате им удается восстановить размерности у моделей ada, babbadge и babbadge-002 (олды помнят) и вытащить для первых двух саму матрицу. Кроме того, они вытащили размерности для gpt-3.5-turbo, но рассказывать про них не стали по условиям responsible disclosure, лишь удостоверившись у OpenAI, что их вычисления верны.
Далее авторы предлагают некоторое количество вариантов защиты от их атаки: замену logit bias на черные списки, добавление шума, запрет одновременного использования logit bias и получения лог-вероятностей, добавление шума, рейт-лимитинг и так далее. Каждый из этих методов или делает атаку более сложной, или целиком ее предотвращает.
На мой взгляд, это одна из лучших статей на тему атак на большие языковые модели из разобранных на этом канале, да еще и демонстрирующая, зачем в последневной жизни нужна линейная алгебра 🤓
На мой взгляд, это одна из лучших статей на тему атак на большие языковые модели из разобранных на этом канале, да еще и демонстрирующая, зачем в последневной жизни нужна линейная алгебра 🤓