# Команда FPL - Andrey <b>F</b>rolov <img src="https://i.imgur.com/M3TIU4E.png" style="background:none; border:none; box-shadow:none;">anfroloff - Sergey <b>P</b>arshukov <img src="https://i.imgur.com/M3TIU4E.png" style="background:none; border:none; box-shadow:none;">serjeeon - Andrey <b>L</b>avrentiev <img src="https://i.imgur.com/M3TIU4E.png" style="background:none; border:none; box-shadow:none;">lavrik33 <!-- Каждая команда должна подготовить рассказ о своем решении на 3-5 минут. Пример создания слайдов https://hackmd.io/s/slide-example --> <style> .reveal { font-size: 30px; } </style> --- ## Предобработка текстов - load() – загрузка набора данных fetch_20newsgroups - clean() – удаление 'From:', 'Re:', 'Subject:',.., замена «-» и «\n» на пробел, очистка текста от не букв, удаление двойных пробелов - pos_tag() – определение частей речи (nltk.pos_tag), создание словаря - clean_pos() – очистка текста от всего, кроме существительных, прилагательных, глаголов и наречий - lemmatize() – лемматизация (WordNetLemmatizer) - dict_frequency() – словарь с частотами слов в тексте (в итоге не использовали) --- ## Обучение эмбеддингов - Использовали библиотеку fasttext - Обучали эмбеддинги двумя способами: cbow и skipgram --- ## Логика загадывания слова - Запрашивали 100 ближайших соседей - Применяли create_word_list() из тетрадки Александра - Выдавали n_words слов - Идея: сортировать слова по встречаемости в наборе данных (популярные поднимать выше) --- ## Логика отгадывания слова - Сделали корзину ранее названных слов: добавляли слова при ответе на guess, чистили - когда в запросе guess приходило одно слово - Запрашивали [200 + размер корзины] ближайших соседей - Фильтровали по nltk.metrics.distance.edit_distance > 2 (как в тетрадке Александра) - Удаляли слова, которые были в корзине ранее названных - Выдавали n_words слов - Идея: сортировать слова по встречаемости в наборе данных (популярные поднимать выше) --- ## Валидация созданного решения - Экспортировали эмбеддинги и любовались ими в 3D (https://projector.tensorflow.org/) - Локально запускали игры (первое время, до общих прогонов). Игроков создавали из комбинаций моделей с разными параметрами --- ## Любование эмбеддингами ![](https://i.imgur.com/ug6Zsli.png) --- ## Любование эмбеддингами ![](https://i.imgur.com/sb9i2a4.png) --- ## Любование эмбеддингами ![](https://i.imgur.com/Dikq4P5.png) --- ## Локальные запуски игры <img width="600" src="https://i.imgur.com/d1rHMnd.png" style="background:none; border:none; box-shadow:none;"> --- ## Наши модели * model cbow(dim=50, epoch=120, wordNgrams=3) * model skipgram(dim=50, epoch=120, wordNgrams=3) --- ## Проба двух моделей на Heroku (08.12) <table style="width:100%"> <tr> <th><img width="500" src="https://i.imgur.com/I8InVS7.jpg" style="background:none; border:none; box-shadow:none;"></th> <th><img width="500" src="https://i.imgur.com/DzZHI8U.jpg" style="background:none; border:none; box-shadow:none;"></th> </tr> </table> --- ## Выбор игрока на финал |Game date|Explain model|Guess model|Score explain|Score guess|Place| | -------- | -------- | -------- | -------- |-------- |-------- | |11.12|cbow|cbow|**146**|133|1| |12.12|skipgram|skipgram|126|**141**|1| |13.12|cbow|skipgram|107|150|4| |final|cbow|skipgram|1640|1801|2| --- ## Деплой сервиса с моделью - Какой вариант деплоя сервиса вы выбрали? * ver.1: Heroku (512MB RAM) - хватало для одной модели, но периодически не хватало памяти * ver.2: AWS Lightsail (2GB RAM) - хватало для двух моделей, но обнаружилась утечка памяти за 2 дня до финала, из-за чего сервер падал после ~500 запросов * ver.3: AWS Lightsail (8GB RAM) - взяли для финала, чтобы не разбираться с утечкой памяти --- ## Деплой сервиса с моделью - С какими сложностями вы столкнулись? * Настройка доступа извне, статический ip был недоступен * То, что работает при самостоятельном тестировании, может не работать в нужный момент (heroku нестабилен) * Установка fasttext * Утечка памяти - Какие полезные выводы можно сделать, чтобы запомнить их на будущее? Нужны спец. навыки: администрирование, linux, мониторинг потребляемых ресурсов, отладка кода
{"metaMigratedAt":"2023-06-15T02:31:08.057Z","metaMigratedFrom":"YAML","title":"Как мы играли в шляпу","breaks":true,"description":"View the slide with \"Slide Mode\".","slideOptions":"{\"theme\":\"white\",\"transition\":\"slide\"}","contributors":"[{\"id\":\"e0bc91de-98f7-46f8-a3a9-852912833a93\",\"add\":49,\"del\":0},{\"id\":\"4606b10a-3940-4dff-ae74-9c1ea645d4c4\",\"add\":11117,\"del\":7488},{\"id\":\"c6e85817-3bf1-4fbf-8def-f56ad1526009\",\"add\":836,\"del\":174}]"}
    324 views
   Owned this note