https://huggingface.co/CohereForAI/c4ai-command-r-plus +- 210Gb вам понадобится, чтобы запустить полную версию(3xA100). На 2-ух A100, квантованную на 8-bit запускали, есть не большой буст по метрикам в сравнении с mixtral 8x7b, но просадка по времени ответа в 1,5-2 раза.
вопрос к производительности такого функционала, автор написал для всех возрастов и всех кошельков, а вы предлагаете квантованную модель от которой ответа будете ждать в n раз дольше, да и с качеством Бог знает что будет, в сравнении с фулл моделькой развёрнутой на 2-ух А100 ИЛИ квантованной до 8bit и развёрнутой на одной А100 Если ваше субъективное мнение, что это БРЕД, расскажите как бы в проде это работало, чтобы и на запросы отвечало быстро и по качеству не проседало до gpt-2? Пока вижу, что для развлечения удалось запустить на домашней машинке mixtral-8x7b-instruct-v0.1.Q5_K_M.gguf и сказать, что для любой задачи это панацея...
Интересно, получается наблюдение производилось со спутников или каких-тоспециальных станций с фото-видеокамерами? А сколько,если не секрет, фото и видео в Гб/Тб было накоплено за 23 года?
Ваше предложение о "хирургическом удалении" знаний из сети может представлять собой метафору для более тонких методов корректировки или переобучения модели для исключения уязвимостей. Нужно очень-очень хорошо понимать, какие именно знания или аспекты модели приводят к уязвимости, и как их можно корректировать без ущерба для функциональности и эффективности модели.
Чаще всего, для защиты, мы встречали адверсарное обучение, при котором сеть специально тренируется распознавать и правильно реагировать на адверсарные примеры.
Есть ещё интересный подход, но не для языковых моделей - использование Vision Transformers (ViTs)(для работы с визуальными данными), которые, как было обнаружено, обладают врожденной устойчивостью к адверсарным атакам без необходимости предварительного адверсарного обучения или изменений в архитектуре.
P.s. Удалить "плохие знания " из сети интернет, я считаю вообще невозможно.
По информации моего наставника @artmaro, OpenAI решили проблему с суффиксами на следующий день после выхода статьи. Все генерируемые нами суффиксы также проверялись на ChatGPT 3.5/4 и Claude 2, но ни одна проверка не увенчалась успехом. Ещё интересно понять, что дословно значит желаемый нами текст? Если рассматривать юридические законы, то здесь вопрос заключается в получении моделью знаний. Если её научили на плохих данных, она и будет возвращать их вам. А если рассмотреть инструкцию по совершению какого-либо злодеяния, то, как видно в статье, разные модели предлагают это сделать по-разному из-за вариативности.
Оба метода, безусловно, направлены на то, чтобы модель действовала вне рамок или ограничений, ключевое различие заключается в их подходах и областях применения. "эксплойт через бабушку" использует социальную инженерию и манипулятивные техники в рамках взаимодействия с языковой моделью, в то время как "Adversarial suffixes" фокусируются на техническом аспекте обмана алгоритмов машинного обучения с помощью специально подготовленных данных.
Отвечая на вопрос градиент чего они строят — Градиент функции потерь, т.к. она связана с вероятностью генерации нежелательных ответов моделью. Это позволяет оценить, как изменения в состязательном суффиксе влияют на вероятность получения определенного типа ответа, и оптимизировать суффикс для увеличения этой вероятности.
Отвечая на вопрос как они численно оценивают неподходящие ответы, чтобы понимать, куда двигаться? — Чтобы численно оценивать неподходящие ответы и понимать, куда двигаться в процессе оптимизации, используют функцию потерь, которая измеряет расхождение между текущими ответами модели и целевым нежелательным ответом. Оптимизация ведётся таким образом, чтобы минимизировать эту функцию потерь, тем самым увеличивая вероятность генерации нежелательного ответа. Градиент функции потерь указывает направление наибольшего увеличения вероятности нежелательного ответа, и, следуя в этом направлении, можно эффективно подобрать состязательный суффикс.
Далее перевёл фрагмент статьи, который больше может рассказать какая конкретно функция используется и как этот алгоритм работает в целом.
LLM рассматривается как отображение из некоторой последовательности токенов
в распределение вероятностей следующего токена. В статье используют обозначение
для обозначения вероятность того, что следующим токеном будет xn+1(n+1 - нижний индекс) после предыдущих токенов (1).
С небольшим злоупотреблением, пишут
для обозначения вероятности генерации каждого отдельного токена в последовательности
при всех заданных токенах до этого момента, получается:
Используя это обозначение, адверсариальная потеря, которая нас беспокоит, это отрицательная логарифмическая вероятность некоторой целевой последовательности токенов:
где
фраза "Конечно, вот [prompt]"
Таким образом, задача оптимизации состязательного суффикса может быть записана как задача оптимизации:
где I обозначает индексы токенов состязательного суффикса во входных данных LLM.
Мы можем вычислить линеаризованное приближение замены i-го токена в запросе,xi(i - нижний индекс), оценивая градиент
где
обозначает вектор one-hot, представляющий текущее значение i-го токена (то есть вектор с единицей на позиции ei(i - нижний индекс) и нулями во всех остальных местах). Поскольку LLM обычно формируют эмбеддинги для каждого токена, они могут быть представлены как функции этого значения (2), и, следовательно, мы можем немедленно взять градиент по отношению к этой величине; Затем вычисляется top-k значений с наибольшим отрицательным градиентом как кандидатов на замену токена xi(i - нижний индекс). Мы вычисляем этот набор кандидатов для всех токенов в i∈I, случайным образом выбираем B≤∣I∣ токенов из него, оцениваем потери точно на этом подмножестве и делаем замену с наименьшими потерями. Этот полный метод, который мы называем Жадный Координатный Градиент (GCG), показан в Алгоритме 1.
P.s. вставляя это в статью, мне казалось, надо будет повышать уровень подготовки читателя на "Сложный"
https://huggingface.co/CohereForAI/c4ai-command-r-plus +- 210Gb вам понадобится, чтобы запустить полную версию(3xA100). На 2-ух A100, квантованную на 8-bit запускали, есть не большой буст по метрикам в сравнении с mixtral 8x7b, но просадка по времени ответа в 1,5-2 раза.
вопрос к производительности такого функционала, автор написал для всех возрастов и всех кошельков, а вы предлагаете квантованную модель от которой ответа будете ждать в n раз дольше, да и с качеством Бог знает что будет, в сравнении с фулл моделькой развёрнутой на 2-ух А100 ИЛИ квантованной до 8bit и развёрнутой на одной А100
Если ваше субъективное мнение, что это БРЕД, расскажите как бы в проде это работало, чтобы и на запросы отвечало быстро и по качеству не проседало до gpt-2?
Пока вижу, что для развлечения удалось запустить на домашней машинке mixtral-8x7b-instruct-v0.1.Q5_K_M.gguf и сказать, что для любой задачи это панацея...
Продолжение очень интересной статьи, которая поможет тем, кто захочет внедрять LLM в свои бизнес-процессы!
Хороший и полезный материал!
Спасибо! Очень рады, что вам понравилось!
Спасибо!
Очень интересная статья, эту технику можно использовать, как гайд по оптимизации моделей для генерации изображений!
Хотел уточнить, насколько затратно обучать дестилированную модель?
Спасибо!
Интересно, получается наблюдение производилось со спутников или каких-тоспециальных станций с фото-видеокамерами? А сколько,если не секрет, фото и видео в Гб/Тб было накоплено за 23 года?
Очень интересная статья!
Хотелось бы уточнить, какую версию Stable Diffusion использовали и на каком железе тренировали Midjourney?
Спасибо! Приходите читать вторую часть, а также другие статьи нашей компании?
Ваше предложение о "хирургическом удалении" знаний из сети может представлять собой метафору для более тонких методов корректировки или переобучения модели для исключения уязвимостей. Нужно очень-очень хорошо понимать, какие именно знания или аспекты модели приводят к уязвимости, и как их можно корректировать без ущерба для функциональности и эффективности модели.
Чаще всего, для защиты, мы встречали адверсарное обучение, при котором сеть специально тренируется распознавать и правильно реагировать на адверсарные примеры.
Есть ещё интересный подход, но не для языковых моделей - использование Vision Transformers (ViTs)(для работы с визуальными данными), которые, как было обнаружено, обладают врожденной устойчивостью к адверсарным атакам без необходимости предварительного адверсарного обучения или изменений в архитектуре.
P.s. Удалить "плохие знания " из сети интернет, я считаю вообще невозможно.
По информации моего наставника @artmaro, OpenAI решили проблему с суффиксами на следующий день после выхода статьи. Все генерируемые нами суффиксы также проверялись на ChatGPT 3.5/4 и Claude 2, но ни одна проверка не увенчалась успехом. Ещё интересно понять, что дословно значит желаемый нами текст? Если рассматривать юридические законы, то здесь вопрос заключается в получении моделью знаний. Если её научили на плохих данных, она и будет возвращать их вам. А если рассмотреть инструкцию по совершению какого-либо злодеяния, то, как видно в статье, разные модели предлагают это сделать по-разному из-за вариативности.
Спасибо!?
Оба метода, безусловно, направлены на то, чтобы модель действовала вне рамок или ограничений, ключевое различие заключается в их подходах и областях применения. "эксплойт через бабушку" использует социальную инженерию и манипулятивные техники в рамках взаимодействия с языковой моделью, в то время как "Adversarial suffixes" фокусируются на техническом аспекте обмана алгоритмов машинного обучения с помощью специально подготовленных данных.
Да, скорее всего, так и есть, сначала оценивают на соблюдение политики. Из официальной документации только это нашлось https://openai.com/blog/new-and-improved-content-moderation-tooling
Отвечая на вопрос градиент чего они строят — Градиент функции потерь, т.к. она связана с вероятностью генерации нежелательных ответов моделью. Это позволяет оценить, как изменения в состязательном суффиксе влияют на вероятность получения определенного типа ответа, и оптимизировать суффикс для увеличения этой вероятности.
Отвечая на вопрос как они численно оценивают неподходящие ответы, чтобы понимать, куда двигаться? — Чтобы численно оценивать неподходящие ответы и понимать, куда двигаться в процессе оптимизации, используют функцию потерь, которая измеряет расхождение между текущими ответами модели и целевым нежелательным ответом. Оптимизация ведётся таким образом, чтобы минимизировать эту функцию потерь, тем самым увеличивая вероятность генерации нежелательного ответа. Градиент функции потерь указывает направление наибольшего увеличения вероятности нежелательного ответа, и, следуя в этом направлении, можно эффективно подобрать состязательный суффикс.
Далее перевёл фрагмент статьи, который больше может рассказать какая конкретно функция используется и как этот алгоритм работает в целом.
LLM рассматривается как отображение из некоторой последовательности токенов
в распределение вероятностей следующего токена. В статье используют обозначение
для обозначения вероятность того, что следующим токеном будет xn+1(n+1 - нижний индекс) после предыдущих токенов (1).
С небольшим злоупотреблением, пишут
для обозначения вероятности генерации каждого отдельного токена в последовательности
при всех заданных токенах до этого момента, получается:
Используя это обозначение, адверсариальная потеря, которая нас беспокоит, это отрицательная логарифмическая вероятность некоторой целевой последовательности токенов:
где
фраза "Конечно, вот [prompt]"
Таким образом, задача оптимизации состязательного суффикса может быть записана как задача оптимизации:
где I обозначает индексы токенов состязательного суффикса во входных данных LLM.
Мы можем вычислить линеаризованное приближение замены i-го токена в запросе,xi(i - нижний индекс), оценивая градиент
где
обозначает вектор one-hot, представляющий текущее значение i-го токена (то есть вектор с единицей на позиции ei(i - нижний индекс) и нулями во всех остальных местах). Поскольку LLM обычно формируют эмбеддинги для каждого токена, они могут быть представлены как функции этого значения (2), и, следовательно, мы можем немедленно взять градиент по отношению к этой величине; Затем вычисляется top-k значений с наибольшим отрицательным градиентом как кандидатов на замену токена xi(i - нижний индекс). Мы вычисляем этот набор кандидатов для всех токенов в i∈I, случайным образом выбираем B≤∣I∣ токенов из него, оцениваем потери точно на этом подмножестве и делаем замену с наименьшими потерями. Этот полный метод, который мы называем Жадный Координатный Градиент (GCG), показан в Алгоритме 1.
P.s. вставляя это в статью, мне казалось, надо будет повышать уровень подготовки читателя на "Сложный"