Byte Pair Encoding
В информатике кодирование пар байтов, Byte Pair Encoding (BPE)[1][2] или кодирование диграмм[3] — это алгоритм, впервые описанный в 1994 году Филиппом Гейджем для кодирования строк текста в строки меньшего размера путём создания и использования таблицы трансляции[4]. Слегка изменённая версия алгоритма используется в токенизаторах больших языковых моделей. Первоначальная версия алгоритма была ориентирована на сжатие. Она заменяет наиболее часто встречающуюся пару байтов новым байтом, отсутствующим в исходном наборе данных. Для восстановления исходного набора данных требуется таблица поиска замен.
Изменённая версия алгоритма создаёт «токены» (единицы распознавания), соответствующие различным объёмам исходного текста, от отдельных символов (включая отдельные цифры или знаки препинания) до целых слов (даже длинных составных слов)[5][6][7].
Оригинальный алгоритм
Оригинальный алгоритм BPE работает путем итеративной замены наиболее распространённых смежных последовательностей символов в целевом тексте неиспользуемыми байтами-«заполнителями». Итерация заканчивается, когда не удается найти ни одной последовательности, в результате чего целевой текст остаётся фактически сжатым. Декомпрессию можно выполнить, обратив этот процесс, запросив известные термины-заполнители к соответствующей им последовательности, используя таблицу поиска. В исходной статье Филипп Гейджа эта таблица поиска кодируется и хранится вместе со сжатым текстом.
Примечания
- ↑ Gage, Philip (1994). "A New Algorithm for Data Compression". The C User Journal.
- ↑ A New Algorithm for Data Compression . Dr. Dobb's Journal (1 февраля 1994). Дата обращения: 10 августа 2020.
- ↑ Witten, Ian H. Managing Gigabytes / Ian H. Witten, Alistair Moffat, Timothy C. Bell. — New York : Van Nostrand Reinhold, 1994. — ISBN 978-0-442-01863-4.
- ↑ Byte Pair Encoding . Архивировано из оригинала 26 марта 2016 года.
- ↑ Sennrich, Rico; Birch, Alexandra; Haddow, Barry (2015-08-31). "Neural Machine Translation of Rare Words with Subword Units". arXiv:1508.07909 [cs.CL].
- ↑ Brown, Tom B.; Mann, Benjamin; Ryde r, Nick; Subbiah, Melanie; Kaplan, Jared; Dhariwal, Prafulla; Neelakantan, Arvind; Shyam, Pranav; Sastry, Girish; Askell, Amanda; Agarwal, Sandhini (2020-06-04). "Language Models are Few-Shot Learners". arXiv:2005.14165 [cs.CL].
- ↑ google/sentencepiece . Google (2 марта 2021). Дата обращения: 2 марта 2021.