(←) предыдущая запись ; следующая запись (→)

В потоке данных нередко содержатся управляющие команды. Например, в моделях машинного перевода одна из составляющих, декодер, отвечает за то, чтобы превратить числовой вектор в предложение. Беда в том, что мы даже не знаем, сколько в предложении слов, и это несколько затрудняет задачу. Но мы можем этот вектор расшифровывать слово за словом. В какой-то момент декодер вместо слова сгенерирует «точку». Если говорить точнее, маркер конца текста. Фактически, вместо слова мы вытаскиваем команду «хватит».

Это не единственная «команда», которая может быть вшита в текст. Недавно мы с А.Л. недавно обсуждали, что системы машинного перевода делают с гендерно-окрашенными текстами. Вы наверняка слышали про «предубеждённость» машинного перевода против женщин. Например, при переводе предложения с языка, где нет маркеров пола, google translate назначит доктора мужчиной, а медбрата — женщиной. Гугл борется с этим, позволяя делать перевод от лица женщины или от лица мужчины. А. рассказал, что самый простой способ сделать — просто написать перед предложением «He said/She said», а в получившемся переводе эту часть отрезать. Альтернативно можно поставить специальный токен, который кодирует, что текст должен идти от лица женщины или, напротив, мужчины. Фактически мы прямо посреди предложения дали нейросети команду «перейди в режим женской речи».

Или ещё один пример — служебные токены, используемые в обучении нейросети. Одна из базовых идей при построении языковых моделей — показать нейросети 80% слов, а остальные 20% попросить её угадать. Такие пропущенные слова называются «замаскированными»; нейросеть знает, что в этом месте слово есть, но не знает, какое. В тексте они заменяются на специальный токен [MASK]. Можно сказать, что этот токен даёт алгоритму команду заполнить пропуск.
Есть и другие служебные токены, которые нейросеть пытается заполнить. Это дополняет набор задач, которые решает нейросеть. Например, можно попросить модель угадать, связаны ли два предложения.

Мне кажется, такое встраивание «команд» и модальностей в нейросети ждёт нас в разных формах и дальше. Где-то это будет специально спроектированной фичой, где-то побочным эффектом устройства модели. И это точно будет не только в NLP.
Не вполне уверен, можно ли системы автоматизированного написания кода отнести к этому классу задач. Но в области обработки изображений уже есть схожие системы. Вы рисуете контур, а нейросеть дорисовывает картинку. И тут очень богатый простор для того, чтобы расширить набор визуальных «команд», которые система будет понимать. Здесь овал, значит надо дорисовать лицо. Здесь штрихи отмечают, что надо отретушировать фон. А вот на картинке знак равенства, значит наверное надо вычислить результат и записать его там же, на картинке.
Так или иначе, мне кажется, что уходит эпоха узкой специализации моделей, и всё богатство фич (и багов) нынешних систем будет инкорпорировано в единую мега-модель, которая будет гибко переключаться между различными режимами работы.

(5/n)