<style>
.reveal {
font-size: 28px;
}
</style>
## Команда $kas-kir
[TOC]
---
## Часть про ML :robot_face:
Вначале - про машинное обучение
---
### Предобработка текстов :spiral_note_pad:
- stemming, lemmatization
- stop words
- plural form
- pos tagging
https://www.machinelearningplus.com/nlp/lemmatization-examples-python/
---
### Обучение эмбеддингов :table_tennis_paddle_and_ball:
- Основной подход: **[Word2Vec CBOW](https://towardsdatascience.com/the-three-main-branches-of-word-embeddings-7b90fa36dfb9)** (Fasttext CBOW показал себя хуже)
- Библиотека: **Gensim**
- model.train(update=True)
- Побдор параметров:
- vector_size = 100
- window_size = 10
- min_count = 5
- epochs = 15
- Оценка моделей:
- метрики из коробки (есть минусы)
- просмотр логов
---
- Оценка моделей

---

---
### Логика загадывания слова :satellite_antenna:
- Какую логику загадывания слова вы реализовали?
- две Skipgram модели (Fasttext и Gensim)
- учитываем фильтрацию - убираем однокоренные и похожие слова
- сначала добавляем по два слова из каждой модели, потом все остальное
- Какие идеи вы попробовали?
- давать похожие на однокоренные слова
- использовать простую модель
- Как вы оценивали эффект от идей?
- метрики Gensim + логи раундов + human opinion
---
### Логика отгадывания слова :headphones:
- Какую логику отгадывания слова вы реализовали?
- две Skipgram и две CBOW модели с разной предобработкой последовательно меняют друг друга
- модели подстраховывают друг друга
- минимум предобработки
- Какие идеи вы попробовали?
- одна сильная модель с разными параметрами
- модель с N-grams с похожим набором букв (но не однокоренная)
- Как вы оценивали эффект от идей?
- метрики Gensim + логи раундов + human opinion
---
### Валидация созданного решения :thinking_face:
- Как измеряли качество решений?
- evaluate_word_pairs
- evaluate_word_analogies
- Как выбирали лучшее решение?
- логи раундов
- стабильность
---
- С чем были основные сложности?
- автоматизация (токены окружения, CI скрипты)
- воспроизводимость
- работа с черным ящиком (Docker, Gitlab CI)
---
## Часть про MLOps :exploding_head:
Теперь про разработку и MLOps
---
### Разработка :clapper:
- Разработка велась **локально**
- Основные инструменты: **Docker, Heroku, Neptune, Gitlab CI**
- Какие тесты написали
- работоспособность модели
- порог качества модели
---
### Среда выполнения, окружение и воспроизводимость :scroll:
- Среду выполнения и окружение зафиксировал локально
- Не версонировал данные и модели, метрики визуализировал в Neptune
---
### Архитектура :cloud:

---

---
ML Pipeline

---
Dockerfile.app

---
Сервис на heroku

---
CI/CD

---
### Точки роста
- версионирование данных и моделей
- тестирование, мониторинг деплоя и поломок
---
## Главные выводы :roller_coaster:
- done is better than perfect
- Лучше работать в команде
- ML Engineering - это возможно

---
## Спасибо за курс!
{"metaMigratedAt":"2023-06-16T03:43:49.879Z","metaMigratedFrom":"YAML","title":"Рассказ о решении соревнования по игре в шляпу","breaks":true,"description":"View the slide with \"Slide Mode\".","slideOptions":"{\"theme\":\"white\",\"transition\":\"slide\"}","contributors":"[{\"id\":\"01ba2d0e-af74-4d6b-9541-9eec9d1eb766\",\"add\":2706,\"del\":2126}]"}