ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку 👈

ML&|Sec Feed

ML&|Sec Feed

Открыть в Telegram
1 383
Подписчики
Нет данных24 часа
+87 дней
+4730 дней
Архив постов
Repost from Data Secrets
🕺 Вышла новая крутая книга "Hands-On Large Language Models" Она разделена на три больших раздела: 1) База LLM (тут все про т
+1
🕺 Вышла новая крутая книга "Hands-On Large Language Models" Она разделена на три больших раздела: 1) База LLM (тут все про токены, эмбеддинги, внимание etc) 2) Претрейн (как предобучают LLM и мультимодальные модели, что такое RAG и Topic Modeing) 3) Файнтюнинг С сегодняшнего дня книга доступна на маркетплейсах и на сайте O’Reilly (а там предусмотрен бесплатный пробный период на 7 дней, и карту вводить не требуется). Сохраняйте и добавляйте в свой ридинг бэклог!

Атаки на текстовые классифкации (Часть 3) 7. Black-box Adversarial Examples Generation (Атака генерирует атакующие примеры в черном ящике): Описание: Эта атака генерирует атакующие примеры в черном ящике, используя информацию о выходных данных модели. Пример: Исходный текст: "Машина красная." Атакующий текст: "Автомобиль алый." Проверка: Атака считается успешной, если модель даёт другое предсказание для атакующего текста. Например, если модель классифицирует исходный текст как "описание цвета" и атакующий текст как "описание транспортного средства", атака успешна. Последствия: Злоумышленник может изменить результаты анализа или классификации, что может привести к неправильным выводам или решениям. Рекомендации: Использование моделей, способных к более точному определению семантических различий, таких как ELECTRA или GPT-3. Применение методов, основанных на ансамблевом обучении (ensemble learning), для улучшения устойчивости к атакам. Регулярное тестирование моделей на наборах данных с генерированными примерами в черном ящике. 8. Particle Swarm Optimization-based Attack (Атака использует метод оптимизации роя частиц): Описание: Эта атака использует метод оптимизации роя частиц для поиска атакующих примеров. Пример: Исходный текст: "Она читает книгу." Атакующий текст: "Она изучает том." Проверка: Атака считается успешной, если модель даёт другое предсказание для атакующего текста. Например, если модель классифицирует исходный текст как "чтение" и атакующий текст как "учеба", атака успешна. Последствия: Злоумышленник может изменить результаты анализа или классификации, что может привести к неправильным выводам или решениям. Рекомендации: Использование моделей, способных к более точному определению семантических различий, таких как T5 или BART. Применение методов, основанных на ансамблевом обучении (ensemble learning), для улучшения устойчивости к атакам. Регулярное тестирование моделей на наборах данных с оптимизированными примерами. 9. Text Bugger (Атака изменяет текст, добавляя или удаляя буквы): Описание: Эта атака изменяет текст, добавляя или удаляя буквы, чтобы создать ошибки ввода, которые затрудняют распознавание модели. Пример: Исходный текст: "Солнце светит." Атакующий текст: "Соолннцее сввеетт." Проверка: Атака считается успешной, если модель не может корректно распознать атакующий текст. Например, если модель не может классифицировать атакующий текст, в то время как исходный текст классифицируется корректно, атака успешна. Последствия: Модель может неправильно интерпретировать текст, что может привести к ошибочным выводам или решениям, особенно в контексте автоматизированного анализа данных. Рекомендации: Использование моделей, способных к коррекции опечаток и ошибок ввода, таких как ELECTRA или GPT-3. Применение методов, основанных на языковых моделях, для исправления грамматических и орфографических ошибок. Обучение моделей на большом количестве данных с различными вариациями текста. #MLSecOps

Атаки на текстовые классифкации (Часть 2) 4. Genetic Algorithm-based Attack (Атака использует генетические алгоритмы): Описание: Эта атака использует генетические алгоритмы для поиска оптимальных изменений в тексте, которые вводят модель в заблуждение. Пример: Исходный текст: "Небо голубое." Атакующий текст: "Небо лазурное." Проверка: Атака считается успешной, если модель даёт другое предсказание для атакующего текста. Например, если модель классифицирует исходный текст как "день" и атакующий текст как "вечер", атака успешна. Последствия: Злоумышленник может изменить результаты анализа или классификации, что может привести к неправильным выводам или решениям. Рекомендации: Использование моделей, способных к более точному определению семантических различий, таких как XLNet или ALBERT. Применение методов, основанных на контрастном обучении (contrastive learning), для улучшения различения семантически близких примеров. Регулярное тестирование моделей на наборах данных с контрастными примерами. 5. BERT Attack (Атака использует модель BERT): Описание: Эта атака использует модель BERT для генерации атакующих примеров, заменяя слова на те, которые сохраняют семантику, но изменяют предсказание модели. Пример: Исходный текст: "Я счастлив." Атакующий текст: "Я рад." Проверка: Атака считается успешной, если модель даёт другое предсказание для атакующего текста. Например, если модель классифицирует исходный текст как "позитивный эмоциональный отклик" и атакующий текст как "нейтральный эмоциональный отклик", атака успешна. Последствия: Злоумышленник может изменить результаты анализа эмоциональной окраски текста, что может привести к неправильным выводам или решениям. Рекомендации: Использование более сложных моделей, способных к более глубокому пониманию контекста и семантики, таких как T5 или BART. Применение методов, основанных на мультизадачном обучении (multi-task learning), для улучшения общего понимания текста. Регулярное тестирование моделей на наборах данных с измененными примерами, сгенерированными BERT. 6. Contrastive Learning-based Attack (Атака использует контрастное обучение): Описание: Эта атака использует контрастное обучение для генерации атакующих примеров, которые сохраняют семантику, но изменяют предсказание модели. Пример: Исходный текст: "Собака большая." Атакующий текст: "Пёс крупный." Проверка: Атака считается успешной, если модель даёт другое предсказание для атакующего текста. Например, если модель классифицирует исходный текст как "описание собаки" и атакующий текст как "описание животного", атака успешна. Последствия: Злоумышленник может изменить результаты анализа или классификации, что может привести к неправильным выводам или решениям. Рекомендации: Использование моделей, способных к более точному определению семантических различий, таких как XLNet или ALBERT. Применение методов, основанных на контрастном обучении (contrastive learning), для улучшения различения семантически близких примеров. Регулярное тестирование моделей на наборах данных с контрастными примерами. #MLSecOps

Атаки на текстовые классифкации (Часть 1) Эти атаки направлены на изменение текста таким образом, чтобы ввести в заблуждение модели обработки естественного языка, что может быть использовано как для тестирования уязвимости моделей, так и для злонамеренных целей. 1. Perturb Word With Synonym (Атака заменяет слова в тексте на их синонимы): Описание: Эта атака заменяет слова в тексте на их синонимы, чтобы изменить смысл текста и ввести модель в заблуждение. Пример: Исходный текст: "Кошка сидит на коврике." Атакующий текст: "Питомец сидит на циновке." Проверка: Атака считается успешной, если модель даёт другое предсказание для атакующего текста по сравнению с исходным. Например, если модель классифицирует исходный текст как "дом" и атакующий текст как "животное", атака успешна. Последствия: Злоумышленник может изменить результаты анализа тональности, классификации или другого NLP-задания, что может привести к неправильным решениям или выводам. Рекомендации: Использование моделей, способных к более глубокому пониманию контекста и семантики, таких как BERT или RoBERTa. Применение методов, учитывающих контекстные векторы (contextual embeddings) для улучшения семантического понимания. Регулярное тестирование моделей на наборах данных с синонимами и антонимами. 2. Deep Word Bug (Атака изменяет текст, добавляя или удаляя буквы): Описание: Эта атака изменяет текст, добавляя или удаляя буквы, чтобы создать ошибки ввода, которые затрудняют распознавание модели. Пример: Исходный текст: "Быстрая коричневая лиса перепрыгивает через ленивую собаку." Атакующий текст: "Быистраяа кораричневаяя лиисаа пеерпприигиивааетт чеерезз лееннивуюю сообакуу." Проверка: Атака считается успешной, если модель не может корректно распознать атакующий текст. Например, если модель не может классифицировать атакующий текст, в то время как исходный текст классифицируется корректно, атака успешна. Последствия: Модель может неправильно интерпретировать текст, что может привести к ошибочным выводам или решениям, особенно в контексте автоматизированного анализа данных. Рекомендации: Использование моделей, способных к коррекции опечаток и ошибок ввода, таких как T5 или BART. Применение методов, основанных на языковых моделях, для исправления грамматических и орфографических ошибок. Обучение моделей на большом количестве данных с различными вариациями текста. 3. Text Fooler (Атака выбирает слова, которые наиболее важны для предсказания модели): Описание: Эта атака выбирает слова, которые наиболее важны для предсказания модели, и заменяет их на семантически похожие, но изменяющие смысл. Пример: Исходный текст: "Мне нравится этот фильм." Атакующий текст: "Мне не нравится этот фильм." Проверка: Атака считается успешной, если модель даёт противоположное предсказание для атакующего текста. Например, если модель классифицирует исходный текст как "положительный отзыв" и атакующий текст как "отрицательный отзыв", атака успешна. Последствия: Злоумышленник может изменить результаты анализа тональности или классификации, что может привести к неправильным рекомендациям или решениям. Рекомендации: Использование моделей, способных к более глубокому пониманию контекста и семантики, таких как XLNet или ALBERT. Применение методов, основанных на внимании (attention mechanisms), для улучшения понимания важных слов в предложении. Регулярное тестирование моделей на наборах данных с измененными ключевыми словами. #MLSecOps

Repost from fmin.xyz
Почему все используют градиентные методы для обучения больших моделей? 🤩 Продемонстрирую наглядно на примере решения задачи Multidimensional Scaling (MDS). В этой задаче нам надо нарисовать на плоскости объекты, про которые мы знаем только насколько каждый из них далеко друг от друга. Т.е. на входе у нас матрица попарных расстояний, а на выходе координаты объектов на плоскости. Причем эти координаты должны быть такими, чтобы соотношения расстояний между объектами оставалось как можно более близким к исходным. В качестве функции потерь выступает сумма квадратов отклонений расстояний между городами при текущих координатах и заданным значением. f(X) = ∑ₘ ∑ₙ (Dₘₙ − dₘₙ(X))² 🗣 Несмотря на увеличение размерности, вся траектория метода может быть наглядно продемонстрирована на плоскости. Количество переменных в задаче здесь - 2*(количество городов), т.к. для каждого из городов мы ищем 2 координаты на плоскости. ↗️ По очереди запускается обычный градиентный спуск, требующий знания градиента, и метод Нелдера-Мида из scipy (широко используемый безградиентный метод). Сначала задача решается для 6 самых населенных европейских городов, потом для 15 и для 34 (это все города-миллионики Европы из википедии). 🤔 Видно, что чем больше городов на карте (чем больше размерность задачи), тем больше разрыв между градиентным и безградиентным методами. Это одна из главных причин, по которой для решения задач большой размерности нам нужны не только значение минимизируемой функции, но и её производная. 🤔 Оказывается, у градиентных методов (при наборе разумных предположений) количество итераций, необходимое до сходимости метода, не зависит напрямую от размерности задачи. То есть если вы рассмотрите корректно настроенный градиентный спуск на десятимерной задаче, то ему нужно будет, скажем, не более 20 итераций для сходимости. А если вы возьмёте условно ту же задачу, но 100500-мерную, то ему нужны будут те же 20 итераций. Конечно, стоимость одной итераций растет с ростом размерности задачи, но хотя бы их количество явно не растет. 🤩 Ставь реакцию, если видишь свой город. 💩 Код для построения анимации

Repost from КПД
EDEN: Communication-Efficient and Robust Distributed Mean Estimation for Federated Learning [Статья] [Код] Квантизовать можно веса, можно активации. А что еще можно? Правильно, градиенты! 👻 И это очень даже нужно и полезно в контексте распределенной оптимизации. Если обучение на многих хостах, а скорость передачи информации между серверами не очень высока, то на синхронизацию между процессами может уходить основная доля времени, а не на сами вычисления. Дабы уменьшить трафик можно сжимать 🗜 градиенты - прунить, квантовать - что душе угодно. При этом, само собой, хочется их не слишком испортить, иначе все обучение пойдет прахом. Метод Идея квантовать градиенты для распределенного не нова - датируется еще 2016 годом (QSGD). Но данная работа предлагает ряд интересных идей (некоторые из которых мы узнаем в литературе вышедшей позднее, а сама статья 2021 года). 1️⃣ Случайные повороты 2️⃣ Оптимальные решетки квантования 3️⃣ Случайный прунинг 4️⃣ Энтропийное кодирование В тензоре значения могут быть распределены, вообще говоря, самым произвольным и поганым (с точки зрения удобства квантования) образом. Но, известно, что если “повернуть” тензор некоей случайной матрицей, то с большой вероятностью полученные значения будут распределены как N(0, sigma^2). В качестве случайных поворотов используют (кто бы мог подумать!) - случайные Адамаровы матрицы. Каждый процесс хранит seed генерации, а главный сервер, зная этот seed на деквантизации, может применить обратное преобразование. Решетку квантизации (а тут дело идет о квантовании в 1 и 2 бита) надо выбирать с умом. Потому берут не абы какие, а MSE-оптимальные (для 1 бита находится аналитически, для 2-ух численно). Дабы увеличить сжатие - можно еще случайным образом запрунить ☠️ часть весов. Маску передавать при этом не надо - она как и вращение задается состоянием случайного генератора. Решетки квантизации можно еще дотюнить при заданном ограничении на битность посредством Entropy-Constrained Vector Quantization. Таким образом, каждый процесс квантует градиенты, посылает главному серверу, тот их усредняет и получает средний градиент по всем батчам. И вся эта кухня идет с теоретическими гарантиями на ошибку аппроксимации. Эксперименты Метод валидируют на синтетических распределениях и распределенном обучении. В качестве бейзлайнов рассматривают QSGD, Hadamard + SQ (Stohastic Quantization), Kashin + SQ. В качестве бенчей для распределенного обучения рассматривают EMNIST (с маленькой CNNкой) и Shakespeare (с LSTM). Не самые свежие и впечатляющие бенчи, но что поделаешь 😞. EDEN наиболее точно приближает исходные данные (в сравнении с бейзлайнами), при этом по скорости не такой быстрый как QSGD, но быстрее Kashin + SQ (ближайший с точки зрения качества подход). В 4 бита разницы вообще нет между EDEN и float обучением, в 2 и 1 бит появляется некий зазор в качестве, но не критичный, и EDEN стабильно лучше конкурентных подходов. Вывод Интересная с точки зрения математики и методологии статья. Кажется, что если бы публикация чуть дотерпела до тех времен (и у авторов был на то ресурс), когда квантовать LLMки стало мейнстримом предложенные идеи были бы обязательно применены в контексте сжатия LLM.

🔐🤖 OWASP Top 10 для приложений LLM и GenAI: руководство для разработчиков и практиков Быстрое внедрение технологий больших
🔐🤖 OWASP Top 10 для приложений LLM и GenAI: руководство для разработчиков и практиков Быстрое внедрение технологий больших языковых моделей и генеративного ИИ опередило создание комплексных протоколов безопасности, что привело к значительным проблемам в безопасности. Для решения появившихся проблем, сообщество OWASP разработало руководство OWASP Top 10 for Large Language Model Applications с практическими рекомендациями по обеспечению безопасности, разработанными с учетом уникальных задач, стоящих перед LLMs и GenAI. 👉 Читать перевод #security

Faker — полезная библиотека для генерации фиктивных данных. Поддерживает не только английский язык. Для русского нужно пропис
Faker — полезная библиотека для генерации фиктивных данных. Поддерживает не только английский язык. Для русского нужно прописать fake = Faker(«ru_Ru») Перед работой не забудьте сделать pip install Faker https://faker.readthedocs.io/en/master/ 👉@BookPython

Repost from Dealer.AI
Exo для тех кто мечтал в "две руки". exo — это тулза для распределенного запуска на своих девайсах LLM. Поддерживается iPhone, iPad, Android, Mac, Linux. Использует среды MLX, llama.cpp, tinygrad. В качестве стратегии шеринга весов моделей использует разные стратегии, а по дефолту схему "кольцо" (напоминает layer/pipline parallelism). Если вы мечтали быть "пианистом" LLM и фигачить в две и более руки пекарни веса жирных моделек - это ваш вариант. Пример. Вот тут чувак запилил инференс на х2 маках 405b llama3.1. git: https://github.com/exo-explore/exo

Repost from GitHub Community
Ciphey — полностью автоматизированный инструмент дешифрования/декодирования/взлома, использующий обработку естественного языка и искусственный интеллект. 4️⃣ GitHub

Repost from эйай ньюз
WebGPU puzzles Если всегда было интересно, как работать с GPU, но вы не знали с чего начать, то принёс вам занятие на субботн
WebGPU puzzles Если всегда было интересно, как работать с GPU, но вы не знали с чего начать, то принёс вам занятие на субботний вечер - WebGPU Puzzles. Это небольшой курс задачек, вдохновлённый оригинальными GPU Puzzles, но работает прямо в браузере! Несмотря на браузер, скорость молниеносная - всё компилится и запускается за долю секунды после каждого нажатия клавиши. Из минусов - пока поддерживается только Chrome. Возможным это стало из-за gpu.cpp - библиотеки поверх WebGPU, упрощающей работу с компьютом. Answer AI с момента основания только и занимается тем, что создаёт такие мелочи, упрощающие жизнь. Они первыми заставили QLora работать с FSDP, а недавно выпустили FastHTML - фреймворк для создания небольших веб-приложений на чистом Python, хорошая альтернатива Gradio. https://gpupuzzles.answer.ai/ @ai_newz

📖Изучить на досуге: пошаговое руководство по созданию синтетических данных в Python В переводном материале на «Хабре» расска
+2
📖Изучить на досуге: пошаговое руководство по созданию синтетических данных в Python В переводном материале на «Хабре» рассказывается о пяти способах создания синтетических данных. Их можно применять для машинного обучения, статистического моделирования и других задач, когда имеющиеся датасеты нельзя использовать из-за юридических ограничений. 👉🏻 Читать материал

Repost from Dealer.AI
Схема RIG-RAG
Схема RIG-RAG

Repost from GitHub Community
MyAwesomeEDA — этот модуль Python предоставляет набор инструментов для исследования и анализа вашего набора данных. Независим
MyAwesomeEDA — этот модуль Python предоставляет набор инструментов для исследования и анализа вашего набора данных. Независимо от того, являетесь ли вы специалистом по данным, аналитиком или энтузиастом, этот модуль поможет вам быстро и эффективно получить представление о ваших данных. 4️⃣ GitHub

Repost from AbstractDL
Quiet-STaR: думательные токены вместо Chain-of-Thought Очень интересная идея, как обобщить CoT-промптинг, приближая его к под
Quiet-STaR: думательные токены вместо Chain-of-Thought Очень интересная идея, как обобщить CoT-промптинг, приближая его к подобию мыслительного процесса человека (говорить не всё, что думаешь). Для этого авторы предложили позволить LLM иногда «думать», — старт и конец такой мысли определяются обучаемыми RL спецтокенами, а вот сама мысль чаще всего состоит из какой-то белиберды, уменьшающей перплексию дальнейшего текста. В отличие от CoT, тут нет требования писать внятно, поэтому то, что генерится внутри мысли далеко не всегда получается интерпретировать. Тем не менее, это сильно бустит метрики и практически не замедляет инференс, т.к. генерация идёт параллельно. Понятное дело, что это не работает без дообучения, но я попросил чатгпт притвориться, что она использует эти мыслительные токены, и спросил её помогло ли это ответить на мой вопрос. Она сказала что помогло 😁 Статья

Repost from эйай ньюз
В гонке быстрого инференса новый участник SambaNova запустили Llama 3.1: 405B на подтверждённой скорости в 132 токена в секун
В гонке быстрого инференса новый участник SambaNova запустили Llama 3.1: 405B на подтверждённой скорости в 132 токена в секунду, 70B - на скорости 461 токен в секунду и 8B - на скорости 1066 токенов в секунду. Это всё в bf16, без квантизации. На лидерборде Artificial Analysis у SambaNova точность 405B выше всех других провайдеров, но с моделями поменьше не всё так радужно. Я потестил их инференс, скорость и правда очень высокая - у меня 405B выдавала от 110 до 124 токенов в секунду, что очень близко к заявленным числам. 8B доходила до 1100 токенов в секунду, а вот 70B, хоть и выдавала до 466 в секунду на пике (в твиттере стартап вообще заявлял скорость до 570 в секунду), но у части запросов скорость была аж в два раза меньше. Цена 405B - $5/mt на вход и $10/mt на выход. Есть на рынке провайдеры и подешевле, но они все запускают модель с уменьшенной точностью. API уже доступно разработчикам для теста. Бесплатно, но с очень низкими лимитами. Возможность платить за API добавят позже. Попробовать можно тут Предыдущий пост из серии про быстрый инференс: тык. @ai_newz

✅ Графы в рекомендательных системах [часть 1] Мало кто знает, но я недавно писал научную статью связанную с графовыми рекомен
✅ Графы в рекомендательных системах [часть 1] Мало кто знает, но я недавно писал научную статью связанную с графовыми рекомендательными системами. В процессе исследования, я записывал небольшие черновики про графы, которые теперь хочу превратить в серию статей. Она будет состоять из двух или трех статей — разной сложности и актуальности. В первой части мы рассмотрим базовые понятия, концепции и простые модели, а также выделим их ключевые особенности. Вторую часть напишут мои знакомые из WildRecSys, где они расскажут о lightGCN и поделятся своим опытом использования этой модели. Все остальные части будут выложены тут в моем телеграм канале, поэтому приглашаю подписаться что бы не пропустить, а вам приятного чтения. ➡️ Читать пост на HABR #RECSYS #HABR