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

Контакты: @Cene655, @Cucu_LaPraline
Download Telegram
Forwarded from Борис опять
Немного негодования про ключевые слова.

Я очень любил собирать навыки когда начинал. Каждый как засечка. Выкатил контейнеры в прод и все, круто, теперь я владею Docker. Прям чувствуешь как зарплата растет с 299кк/сек до 300кк/сек.

Теперь это ощущается как цирк. "Какими навыками вы владеете?",- спрашивает форма отклика. Я впадаю в ступор. Представьте себе: столяр заполняет форму отклика. "Опыт работы с молотком пять лет, с пилой четыре года, со стамеской пять лет..." Чушь какая-то. Но в IT почему-то так принято: владею Python, SQL, HTML. Что мне писать? Я могу и фронт на JS сделать, и плагины для NGINX на LUA, могу даже C вспомнить, могу на контекстно-независимых грамматиках парсер SQL замутить. Если все базворды перечислять за сотню перевалит. Я инженер, блин, я не "владею технологиями", я решаю проблемы. Разберусь в COBOL, если надо будет. Буквально часть моей работы в том, чтобы выбирать подходящий инструмент для решения задачи и часто он будет не из тех, с которыми я работал раньше. Зачем оценивать инженера по инструментам? И с позициями так же: разве бывает "Python программист"? Звучит как как "молотком работник". Работа бить молотком, а гвозди это задача другой команды.

Но это так, ворчание, а по факту лучше ничего не придумали, надо с этим жить. Приходится так: с точки зрения резюме я владею теми навыками, которые нужны в интересных вакансиях, а всеми остальными не владею.
🔥47👍95❤‍🔥3👎3
Forwarded from AI для Всех
Pre-Train Your Loss

Глубокое обучение все больше пользуется парадигмой transfer learning, при которой большие базовые (или как у нас их тут в Стенфорде называют - фундаментальные) модели дообучаются на последующих задачах.

Впечатляющий коллектив авторов, под руководством Вилсона (со-автор таких проектов как loss landscape и SWA) и ЛеКуна, показывает, что можно изучить высокоинформативный posterior исходной задачи с помощью supervised или self-supervised learning, которые затем служат основой для priors, изменяющих всю поверхность потерь в последующей задаче.

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

📖 статья 🤖 код
👍23🔥4
Из жизни

Решил начать изучать что-то новое, выбор пал на uplift моделирование, покопался на платформе ODS, перешёл на курс, посмотрел 2-3 урока, понял что темп медленный - дропнул.

На следующий день решил поискать инфу в гугле, вспомнил про scikit-uplift, нашел доку, почитал описание, перешёл к туториалам.

Начал с азов, читал, вникал и думал.

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

*uplift - персонализация, на кого потратить деньги, чтобы получить ещё больше денег.

scikit-uplift
👍17🔥5
Stability CLIP, новые возможности

Все ещё помните модели, что текст и картинку сравнивают?

Их теперь обучили на 2х миллиардах изображений LAION-2B, в отличие от прошлых 400от миллионов Open AI.

Встречайте, ViT-g/14 224x224 (5.5гб) и ViT-H/14 224x224 (4гб)

github
paper
colab
benchmark
csv табличка с результатами на датасетах
🔥22👍5
Forwarded from Reliable ML
ML System Design ODS Course

Уже сегодня - 19 сентября - открывается курс по ML System Design для начинающих. Автор курса - Дмитрий Колодезев, директор Promsoft.

Первая лекция уже доступна на странице курса! Группа для участников в тг тут.

Что входит в курс:

- ML-системы в реальной жизни с точки зрения софта, железа и бизнеса.
- Итеративный процесс построения ML-систем

Что не рассматривается:

- Алгоритмы машинного обучения
- Дата-инженерия
- Дизайн пользовательского интерфейса
- Как работать с докером и k8s

Курс состоит из видео, статей, докладов студентов, работы над проектом.
🔥13👍4
Forwarded from Data Science изнутри (cene655)
#о_себе

Меня зовут Арсений. Везде в интернете у меня ник cene655. Мне 17 лет, я из Челябинска, учусь в 11 классе в Челябинске. Работаю в Сбере. Начинал с nlp 2 года назад. Потом получилось выиграть в олимпиаде по ии для школьников ии нто. Затем начал интересоваться генеративными моделями и сейчас ими в основном и занимаюсь.
👍40🔥7🤡5
Про случайные встречи и локальные комьюнити

Я уже давненько подметил, что зачастую вижу знакомых людей на мероприятиях. Кого-то знаю лично, кого-то по чатам, кого-то детектирую по общим группам.

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

В контексте таких локальных групп, я решил попробовать формат random coffee, как раз админ соседнего сообщества @natural_language_processing сделал бота @neludim_bot для этого.

Использовал я его 2 недели, каждую неделю случайно (точно не скажу) предлагался один собеседник.

Что же могу сказать? Мне однозначно понравилось. Пообщаться с людьми из своей сферы, но с совершенно разным бэкграундом и историей развития - опыт который до этого я мог получить только на событиях по интересам, в частности офлайновым. (работа, учеба - немного другое)

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

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

Я приобрел тот опыт который не получить на лекции или митапе, это концентрация тех знаний, что люди собирали на протяжении многих лет. (ух как загнул)

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

Попробуйте, приятно проведите время и откройте для себя что-то новое, может и на меня попадете.
👍17🥱2
Zakupki.Hack 2.0

😎 За 2 дня заняли 1️⃣ место из 18 команд.

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

Вкратце задачу можно описать как: сделать озон на коленке, но на специфическом датасете с поиском как товаров, так и услуг.

Мы потратили около 6 часов на metric learning, который нормально не запустился и ещё некоторое время на обычные подходы. В итоге к ночи было 2 модели и куча кода которую нужно ещё внедрить в приложение на streamlit.

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

Итог - успели сделать рабочий прототип, поспав за два дня не более 2-х часов, но зная результат - оно того стояло. Нам нравится свое решение, но оно не идеально и организаторы дали фидбек по этому поводу, за что спасибо.
🔥44👍6
AI Journey 2022

👉 Сегодня запустился AIJ - ежегодное соревнование по искусственному интеллекту проводимое Сбером.

🔥 На выбор есть несколько интересных задач:

1️⃣ FusionBrain - в рамках данной задачи предлагается построить единую multitask-модель, которая бы успешно решала подзадачи в двух модальностях (визуальной и текстовой). Есть скрытые задачи, которые помогут оценить модель более комплексно.

2️⃣ AI4Talk - требуется разработать алгоритм, выдающий текстовую запись соответствующую речи.

3️⃣ AI4Biology - соревнование алгоритмов классификации бактерий до штамма и определения новых штаммов на основе данных масс-спектрометрии.

4️⃣ AI4Sea - соревнование алгоритмов, позволяющих восстановить реальные объемы вылова рыбы с целью оптимизации рисков избыточной эксплуатации водно-биологических ресурсов России.

FusionBrain baseline
🔥173👍1👎1
🟡Полезное

«Память и 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