Градиентное погружение
4.61K subscribers
179 photos
11 videos
10 files
164 links
Обсуждаем новости, рассказываем про ML с кодом и колабом, выигрываем соревы 🏆

Контакты: @Cene655, @Cucu_LaPraline
Download Telegram
Градиентное погружение
Coursera - всё 4 июня окончательно закрывается доступ к контенту от российских вузов, ведущих индустриальных компаний. ВК и ВШЭ в скором времени представит платформу которая должна стать заменой. Естественно с плюшками (по их словам, это все не реклама и…
PIP - за ним история

Эта утилита сыгравшая одну из ключевых ролей в популяризации питона - представьте себе, когда-то для установки пакета необходимо было скачать zip (который находился не в PYPI), распаковать и запустить setup.. бр..

При этом были такие проблемы как глобальная установка пакета, т.е. если вы писали два разных приложения на одной машине, то явно испытывали неудобства.

С эволюцией питона как такого произошли изменения и в pip, появился удобный PYPI, pipenv, requirements.txt.

Хотя в целом остались некоторые проблемы: версионирование кода(1) и неоднозначность инсталла(2)

(1) Недостаточно сделать lib==2.0.1, за ним будут тянутся куча других либ с не всегда теме же версиями (lib2 >= 1.67.1)

(2) На первый взгляд может показаться, что либа весит пару мегабайт, но может внутри себя инсталлить что-то значительно большее (10мб, 100мб, etc)

Хотя и это частично решается - Pipfile/Pipfile.lock (json, учитывает зависимости и хеши), а pipenv гарантирует повторяемость сборок (под конкретную версию питона)

@gradientdip

Это было краткое содержание, полное видео тут
👍15
Lingtrain. Книги для всех, даром

🎈 Написал приложение для создания параллельных книг и рассказал про него в этой небольшой статье на Хабре. Под капотом у него мультиязыковые нейросетевые модели для понимания смысла предложений на разных языках (всего более ста языков) и алгоритмы для создания выравнивнаия.

https://habr.com/ru/company/ods/blog/669990/
👍101
Forwarded from shonenkov AI
"корги эскиз цветной" / "Corky color sketches"

generated by unknown user

просто напоминаю про своих дискорд-ботов с генерациями, присоединяйтесь)
https://discord.gg/xV7dNbT9NU

@shonenkovAI
👍9
Ускоряем расчет признаков на коротком датасете

Поговорим про такую опенсурс либу как PandaPy, либу, которая имеет значительное преимущество над пандасом на небольших датасетах (в пределах 500к строк).

Насколько измеримо преимущество?

Concatenate (concat) (rows 25x columns 70x)
Merge (merge) (2x)
Group by (group) (10x)
Pivot (pivot) (20x)
Rename (rename) (500x)

В основе лежит Structured NumPy Array - в отличие от обычного массива numpy может работать с разными типами данных, при этом часто экономит 1/3 памяти по сравнению с пандами во время работы с int, float, datetime, str.

Почему так происходит? По большей части из-за накладных расходов pandas, чего стоит простой rename.

Ну ок, сэкономлю я пару сек и что с того? Ничего, просто основной кейс использования - работа с финансовыми данными и трейдинговыми системами, где каждая миллисекунда на счету (чутка забудем про C++).

@gradientdip

Из этой же оперы: ускорение питон кода без боли | CuDF

Питч и кейс использования
Попробовать в колабе
👍16
Ничего необычного, просто панда, которая готовит латте и слон под водой.

@gradientdip
🔥7👍3😁2
Forwarded from shonenkov AI
“Портрет киберпанк [попугая|кота-зомби|сиба ину|волка|льва] в очках"

“Морда собаки, пёс в стиле киберпанк, на голове военный шлем, на фоне город киберпанк"

“Портрет киберпанк зомби в очках альтернативной реальности"


а давайте уроним дискорд ботов прикольными генерациями киберпанка? 😄 (поставил slow mode на 2h)


https://discord.gg/xV7dNbT9NU

@shonenkovAI
👍7🔥3
📎 Master of Data Science

Вот так бывает, ловишь рыбу находишь клад. В моем случае рыба - hadoop, а клад - курс в котором он преподавался.

🔥 Просто чекните блокноты в репозитории, они шикарны: есть картинки и понятные объяснения, примеры, причем курс очень свежий (буквально пару недель назад вышел). И что немало важно, есть докеры: под мак, под линух и винду. Для меня это знак хорошего качества.

Из тем (самое главное): map reduce, spark, hadoop, dask, немного про форматы файлов и основы гита.

@gradientdip

Сайт
Репозиторий
👍15🔥7
🔥 HIVEMIND - децентрализованное обучение из коробки

— Давайте честно, не приходила ли к вам мысля как-нибудь объединить кагл/колаб/{свое железо} ноутбуки в одну целую машину, чтобы и модельки обучать и инфу передавать?

👉 Так вот, ребята вот уже год-два делают свою либу и при этом явно добились результата.

⚡️ Вместе с Яндексом, ВШЭ, HF они продемонстрировали результат на NeurIPS 2021— обучили языковую модель ALBERT и сейчас помогают другим командам.

Ну ладно, что это вообще за штука и как она работает?

Два основных сценария:

1️⃣ Глобальное обучение — здесь как раз и нужны колабы, но у них внутренний firewall, поэтому в цепи должна быть хотя бы одна машина с "публичным ipшником" (любой сервак за 5 копеек, можно без гпу).

2️⃣ Локальное, когда ваши машины подключены по проводам.

👀 Вся магия происходит в оптимизаторе. Интернет медленный, поэтому нужно обучать за малое количество шагов с большим батчем. В целом можно использовать стандартный SGD/Adam/etc, но есть и специализированные: LAMB или LARS.

Стратегии обучения:

1️⃣ Локальная оптимизация — каждый участник делает независимо несколько шагов обучения на своих данных, а потом они все усредняют веса и повторяют процедуру.

2️⃣ Глобальная оптимизация — участники не применяют свои локальные градиенты сразу, а откладывают их. Когда все вместе соберут заранее оговорённое число примеров, они обмениваются градиентами и обновляют веса по "глобальным" градиентам.

Даст ли это сильное ускорение? Не знаю, все индивидуально, но сама технология действительно интересная.

Очень благодарен разработчикам за детальную QA сессию/лекцию по устройству либы, в комментах будут более точные объяснения.

@gradientdip

Демонстрация
CALM - пример
Внутреннее устройство DHT
Hivemind (github)
DeDLOC: обучаем большие нейросети всем миром
👍17🤔3🔥2🤯21👎1
Типикал день датасаентиста
👍24😁7😢5
Сохранение файлов в кагле

Тут пару недель назад кагл обновил свой бэк и теперь, если ваша интерактивная сессия решила немного сломаться и перестать отображать файлы на панели, то вы не сможете скачать файлы 😢

Поэтому админы предлагают выход:

import wandb

!wandb login {key}
wandb.init(project="project", name="save-file-only")
wandb.save('./data/experiments/test/model-16-0.2066.ckpt')

Если вы знаете и другие варианты, то поделитесь в комментах

Старые подходы (не актуально)
👍7🤔1😢1
Торчвижен обновился (и уже давно)

👉 И это довольно важно, так как многие любят использовать модели из их хаба, а тут выкатили сразу кучу, так ещё и с более крутым качеством.

🔥Что нового:

1️⃣ Добавили веса IMAGENET1K_V2, улучшив метрику:

ResNet50:
acc@1 (on ImageNet-1K): 76.13 -> 80.858
acc@5 (on ImageNet-1K): 92.862 -> 95.434

MobileNet_V3_Large:
acc@1 (on ImageNet-1K): 74.042 -> 75.274
acc@5 (on ImageNet-1K): 91.34 -> 92.566

В основном резнет-образные получили сильный буст, остальные не очень много.

2️⃣ Обновили список квантизированных моделей (удивился что такой есть, полезно смотреть доки)

3️⃣ Добавили инференс трансформации по умолчанию (подробнее в следующем посте)

@gradientdip

Попробовать можно уже сейчас, но только в main ветке (сейчас ветка v12 - stable)
👍162
Forwarded from AI для Всех
Большинство библиотек машинного обучения не были разработаны для работы с геопространственными данными. #TorchGeo, библиотека домена PyTorch, призвана изменить эту ситуацию, отслеживая некоторые из величайших мировых проблем, таких как стихийные бедствия и изменение климата.

🌎 Подробнее
👍19🔥1
Forwarded from Время Валеры
Каждый раз, когда меня просят построить антифрод систему - мой бейзлайн это ошибка реконструкции автоэнкодера. Быстро, не нужны лейблы, достаточно иметь некоторое количество “хороших” транзакций и работает из коробки довольно неплохо.

Сегодня прочитал статью Credit Card Fraud Detection Using Sparse Autoencoder and Generative Adversarial Network

В который раз позавидовал способности людей расписывать что-то длинной в абзац на 10 страниц

Идея следующая

1. Берем хорошие транзакции, учим на них sparse autoencoder
2. Репрезентация (code после encoder) полученная от sparse autoencoder становится новыми фичами
3. Учим GAN, где реальные образцы - это репрезентация существующих хороших транзакций с пункта 2, а фейковые, понятное дело, шум
4. Снимаем с GAN дискриминатор и используем его теперь чтобы принять решение о транзакции (прогнанной сначала через sparse autoencoder) - фрод или нет

С чем бы я поэкспериментировал

1. Попробовать обычный AN и denoising AN
2. Попробовать добавлять небольшой шум на AN representation перед входом в GAN
3. Попробовать подмешать небольшой процент фрода в фейковые сэмплы

Идею - дарю
#ArticleReview
👍23
ресёрч би лайк:
1. не смог реализовать архитектуру из статьи
2. немного изменил её
3. всё заработало
4. пишешь пейпер про свою новую архитектуру
👍53😁9🤩5