February 13

Обновлённый Яндекс Браузер с фишками на основе нейросетей

Помощь с текстом, перевод видео с японского и корейского, распознавание QR-кодов — что умеет обновлённый Яндекс Браузер

Блог компании Яндекс

Сегодня Яндекс объявил о масштабном обновлении своего браузера, в котором реализованы рекордное количество инноваций. В основе этих изменений лежат передовые технологии нейросетей и машинного обучения. Теперь Яндекс Браузер способен исправлять ошибки в тексте, сокращать или улучшать его, а также пересказывать видео с японского и корейского языков. Более того, он умеет распознавать QR-коды на трансляциях и предлагает переходить по ссылке всего в один клик. Кроме того, обновленный браузер обеспечивает надежную защиту от фишинговых страниц и обладает рядом других полезных функций.

В этой статье команда Яндекса рассказывает о процессе обучения своей нейросети с использованием учебника Розенталя. Также мы рассмотрим модель, отвечающую за субтитры, и объясним, как она определяет, что говорит другой человек. Вы узнаете, почему не каждый QR-код легко распознаваем, и каким образом в Яндексе разработали методы обнаружения фишинговых сайтов, которые появляются практически мгновенно.

Помощь с текстом: исправление ошибок, улучшение и сокращение

Одной из ключевых функций, предоставляемых нейросетевой моделью Yandex GPT в браузере, является «помощь с текстом». Она способна обнаружить и исправить орфографические ошибки, а также правильно расставить знаки препинания. Более того, в случае, если текст не укладывается в заданный формат по количеству знаков, модель способна сократить его, улучшив структуру и понятность содержания.

Каждое из указанных действий выполняется с помощью отдельных моделей. Почему они различаются? В режиме редактирования текста необходимо, чтобы модель исправила орфографические ошибки, однако в режимах сокращения и улучшения текста она должна провести переформулировку содержания. Давайте рассмотрим каждую из этих функций более подробно.

Исправление ошибок

«Для многих людей, использующих языковые модели для работы с текстами, возникает одна и та же проблема. Предположим, в исходном тексте содержится десять ошибок, вы передаете его модели, а в результате получаете практически полностью переписанный текст. Модель работает по принципу «нет слова - нет ошибки». Очевидно, что это не то, чего вы хотели.

Для начала мы проверили самую важную гипотезу: возможно ли, чтобы эта модель не переписывала текст вообще. Это была наша первоочередная проверка. Мы взяли тексты, удалили из них все знаки препинания и заглавные буквы - именно это мы передавали модели для обработки. В результате получили оригинальные тексты. Мы обучили модель на основе этих данных. Затем мы подали на вход модели 100 текстов из нашего валидационного датасета и попросили расставить знаки препинания. Она прекрасно справилась с поставленной задачей и не добавила ничего лишнего (разница по Левенштейну была равна нулю), и это - наша победа.»

Для обучения нейросети был составлен датасет, состоящий из 5000 текстов, полученных из публичного доступа в интернете. Важным критерием при выборе текстов было наличие различных форм шума, таких как сленг, матерные выражения и специальные символы. В общем, любые элементы, которые могли усложнить задачу обучения модели.

После этого было сотрудничество с редактором и использовали учебник Розенталя, считающийся одним из основных учебников русского языка, чтобы проверить модель на всех основных случаях. Однако в Яндекс не старались достичь идеальных текстов, а скорее исправили только самые серьезные ошибки пунктуации и орфографии. Целью было сохранить стилистические элементы, такие как англицизмы и плеоназмы (слова, которые полностью или частично дублируют друг друга в смысловом плане, например, «коллега с работы» или «краткое резюме»). Было важно, чтобы модель могла отличать орфографические и пунктуационные ошибки от разговорной речи. Затем составили инструкции и попросили редакторов-асессоров исправить тексты в соответствии с ними.

На данном этапе уже появился готовый датасет, который мы загрузили в более крупную модель, чтобы повысить ее качество. Чтобы проверить работу модели, прогнали через нее валидационный датасет и получили хорошие результаты. В настоящее время модель исправляет 97% ошибок, пропуская одну ошибку в тексте на 5000 знаков. В Яндексе заявляют, что планируют повысить этот показатель до 99%, анализируя, какие ошибки модели представляются сложнее всего, и добавляя в датасет соответствующие примеры.

Сокращение и улучшение

Модели, отвечающие за сокращение и улучшение текста, проходят обучение на размеченных редакторами датасетах. При сокращении текста модель сохраняет важные факты, тон и стилистику, избегая добавления лишнего. В 95% случаев модели удаётся заметно сократить текст.

Улучшение текста включает в себя приведение текста к нормам русского языка, структурирование и улучшение понимания. Модель улучшения текста была обучена на большой модели Yandex GPT-2 и помощи специально подобранного промта. Оценка работы модели сложна из-за субъективности понятия хорошего текста. Критерии оценки включают сохранение важных фактов, тона и стиля автора, а также приятность и понятность текста.

Модели улучшения текста могут использоваться в любом текстовом поле на сайтах, таких как мессенджеры Telegram и WhatsApp, социальные сети VK и ОК, а также в электронной почте. В настоящее время в Яндексе работают над интеграцией моделей в текстовые редакторы, такие как Google Docs.

Улучшение текста в настоящее время доступно только для русского языка, но планируется расширение поддержки английского языка. В компании также рассматривают возможность добавления функции перевода или изменения стилистики текста, таких как сделать текст более веселым или серьезным. В самом Яндексе говорят, что открыты для идей и предложений от пользователей о других инструментах для работы с текстом.

Видео: новые языки, спикеры в субтитрах, распознавание QR-кодов

Японский и Корейский языки

За годы работы браузер накопил неплохой набор встроенных нейросетевых инструментов для работы с видео. Он может переводить и дублировать на разные языки, а также генерировать короткие пересказы и субтитры. Придумать тут что-то новое – сложно, поэтому в Яндекс сосредоточились на улучшении существующих функций.

В браузер добавили Японский и Корейский языки. Почему именно японский и корейский? Во-первых, потому что эти два языка, наряду с китайским, являются самыми распространенными и популярными в Азии. Во-вторых, в самом Яндекс получили много запросов на добавление этих языков. И сделали это потому, что об этом просят.

В Яндекс смогли создать основу, которую можно плавно расширять. Для сравнения: на китайский язык было потрачено около семи месяцев, а на корейский и японский ушло вдвое меньше времени. Уже знали, как собрать и обработать набор данных и как организовать процесс перевода, чтобы не потерять конечный контекст.

Японский и корейский переводы отлично работают на YouTube. Однако если вам нужны переводы для других платформ, в Яндексе просят, указать в комментариях, для какой платформы и почему.

Спикеры в субтитрах

В браузер также добавили полезную функцию для нейросетевых субтитров. Субтитры на разных платформах обычно не классифицируются по дикторам. Если говорит несколько человек, текст отображается сплошным цветом, в лучшем случае разделенным точками. Разработчики Яндекс заставили браузер научиться определять смену спикеров: выступления новых спикеров начинаются с новой строки и тире. Это значительно улучшает читаемость и доступность. С точки зрения доступности это тоже плюс. Люди с нарушениями слуха могут смотреть видео с большим комфортом и понимать его содержание.

«Существуют модели, поддерживающие различные варианты дикторов. Например, в дикторском тексте используется несколько голосов. Модель выбирает разные голоса для каждого диктора и вставляет их в видео; пайплайн отправляет нам четкую метку, указывающую, что говорит другой человек, и браузер понимает, что нам нужно визуально обработать вариации диктора.»

Суммаризация с восьми иностранных языков

И вот еще одна интересная новость.Теперь браузер можем пересказать описание видео с английского, немецкого, французского, итальянского, испанского, китайского, японского и корейского языков. Сам пересказ будет на русском языке. Также добавили новые платформы: помимо видео с YouTube, браузер может пересказывать ролики в VK, Zen и Rutube. В результате теперь можно за один вечер посмотреть несколько научных конференций на разных языках.

В текущую модель было добавлено распознавание языка ввода. Если видео на русском языке, то все происходит по обычной схеме: перевод видео в текст, ASR, биометрия (здесь также учитывается вариант диктора), разбивка на куски и пунктуация. Если нужно обобщить видео на иностранном языке, мы сначала проводим аналогичную процедуру с оригинальной аудиодорожкой, а затем передаем результат в модель, которая, в свою очередь, переводит его на русский.

Распознавание QR-кодов

QR-коды часто используются в видео. Например, по статистике, около 20% пользователей видеоплатформ ежедневно сталкиваются с QR-кодами в видео. С QR-кодами сложно работать на стационарном компьютере. Чтобы расшифровать QR-коды на сторонних сервисах, приходится доставать мобильный телефон или делать скриншот. Поэтому обновленный браузер научили распознавать QR-коды в видео, чтобы облегчить жизнь пользователям.

Весь процесс происходит локально. Браузер делает снимок экрана раз в секунду во время воспроизведения видео. Например, если пользователь смотрит видео в формате 4K или 8K, снимок экрана будет сжат до FullHD, так как он имеет больший размер, что в конечном итоге увеличивает нагрузку на систему. Кроме того, если видео не очень качественное, изображение следует улучшить и сделать более детализированным. Скриншоты нигде не хранятся, а сразу отправляются во встроенную библиотеку, которая распознает, есть ли в полученном изображении QR-код.

«Мы использовали библиотеку ZXing в качестве инструмента распознавания и внесли в нее небольшие, но важные улучшения. Она возвращает координаты распознанного текста и QR-кода. Используя эти координаты, браузер рисует кнопку и рамку вокруг QR-кода. Использование кнопки зависит от распознанного текста: если это ссылка, на нее можно нажать, если текст, то скопировать.»

В целом алгоритм выглядит простым, но реализовать его было сложно. Основная загвоздка была в качестве распознавания. Когда использовали чистую ZXing, то она распознавала только 70% «правильных» QR-кодов, то есть тех, которые сделаны по стандарту. В команде разработки сначала разобрались, как устроена библиотека, и придумали три доработки, которые сильно повысили качество распознавания и помогли справиться даже с самыми сложными и необычными QR.

Первое улучшение — апскейлинг изображения. Сначала пытаемся распознать QR-код с исходной картинки, а если не получается, то масштабируем её и пытаемся распознать заново. Это улучшило точность с 70% до 76%.

Второе — починили баг в библиотеке. Суть в том, что если она распознавала QR-код, то потом пыталась распознать его ещё несколько раз, но с другими параметрами. Решение – добавили в логику работы условие: если библиотека хотя бы один раз с каким-то набором параметров распознала QR-код, то считается, что распознали его, и больше к нему не возвращались. Это дало очень хороший буст — с 76% до 90%.

Третье — улучшенный алгоритм распознавания якорей (поисковых маркеров). Это большие квадраты по углам, с которых и начинается чтение кода. Но иногда QR не соответствуют стандартам: якоря превращаются в кружочки, сердечки и другие фигуры, что усложняет задачу. Убрали жёсткую привязку, что якоря должны быть квадратными, и теперь библиотека просто ищет три похожих фигуры в углах. Это улучшение позволило нам приблизиться к 100% распознаванию.

Для тестирования собрали два офлайн-датасета. Первый был из «правильных» QR-кодов, которые появлялись в трансляциях наших внутренних мероприятий. Разработчики стремились, чтобы там было 100% распознаваний (что и получилось). Ещё был «плохой» датасет. Попросили асессоров посмотреть разные видео и поискать там QR-коды в плохом качестве или нестандартной формы. Там уже распознавали меньше 30%, а после всех улучшений — порядка 60%. В этом плане эталоном для команды разработки служил iPhone 15: он тоже распознал не все нестандартные QR, а около 60%. Причём в нём за это отвечает большая и сложная нейросеть, а метод работает даже на слабом железе.

Кстати, о вопросе производительности и применении нейросетей. В процессе разработки в компании поняли, что для распознавания QR-кодов потребуется сложная ML-модель, для работы которой может не хватить ресурсов пользовательских устройств. Она бы работала очень долго и тормозила работу Браузера. Распознавание с помощью библиотеки работает быстрее: в среднем один код распознаётся за 10 миллисекунд, а в самых сложных случаях — за 25 миллисекунд.

Задача с распознаванием QR-кодов — хороший пример того, что всегда нужно думать о пользователе и не стоит пытаться отдать на откуп ИИ всё подряд. Здесь нам было важно выбрать наиболее оптимальный инструмент, чтобы решить задачу, и нейросети не подошли. Хотя в основе нашего решения всё равно лежат методы, используемые в ML.

Распознавание QR-кодов работает на всех десктопных платформах. Его можно включать и отключать в настройках инструментов для видео — там же, где живут перевод, краткий пересказ и субтитры.

Защита от фишинга

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

Основная проблема заключается в том, что весь процесс занимает много времени и ресурсов. Робот должен зайти на сайт и каким-то образом узнать, что он существует. Затем происходит проверка, занесение в базу данных и запуск. Весь процесс занимает от нескольких часов до суток, что является средним временем работы всех фишинговых сайтов. Мошенники создают доменное имя, используют его до тех пор, пока оно не будет зарегистрировано в базе данных фишинговых сайтов, затем приобретают новое доменное имя и подделывают его. В других случаях они предоставляют нашим ботам обычную страницу вместо фишинговой и пытаются таким образом обойти проверки.

Теперь в браузер внедрили ML-модели, чтобы клиент мог проверить, является ли сайт фишинговым. Таким образом, сократили цепочку проверок. Когда пользователь заходит на сайт, ML-модель оценивает его содержимое. Если сайт похож на фишинговый, на нашем сервере запускается более сложная модель. При принятии решения используются результаты ML-модели клиента и принимаются во внимание другие факторы, такие как посещаемость сайта, количество зарегистрированных пользователей на сайте, статистика отказов, время создания сайта и видимость в поиске. При этом не передаются конфиденциальные данные или текстовая информация страницы. После проверки страницы будет подсчитан балл и принято окончательное решение. Если сайт похож на фишинговый, пользователь увидит предупреждение, даже если домен был создан всего пять минут назад и еще не был посещен.

Это устраняет лазейку в предыдущих методах отлова фишинга, когда доменное имя исчезало из поля зрения на день и менялось на другое доменное имя при внесении его в базу данных.

Самой сложной частью этой работы было получение набора данных. Как уже говорилось выше, фишинг имеет короткий жизненный цикл и может быть доступен только конкретному человеку с конкретного устройства через конкретный IP-адрес. Важно успеть собрать различные факторы до того, как сайт будет уничтожен.

После сбора и фильтрации массива данных было обучено большое количество BERT-моделей, способных отличать фишинговые сайты от обычных. Однако такие модели очень громоздки. Они подходят для серверов, но не для работы в реальном времени. Поэтому мы выбрали DSSM. Модели, основанные на этом подходе, не так умны, но они быстрее: поскольку для обучения DSSM необходимо большое количество примеров, мы промаркировали огромный набор данных с помощью BERT-моделей и обучили DSSM на их результатах. Полученная модель предсказывает фишинг на лету и весит всего 20 МБ.

Модель работает очень быстро (в течение 10 миллисекунд) и не влияет на скорость работы браузера. Кроме того, повысилась точность обнаружения фишинга. Конечно, пользователи Хабра подкованы в технологиях и обычно не попадаются на «сырой» фишинг, но для многих неопытных пользователей такой инструмент защиты особенно необходим. Только в настольной версии около 1,8 миллиона пользователей ежемесячно видят наши предупреждения.


Это не все функциональные возможности, которые предлагает обновленный браузер. Например, группы вкладок теперь работают в облаке и могут быть синхронизированы на разных устройствах. Кроме того, пользователи могут выбирать вкладки и группы, которые они хотят синхронизировать. Алиса также научилась генерировать изображения с помощью нейронной сети YandexART. Чтобы создать собственную картинку, зайдите в диалог с Алисой и активируйте навык «Давай нарисуем».

Нейросетевые функции Браузера активируются с помощью компактного меню, которое автоматически появляется рядом с контентом. Например, кнопка появляется над видео или всплывающая панель при выделении текста. Если функция затрагивает сразу всю страницу, меню появляется рядом с адресной строкой.

Новые функции доступны в последних версиях «Яндекс.Браузера» для Windows, macOS и Linux, а также в мобильной версии (за исключением текстовой подсказки и распознавания QR-кодов в видео).


Подписывайтесь на Telegram-канал «Диджиталист» чтобы не пропустить ни одной новости

Поделитесь своим опытом использования новых инструментов браузера в комментариях 👇