Forwarded from NoML Digest (Pavel Snurnitsyn)
Про RL
Запись вчерашнего семинара скоро будет, а пока список литературы и материалов из доклада Сергея:
Книги:
▫️ R.S. Sutton, A.G. Barto, Reinforcement Learning, 2018, есть перевод (~550 стр.);
▫️ M. Lapan, Deep Reinforcement Learning Hands-On, 2020, есть перевод (~540 стр.);
▫️ L. Graesser, W.L. Keng, Foundations of Deep Reinforcement Learning, есть перевод (~410 стр.).
Вводная статья:
▫️ B. Jaeger, A. Geiger, An Invitation to Deep Reinforcement Learning, 2023 (38 стр.).
Курс:
▫️ Deep Reinforcement Learning Course.
Кейс команды GlowByte Advanced Analytics:
▫️ Как Reinforcement Learning помогает ритейлерам, 2020 (14 минут).
И еще пара статей:
▫️ Y. Lin et al., A Survey on Reinforcement Learning for Recommender Systems, 2021 (20 стр., ~1,5 часа);
▫️ F. Chen et al., BCRLSP: An Offline Reinforcement Learning Framework for Sequential Targeted Promotion, 2022 (7 стр., ~30-40 минут).
Запись вчерашнего семинара скоро будет, а пока список литературы и материалов из доклада Сергея:
Книги:
▫️ R.S. Sutton, A.G. Barto, Reinforcement Learning, 2018, есть перевод (~550 стр.);
▫️ M. Lapan, Deep Reinforcement Learning Hands-On, 2020, есть перевод (~540 стр.);
▫️ L. Graesser, W.L. Keng, Foundations of Deep Reinforcement Learning, есть перевод (~410 стр.).
Вводная статья:
▫️ B. Jaeger, A. Geiger, An Invitation to Deep Reinforcement Learning, 2023 (38 стр.).
Курс:
▫️ Deep Reinforcement Learning Course.
Кейс команды GlowByte Advanced Analytics:
▫️ Как Reinforcement Learning помогает ритейлерам, 2020 (14 минут).
И еще пара статей:
▫️ Y. Lin et al., A Survey on Reinforcement Learning for Recommender Systems, 2021 (20 стр., ~1,5 часа);
▫️ F. Chen et al., BCRLSP: An Offline Reinforcement Learning Framework for Sequential Targeted Promotion, 2022 (7 стр., ~30-40 минут).
Forwarded from DeepSchool
CVAT SDK PyTorch Adapter
Если вам надоело вручную выгружать задания от разметчиков и объединять их для загрузки на сервер, то эта статья для вас.
В новом материале обсудим:
- как загрузить данные из CVAT напрямую в torch.utils.data.Dataset;
- советы при работе с CVAT PyTorch SDK;
- недостатки SDK на данный момент.
Читайте новую статью по ссылке, чтобы готовить датасеты быстрее: https://deepschool-pro.notion.site/CVAT-SDK-PyTorch-Adapter-e223563927454322a8d56076e59b8b17
Если вам надоело вручную выгружать задания от разметчиков и объединять их для загрузки на сервер, то эта статья для вас.
В новом материале обсудим:
- как загрузить данные из CVAT напрямую в torch.utils.data.Dataset;
- советы при работе с CVAT PyTorch SDK;
- недостатки SDK на данный момент.
Читайте новую статью по ссылке, чтобы готовить датасеты быстрее: https://deepschool-pro.notion.site/CVAT-SDK-PyTorch-Adapter-e223563927454322a8d56076e59b8b17
Forwarded from Анализ данных (Data analysis)
DAG — это ориентированный ациклический граф, концептуальное представление серии действий или, другими словами, математическая абстракция конвейера данных (data pipeline).
▪ Github
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from NLP Wanderer
Мы выпускаем в релиз свои лучшие модели и тулкит алайнмента. который использовался для их тренировки.
Итак, наш флагман - Vikhr-Nemo-12B-Instruct-R-21-09-24 (карточка на HF)
12B модель на основе Mistral-Nemo, с качеством на русском языке в некоторых задачах не хуже gpt-4o-mini и имеет 128к токенов контекста, была специально заалайнена под решение широкого спектра задач на реальных и синтетических вопросах пользователей, включая код, математику, суммаризацию, ризонинг, ответы в специальном формате (JSON/HTML и тд) и многие другие.
Модель получила винрейт 79.8 (относительно gpt-3.5-turbo) на оффлайн бенчмарке Ru-General-Arena, что лучше любой текущей опенсорс модели до 30В для русского языка.
Для достижения такого качества мы собрали большой инструктивный датасет со втроенным CoT, что позволило сильно прочкать ризонинг модели, далее обучили Reward модель, сделали Rejection Sampling и применили собственный метод SMPO (вариация DPO) для выполнения преференс-тюнинга.
Вторая модель - Vikhrmodels/Vikhr-Llama3.1-8B-Instruct-R-21-09-24 (карточка на HF)
Так же обучена Llama-3,1-8B и имеет аналогичный размер контекста в 128k токенов. Винрейт на Ru-Arena-General - 63.9, что делает ее одной из лучших 8B моделей дла русского языка.
Модели обучены работать с RAG
Обе модели имеют уникальную особенность - они заалайнены для работы с RAG, т.е. используя системный промпт и спец. роль documents, вы сможете подавать ей документы в стандартизированной форме (JSON). При этом сам текст каждого документа может быть грязным чанком HTML, Markdown или Plain text формата до 4к символов каждый.
Модели умеют выделять информацию из предоставленных документов самостоятельно, реализуя таким образом "реранкер" на уровне LLM. Это сделано за счет двух-этапного ответа. Первый ответ модели представляет из себя JSON со списокм релевантных идентификаторов документов, а второй, если юзер его запросит, будет уже текстовым ответом модели на вопрос пользователя.
Благодаря такому обучению, на нашем бенчмарке для RAG (судья gpt-4o) Vikhr-Nemo показала качество в RAG задачах даже лучше, чем gpt-4o-mini (цифры в карточках моделей)
SMPO - Simple Margin Preference Optimization
Наш собственный метод выравнивания, разработанный для стабилизации прцоесса PO. Этот метод во многом заимствует идеи IPO, SimPO, C-RLFT, а также содержит собственную функцию потерь для разделения выбранных и отклоненных пар, отказываясь от классической сигмойды.
Основная идея метода заключается в стремлении плавно достичь желаемого уровня margin, не заставляя модель переобучаться, в том числе с помощью добавления балансирующего SFT лосса для выбранных и отклоненных вариантов одновременно.
Тулкит на Github - effective_llm_alignment
Репозиторий содержит скрипты и конфиги которые использовались для всех этапов обучения моделей. он позволяет удобно работать с основными методами алайнмента для LLM, включая наш SMPO.
Больше подробностей о моделях, как с ними работать, бенчмарках, процедуре обучения, вы можете найти в их карточках на HF.
Поиграться с Vikhr-Nemo-12B можно в tg bot_e (@vikhrbot), Gradio инференс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Forwarded from Purple Team Diary's (MRL)
Анализ признаков влияющих на предсказание нейронной сети
В рамках проекта по созданию торгового бота на акциях Московской биржи, использовал индикаторы технического анализа для извлечения признаков, которые помогут нейронной сети лучше обобщить экономические закономерности финансовых рынков. В результате, получил внушительное количество признаков — целых 39, поэтому необходимо убрать лишние, чтобы повысить качество предсказания нейронной сети.
Одним из эффективных способов достижения этой цели является вычисление градиентов.
Определим функцию compute_gradients, которая будет вычислять градиенты предсказаний модели по отношению к входным данным:
@tf.function: Этот декоратор позволяет TensorFlow оптимизировать выполнение функции, превращая ее в граф (повышает производительность).
tf.GradientTape(): Контекстный менеджер, который отслеживает операции с тензорами, что позволяет вычислять производные.
tape.watch(inputs): Указывает, что мы хотим следить за изменениями в inputs.
tape.gradient(predictions, inputs): Вычисляет градиенты предсказаний модели по отношению к входным данным.
Теперь можем использовать эту функцию для вычисления градиентов на примере входных данных, чтобы оценить важность признаков.
sample = tf.convert_to_tensor(X_test[:1], dtype=tf.float32): Преобразуем первый пример из тестового набора в тензор TensorFlow.
compute_gradients(sample).numpy(): Вызываем функцию для вычисления градиентов и преобразуем результат обратно в массив NumPy.
np.mean(np.abs(grads), axis=(0, 1)): Вычисляем среднее значение абсолютных градиентов для каждого признака.
np.argsort(mean_grads)[::-1]: Получаем индексы признаков, отсортированных по убыванию их важности.
sorted_features и sorted_importances: Получаем отсортированные названия признаков и их значения.
Гистограмма:
В результате выполнения кода получим список признаков, отсортированных по их важности для модели. Это поможет лучше понять, какие входные данные оказывают наибольшее влияние на предсказания модели и, возможно, позволит улучшить ее качество за счет фокусировки на наиболее значимых признаках.
#ML
В рамках проекта по созданию торгового бота на акциях Московской биржи, использовал индикаторы технического анализа для извлечения признаков, которые помогут нейронной сети лучше обобщить экономические закономерности финансовых рынков. В результате, получил внушительное количество признаков — целых 39, поэтому необходимо убрать лишние, чтобы повысить качество предсказания нейронной сети.
Одним из эффективных способов достижения этой цели является вычисление градиентов.
Определим функцию compute_gradients, которая будет вычислять градиенты предсказаний модели по отношению к входным данным:
import tensorflow as tf
@tf.function
def compute_gradients(inputs):
with tf.GradientTape() as tape:
tape.watch(inputs) # Следим за входными данными
predictions = best_model(inputs) # Получаем предсказания от модели
return tape.gradient(predictions, inputs) # Вычисляем градиенты
@tf.function: Этот декоратор позволяет TensorFlow оптимизировать выполнение функции, превращая ее в граф (повышает производительность).
tf.GradientTape(): Контекстный менеджер, который отслеживает операции с тензорами, что позволяет вычислять производные.
tape.watch(inputs): Указывает, что мы хотим следить за изменениями в inputs.
tape.gradient(predictions, inputs): Вычисляет градиенты предсказаний модели по отношению к входным данным.
Теперь можем использовать эту функцию для вычисления градиентов на примере входных данных, чтобы оценить важность признаков.
# Пример входных данных
sample = tf.convert_to_tensor(X_test[:1], dtype=tf.float32)
# Вычисление градиентов
grads = compute_gradients(sample).numpy()
# Расчет средних абсолютных градиентов по всем признакам
mean_grads = np.mean(np.abs(grads), axis=(0, 1))
# Сортировка признаков по важности
important_features_idx = np.argsort(mean_grads)[::-1]
sorted_features = X.columns[important_features_idx]
sorted_importances = mean_grads[important_features_idx]
print("Важность признаков:", sorted_features)
sample = tf.convert_to_tensor(X_test[:1], dtype=tf.float32): Преобразуем первый пример из тестового набора в тензор TensorFlow.
compute_gradients(sample).numpy(): Вызываем функцию для вычисления градиентов и преобразуем результат обратно в массив NumPy.
np.mean(np.abs(grads), axis=(0, 1)): Вычисляем среднее значение абсолютных градиентов для каждого признака.
np.argsort(mean_grads)[::-1]: Получаем индексы признаков, отсортированных по убыванию их важности.
sorted_features и sorted_importances: Получаем отсортированные названия признаков и их значения.
Гистограмма:
plt.figure(figsize=(10, 6))
plt.barh(sorted_features, sorted_importances, color='skyblue')
plt.xlabel('Средний абсолютный градиент')
plt.ylabel('Признаки')
plt.title('Наиболее важные признаки')
plt.gca().invert_yaxis()
plt.show()
В результате выполнения кода получим список признаков, отсортированных по их важности для модели. Это поможет лучше понять, какие входные данные оказывают наибольшее влияние на предсказания модели и, возможно, позволит улучшить ее качество за счет фокусировки на наиболее значимых признаках.
#ML
Forwarded from CodeCamp
Разрабы, внимание: большинство моделей от Mistral теперь доступны бесплатно по API!
Буквально аттракцион невиданной щедрости, но будьте готовы к тому, что ваши запросы могут использовать для тренировки новых моделей.
Не нужен ни VPN ни карточка.
Буквально аттракцион невиданной щедрости, но будьте готовы к тому, что ваши запросы могут использовать для тренировки новых моделей.
Не нужен ни VPN ни карточка.
Principles of Beautiful Figures for Research Papers
Видео с подробным разбором принципов визуализации для научных статей, автор - Andrey Churkin (Андрей Чуркин)
Перевод описания
Создание высококачественных иллюстраций для научных статей - сложная и трудоемкая задача. Обычно требуется тщательное тестирование различных методов, чтобы представить результаты исследования наилучшим образом. Однако многие университеты упускают из виду эту тему, оставляя студентов и молодых исследователей изучать графический дизайн научных публикаций методом проб и ошибок.
В течение последних нескольких лет у меня была идея создать учебные пособия для студентов и исследователей, объясняющие, как создавать красивые графики. Теперь, наконец, у меня дошли до него руки. Это видео - первая часть серии учебных пособий, где мы поговорим о принципах создания графиков для научных работ. Затем, в следующих видеороликах, я покажу вам процесс разработки таких графиков, мы научимся создавать сложные визуализации, используя как программирование, так и программное обеспечение для векторной графики.
Таймкоды
00:00 Вступление
04:51 Качество изображения, векторная графика
14:42 Удобочитаемость
20:03 Упрощайте и избавляйтесь от беспорядка
30:52 Цвета
45:03 Посыл и задумка
51:31 Последовательный стиль
54:04 Чего следует избегать: круговые диаграммы, 3D
58:18 Время
59:24 Итого
Видео с подробным разбором принципов визуализации для научных статей, автор - Andrey Churkin (Андрей Чуркин)
Перевод описания
Создание высококачественных иллюстраций для научных статей - сложная и трудоемкая задача. Обычно требуется тщательное тестирование различных методов, чтобы представить результаты исследования наилучшим образом. Однако многие университеты упускают из виду эту тему, оставляя студентов и молодых исследователей изучать графический дизайн научных публикаций методом проб и ошибок.
В течение последних нескольких лет у меня была идея создать учебные пособия для студентов и исследователей, объясняющие, как создавать красивые графики. Теперь, наконец, у меня дошли до него руки. Это видео - первая часть серии учебных пособий, где мы поговорим о принципах создания графиков для научных работ. Затем, в следующих видеороликах, я покажу вам процесс разработки таких графиков, мы научимся создавать сложные визуализации, используя как программирование, так и программное обеспечение для векторной графики.
Таймкоды
00:00 Вступление
04:51 Качество изображения, векторная графика
14:42 Удобочитаемость
20:03 Упрощайте и избавляйтесь от беспорядка
30:52 Цвета
45:03 Посыл и задумка
51:31 Последовательный стиль
54:04 Чего следует избегать: круговые диаграммы, 3D
58:18 Время
59:24 Итого
YouTube
Principles of Beautiful Figures for Research Papers
Creating high-quality figures for research papers is a difficult and time-consuming task. It usually requires extensive testing of various techniques to present the results of a study in the best possible way. However, many universities overlook this topic…
👍1
Forwarded from NoML Digest (Pavel Snurnitsyn)
Про доверенный ИИ и AI TRiSM
Появилась запись встречи экспертного сообщества по криптографии и большим данным от 28 августа 2024 года по теме “Доверенный ИИ”:
▫️ RuTube | VK Видео (~2 часа 30 минут).
Еще вслед небольшая мысль, которую не успел озвучить во время своего выступления. Есть такой термин от Гартнера AI TRiSM (Trust, Risk, Security Management), стоящий на 4-х столпах:
▫️ Explainability / Model Monitoring;
▫️ ModelOps;
▫️ AI Application Security;
▫️ (Data) Privacy.
Все эти темы как раз детально обсудили на встрече экспертного сообщества 28 августа.
По нашему мнению есть еще один важный столп, который должны накрывать вопросы доверенного ИИ, это:
▫️ Процессы принятия решений.
Ведь степень доверия к технологиям и методам DS/ML/AI не может быть абсолютной, она всегда относительна — относительна бизнес-приложениям, в которых используются эти методы, то есть принятию решений, которые частично или полностью автоматизируются с помощью ИИ.
А математическая оптимизация и исследование операций, которые мы тут активно продвигаем — это как раз про моделирование для автоматизации принятия решений.
Появилась запись встречи экспертного сообщества по криптографии и большим данным от 28 августа 2024 года по теме “Доверенный ИИ”:
▫️ RuTube | VK Видео (~2 часа 30 минут).
Еще вслед небольшая мысль, которую не успел озвучить во время своего выступления. Есть такой термин от Гартнера AI TRiSM (Trust, Risk, Security Management), стоящий на 4-х столпах:
▫️ Explainability / Model Monitoring;
▫️ ModelOps;
▫️ AI Application Security;
▫️ (Data) Privacy.
Все эти темы как раз детально обсудили на встрече экспертного сообщества 28 августа.
По нашему мнению есть еще один важный столп, который должны накрывать вопросы доверенного ИИ, это:
▫️ Процессы принятия решений.
Ведь степень доверия к технологиям и методам DS/ML/AI не может быть абсолютной, она всегда относительна — относительна бизнес-приложениям, в которых используются эти методы, то есть принятию решений, которые частично или полностью автоматизируются с помощью ИИ.
А математическая оптимизация и исследование операций, которые мы тут активно продвигаем — это как раз про моделирование для автоматизации принятия решений.
👍1
Forwarded from Echelon Eyes
Создана первая карта ландшафта атак на ИИ
Исследователь Дэниел Месслер попытался создать визуальную карту атак на искусственный интеллект (ИИ). С помощью предложенного им фреймворка специалистам будет легче разобраться, как происходят атаки на ИИ-системы.
Месслер пояснил, что писал свою статью в то время, когда только появился GPT-4. На тот момент уже имелось большое количество информации об атаках на реализации машинного обучения, но не на полные системы, созданные с использованием ИИ как части нескольких компонентов.
«Во многом это связано с тем, что такие интеграционные технологии, как Langchain, стали популярными только за последние 2 месяца. Поэтому людям потребуется время, чтобы создавать продукты и услуги с использованием этого инструментария», - поясняет исследователь.
Естественный язык — основа для атаки на системы ИИ, что порождает совершенно новый вид уязвимостей. Автор выделяет два метода, которыми могут действовать злоумышленники, - внедрение подсказок и атаки на обучение. С помощью этих методов можно реализовать атаки на модели, агенты, инструменты и обучающие данные.
В статье подчеркивается, что при изучении атак на ИИ важно думать не только о больших языковых моделях, но обо всей ИИ-экосистеме, которая состоит из множества компонентов.
«Нам особенно нужно думать о том, где системы ИИ пересекаются с нашими стандартными бизнес-системами, например, на уровнях агентов и инструментов, поскольку это системы, которые могут выполнять действия в реальном мире», - подытоживает Месслер.
Источник: https://danielmiessler.com/p/the-ai-attack-surface-map-v1-0/
#ИИ #кибератаки
Исследователь Дэниел Месслер попытался создать визуальную карту атак на искусственный интеллект (ИИ). С помощью предложенного им фреймворка специалистам будет легче разобраться, как происходят атаки на ИИ-системы.
Месслер пояснил, что писал свою статью в то время, когда только появился GPT-4. На тот момент уже имелось большое количество информации об атаках на реализации машинного обучения, но не на полные системы, созданные с использованием ИИ как части нескольких компонентов.
«Во многом это связано с тем, что такие интеграционные технологии, как Langchain, стали популярными только за последние 2 месяца. Поэтому людям потребуется время, чтобы создавать продукты и услуги с использованием этого инструментария», - поясняет исследователь.
Естественный язык — основа для атаки на системы ИИ, что порождает совершенно новый вид уязвимостей. Автор выделяет два метода, которыми могут действовать злоумышленники, - внедрение подсказок и атаки на обучение. С помощью этих методов можно реализовать атаки на модели, агенты, инструменты и обучающие данные.
В статье подчеркивается, что при изучении атак на ИИ важно думать не только о больших языковых моделях, но обо всей ИИ-экосистеме, которая состоит из множества компонентов.
«Нам особенно нужно думать о том, где системы ИИ пересекаются с нашими стандартными бизнес-системами, например, на уровнях агентов и инструментов, поскольку это системы, которые могут выполнять действия в реальном мире», - подытоживает Месслер.
Источник: https://danielmiessler.com/p/the-ai-attack-surface-map-v1-0/
#ИИ #кибератаки
Forwarded from 𝚂𝚚𝚞𝚊𝚍 𝚘𝚏 𝚝𝚑𝚎 𝙲𝚢𝚋𝚎𝚛𝚂𝚌𝚘𝚞𝚝𝚜 💻📲
Leak OSINT bot
Давненько я не постил никаких инструментов для OSINT-расследований. Но вот порадовал меня данный бот совсем недавно и неоднократно помог в расследованиях.
По сути, такая же база данных, но есть очень хороший функционал:
Когда мы исследуем сетевой псевдоним какого-то киберпреступника, кажется логичным, что поискать стоит не только через никнеймы в соц сетях и мессенджерах, но еще и в утечках паролей, среди существующих сервисов электронной почты и тд.
И вот этот инструмент облегчает данную задачу. Это прям хорошо экономит драгоценное время.
#инструменты
#осинт
Давненько я не постил никаких инструментов для OSINT-расследований. Но вот порадовал меня данный бот совсем недавно и неоднократно помог в расследованиях.
По сути, такая же база данных, но есть очень хороший функционал:
Когда мы исследуем сетевой псевдоним какого-то киберпреступника, кажется логичным, что поискать стоит не только через никнеймы в соц сетях и мессенджерах, но еще и в утечках паролей, среди существующих сервисов электронной почты и тд.
И вот этот инструмент облегчает данную задачу. Это прям хорошо экономит драгоценное время.
#инструменты
#осинт
🐳1