AI-For-Beginners/translations/ru/lessons/5-NLP/15-LanguageModeling/README.md

46 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Моделирование языка
Семантические векторы, такие как Word2Vec и GloVe, на самом деле являются первым шагом к **моделированию языка** — созданию моделей, которые каким-то образом *понимают* (или *представляют*) природу языка.
## [Тест перед лекцией](https://ff-quizzes.netlify.app/en/ai/quiz/29)
Основная идея моделирования языка заключается в обучении моделей на неразмеченных данных в несупервизируемом режиме. Это важно, потому что у нас есть огромные объемы неразмеченного текста, в то время как количество размеченного текста всегда будет ограничено усилиями, которые мы можем потратить на разметку. Чаще всего мы можем создавать языковые модели, которые способны **предсказывать пропущенные слова** в тексте, так как легко замаскировать случайное слово в тексте и использовать его как обучающий пример.
## Обучение векторов
В предыдущих примерах мы использовали заранее обученные семантические векторы, но интересно понять, как эти векторы можно обучать. Существует несколько подходов:
* **Моделирование языка с помощью N-грамм**, когда мы предсказываем токен, основываясь на N предыдущих токенах (N-граммы).
* **Непрерывный мешок слов** (Continuous Bag-of-Words, CBoW), когда мы предсказываем центральный токен $W_0$ в последовательности токенов $W_{-N}$, ..., $W_N$.
* **Skip-gram**, где мы предсказываем набор соседних токенов {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} на основе центрального токена $W_0$.
![изображение из статьи о преобразовании слов в векторы](../../../../../translated_images/ru/example-algorithms-for-converting-words-to-vectors.fbe9207a726922f6.webp)
> Изображение из [этой статьи](https://arxiv.org/pdf/1301.3781.pdf)
## ✍️ Пример ноутбуков: Обучение модели CBoW
Продолжите обучение с помощью следующих ноутбуков:
* [Обучение CBoW Word2Vec с использованием TensorFlow](CBoW-TF.ipynb)
* [Обучение CBoW Word2Vec с использованием PyTorch](CBoW-PyTorch.ipynb)
## Заключение
В предыдущем уроке мы увидели, что векторы слов работают как магия! Теперь мы знаем, что обучение векторов слов — это не такая уж сложная задача, и мы можем обучить свои собственные векторы для текстов, специфичных для определенной области, если это потребуется.
## [Тест после лекции](https://ff-quizzes.netlify.app/en/ai/quiz/30)
## Обзор и самостоятельное изучение
* [Официальный учебник PyTorch по моделированию языка](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html).
* [Официальный учебник TensorFlow по обучению модели Word2Vec](https://www.TensorFlow.org/tutorials/text/word2vec).
* Использование фреймворка **gensim** для обучения наиболее популярных векторов всего за несколько строк кода описано [в этой документации](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html).
## 🚀 [Задание: Обучите модель Skip-Gram](lab/README.md)
В лабораторной работе мы предлагаем вам изменить код из этого урока, чтобы обучить модель Skip-Gram вместо CBoW. [Прочитайте подробности](lab/README.md)
---