commit history – Telegram
commit history
3.41K subscribers
25 photos
7 videos
2 files
51 links
история моих коммитов про машинное обучение, карьеру и набитые шишки

@ibragim_bad
Download Telegram
Channel created
Channel photo updated
Создал еще один канал помимо @ibragim_txt
Сюда буду скидывать всякие ссылки с комментами и заметки. Тематика: ML/NLP/#career
Три года назад я устроил "сам себе буктемп" по вкатыванию в machine learning. На тот момент, я умел только немного писать код на С. Тогда я обложил себя всеми бесплатными курсами и ресурсами до которых дотянулся.

Потом нашел стажировку, которая стала работой. Проработав год, я откалибровал те курсы, которые оказались наиболее полезными и собрал репозиторий fast-internship-curriculum
🔥3
Включил комменты, заодно закину ссылку на пост про >500$/month side projects

из топ комментов там:
1. шаблоны для саас на джанго приносят >5k$. там у него даже ссылка есть сколько он времени потратил
2. чувак завернул аналитику по акциям в красивый ui и типа как платные сигналы приносит 120k$/month прибыли говорит. Естественно не на сигналах, а на продаже подписок 🌚
3. Кофейная ферма в Колумбии. 800$/month.

Вообще, мне лень заходить на hackernews, поэтому я либо иногда смотрю топ за месяц, либо листаю канал куда парсятся топ комменты
@hn_best_comments
👍3
Если бы мне нужно было сделать презентацию или отчет по модели. Либо выложить инфу про нее на сайт, чтобы продавать апишку, я бы за основу взял формат карточек гугла.

https://modelcards.withgoogle.com/face-detection#overview

На что обратить внимание:

1. Метрики посчитали не только overall, но и sliced (на подвыборках по полу, расе, возрасту). Когда ты большая корпорация с fairness моделей шутки плохи.
2. Четко описали Limitations и на чем будут косяки
3. Можно загрузить фотку и оценить.

Вообще для доверия и чтобы заказчик фичи оценил модель, оч хорошая практика дать ему модель пощупать после презентации. Я обычно модели заворачиваю либо в бота в телеге, либо в streamlit.
Иллюстрированные конспекты на Стэнфордские cs221 - AI, cs229 - ML, cs230 - DL


Удобный формат, чтобы освежить знания базовых концептов перед собеседованиями. Для изучения с нуля — не подойдут. Еще там есть переключатель на конспекты про python и sql.

https://stanford.edu/~shervine/teaching/cs-230/
Вброшу ссылок про литкод, мб кому пригодится.

В некоторых компаниях есть этап собеседования с алгоритмическими задачами. На собеседованиях ничего сложнее провалидировать скобки не попадалось, но если в стартапе есть ex-FAANG(MANGA) сотрудник, то могут дать что-то и на динамическое программирование. Ну и в компаниях упомянутых это тоже обязательный пункт. Олимпиадным программированием я не занимался, образование у меня не CS, поэтому все необходимые знания берем из интернета.

На литкоде есть раздел обучения, основные темы разобраны норм + есть практика в виде задачек. Для некоторых задач есть формальные доказательства решений и скорости (У меня правда на собесе такое только 1 раз спрашивали).
https://leetcode.com/explore/learn/

Есть переводы статей одного китайца. Оформлена в виде глав. Некоторые темы разобраны лучше, чем на литкоде, например, логика разделения на паттерны бинарного поиска.
https://labuladong.gitbook.io/algo-en/iii.-algorithmic-thinking/detailedbinarysearch

Список задач, покрывающий основные темы. Удобная сортировка по темам, сложности и компаниям + можно отмечать прогресс:
https://seanprashad.com/leetcode-patterns/

Данный список включает в себя задачи из списка blind-75
https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU
+ с курса на educative.
https://www.educative.io/courses/grokking-the-coding-interview

Решения задач, если где-то застряли можно посмотреть вот тут: https://www.youtube.com/watch?v=KLlXCFG5TnA&list=PLot-Xpze53ldVwtstag2TL4HQhAnC8ATf
Объяснения оч четкие и приятный английский. Изложение более интуитивно понятное, чем решения на литкоде и можно посмотреть за ходом мыслей.

Если кто хочет более фундаментальной подход, вот курс Седжвика https://www.coursera.org/learn/algorithms-part1#syllabus (но задания на джаве там)
👍20🔥81
Сейчас будет небольшой пост про статью, которую прочитал. Но перед этим немного терминологии. Я почти три года работаю с ML в диалоговом домене, это все про чит-чат модели или болталки. Поэтому будет много постов именно про этот домен NLP. Болталки - модели, которые могут поддержать беседу, независимо от темы. Базово тут работают два подхода:

+ Retrieval - основанный на поиске. Для фразы пользователя при текущем контексте вы выбираете подходящий ответ из своей базы в 100k ответов например.
+ Generative - модель генерирует ответ слово за словом (токен за токеном), как бы дописывая ответ на фразу пользователя. Что-то типа автодополнения на телефоне.

Еще есть просто rule-based древовидные сценарии, но их мы касаться особо не будем.
В конце прошлого года вышла обзорная статья про Этические и социальные риски больших языковых моделей.

https://arxiv.org/pdf/2112.04359.pdf

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

Приведу список рисков ЯМ именно в диалоговом домене. Риски больше для генеративных языковых моделей, retrieval подходы более безопасные, но все равно не лишены рисков (discrimination, например):

1. Discrimination — когда в ЯМ воспроизводит стереотипы из данных. Например, “два чеченца зашли в метро” и … или “Молодая девушка заработала кучу денег, тем что снимала …”. Если модель предлагает неэтичное продолжение - принцип fairness не соблюден.
2. Toxicity — при правильном подходе можно спровоцировать генерировать ЯМ мат и оскорбления.
3. Information Hazards - если модель обучалась на приватных данных, можно попробовать их вытащить. Пример, “личная электронная почта Илона Маска: ….”
4. Misinformation Harms — генеративные модели любят выдумывать ответы на вопросы, даже если не знают. В целом, это забавно, но человек может поверить ложной информации.
5. Human-Computer Interaction Harms — Тут чисто про Conversational Agents. Антропоморфизация ассистентов может привести к небезопасному использованию. Пару лет назад, с нами в хостеле жил мужик, который подкатывал к голосовому помощнику, потому что там был женский голос. Не знаю чем закончилась это история, но подобные штуки могут переносится потом и на общение с обычными людьми.

Как будет время и настроение, напишу что можно сделать с этими рисками. Или не делать: мы как-то обучили болталку общаться исключительно матом и оскорблениями, получился самый эмпатичный и эмоциональный собеседник!
👍3🥰1
Отдельный респект за reader's guide. Люблю когда авторы сразу четко пишут, что читать если нет времени или нужного бэкграунда.
Forwarded from ibragim.txt
Как у меня дела.

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

Как определенный итог своей работы: рассказал о том, чем мы занимались. В начале февраля сходил на подкаст к яндексу поболтать про болталки, а потом мы выступили с Сашей на перенесенном Хайлоаде.

В девайсы я уже не вернулся, в феврале-марте поготовился к собеседованиям, начал собеседования в апреле, а с мая вышел в новое место.

Получил пару офферов (некоторые дошли уже во время работы): большая компания в Европе, стартап в Англии, Яндекс. Начал процессы в Meta, Google, Amazon (тут большое спасибо рефералам), но параллельно с новой работой устал собеседоваться и остановил все. В итоге сошелся с ребятами с которыми был самый короткий собес (пообщались с СТО и партнером из фонда): сильная тех команда, четкий фонд за спиной, возможность с нуля выстроить весь ML и full-remote. Подумал, что в большие компании можно будет попробоваться в любой момент, а сейчас время для рок-н-ролла. Как сделаем x10 по метрикам - напишу подробнее, что делаем.

Сюда буду писать как и раньше, не очень регулярно, какие-то свои черновики статей, рефлексию по книгам, курсам и свой опыт. А в @c0mmit как строим ML системы и другие рабочие моменты.

P.S. Сейчас сижу с ребятами на Бали, поэтому будете тут — пишите, сходим на завтрак!
В текущий момент я занимаюсь рекомендациями. Лента, рекомендации авторов, ранжирование. Начали с эвристик: свежее, популярное по регионам, бизнес логика для авторов. Потом пошли в ход коллаборативная фильтрация, item2vec, бустинг.

Про что думаю написать. 
+ Рекомендации: feed, реклама, рекомендации авторов.
+ Скомбинировать с ML бизнес-логику: размазать трафик по авторам, популярное, подписки, бусты итп
+ Попутные задачи: автомодерация контента, авто тэгирование, анализ на ботов и спамеров.
+ Аналитика: стандартные продуктовые метрики в кликхаусе, RFM, АБ-тесты

Но в начале напишу о собесах и выложу материалы по подготовке.
👍15🔥1
Подборка видов этапов собеседований, которые попадались и как к ним готовился:

+ Алгоритмическая секция. Решал карточки с литкода и делал мок-интервью. Тут писал подробнее.
+ Machine Learning System Design (как будешь ML задачу решать со старта до прода). CS 329S, буклеты, видео от fb + мок-интервью. Собрал попутно такой гитхаб. 
+ Вопросы по ML теории. Стандартные: метрики, разобрать модель, написать пару формул. Учебник по ML от шада почитал и освежил в памяти что-то погуглив конкретные темы.
+ Дают код, надо найти и исправить ошибки. Из того, что поинтереснее: дали код обучения языковой модели с расписанными трансформер блоком и аттеншеном. Специально не готовился, но можно полистать реализации from scratch. Помню, что видел классные ссылки, мб кто-то скинет или сам опубликую как вспомню.
+ Вопросы по темам: питон, ML, CS, NLP. 
+ Рассказываешь о своем опыт и с тобой погружаются вглубь и в особенности реализаций. Данные как размечали, как модели проверяли, как выкатывали. Тут просто более развернуто рассказал про пункты из CV.
+ Behavioural - стандартные вопросы, заранее заготовил ответы по STAR на распространенные вопросы.
+ Задачи на логику и по математике (теор вер, статистика). Не готовился к такому. 
+ Просто за жизнь и опыт пообщаться, сходить в бар.

Примеры вопросов из этапа с общением.
+ Какая последняя статья понравилась? О чем? Почему понравилась?
+ Что будешь делать в первый рабочий день?
+ Какой факап был самый жесткий?
👍11
Этап собеседования Machine Learning System Design.

Этот этап попадался в 9 из 10 компаний. Задача - полностью спроектировать  ML решение. От определения задачи и метрик, заканчивая деплоем и оптимизацией.
Здесь важный момент. Время собеседования ограничено. Поэтому с одной стороны важно не растекаться по дереву, с другой стороны важно покрыть все этапы решения ML задачи, а в некоторые даже погрузиться вглубь, чтобы показать что шарите.

В этом помогает четкая структура ответа:
1. Problem definition and requirement clarification. Определение задачи и оценка требований.
2. Data. Источники данных, какая разметка, как выглядит сэмпл.
3. Evaluation. Какие метрики, сравнение с бейзлайном.
4. Features and model. Препроцессинг, варианты моделей.
5. Online eval, deploy. Выкатка + АБ.
6. Further actions. Как дебажить/обновлять/улучшать/ускорять/итд модель.

Каждый из этапов более подробно разобран в репе ML design primer.

Порядок подготовки.
+ Посмотреть видео fb, яндекса, полистать гитхаб ml design primer.
+ Сделать себе пробный собес попробовать задизайнить систему из списка.
+ Почитать пару разборов из технических блогов компаний или инженеров. Например, тут или тут
+ Делать моки (mock-interview). Это когда вы созваниваетесь и устраиваете друг-другу пробный собес. Моки можно искать в этом чате.
+ Получаете фидбек с мока и идете качать слабые места, читаете еще статьи или главы из 329s.
👍10