Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 3:49Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -3:49 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%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Итак, как работает "beam search" мы посмотрели, давайте теперь обратимся к тому, что же он нагенерировал... Первое, что мы видим — это то, что beam search работает дольше. Раньше нам требовалось полторы секунды, чтобы сгенерировать одно предложение, теперь, чтобы сгенерировать 5 вариантов, нам нужно 8 секунд. Пока что, разница небольшая. Надо заметить, что эта реализация "beam search" тоже не самая эффективная, по той же причине — мы никак не используем кэширование. На экране вы видите 5 лучших вариантов, которые получилось сгенерировать, вы видите score, отсортированные по возрастанию (напомню, что самый лучший score — это самый маленький score, потому, что это "минус сумма log-вероятностией"). Как вы видите, все тексты содержат большой общий фрагмент, отличается только концовка. Наиболее вероятная причина этого — это чрезмерная уверенность модели. Таким образом, если мы отклоняемся от единственного, наиболее вероятного варианта декодирования, хотя бы чуть-чуть, то score уже очень сильно ухудшается и у других вариантов нету шансов удержаться внутри луча. В качестве домашнего задания я предлагаю вам побороться с этой чрезмерной уверенностью и повысить разнообразие вариантов генерации. Один из возможных способов борьбы с чрезмерной уверенностью — это сглаживание меток, то есть можно перевесить метки так, чтобы они стали менее контрастными, чтобы кросс-энтропия не давала очень сильный штраф. Давайте посмотрим, как будут меняться списки сгенерированных предложений в зависимости от настроек лучевого поиска. В первом случае мы использовали ширину луча "5". Если использовать ширину луча "20", то разнообразие чуть-чуть подрастает. Видим, что первые "много" примеров по-прежнему содержат большой общий фрагмент. То есть, они были сгенерированы, на самом деле, из одной гипотезы и отличаются только последней парой шагов. Но дальше мы видим, что, уже какое-то изменение идёт, хотя оно, конечно, тоже не очень большое. По сути, отличие только в том, что здесь дефис добавляется иногда... Другими словами, с такой моделью пока что не получается разнообразия предложить. Другая простая техника для повышения разнообразия предсказаний — это добавление шума в предсказания модели. Как это делать? Мы берём вектор логитов для очередного токена и добавляем туда, например гауссовский шум или, более правильно — шум из распределения Гумбеля. Но эта техника немного не информированная, то есть силу этого шума нужно подбирать руками и мы рискуем получить ерунду. Кроме того, процесс декодирования может стать слишком стохастическим и это приведёт к тому, что запуская его его несколько раз, мы будем получать абсолютно не пересекающееся множество вариантов декодирования. Это сделает нашу модель банально непредсказуемой, её нельзя будет вообще никак использовать на практике. Так что с этим способом повышения разнообразия нужно быть аккуратней, хотя, на этапе обучения, его вполне можно использовать посмелее. Обратите внимание, что с шириной луча "20" та же самая работа заняла уже не 8 секунд, а почти 31 секунду. Мы можем пойти ещё дальше и выбрать ширину луча "100". Я предлагаю вам самостоятельно поэкспериментировать с этими параметрами.

К сожалению, у нас пока нет статистики ответов на данный вопрос, но мы работаем над этим.