Байт-парне кодування та WordPiece – це два широко використовувані алгоритми токенізації підслів, що лежать в основі сучасних моделей NLP, які відрізняються головним чином тим, як вони об'єднують токени під час навчання та їхніми метриками оцінювання.
Найважливіше
BPE об'єднується виключно на основі підрахунку частоти, тоді як WordPiece оптимізує для ймовірності навчальних даних
Моделі GPT використовують BPE, тоді як BERT та його варіанти покладаються на токенізацію WordPiece.
WordPiece зазвичай створює лінгвістично чистіші межі токенів, ніж частотно-орієнтований BPE.
Обидва методи вирішують проблему відсутності словникового запасу, але за допомогою принципово різних цілей оптимізації
Що таке Кодування пар байтів?
Алгоритм токенізації підслів, який ітеративно об'єднує найчастіше зустрічаються суміжні пари символів у нові токени.
BPE був спочатку розроблений у 1994 році як алгоритм стиснення даних, перш ніж був адаптований для NLP Зеннрічем та ін. у 2016 році.
Алгоритм починає зі словника окремих символів і багаторазово об'єднує найчастіше зустрічаються пари суміжних токенів.
GPT-2, GPT-3 та RoBERTa використовують токенізацію BPE як частину своїх конвеєрів попередньої обробки.
BPE використовує підрахунок частоти, щоб визначити, які пари токенів об'єднати, що робить його виключно керованим даними без мовної моделі.
Алгоритм може створювати слова, що виходять за межі словникового запасу, розкладаючи їх на відомі підсловні одиниці, покращуючи обробку рідкісних термінів.
Що таке Токенізація WordPiece?
Метод токенізації підслів, який об'єднує токени на основі максимізації правдоподібності, а не на основі частоти.
WordPiece спочатку був розроблений Google для японських та корейських систем голосового пошуку, перш ніж був прийнятий для текстового пошуку.
Алгоритм вибирає злиття, які максимізують ймовірність навчальних даних, а не просто підраховує частоти
BERT, DistilBERT та ALBERT використовують токенізацію WordPiece, зазвичай із розміром словника 30 522 токени.
WordPiece часто ініціалізує свій словник, щоб включити всі окремі символи, перш ніж розпочати процес об'єднання.
Цей метод, як правило, створює менше токенів символьного рівня для поширених слів порівняно з BPE, що підвищує ефективність.
Таблиця порівняння
Функція
Кодування пар байтів
Токенізація WordPiece
Критерій об'єднання
Частота сусідніх пар
Ймовірність навчальних даних
Основні випадки використання
Серія GPT, RoBERTa, CLIP
БЕРТ, ДістилБЕРТ, АЛЬБЕРТ
Ініціалізація словника
Окремі символи або байти
Окремі персонажі
Обробка рідкісних слів
Розділяється на часті підсловні одиниці
Розподіл на основі сегментації на основі правдоподібності
Швидкість тренування
Зазвичай швидше завдяки простому підрахунку
Трохи повільніше через обчислення правдоподібності
Стиль виводу токена
Частіше більш детальний
Часто більш консолідований для поширених слів
Оригінальна розробка
1994 як стиснення; 2016 для НЛП
Команда Google з розпізнавання мовлення
Детальне порівняння
Філософія основного алгоритму
BPE підходить до токенізації як до задачі стиснення, жадібно об'єднуючи будь-які пари, що найчастіше зустрічаються в навчальному корпусі. Цей прямолінійний підхід, заснований на частоті, робить його інтуїтивно зрозумілим та відносно швидким для обчислення. WordPiece займає більш ймовірнісну точку зору, запитуючи, яке злиття зробить навчальні дані найімовірнішими за припущення моделі мови уніграм. Цей незначний зсув у фреймінгу призводить до різних меж токенів, особливо для морфологічно багатих мов.
Межі токенів та лінгвістичні властивості
Оскільки BPE виключно женеться за частотою, він іноді розділяє слова в лінгвістично неприродних точках, якщо це трапляються поширені закономірності в даних. Підхід WordPiece, заснований на ймовірності, як правило, краще враховує межі морфем, створюючи токени, які ближче відповідають значущим одиницям. Для англійської мови обидва методи працюють однаково, але різниця стає більш помітною в мовах з багатшою морфологією, таких як німецька чи турецька.
Впровадження та прив'язка до екосистеми
Вибір між цими токенізаторами часто зводиться до того, яку архітектуру моделі ви використовуєте, а не до глибоких уподобань щодо самого алгоритму. Сімейство GPT OpenAI стандартизоване на BPE, тому будь-хто, хто налаштовує або розгортає ці моделі, успадковує цю схему токенізації. Екосистема BERT від Google закріпила WordPiece як фактичний вибір для моделей трансформаторів лише з кодером. Таке закріплення екосистеми означає, що фахівці рідко змінюють токенізатори незалежно від архітектури моделі.
Обробка особливих випадків
Обидва алгоритми мають проблеми з певними граничними випадками, але по-різному. BPE може бути крихким з пробілами та пунктуацією, іноді створюючи неочікувані токени, коли форматування змінюється. WordPiece зазвичай додає спеціальний префікс (наприклад, ## у BERT) для позначення підслів продовження, що робить реконструкцію оригінального тексту більш чіткою, але також вводить артефакти токенізації, які мають навчитися обробляти наступні моделі.
Сучасні варіанти та еволюція
За останні роки відбувся значний розвиток обох алгоритмів. SentencePiece пропонує єдину платформу, яка може реалізувати токенізацію моделей мови BPE, WordPiece або unigram за допомогою однієї бібліотеки. BPE на рівні байтів (використовується в GPT-2) працює з необробленими байтами, а не з символами Unicode, повністю усуваючи проблеми з невідомими токенами. Тим часом, новіші підходи, такі як BPE-dropout, вводять стохастичність під час навчання для підвищення стійкості. Ці розробки показують, що хоча BPE та WordPiece залишаються фундаментальними, ця галузь продовжує розвиватися.
Переваги та недоліки
Кодування пар байтів
Переваги
+Простий та інтуїтивно зрозумілий
+Швидке навчання з мінімальними обчисленнями
+Добре працює з вхідними даними байтового рівня
+Широко підтримується в сучасних бібліотеках
+Обробляє будь-який текст у форматі Unicode
Збережено
−Може розділятися на лінгвістично непарних межах
−Чутливість до перекосу частоти навчального корпусу
−Відсутність явної мовної моделі під час навчання
−Може надмірно сегментувати рідкісні технічні терміни
−Обробка пробілів може бути невідповідною
Токенізація WordPiece
Переваги
+Краще узгодження з межами морфем
+Явна оптимізація на основі правдоподібності
+Очистити маркери продовження за допомогою префікса ##
+Зрілі інструменти в TensorFlow та Hugging Face
+Ефективний для поширених слів у навчальних даних
Збережено
−Тісно пов'язаний з екосистемою BERT
−Трохи повільніші навчальні обчислення
−Префіксні символи ускладнюють токенізацію
−Менша гнучкість для нетекстових даних, таких як код
−Словниковий запас може роздутися через рідкісні префікси
Поширені помилкові уявлення
Міф
BPE та WordPiece завжди створюють різні токенізації для одного й того ж тексту.
Реальність
Для багатьох поширених англійських слів обидва алгоритми фактично сходяться на ідентичних або майже ідентичних сегментаціях. Відмінності стають більш очевидними для рідкісних слів, морфологічно складних термінів та мов з багатшими флективними моделями, ніж англійська.
Міф
WordPiece використовує нейронну мережу під час токенізації.
Реальність
Незважаючи на використання в нейронних моделях, сам WordPiece є повністю ненейронним. Обчислення правдоподібності базується на простій статистиці частот уніграм, а не на якомусь вивченому нейронному представленні. «Мовна модель» у WordPiece — це просто таблиця частот, а не трансформатор чи рекурентна мережа.
Міф
BPE не може обробляти мови з великими наборами символів, такі як китайська.
Реальність
Байтовий BPE вирішує цю проблему, оперуючи з необробленими байтами UTF-8, а не з символами. Це означає, що він може представляти будь-який текст Unicode, ніколи не зустрічаючи невідомих символів, хоча для скриптів із тисячами символів може знадобитися більше токенів.
Міф
Вибір токенізатора суттєво впливає на продуктивність моделі для виконання наступних завдань.
Реальність
Хоча токенізація має значення, архітектура моделі та масштаб навчальних даних зазвичай переважають вибір токенізатора за важливістю. Дослідження показали, що BPE та WordPiece працюють порівнянно, коли всі інші фактори рівні, причому відмінності зазвичай невеликі та залежать від завдання.
Міф
WordPiece був винайдений спеціально для BERT.
Реальність
WordPiece виник на кілька років раніше, ніж BERT. Спочатку Google розробив його для голосового пошуку японською та корейською мовами на початку 2010-х, а потім адаптував для нейронного машинного перекладу, ще до того, як він з'явився в BERT. Асоціація з BERT є сильною просто тому, що BERT зробив його відомим у спільноті дослідників НЛП.
Міф
Розмір словникового запасу BPE не має значення, головне, щоб він був достатньо великим.
Реальність
Розмір словника суттєво впливає як на продуктивність моделі, так і на обчислювальну ефективність. Занадто малий розмір призводить до марнування ресурсів моделі на довгі послідовності токенів. Занадто великий розмір призводить до того, що матриці вбудовування стають громіздкими, а рідкісні токени отримують погане представлення. Більшість практиків ретельно налаштовують цей гіперпараметр, зазвичай встановлюючи значення від 30 000 до 50 000 токенів.
Часті запитання
Яка основна відмінність між BPE та WordPiece?
Фундаментальна різниця полягає в тому, як вони вирішують, які пари токенів об'єднувати під час навчання. BPE просто підраховує, як часто пари з'являються разом, і об'єднує найчастіше зустрічану пару. WordPiece натомість обчислює, яке злиття максимізує ймовірність навчальних даних за моделлю уніграми. Це означає, що BPE керується виключно частотою, тоді як WordPiece включає ймовірнісний критерій, який прагне створювати більш лінгвістично значущі межі.
Чому GPT використовує BPE, а BERT — WordPiece?
Цей вибір відображає різні дослідницькі групи та їхній історичний контекст, а не глибоку технічну необхідність. Лінія GPT від OpenAI успадкувала BPE від попередніх робіт зі стиснення на рівні байтів і визнала його ефективним для свого підходу до генеративного моделювання мови. Команда Google BERT вже розробила WordPiece для своїх систем мовлення та перекладу, тому вони, природно, застосували свої існуючі інструменти. Обидва працюють достатньо добре, щоб жодна з груп не відчувала потреби переходити.
Чи може EEK BPE та WordPiece обробляти мови, які не використовують пробіли між словами?
Так, обидва алгоритми добре працюють без пробілів, хоча вони можуть створювати менш інтуїтивну сегментацію. Оскільки обидва працюють з послідовностями символів або байтів, відсутність пробілів не порушує їх. Однак такі мови, як тайська, китайська або японська, часто отримують користь від попередньої сегментації або спеціалізованої попередньої обробки, оскільки суто статистичне об'єднання може не відповідати інтуїції носіїв мови щодо меж слів.
Як мені вибрати між BPE та WordPiece для нового проєкту?
На практиці ви рідко обираєте незалежно від архітектури вашої моделі. Якщо ви налаштовуєте GPT-2, GPT-3 або RoBERTa, вам необхідно використовувати їхній токенізатор BPE для підтримки сумісності. Для моделей на основі BERT потрібен WordPiece. Якщо ви створюєте з нуля, врахуйте, що BPE трохи простіший у впровадженні та налагодженні, тоді як WordPiece може забезпечити дещо чистіші лінгвістичні розбиття. Сучасні бібліотеки, такі як SentencePiece, дозволяють легко експериментувати з обома.
Який розмір словникового запасу слід використовувати з BPE або WordPiece?
Більшість сучасних моделей NLP використовують від 30 000 до 50 000 токенів, причому від 32 000 до 50 000 є особливо поширеними значеннями за замовчуванням. Менші словники змушують використовувати більше розділень на підслів, що збільшує довжину послідовності, але забезпечує кращу обробку рідкісних термінів. Більші словники зменшують довжину послідовності, але вимагають більших матриць вбудовування та можуть мати проблеми з дуже рідкісними токенами. Оптимальний розмір залежить від вашої мови, розміру корпусу та обчислювального бюджету.
Чи можуть ці токенаізатори обробляти емодзі, код або інший нестандартний текст?
Байтовий BPE надійно обробляє їх, оскільки працює з необробленими байтами, а не з попередньо визначеними наборами символів. Стандартний BPE та WordPiece можуть мати проблеми з рідкісними символами Unicode, якщо їхній початковий словник явно не включає їх. Більшість продакшн-реалізацій зараз використовують байтове або розширене покриття Unicode, щоб уникнути проблем з невідомими токенами в тексті соціальних мереж, вихідному коді та багатомовному контенті.
Що таке SentencePiece і як він пов'язаний з BPE та WordPiece?
SentencePiece — це бібліотека токенізації з відкритим кодом від Google, яка забезпечує уніфіковану реалізацію кількох алгоритмів підслів, включаючи BPE, WordPiece та токенізацію мовних моделей unigram. Вона обробляє попередню токенізацію, нормалізацію та навчання словникового запасу в одному інструменті. Замість того, щоб бути окремим алгоритмом, уявіть собі її як гнучкий фреймворк, який дозволяє вам вибирати та налаштовувати бажану стратегію токенізації з узгодженими інтерфейсами.
Чи мають BPE та WordPiece значення для сучасних моделей великих мов програмування?
Абсолютно. Незважаючи на величезний масштаб моделей, таких як GPT-4, Claude та Gemini, всі вони все ще спираються на токенізацію підслів у своїй основі. Конкретний алгоритм може відрізнятися, а деякі новіші моделі експериментують з альтернативними підходами, але основна проблема представлення тексту змінної довжини в просторах словника фіксованого розміру залишається універсальною. Розуміння BPE та WordPiece забезпечує важливе інтуїтивне уявлення про те, як ці моделі обробляють мову.
Чому помилки токенізації спричиняють таку заплутану поведінку в мовних моделях?
Токенізація відбувається ще до того, як нейронна мережа побачить текст, тому будь-яка особливість у розділенні рядків вбудовується у вхідне представлення моделі. Моделі також можна використовувати за допомогою артефактів токенізації, де спеціально створені рядки обходять фільтри безпеки, токенізуючись неочікуваним чином. Це робить надійний дизайн токенізації напрочуд важливим для надійності та безпеки моделі.
Чи є спосіб візуалізувати, як BPE або WordPiece токенізує певний текст?
Так, більшість сучасних бібліотек NLP надають інструменти для цього. Бібліотека Hugging Face Transformers містить методи tokenizer.decode та tokenizer.convert_ids_to_tokens, які показують, як саме розділяється текст. Також є веб-інструменти візуалізації, де можна вводити текст і бачити виділені межі токенів. Вони безцінні для налагодження неочікуваної поведінки моделі та розуміння того, чому певні вхідні дані заплутують вашу систему.
Чим відрізняється BPE-dropout від стандартного BPE?
BPE-dropout, запроваджений у 2020 році, випадковим чином пропускає деякі операції злиття під час навчання з певною ймовірністю. Це створює кілька дійсних токенізацій для одного й того ж слова, що діє як форма доповнення даних. Отримана модель стає більш стійкою до варіацій токенізацій і загалом краще виконує наступні завдання, особливо з обмеженими навчальними даними. Це просте, але ефективне вдосконалення класичного алгоритму BPE.
Чи можна поєднувати токенізації BPE та WordPiece в одному конвеєрі?
Технічно можливо, але практично недоцільно. Різні токенізатори створюють несумісні ідентифікатори токенів та зіставлення словника, тому їх змішування вимагатиме ретельного вирівнювання шарів або повторної токенізації, що зазвичай знижує продуктивність. Якщо вам потрібно поєднати моделі, що використовують різні токенізатори, стандартний підхід полягає в перенавчанні або адаптації одного до іншого або використанні уніфікованого токенізатора, такого як SentencePiece, для всіх компонентів з самого початку.
Висновок
Оберіть BPE, коли працюєте з моделями в стилі GPT або коли вам потрібна проста та швидка токенізація, яка обробляє різноманітний текст, включаючи код та багатомовні дані. Оберіть WordPiece, коли будуєте на архітектурах на основі BERT або коли вам потрібні межі токенів, які точніше відповідають лінгвістичним морфемам. Для більшості практиків рішення фактично приймається на основі обраної вами попередньо навченої моделі.