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

Контакты: @Cene655, @Cucu_LaPraline
Download Telegram
🟡Полезное

«Память и Python. Что надо знать для счастья?» - коротко и ясно рассказывают про утечки, аллоцирование, профилирование, устройство объектов, сборщик мусора и расчет потребляемой памяти объектами.

«Поиск и оптимизация узких мест в Python» - о том почему отладчик не всегда друг, рефакторинг, htop, objgraph, cProfile, line profiler и другие.

Нам следует забывать о небольшой эффективности, например, в 97% случаев: преждевременная оптимизация - корень всех зол. Хотя мы не должны отказываться от своих возможностей в этих критических 3%. - Дональд Кнут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥3🤡2👎1
Forwarded from Code Mining
Copilot & адекватность датасетов обучения

И снова про Copilot, про легальность использования open source без разбора для тренировки моделей и к чему это всё может привести.

16 октября, Тим Дэвис, профессор компьютерных наук из Техасского университета Эй-энд-эм, обратил внимание на то, что Copilot полностью воспроизвел его же исходный код который выполняет функцию транспонирования разреженной матрицы (скрин), при том, что сам код находится в библиотеке под лицензией LGPL. Заключение автора на скрине - "Not OK."

С точки зрения авторства, то здесь это всё можно обозвать цитированием и результатом той самой свободы изучения открытых кодов программ, которая дается самой слабокопилефтной лицензией.

Но негодование автора понять можно и с ним согласились многие авторы на Hacker News, но не все. Разработчики выражают скептицизм, и говорят, что "интеллектуальная собственность при бурном технологическом развитии не должна стоять на певом месте". Кхм. Комментаторы не забыли Stable Diffusion и другие новинки последних лет. Ну что, будем посмотреть.

А тем временем, уже появились активисты, которые призывают к расследованию особенностей процесса обучения Copilot на открытых исходниках, вот полюбуемся: https://githubcopilotinvestigation.com/. Авторы, в том числе, ссылаются на кейс Тима Дэвиса и призывают узнать всю правду и недопустить разрушения open source сообщества как сообщества. И в этом действительно что-то есть.

Free Software Foundation пока молчит.

@codemining
👍18🤡7
🔥16😁51
Tender Hack: Нижний Новгород

😎 За 3 дня заняли 1️⃣ место

👉 Проходил в оффлайн формате, кормили вкусно, в самом начале вручили мерч. Отмечу, что этот хак был не про то как "сделать презентацию и выиграть", а про то как сделать действительно рабочее решение. Только топ 5 команд по тех части проходили на финальную защиту.

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

Наш аналог озон'а для поставщиков умеет:
1) Семантический поиск
2) Частичная мультиязычность (ru-en)
3) Лексический поиск (лемматизация)
4) Поиск с учетом характеристик
5) Поиск сопутствующих товаров
6) Автодополнение
7) Автокоррекция
8) Транслитерация
9) Анализ рынка

Как решали?
Взяли LABSE (дистиллированную на ru-en) из-за того, что она лучше чем rubert-tiny v1/2 работает с токенами на английском, а это зачастую названия продуктов. В ходе тестирования заметили, что модель все ещё помнит что tea-чай, laptop-ноутбук, т.е. получили адаптацию под английский без тренировки под него.

К выдачи нейронки добавляли BM25, поиск который применяют в системах Lucene, Sphinx, помогло исправлять краевые случаи когда модель плохо работала.

Выдачу алгоритмов ранжировали, для этого применяли:
1) Схожесть строк jaro-winkler
2) Максимальная последовательная схожесть КПГЗ кодов.
3) Количество общих характеристик

Для сопутствующих товаров учитывали, что при применении нейронок у нас получится ситуация, когда для "ноутбук asus" в рекомендации попадет "ноутбук hp", а это не то что нам надо.

Починили тем, что выводили все результаты != кпгз товара, для которого искались сопутки. Вдобавок к этому у нас была история закупок на портале поставщиков, смогли вытащить информацию что, с чем покупают. Это значительно улучшило качество выдачи.

Презентация
Репозиторий
🔥29👍633👎1
System Design

Как инструмент повышения квалификации.

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

Курс состоит из 4-х основных тем: сбор требований, модульный дизайн, повышение отзывчивости, хранение данных. В каждой присутствуют лекции, временами вставки из практики Бабушкина и конспекты с заданиями.

Авторы рекомендуют курс для middle, senior, team lead. Сложность в течение курса растет, с каждым уроком прибавляются термины вплоть до дизайна полноценного сервиса. Схемы, таблички, всё по фэншую.

Могу выделить:
1) Ёмкие конспекты, удобно когда нет времени.
2) Разделение знаний для интервью и практики.
3) Два типа заданий: тестовые и с развернутым ответом.
4) Поэтапный разбор популярных сервисов: такси, мессенджеров, облачных хранилищ.

Для себя я открыл новые алгоритмы по типу quadtree, geohash, wildcard matching (неточный поиск). Узнал про CAP и PACELC теоремы распределенных систем и главное, наконец-то понял зачем (в каких случаях) использовать ту или иную БД.

Если вы хотите расширить свои знания в области высоконагруженных систем и структурировать существующие, то стоит обратить внимание на этот курс: новый поток стартует 7 ноября.
👍18👎10
Kaggle Accelerator

Ещё неделю назад заметил новую фичу на Kaggle, помимо конфигураций P100 (16 гб), TPU v3-8, теперь доступны T4×2 (15 + 15 гб видеопамяти).

P100 они не заменят и будут уступать, но позволят:

1) При должном желании (сложно) запускать 2 эксперимента вместо одного, при этом недельная квота GPU (30-40 часов) общая для T4×2 и P100, а это дополнительные гпу часы.

2) Ускорить инференс/обучение (в некоторых случаях).

3) Тюнить параметры параллельно.

4) Запускать большие модели (до 30 гб).
Кажется что это самый большой плюс.
Да, все ещё неудобно, но лучше чем zero-offload.

Training using 2 T4 with Pytorch DataParallel
Single-Machine Model Parallel Best Practices
👍23
Forwarded from Awesome DL
Title: Probabilistic embeddings

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

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

Отдельно хочется выделить эффективность probabilistic embeddings при построений представлений, учитывающих различные модальности. В этом случае одной картинке может сопоставляться несколько текстовых описаний и наоборот. "Трамвай на улице" может иметь несколько различных картиночных представлений.

Links: https://arxiv.org/pdf/2202.06768.pdf | https://arxiv.org/pdf/2101.05068.pdf
Video: https://www.youtube.com/watch?v=J_DaqSLEcVk
Code: https://github.com/naver-ai/pcme
👍314
Интерпретируемость моделей

Некоторая абстрактная оценка с которой человек может быть уверен в предсказаниях модели. Она позволяет выявить взаимосвязи в реальных данных и описать больше чем стандартные метрики.

Необходимость интерпретируемости возникает из-за неполноты формализации проблемы, потому что предсказание лишь частично решает исходную проблему.

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

@gradientdip
👍10
Интересно, что интерпретируемость можно разделить на внутреннею и внешнюю. Внутренняя - веса модели, сводная статистика за цикл обучения. Внешняя - анализ объектов на входе и выходе после обучения.

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

Единичные предсказания иногда способны объяснять прогноз лучше, чем обобщенные, т.к. в них содержится информация о локальной группе.

Но как же нам оценивать саму интерпретацию? Можно выдать группе и оценить изменения (профессионалы или непрофессионалы), либо оценивать на уровне функционала задачи без участия человека (корреляция между численным значением интерпретируемости и других важных параметров).

Интерпретация обладает свойствами:
выразительность, прозрачность (черный ящик), переносимость (специфика метода), вычислительная сложность.

Характеристика хороших предсказаний: контрастность (каким было бы предсказание, если бы входные данные были другими), короткость (никто не ожидает полный список объяснений, достаточно 1-3 причин), социальный характер (группа людей для которых делается предсказание), аномальные или вероятные объяснения.

@gradientdip

Более подробные разборы конкретных кейсов, алгоритмов и статей по теме можно найти в книге (советую к прочтению):

Molnar, C. (2022). Interpretable Machine Learning
👍233🔥1
🔥 Первая модель для генерации картинок для 100+ языков

Представляю вам модель Кандинский 2.0, над которой мы в Сбере много работали. Весь код и веса модели в опенсурсе!

Принцип её работы - латентная диффузия. Мы взяли мультиязычный CLIP и mt5-small, сделав из них ансамбль.

Вы можете проверить её прямо в браузере без какой-либо регистрации! На ваш выбор: генерация картинок или inpainting.

@gradientdip

статья на хабр
гитхаб
🔥34👍10🎉3😐3🤨2❤‍🔥1🤩1💯1🏆1
Forwarded from Complete AI
Всем привет!

Мой первый пост в канале начинается в самый разгар конференции AIJ🎉

Сегодня 24.11.2022 года - второй день конференции AI Journey, к которой наши команды готовились весь год. У меня будет доклад в секции «Science&Business» в 16.00 (мск).

Расскажу про «Технологии компьютерного зрения в задачах высококачественного синтеза мультимедийного контента». Будут детали про две наших ключевых модели генерации изображений за 2022 год: Kandinsky и Kandinsky 2.0 (кстати, официальный пресс-релиз состоялся вчера - пресс-релиз, Хабр, GitHub, платформа fusionbrain).

Залетайте на прямую трансляцию на сайте AIJ - будет очень интересно!👨‍💻

Буду рад ответить на вопросы по докладу!🎉

P.S. Кстати, на платформе fusionbrain можно поиграть с новым Кандинским в режимах генерации и inpainting/outpainting.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥2🤡2😁1
Kandinsky2.0

Теперь можно попробовать в HF Spaces.
Один запрос - 4 фотки. Бегом пробовать -> тык

@gradientdip
🔥21🌚5🤡2👍1🐳1
10 месяцев

Именно столько мы шли к цифре в 2к подписчиков. Чудесный день, не иначе. Спасибо всем тем кто помогал нам репостами.

Пройдя рубеж в 1к, мы обещали "радовать постами", что же, самое время собрать обратную связь.

Расскажите, что нравится или не нравится в нашем контенте, что стояло бы улучшить.

Вы также можете задавать свои вопросы к нам в комментариях, мы постараемся ответить.
🔥38🎉14👍74🐳1
Forwarded from Я у мамы аналитик (Stas Valuev)
Нашел прикольную штуку для создания дата-пайплайнов прямо из интерфейса JupyterLab - Elyra.

Причем интересно, что собирать их можно не только из готового кода, но еще и из самих ноутбуков, а также каких-то базовых действий над элементами (скачать, сгруппировать, разделить, соединить файлы и тому подобное).
А еще можно пробросить выполнение пайплайна в оркестраторы вроде Airflow или даже (прости, господи) Kubeflow.

Кажется перспективной штукой, буду подробнее изучать.

В статье ниже можно посмотреть как это выглядит в интерфейсе.

🔗Ссылка

#инструменты
👍33🤡10🔥1😁1