Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 3:54Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -3:54 1xСкорость воспроизведения2x1.75x1.5x1.25x1x, выбрано0.75x0.5xГлавыГлавыОписанияОтключить описания, выбраноСубтитрынастройки субтитров, откроется диалог настройки субтитровСубтитры выкл., выбраноЗвуковая дорожкаPicture-in-PictureПолноэкранный режимThis is a modal window.Начало диалоговго окна. Кнопка Escape закроет или отменит окноТекстColorБелыйЧерныйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйФонColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйПрозрачныйОкноColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачныйПолупрозрачныйПрозрачностьРазмер шрифта50%75%100%125%150%175%200%300%400%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Итак, языковые модели — это одна из самых горячих тем исследований в области обработки текстов на естественном языке. Давайте выделим некоторые архитектурные решения, к которым пришли исследователи в последнее время. Во-первых — модели, использующие сжатие текста и словаря через "byte pair encoding" и, при этом, использующие честный софтмакс (а не его аппроксимацию) показывают лучшее качество по сравнению с моделями, которые опираются на целые словари, но упрощаются софтмакс (например, negative sampling). Модели честные показывают качество лучше. Во-вторых — трансформер, кажется, занял доминирующее положение[1], так как он легче обучается и способен моделировать далёкие зависимости. А ещё, в механизм внимания можно подавать маски и, тем самым, управлять зависимостями между словами. И это делает трансформер очень гибким. С помощью него можно сделать некоторые вещи, которые вообще никак не сделать с помощью рекурренток. И, как одно из следствий использования трансформера (а именно, его способность учитывать реально далёкие зависимости), лучше обучать модель на длинных входных последовательностях, то есть на нескольких подряд идущих предложениях, а не на отдельных предложениях. Это вносит в модель информацию о связи предложений, о дискурсе, а не только о структуре отдельных предложений. Мы поговорили про задачу моделирования языка, которая на практике сводится к задаче предсказания слов, то есть к большой задаче классификации. Начали с классики — с N-граммной модели. Также мы рассмотрели несколько основных тем, которым были посвящены работы в области моделирования языка. Первая такая тема — сжатие и обобщение представлений, то есть — то, чего в N-граммной модели вообще не было. Вторая такая проблема — необходимость работать с большими словарями, её решали через упрощение софтмакса или через сжимающее кодирование текста. Третья проблема — необходимость обрабатывать слова, которых не было в обучающей выборке. Её решают или через посимвольные модели, или через эмбеддинги N-грамм, как это делает FastText, например, или через "byte pair encoding". Четвёртая проблема — это учёт максимального контекста. Самый популярный способ построения языковых моделей — авторегрессия, когда предсказание слов выполняется последовательно, одно слово за шаг. Чтобы модель научилась учитывать контекст не только слева, но и справа, применялись двунаправленные языковые модели (например, ELMo), модели с перестановками (XLNet) или c зашумлением входных данных (BERT). В этой области были достигнуты впечатляющие результаты. Модели, обученные без учителя на больших корпусах текстов неплохо решают даже те задачи, для которых их специально не учили. Однако у себя дома, пока что, вряд ли получится обучить BERT или XLNet — для этого требуется несколько дней непрерывной работы нескольких десятков видеокарт. Но хорошая новость заключается в том, что авторы многих моделей выложили веса и исходные коды в открытый доступ, и вы можете их скачать, включить свою модель, и почти бесплатно улучшить качество решения ваших прикладных задач. Это уже относится к теме переноса навыков (transfer learning) и этому будет посвящена отдельная лекция.
[1] скоро мы очень подробно поговорим о трансформерах
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.