Иллюстрация рабочего стола со старым кнопочным телефоном, смартфоном, ноутбуком и рядом пустых деревянных буквенных плиток

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

Но руководство по ИИ-автодополнению на Windows рассказывает, как получать подсказки фраз на ПК. В этой статье шаг за шагом объясняется, как работает этот механизм и как он развивался.

Поколение первое: словарь, снимающий неоднозначность

T9 решала аппаратную проблему. На клавиатуре телефона двенадцать клавиш, и на большинстве из них указаны по три или четыре буквы. Компания Tegic Communications подала заявку на патент на «компьютер для устранения неоднозначности при использовании уменьшенной клавиатуры» в 1995 году, а патент был выдан в 1998-м. Каждое нажатие клавиши допускает несколько вариантов. Программа ищет в словаре слова, которым соответствует вся последовательность нажатий, и первой показывает наиболее вероятное.

Последовательности 4-6-6-3 соответствуют good, home и gone. По одним только нажатиям T9 не может определить, какое слово вы имеете в виду. Сначала программа предлагает самое частотное слово, а остальные можно перебрать. Здесь нет понимания языка: это поиск по словарю с ранжированием.

Поколение второе: подсчёт вероятности следования слов

Панель подсказок над клавиатурой телефона добавила ещё одну идею: предсказывать следующее слово до того, как вы начнёте его вводить. Классический способ это сделать — использовать n-граммную модель. Она подсчитывает на большом корпусе текстов, как часто за одним или двумя предыдущими словами следует каждое слово, и предлагает наиболее частые продолжения.

SwiftKey создала свою первую клавиатуру на основе технологии n-грамм. Когда в 2015 году компания выпустила нейросетевую версию, TechCrunch сообщил о собственном описании компанией ограничений прежнего подхода: он не мог понимать смысл слов. N-граммная модель знает, что после «see you» часто следует «soon». Но она не знает, что «soon» и «shortly» означают почти одно и то же, и учитывает всего пару предыдущих слов.

Поколение третье: нейросети, распознающие сходство

Нейросетевая языковая модель представляет слова в виде точек в пространстве, где близко расположены похожие слова. Поэтому она может предложить разумный вариант после сочетания слов, которое прежде не встречалось в её подсчётах. Neural Alpha от SwiftKey, выпущенная в октябре 2015 года, стала первой клавиатурой компании, созданной на основе такой технологии.

В статье 2018 года Google описала следующий этап развития Gboard, «Федеративное обучение для предсказания текста на мобильной клавиатуре». Модель для предсказания следующего слова была рекуррентной нейросетью, обучавшейся на телефонах, а не на сервере: устройства улучшали модель на основе локальных данных о наборе текста и отправляли обратно обновления модели, а не сам текст. В научной статье Google о системах указано, что она содержит около 1,4 миллиона параметров — совсем немного по сегодняшним меркам. В 2023 году Google сообщила, что на все нейросетевые модели Gboard для предсказания следующего слова теперь распространяются гарантии дифференциальной приватности.

Поколение четвёртое: трансформеры и целые фразы

Архитектура трансформера, представленная в статье 2017 года «Внимание — это всё, что вам нужно», позволяет модели учитывать каждое предыдущее слово в контексте, а не только несколько последних. Благодаря этому становятся возможны подсказки фраз: модель может учитывать тему и тональность всего предложения.

Apple перевела набор текста на iPhone на эту технологию в iOS 17. В анонсе 2023 года компания описала автокоррекцию, основанную на «языковой модели-трансформере — передовой языковой модели машинного обучения, работающей на устройстве для предсказания слов». Также появились встроенные подсказки, дополняющие слова или предложения при нажатии пробела.

Большие языковые модели работают так же, но в гораздо большем масштабе. Они предсказывают следующий токен — слово или его часть, — добавляют его и делают следующий прогноз. Подсказка фразы — это несколько таких повторений, остановленных заранее и показанных серым текстом «ghost text», который можно принять или проигнорировать. В руководстве по ghost text показано, как это выглядит на Windows.

ПоколениеЧто анализируетЧто предлагаетТипичный недостаток
Устранение неоднозначности по словарю (T9)Нажатые клавиши для одного словаСамое частотное слово, соответствующее последовательностиНе то слово, хотя клавиши те же
Статистика n-граммОдно или два последних словаВероятные следующие словаШаблонные подсказки, не учитывающие тему
Рекуррентная нейросетьПредыдущую часть предложения в сжатом видеСледующие слова, подходящие по смыслуТеряет нить в длинных предложениях
Языковая модель-трансформерВесь видимый контекстСлова, фразы или оставшуюся часть предложенияСвязную фразу, которую вы не имели в виду

Что происходит между нажатием клавиши и появлением подсказки

Какой бы ни была модель, процесс состоит из одних и тех же этапов:

  1. Клавиатура или приложение анализирует контекст: собирает текст перед курсором и иногда определяет, в каком приложении вы находитесь.
  2. Модель присваивает вероятность возможным следующим словам или фразам.
  3. Программа отбрасывает варианты с низкой степенью уверенности, а также подсказки в тех полях, где им не место, например в полях пароля.
  4. Она показывает от одного до трёх лучших вариантов: на телефонах — в виде панели слов, а инструменты для подсказок фраз выводят встроенный в строку ghost text.
  5. Многие системы затем адаптируются к словам и фразам, которые вы принимаете и часто вводите.

Этап фильтрации важнее, чем кажется. Если инструмент всегда что-то показывает, вы привыкаете его игнорировать. Если он молчит, когда не уверен, к его подсказкам прислушиваются.

Почему предсказания часто ошибаются

Предсказание — это всего лишь вероятность. Модель может угадать, как сформулировать вежливый ответ. Но она не знает, какую дату вы собираетесь назвать или кого именно имеете в виду. Первые слова нового сообщения предсказать сложнее всего, потому что контекста почти нет. Подсказки становятся лучше по мере того, как предложение удлиняется.

Ошибочные варианты не создают проблем благодаря тому, как предлагаются подсказки. Если для принятия нужно нажать одну клавишу, а для игнорирования — ни одной, ошибка ничего не стоит: вы просто продолжаете печатать.

Где работает предиктивный ввод на ПК с Windows

В Windows есть подсказки отдельных слов при наборе текста на физической клавиатуре. В руководстве по настройке Microsoft указано, что программа предсказывает слова по мере ввода букв. Функция прогнозирования текста в Word идёт дальше и предлагает слова или фразы. Microsoft относит её к подключенным возможностям Office, которые анализируют ваш контент, причём базовые возможности офлайн-доступны только в некоторых сценариях.

Typeahead запускает компактную языковую модель на вашем ПК и предлагает продолжение предложения в приложениях Windows, таких как Word, Outlook, Chrome и WhatsApp, в том числе без подключения к интернету. Примите подсказку клавишей Tab или стрелкой вправо. В статье о о том, почему небольшой локальной модели достаточно объясняется, почему для этой задачи не нужна облачная модель огромного размера.

Часто задаваемые вопросы

Является ли предиктивный ввод разновидностью ИИ?
Современный предиктивный ввод обычно использует ИИ: клавиатуры телефонов и инструменты для подсказок фраз применяют нейросетевые языковые модели. Более старые системы, например T9, просто искали слова в словаре и ранжировали их по частоте употребления, не используя обучаемую модель.
Обучается ли предиктивный ввод на том, что я печатаю?
Многие системы обучаются. Они адаптируются к словам и фразам, которые вы часто используете. Место, где происходит обучение — на устройстве или сервере, — зависит от продукта, поэтому ознакомьтесь с информацией о конфиденциальности.
Почему Windows предлагает только отдельные слова?
Функция Windows для физической клавиатуры предлагает слова на основе вводимых вами букв. Для подсказок фраз нужен языковой модель, которая анализирует предложение целиком. Такие функции предлагают прогнозирование текста в Word и сторонние инструменты, например Typeahead.
Почему первая подсказка в сообщении обычно неудачная?
Потому что контекста почти нет. Языковая модель делает прогноз на основе слов перед курсором, поэтому подсказки становятся лучше по мере того, как предложение удлиняется.

Typeahead переносит предсказание фраз с локальной модели в настольные приложения Windows. Попробуйте его на собственных текстах в течение семи дней.

Скачать Typeahead