YouTokenToMe — это библиотека для предобработки текстовых данных. Инструмент работает в 7-10 раз быстрее аналогов для текстов на алфавитных языках и в 40-50 на иероглифических языках. Библиотека была разработана исследователями из ВКонтакте.

Сейчас большая часть задач, которые решаются нейросетями, связаны с обработкой текстов. Нейросети принимают на вход числовые данные, поэтому тексты перед этим предобрабатывают.

Токен в обработке естественного языка — это единица анализа. Токенами могут быть отдельные слова, словосочетания (n-граммы) или части слов. Процесс разделения текста на единицы анализа называется токенизацией.

Популярными методами для предобработки текстов являются:

  • Разделение по пробелу;
  • Токенизация, основанная на правилах (например, в SpaCy и NLTK);
  • Лемматизация, стемминг

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

  • Размер словаря, от которого зависит размер векторного представления слов в модели, не контролируется;
  • Информация о словообразовании не используется (например, не используется связь слов с одним корнем с приставкой и без);
  • Способы токенизации зависят от языка

Что такое BPE

Алгоритм Byte Pair Encoding был разработан, чтобы учитывать перечисленные выше недостатки. BPE делит слова на части. Таким образом получается избежать проблемы с тем, что модель не знает слов, которые не находятся в словаре обучающей выборки.

Изначально BPE использовался для сжатия текста. Недавно его начали использовать для токенизации текстовых данных. В таких моделях, как BERT и GPT-2, тексты токенизировались с помощью BPE.

Наиболее эффективные реализации алгоритма были SentencePiece, который разработали в Google, и fastBPE от Facebook AI Research. Исследователи из ВКонтакте показали, что алгоритм может работать в 7-10 раз быстрее. Оптимизированная реализация BPE лежит в репозитории на GitHub.

Разработчики сравнили разные реализации алгоритма по времени. В экспериментах они использовали 100 мегабайт базы Википедии на русском, английском, японском и китайском. График ниже показывает, что скорость алгоритма зависит от языка. Это можно объяснить различием в количестве символов в азиатских языках. Помимо этого, в языках с иероглифами слова не могут делиться по пробелу.

1

Результаты эксперимента

Оптимизированный BPE работает как минимум в два раза быстрее существующих альтернатив. В каких-то тестах скорость работы выросла в 10 раз.

Две основные характеристики оптимизированного алгоритма:

  • Линейное время работы, которое зависит от размера обучающего корпуса текстов;
  • Использование нескольких потоков для обучения и токенизации. Это сокращает время работы алгоритма в несколько раз.

Аналоговые алгоритмы имеют более высокую асимптотическую сложность.

Автор: Анна

Источник: Neurohive

ССЫЛКА НА ИСТОЧНИК