<style>
.reveal {
font-size: 28px;
}
.container{
display: flex;
}
.col{
flex: 1;
}
.reveal section img { background:none; border:none; box-shadow:none; }
</style>
Дело в Шляпе
или 3 причины погрузиться в mlops

<!-- Из этого стоит сделать анонс и сказать голосом вначале, на слайдах смысла нет все это писать.
Три года назад нам надоело проводить обычные соревнования на Kaggle. Соревнования по ML - это классно, но подходы и способы решения повторяются, и после десятка решенных хочется чего-то нового. Одна из распространенных проблем соревнований - что у сделанного решения не хватает "интерактивности" - его нельзя взять и покрутить, проверить его своей собственной логикой и порадоваться, как прикольно получается, задеплоить куда-то и пошарить с другими людьми :pouting_cat:
Тогда мы придумали Шляпу - соревнование на стыке анализа данных и деплоя моделей. Правила просты: чтобы участвовать, ты должен уметь отвечать за 1 секунду 🤖 по REST API 🚀. Чтобы сыграть по-настоящему, нужны эмбеддинги, кастомная логика и модель, развернутая на сервере. После трех проведений для разных аудиторий, Шляпа наконец приходит в онлайн для всех желающих. О чем эта игра, как нам это пришло в голову и чему можно в ней научиться - узнаем прямо сейчас.
-->
---
Кто приложил руку :raised_hands:
- Основной виновник торжества: я :hugging_face:
- Помогали советом: Эмели Драль, Михаил Трофимов, Виктор Кантор
- В код шляпы контрибьютили: Глеб Ерофеев, Виталий Белов, Олег Поливин, Алексей Найденов
<!-- Контекст -->
<!--  -->
<!--  -->
<!-- https://miass.questquest.net/shop/igra-dlya-doma-shlyapa-online -->
---
Итак! Пять лет назад...


---
Затем некоторое время...

---
Илья Ирхин: "Что если сделать игру, где модели будут объяснять друг другу слова?"

---
Затем снова...
<!--   -->
 
---
<!--  -->

---
Что если сделать игру, где модели будут объяснять друг другу слова?
:tophat: :tophat: :tophat: :tophat: :tophat:
:thinking_face: :thinking_face: :thinking_face: :thinking_face: :thinking_face:
---
Inclass соревнования в обучении DS
- поначалу :fire:
- практикуемся в анализе данных
- обсуждаем решения, учимся на успехах и ошибках других
- fun
- после десятого соревнования 🥱
- 80% времени делаешь одно и то же
- решения победителей часто "типичны"
- решение трудно интерпретировать
- применить модель нельзя - решаем "в стол"
- команды изолированы друг от друга
- судить о чужих решениях можно только по чиселке на ЛБ
- вспоминаешь, что в DS есть и другие интересные задачи
---
<!-- Попробуем заново. Должно быть прикольно вот так: -->
Рецепт :fire: соревнования:
- участники на самом деле соревнуются друг с другом
- качество решения можно оценить самому
- о решениях других можно узнать что-то в течении соревнования
- "лучшее решение" не фиксированно
- решение интересно показать тем, кто не в теме
- кроме DS нужно ещё немного в разработку и деплой
Спойлер: :100: Действительно прикольно!
---
Raiffeisen bank 201
 
 
---
DMIA 2019
<!--   -->

---
DMIA 2021
 
 
---
Дата Ёлка 2022 :christmas_tree:

---
Протокол игры, TLDR:

---
Пример игры
```bash=
labdmitriy explains word 'week': ['month', 'year']
Attempt 1/2
- pol-litlra-nastroeniya: ['month', 'last', 'sept', 'three', 'two']
🎉 kas-kir: ['week', 'couple', 'year', 'time', 'monthly']
🎉 HerokuOrg: ['month', 'road;', 'proctor', 'boiler', 'weeks']
Attempt 2/2
🎉 pol-litlra-nastroeniya: ['week', 'year', 'month', 'two', 'five']
Scores:
- labdmitriy got 5
- kas-kir got 2
- HerokuOrg got 2
- pol-litlra-nastroeniya got 1
```
---
Технические детали
```bash=
# играют два игрока: first-player.com и second-player.com
# отправляет запросы хост
$ curl https://first-player.com/explain?word=riddle&n_words=3
["puzzle", "problem", "guess"] # загадал
$ curl https://second-player.com/guess?word=puzzle&n_words=3
["game", "arcade", "riddle"] # угадал
```
---
Результаты появляются на ЛБ

---
Итак, что релизим:
- Игру https://github.com/production-ml/the-hat-game
- Гугл форму для регистрации https://forms.gle/3RBbb7bpFTqPMovf9
- Лидерборд https://hat-leaderboard.herokuapp.com
- Dummy player - в том же репе
---
Dummy player?
```bash=
$ tree flask_app
flask_app
├── Dockerfile
├── Procfile <- heroku
├── README.md
├── app.json <- heroku
├── app.py <- app itself
├── player.py <- Dummy player
├── requirements.txt
└── templates <- cat pics (for the welcome page)
└── index.html
```
---
Dummy player!
<!-- (я бы убрал этот слайд, как-то демотивирует деплоить его?) -->
```bash=
# играют два игрока: first-player.com и second-player.com
# отправляет запросы хост
$ curl https://dummy-player.com/explain?word=riddle&n_words=10
["Hi", "I'm", "a", "Dummy", "Player"]
$ curl https://dummy-player.com/guess?word=puzzle&n_words=10
["Didn't", "learn", "how", "to", "guess", "(yet)"]
```
:bulb: Есть ещё простая fasttext-модель в Jupyter notebook
---
Wait but why? 
- :tada: Прикольно!
- :rocket: Практиковать деплой моделек
- :robot_face: Вспомнить DL и NLP
---
Как начать
1  2 
3  4 
---
Что дальше?
- :speech_balloon: Стартовая модель в Jupyter notebook
- :robot_face: Кастомная логика для загадывания и отгадывания
- :tennis: Локальные игры (run_game.py)
- :bomb: Ваш собственный MLOps полигон
---

---
:tada: Мини-сорева на выходные :tophat:
- :christmas_tree: Финальная игра - 19 декабря 17-00
- :santa: Объясняем новогодние слова
- :first_place_medal: Как победить? Занять первое место на ЛБ!
- :gift: Тельняшки, футболки, стикеры!
- :speech_balloon: Канал в слаке #mlops_hat
---
Live demo in Spatial Chat! :eyes: :tada: :rocket:
{"metaMigratedAt":"2023-06-16T15:43:06.214Z","metaMigratedFrom":"YAML","title":"Дело - Шляпа, или 3 причины погрузиться в mlops","breaks":true,"description":"View the slide with \"Slide Mode\".","slideOptions":"{\"theme\":\"white\",\"transition\":\"slide\"}","contributors":"[{\"id\":\"e0bc91de-98f7-46f8-a3a9-852912833a93\",\"add\":14267,\"del\":7061}]"}