Muhamob / Neural-Dependency-Parsing-HW

Homework for course "Main tasks of computer linguistics"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Описание домашнего задания

Репозиторий с домашним заданием по курсу "Основные задачи компьютерной лингвистики". В данном задании предполагается найти и настроить парсеры, при этом необходимо достичь определённого качества (0.93 или 0.94). В данном репозитории используются парсеры Китаева и Дозата-Маннинга.

Мне не удалось найти готовую модель парсера Дозата-Маннинга, поэтому пришлось обучить с нуля. При этом я не ставил перед собой цель обучить модель до её максимального качества: как только качество на dev-сете стало больше 0.94, обучение было остановлено.

С моделью Китаева было легче, так как была выложена предобученная модель, без использования дополнительных эмбэддинго по типу BERT'а или ELMo. При этом качество модели 0.9361 на dev-сете, что достаточно для данного домашнего задания.

Краткая инструкция по запуску модели

Я решил создать по одному Docker image для каждого парсера, так как мне это кажется наиболее логичным. Можно всё запускать руками и прописывать команды по сборке image, загрузке данных и т.д., но я постарался автоматизировать процесс как можно больше и создал скрипт ./run_all.sh, запустив который можно сразу скачать все данные, создать и настроить все docker image и скачать почти все модели.

./run_all.sh

Однако у меня не получилось сделать автоматическую загрузку папки из google drive с моделью для парсера Дозата. Поэтому её нужно скачать перейдя по ссылке и положив её в директорию ./models.

В ходе выполнения может быть много предупреждений, которые выделены красным шрифтом, не стоит обращать на них внимания. Есть вероятность, что парсер Дозата-Маннинга в одно время может не заработать, так как оригинальный репозиторий постоянно обновляется, поэтому TODO: Сделать форк репозиториев к себе и подтягивать парсеры в контейнерах с форков

Как только скрипт закончит свою работу, можно запустить сами контейнеры. В данном случае я ввёл ограничение на использование оператиной памяти в 4Гб.

docker run -it --rm --memory="4096m" -v ~/<path-to-local-git-repository>:/home/models hw/{dozat или kitaev} /bin/bash

В самом контейнере можно запустить скрипт, который показывает пример работы (запускает модель на dev-сете)

./run_{dozat или kitaev}_test.sh

About

Homework for course "Main tasks of computer linguistics"


Languages

Language:Shell 70.2%Language:Dockerfile 29.8%