Forwarded from MISTER SOSISTER ~ CHINESE TIME OF MY LIFE
Как устроен AI в нашем “AI-стартапе”, или что нового я понял перейдя из рисерча в топ-лабах о решении реальных проблем. Рассказываю инженерам.
Это майндсет бизнес-овнера, чем раньше вы его усвоите, тем быстрее вы вылезете из своей песочницы с формулами и начнете делать импакт, а с ним и расти в лид-позиции.
1. Всем поебать что вы там используете, на сколько большие у вас сетки, на сколько инновационный подход, доказана ли у вас полнота пространства, и какой сплит кросс валидации. По большому счету все, за что у вас в академии откусят жёпу, юзеру не интересно, и не влияет на ваш бизнес. Влияет только одно: работает или нет. “Это реально сделать?”, “Много менять придется?”, “Петрович, готов уже МЛ или остужать контейнеры?” – это вопросы которые определяют развитие продукта и ценность МЛ для него. Следовательно.
2. Работать сделать проще всего то, что ты понимаешь и можешь запустить малой кровью. Поэтому самые полезные в реальном применение вещи это эвристики или коробочные решения с простым интерфейсом. Если что-то нужно дописывать, настраивать, подстраивать, контролировать – для этого нужна отдельная команда, и в стартапе на это времени нет. Pro tip: очень хорошо работают комбинации сложных черных ящиков (например трансформеров), которые дают примитивы (например векторы фичей), и простая логика для обработки этих примитивов поверх.
3. Дебажить проще всего то, что ты понимаешь. Никому не нужны сюрпризы в проде. Даже если модель фейлит в 2% случаев, но фейлит конкретно – ее уже нельзя использовать. Поэтому, или такие случаи нужно очень хорошо знать, и подкреплять их эвристикой, или использовать эвристику и простые правила с самого начала.
4. Реальный мир непредсказуем, никаких контролируемых условий нет, все должно быть универсально и пуленепробиваемо. То-есть, никаких 5 гиперпараметров, которые нужно подкручивать для разных knowledge domains, и никакие приближения, типо ограничимся товарами с заказами или магазинами одежды, не проканают. Я вам скажу больше, мы очень старались над тем, чтобы полностью уйти от абсолютных значений, и перевести все в относительную форму. Практически все можно нормализовать, отсортировать и отсечь через статистику (топ-5, нижний квартиль, и тд). Константы вызывают рак.
5. Вы должны хорошо понимать проблему которую юзер решает, и быть способным описать идеальное решение из первых принципов. Жирным, потому что самое важное. Не 1., потому что проебался. Но. Вы не должны оперировать “какими-то” коэффициентами. Вы упростите себе жизнь когда станете понимать, что каждый коэффициент значит, и выбросите все то, что не понимаете. Меньше иногда больше. Таким образом вы сами сможете приходить к известным решениям, но уже с пониманием как они работают, и как они относятся к другим вариантам решения. И я не говорю знать все формулы или доказывать теоремы, я говорю понимать, что вы делаете, и главное почему так, а не иначе. Мы так сами вывели много формул, без сложной теории, а чисто из логики и базовой статистики, и смогли улучшить для нашего конкретного случая то, что другие берут не думая. Например, мы понимаем общий принцип для которого коллаборативная фильтрация является частным случаем, знаем как там информация движется, и можем ее улучшить. Из знания матричной факторизации, что является просто имплементацией, к этому не прийти, вы сможете улучшить только имплементацию. Это как понимать реализацию формулы в коде против понимания того как формула работает. Проверки понимания – вы должны мочь объяснить принцип работы пошагово на пальцах, можно с абстракциями, но без формул.
6. У всего есть цена. Рисерчить новый алгоритм ради рисерча не получится. R&D стоит денег и времени, и в стартапе еще неизвестно что из этого дороже. Как правило, последние 10% результата будут занимать 90% времени, поэтому однозначно надо ориентироваться на первые 10% усилий, и на соотношение impact/effort, а не на accuracy или AUC. (Это как elbow метод, нужно найти момент когда прирост падает я и ваши усилия выходят на асимптоту).
Это майндсет бизнес-овнера, чем раньше вы его усвоите, тем быстрее вы вылезете из своей песочницы с формулами и начнете делать импакт, а с ним и расти в лид-позиции.
1. Всем поебать что вы там используете, на сколько большие у вас сетки, на сколько инновационный подход, доказана ли у вас полнота пространства, и какой сплит кросс валидации. По большому счету все, за что у вас в академии откусят жёпу, юзеру не интересно, и не влияет на ваш бизнес. Влияет только одно: работает или нет. “Это реально сделать?”, “Много менять придется?”, “Петрович, готов уже МЛ или остужать контейнеры?” – это вопросы которые определяют развитие продукта и ценность МЛ для него. Следовательно.
2. Работать сделать проще всего то, что ты понимаешь и можешь запустить малой кровью. Поэтому самые полезные в реальном применение вещи это эвристики или коробочные решения с простым интерфейсом. Если что-то нужно дописывать, настраивать, подстраивать, контролировать – для этого нужна отдельная команда, и в стартапе на это времени нет. Pro tip: очень хорошо работают комбинации сложных черных ящиков (например трансформеров), которые дают примитивы (например векторы фичей), и простая логика для обработки этих примитивов поверх.
3. Дебажить проще всего то, что ты понимаешь. Никому не нужны сюрпризы в проде. Даже если модель фейлит в 2% случаев, но фейлит конкретно – ее уже нельзя использовать. Поэтому, или такие случаи нужно очень хорошо знать, и подкреплять их эвристикой, или использовать эвристику и простые правила с самого начала.
4. Реальный мир непредсказуем, никаких контролируемых условий нет, все должно быть универсально и пуленепробиваемо. То-есть, никаких 5 гиперпараметров, которые нужно подкручивать для разных knowledge domains, и никакие приближения, типо ограничимся товарами с заказами или магазинами одежды, не проканают. Я вам скажу больше, мы очень старались над тем, чтобы полностью уйти от абсолютных значений, и перевести все в относительную форму. Практически все можно нормализовать, отсортировать и отсечь через статистику (топ-5, нижний квартиль, и тд). Константы вызывают рак.
5. Вы должны хорошо понимать проблему которую юзер решает, и быть способным описать идеальное решение из первых принципов. Жирным, потому что самое важное. Не 1., потому что проебался. Но. Вы не должны оперировать “какими-то” коэффициентами. Вы упростите себе жизнь когда станете понимать, что каждый коэффициент значит, и выбросите все то, что не понимаете. Меньше иногда больше. Таким образом вы сами сможете приходить к известным решениям, но уже с пониманием как они работают, и как они относятся к другим вариантам решения. И я не говорю знать все формулы или доказывать теоремы, я говорю понимать, что вы делаете, и главное почему так, а не иначе. Мы так сами вывели много формул, без сложной теории, а чисто из логики и базовой статистики, и смогли улучшить для нашего конкретного случая то, что другие берут не думая. Например, мы понимаем общий принцип для которого коллаборативная фильтрация является частным случаем, знаем как там информация движется, и можем ее улучшить. Из знания матричной факторизации, что является просто имплементацией, к этому не прийти, вы сможете улучшить только имплементацию. Это как понимать реализацию формулы в коде против понимания того как формула работает. Проверки понимания – вы должны мочь объяснить принцип работы пошагово на пальцах, можно с абстракциями, но без формул.
6. У всего есть цена. Рисерчить новый алгоритм ради рисерча не получится. R&D стоит денег и времени, и в стартапе еще неизвестно что из этого дороже. Как правило, последние 10% результата будут занимать 90% времени, поэтому однозначно надо ориентироваться на первые 10% усилий, и на соотношение impact/effort, а не на accuracy или AUC. (Это как elbow метод, нужно найти момент когда прирост падает я и ваши усилия выходят на асимптоту).
Forwarded from MISTER SOSISTER ~ CHINESE TIME OF MY LIFE
7. МЛ не существует в вакууме. Для него нужны данные, для данных нужно хранилище, для запуска нужны ресурсы, нужна инфра, нужна бекенд-логика. Здесь, опять же, не получится просто прикрутить вторую модель на ТФ когда первая на пайторче, потому что зависимости улетят в космос. Не получится использовать любые данные, и не получится съедать все ресурсы машины или допускать краши. Нужно думать про соседей, потому что дырка в стене это проблема для обоих.
8. МЛ не существует в моменте, и точно запускается не только во время тестирования. Вы должны понимать что ваша модель будет крутиться в облаке 24/7, и если вы заранее не позаботитесь, чтобы ее кручению ничего не препятствовало, то будете просыпаться ночами и крутиться вместе с ней. МЛ нужно поддерживать, и чем этой поддержки меньше, тем лучше.
Итого: бизнес не оценит крутость, модность, новизну, и даже интеллектуальность ваших алгоритмов, что действительно ценится это простота, прозрачность, эффективность в решении поставленной задачи, и стоимость внедрения и поддержки. Тащемта, то же можно сказать и про самого МЛ-инженера 🙈
8. МЛ не существует в моменте, и точно запускается не только во время тестирования. Вы должны понимать что ваша модель будет крутиться в облаке 24/7, и если вы заранее не позаботитесь, чтобы ее кручению ничего не препятствовало, то будете просыпаться ночами и крутиться вместе с ней. МЛ нужно поддерживать, и чем этой поддержки меньше, тем лучше.
Итого: бизнес не оценит крутость, модность, новизну, и даже интеллектуальность ваших алгоритмов, что действительно ценится это простота, прозрачность, эффективность в решении поставленной задачи, и стоимость внедрения и поддержки. Тащемта, то же можно сказать и про самого МЛ-инженера 🙈
Forwarded from Andrey Kamyshan
если правильно понял постановку проблемы, то начать можно с https://en.m.wikipedia.org/wiki/Learning_to_rank#
Wikipedia
Learning to rank
Learning to rank or machine-learned ranking (MLR) is the application of machine learning, typically supervised, semi-supervised or reinforcement learning, in the construction of ranking models for information retrieval systems. Training data may, for example…
Forwarded from Anton Eryomin
You should really learn to DEPLOY your Machine Learning models! Focus less on the algorithms and understand the products you are building. A junior data scientist tends to think about algorithms and model performance. A senior data scientists will think more efficient deployment pipelines, products, user experience and business metrics.
There are many ways to deploy ML models, but the most common one is as a ML microservice: a backend application would communicate to your ML service through http API calls (usually REST or RPC). There are many online tutorials to get you started. The first entries when searching on google:
- https://lnkd.in/gtUjMqaK
- https://lnkd.in/grPjpqz7
- https://lnkd.in/g4eGEyFr
- …
For example, you will be able to get a better feel on the latency of your model inference, you will be able to participate to system design conversations and you will be able to think about edge cases like “what happens when the data payload is empty?”, “what happens to the overall system when the ML server crashes?”. When trying to convince stakeholders, I always like to present a “product” instead of a “model”. A “model” or performance metrics are not really convincing to non-technical people, but show them in action what ML can do and they get impressed. I often like to use Dash (https://plotly.com/dash/) to prototype a quick UI to show the power of ML.
After learning to deploy API endpoints, learn about dockerizing your applications, about orchestrating your applications and push them to the cloud! After that learning this, you will be a long way in being a more senior data scientist.
Нашел пост чувака с ФБ в продолжении того, о чем писалось выше. Что мол МЛ это уже далеко не только какие-то метрики и модельки, это в первую очередь задача бизнеса и то, как ты свои модельки доведёшь до продакшена.
There are many ways to deploy ML models, but the most common one is as a ML microservice: a backend application would communicate to your ML service through http API calls (usually REST or RPC). There are many online tutorials to get you started. The first entries when searching on google:
- https://lnkd.in/gtUjMqaK
- https://lnkd.in/grPjpqz7
- https://lnkd.in/g4eGEyFr
- …
For example, you will be able to get a better feel on the latency of your model inference, you will be able to participate to system design conversations and you will be able to think about edge cases like “what happens when the data payload is empty?”, “what happens to the overall system when the ML server crashes?”. When trying to convince stakeholders, I always like to present a “product” instead of a “model”. A “model” or performance metrics are not really convincing to non-technical people, but show them in action what ML can do and they get impressed. I often like to use Dash (https://plotly.com/dash/) to prototype a quick UI to show the power of ML.
After learning to deploy API endpoints, learn about dockerizing your applications, about orchestrating your applications and push them to the cloud! After that learning this, you will be a long way in being a more senior data scientist.
Нашел пост чувака с ФБ в продолжении того, о чем писалось выше. Что мол МЛ это уже далеко не только какие-то метрики и модельки, это в первую очередь задача бизнеса и то, как ты свои модельки доведёшь до продакшена.
lnkd.in
LinkedIn
This link will take you to a page that’s not on LinkedIn
Forwarded from DL in NLP (Vlad Lialin)
🤗 запускает курс по RL
Syllabus: https://github.com/huggingface/deep-rl-class
Регистрация: тык
Обещают научить работать со stable baselines, RLlib, RL Baselines3 Zoo. Также будут не только заезженные Space Invaders но и новые environments, включая работающие на Unity.
Кроме классических топиков (Q learning, policy gradients, PPO) будут также offline RL и decision transformers.
Заучит классно, мне давно пора подтянуть свои RL скилы.
Syllabus: https://github.com/huggingface/deep-rl-class
Регистрация: тык
Обещают научить работать со stable baselines, RLlib, RL Baselines3 Zoo. Также будут не только заезженные Space Invaders но и новые environments, включая работающие на Unity.
Кроме классических топиков (Q learning, policy gradients, PPO) будут также offline RL и decision transformers.
Заучит классно, мне давно пора подтянуть свои RL скилы.
GitHub
GitHub - huggingface/deep-rl-class: This repo contains the Hugging Face Deep Reinforcement Learning Course.
This repo contains the Hugging Face Deep Reinforcement Learning Course. - huggingface/deep-rl-class
Forwarded from Борис опять
P.S. Яндекс рисерч не так давно выпустил статью про свойства метрик классификации.
Tldr: лучше использовать symmetric balanced accuracy чем f1 score. Но еще лучше почитать статью.
https://arxiv.org/abs/2201.09044
Tldr: лучше использовать symmetric balanced accuracy чем f1 score. Но еще лучше почитать статью.
https://arxiv.org/abs/2201.09044
Forwarded from DL in NLP (Vlad Lialin)
Стенфорд выложил все видосы cs224n Winter 2021 Natural Language Processing. 🔥🔥
Это один из лучших курсов по nlp в мире, и теперь доступна его более свежая версия. Есть нормальная лекция по трансформерам, T5, low resource MT.
Всем смотреть.
https://youtube.com/playlist?list=PLoROMvodv4rOSH4v6133s9LFPRHjEmbmJ
Это один из лучших курсов по nlp в мире, и теперь доступна его более свежая версия. Есть нормальная лекция по трансформерам, T5, low resource MT.
Всем смотреть.
https://youtube.com/playlist?list=PLoROMvodv4rOSH4v6133s9LFPRHjEmbmJ
Forwarded from Tatiana Durova
The STAR Interview: How to Tell a Great Story, Nail the Interview and Land your Dream Job https://www.amazon.de/dp/1973425904/ref=cm_sw_r_apan_i_N4ZDTKD69RHHYE718CTQ?_encoding=UTF8&psc=1
Amazon
The STAR Interview: How to Tell a Great Story, Nail the Interview and Land your Dream Job
The STAR Interview Method is used by millions of people all around the world to answer interview questions and tell stories. Fortune 500 companies (Amazon included) recommend using the STAR method to answer behavioral questions. Whether you’re just starting…