>>1.00<<>>1.00<<Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 3:56Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -3:56 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%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Всем привет! В этом видео мы поговорим про одну из недавно предложенных моделей, которая очень хорошо встряхнула всю область обработки текстов, а именно — трансформер и механизм внутреннего внимания (или self-attention). Давайте вспомним основные архитектуры нейросетей, применяемые в обработке текстов, и посмотрим на них с нового ракурса. В первую очередь — это, конечно, рекуррентки, рабочая лошадка. Рекуррентки обрабатывают один токен за шаг, обновляя своё скрытое состояние. То есть, для выполнения очередного шага, необходимо полностью завершить предыдущий. Это приводит к тому, что рекуррентки работают последовательно, и возможности современных видеокарт используется не на полную мощность. Не так давно были предложены варианты рекурренток с улучшенным параллелизмом. Например, "simple recurrent unit" позволяет параллельно обсчитывать разные элементы скрытого состояния. В результате, следующий шаг можно начать считать раньше чем полностью досчитается предыдущий. Но параллелизм, по-прежнему, неполный. Некоторые важные закономерности в естественном языке носят нелокальный характер. Например, я сейчас вам про что-то рассказываю, и мне не надо после каждого слова напоминать вам тему лекции. Вы её прочитали в начале, или услышали, и, скорее всего, вы её помните — вы находитесь в контексте. Поэтому хорошая архитектура для обработки текстов должна уметь выделять далёкие закономерности, а именно — связи между словами, отстоящими друг от друга на 50, 100, или даже более слов. Чтобы рекуррентка увидела такую закономерность (от слова в начале длинного текста до слова в конце), нужно взять, и прошагать от первого слова до последнего (при этом, обработав все слова). Таким образом, для учёта закономерности длины N требуется порядка N операций. Следующий классический вид модулей — свёртки. Они очень хорошо распараллеливаются в рамках одного слоя — все токены обрабатываются независимо. Слои также могут частично считаться параллельно, так как вычисления зависят от данных только в небольшой окрестности. В отличие от рекурренток, чтобы увеличить длину учитываемых свёрточными сетями зависимостей, нужно неизбежно увеличить число параметров сети — либо нужно увеличить размер ядра, либо увеличить количество слоёв. В результате получается, что на каждом слое свёрток с непрерывными ядрами длина зависимости увеличивается примерно на размер ядра. Если мы используем прореженные (то есть, "dilated") свёртки, то получаем чуть более эффективную картину — у нас шаг прореживания растёт, увеличивается в два раза на каждом слое и, таким образом, чтобы учесть зависимость длины N, нам нужно порядка логарифма от N слоёв. Есть гипотеза о том, что чем больше нам нужно сделать шагов, чтобы учесть какую-то зависимость, чтобы перенести информацию из одной точки в другую, тем выше вероятность того, что мы потеряем много информации на этом пути, и, следовательно, будем хуже учитывать далёкие зависимости. И нейросетки либо медленно учатся, но компактнее (как, например, рекуррентки), либо лучше распараллеливаются, но требуют больше вычислений (как, например, свёртки).
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.