- PVSM.RU - https://www.pvsm.ru -
Хотим представить наш новый инструмент для токенизации текста — YouTokenToMe. Он работает в 7–10 раз быстрее других популярных версий на языках, похожих по структуре на европейские, и в 40–50 раз — на азиатских языках. Рассказываем о YouTokenToMe и делимся им с вами в open source на GitHub. Ссылка в конце статьи!
Сегодня значительная доля задач для нейросетевых алгоритмов заключается в обработке текстов. Но, поскольку нейросети работают с числами, до передачи в модель текст нужно преобразовать.
Перечислим популярные решения, которые обычно для этого используются:
У каждого из них свои недостатки:
В последнее время популярен подход Byte Pair Encoding [1]. Изначально этот алгоритм предназначался для компрессии текстов, но несколько лет назад его стали использовать для токенизации текста в машинном переводе. Сейчас он применяется для широкого круга задач, в том числе используется в моделях BERT и GPT-2.
Наиболее эффективными реализациями BPE были SentencePiece [2], разработанная инженерами Google, и fastBPE [3], созданная исследователем из Facebook AI Research. Но нам удалось доказать, что токенизацию можно существенно ускорить. Мы оптимизировали алгоритм BPE и опубликовали исходный код, а также выложили готовый пакет в репозиторий pip.
Ниже можно сравнить результаты измерения скорости нашего алгоритма и других версий. В качестве примера мы взяли первые 100 MB корпуса данных из «Википедии» [4] на русском, английском, японском и китайском языках.
На графиках видно, что время работы существенно зависит от языка. Это объясняется тем, что в азиатских языках алфавиты больше, а слова не разделены пробелами. YouTokenToMe работает в 7–10 раз быстрее на языках, похожих по структуре на европейские, и в 40–50 раз — на азиатских. Токенизация была ускорена как минимум в два раза, а на некоторых тестах более чем в десять раз.
Таких результатов мы достигли благодаря двум ключевым идеям:
Использовать YouTokenToMe можно через интерфейс для работы из командной строки и напрямую из Python.
Больше информации вы можете найти в репозитории: github.com/vkcom/YouTokenToMe [5]
Автор: belonogov
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/324482
Ссылки в тексте:
[1] Byte Pair Encoding: https://arxiv.org/abs/1508.07909
[2] SentencePiece: https://github.com/google/sentencepiece
[3] fastBPE: https://github.com/glample/fastBPE
[4] корпуса данных из «Википедии»: https://linguatools.org/tools/corpora/wikipedia-monolingual-corpora/
[5] github.com/vkcom/YouTokenToMe: https://github.com/vkcom/YouTokenToMe
[6] Источник: https://habr.com/ru/post/460641/?utm_campaign=460641&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.