Byte Pair Encoding: различия между версиями
In.wiki (комментарии | вклад) |
In.wiki (комментарии | вклад) |
||
Строка 1: | Строка 1: | ||
− | В [[Информатика|информатике]] '''кодирование пар байтов''', Byte Pair Encoding (BPE)<ref name="CUsersJ_Gage_1994">{{cite journal|journal=The C User Journal|date=1994|url=http://www.pennelynn.com/Documents/CUJ/HTML/94HTML/19940045.HTM|first=Philip|last=Gage|title=A New Algorithm for Data Compression}}</ref><ref>{{cite web|url=http://www.drdobbs.com/article/print?articleId=184402829|work=Dr. Dobb's Journal|title=A New Algorithm for Data Compression|date=1 February 1994|access-date=10 August 2020}}</ref> или кодирование диграмм<ref>{{cite book|last1=Witten|first1=Ian H.|last2=Moffat|first2=Alistair|last3=Bell|first3=Timothy C.|title=Managing Gigabytes|location=New York|publisher=Van Nostrand Reinhold|date=1994|isbn=978-0-442-01863-4}}</ref> — это алгоритм, впервые описанный в 1994 году | + | В [[Информатика|информатике]] '''кодирование пар байтов''', Byte Pair Encoding (BPE)<ref name="CUsersJ_Gage_1994">{{cite journal|journal=The C User Journal|date=1994|url=http://www.pennelynn.com/Documents/CUJ/HTML/94HTML/19940045.HTM|first=Philip|last=Gage|title=A New Algorithm for Data Compression}}</ref><ref>{{cite web|url=http://www.drdobbs.com/article/print?articleId=184402829|work=Dr. Dobb's Journal|title=A New Algorithm for Data Compression|date=1 February 1994|access-date=10 August 2020}}</ref> или кодирование диграмм<ref>{{cite book|last1=Witten|first1=Ian H.|last2=Moffat|first2=Alistair|last3=Bell|first3=Timothy C.|title=Managing Gigabytes|location=New York|publisher=Van Nostrand Reinhold|date=1994|isbn=978-0-442-01863-4}}</ref> — это алгоритм, впервые описанный в 1994 году Филиппом Гейджем для кодирования строк текста в строки меньшего размера путём создания и использования таблицы трансляции<ref>{{cite web|url=http://www.csse.monash.edu.au/cluster/RJK/Compress/problem.html|title=Byte Pair Encoding|archive-url=https://web.archive.org/web/20160326130908/http://www.csse.monash.edu.au/cluster/RJK/Compress/problem.html|archive-date=2016-03-26|url-status=dead}}</ref>. Слегка изменённая версия алгоритма используется в [[Токенизатор|токенизаторах]] [[Большая языковая модель|больших языковых моделей]]. Первоначальная версия алгоритма была ориентирована на [[Сжатие данных|сжатие]]. Она заменяет наиболее часто встречающуюся пару байтов новым байтом, отсутствующим в исходном наборе данных. Для восстановления исходного набора данных требуется [[Таблица поиска|таблица поиска замен]]. |
Изменённая версия алгоритма создаёт «[[Токен (искусственный интеллект)|токены]]» (единицы распознавания), соответствующие различным объёмам исходного текста, от отдельных символов (включая отдельные цифры или знаки препинания) до целых слов (даже длинных составных слов)<ref>{{cite arXiv|eprint=1508.07909|class=cs.CL|first1=Rico|last1=Sennrich|first2=Alexandra|last2=Birch|title=Neural Machine Translation of Rare Words with Subword Units|date=2015-08-31|last3=Haddow|first3=Barry}}</ref><ref>{{cite arXiv|eprint=2005.14165|last6=Dhariwal|last11=Agarwal|first10=Amanda|last10=Askell|first9=Girish|last9=Sastry|first8=Pranav|last8=Shyam|first7=Arvind|last7=Neelakantan|first6=Prafulla|first5=Jared|class=cs.CL|last5=Kaplan|first4=Melanie|last4=Subbiah|first3=Nick|last3=Ryde r|date=2020-06-04|title=Language Models are Few-Shot Learners|last2=Mann|first2=Benjamin|last1=Brown|first1=Tom B.|first11=Sandhini}}</ref><ref>{{cite web|date=2021-03-02|title=google/sentencepiece|url=https://github.com/google/sentencepiece|access-date=2021-03-02|publisher=Google}}</ref>. | Изменённая версия алгоритма создаёт «[[Токен (искусственный интеллект)|токены]]» (единицы распознавания), соответствующие различным объёмам исходного текста, от отдельных символов (включая отдельные цифры или знаки препинания) до целых слов (даже длинных составных слов)<ref>{{cite arXiv|eprint=1508.07909|class=cs.CL|first1=Rico|last1=Sennrich|first2=Alexandra|last2=Birch|title=Neural Machine Translation of Rare Words with Subword Units|date=2015-08-31|last3=Haddow|first3=Barry}}</ref><ref>{{cite arXiv|eprint=2005.14165|last6=Dhariwal|last11=Agarwal|first10=Amanda|last10=Askell|first9=Girish|last9=Sastry|first8=Pranav|last8=Shyam|first7=Arvind|last7=Neelakantan|first6=Prafulla|first5=Jared|class=cs.CL|last5=Kaplan|first4=Melanie|last4=Subbiah|first3=Nick|last3=Ryde r|date=2020-06-04|title=Language Models are Few-Shot Learners|last2=Mann|first2=Benjamin|last1=Brown|first1=Tom B.|first11=Sandhini}}</ref><ref>{{cite web|date=2021-03-02|title=google/sentencepiece|url=https://github.com/google/sentencepiece|access-date=2021-03-02|publisher=Google}}</ref>. | ||
+ | |||
+ | == Оригинальный алгоритм == | ||
+ | Оригинальный алгоритм BPE работает путем итеративной замены наиболее распространённых смежных последовательностей символов в целевом тексте неиспользуемыми байтами-«заполнителями». Итерация заканчивается, когда не удается найти ни одной последовательности, в результате чего целевой текст остаётся фактически сжатым. [[Декомпрессия|Декомпрессию]] можно выполнить, обратив этот процесс, запросив известные термины-заполнители к соответствующей им последовательности, используя [[Таблица поиска|таблицу поиска]]. В исходной статье Филипп Гейджа эта таблица поиска кодируется и хранится вместе со сжатым текстом. | ||
== Примечания == | == Примечания == | ||
[[Категория:Сжатие данных]] | [[Категория:Сжатие данных]] | ||
[[Категория:Токенизаторы]] | [[Категория:Токенизаторы]] |
Версия от 02:13, 20 августа 2025
В информатике кодирование пар байтов, 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.