Aigest.
Narzędzia AI

Gigatoken: Nowy tokenizer BPE na Rust koduje tekst z prędkością 24,53 GB/s, 989x szybciej niż HuggingFace

Marcel Rød, doktorant ze Stanfordu, zaprezentował Gigatoken – nowy tokenizer BPE napisany w Rust, który osiąga rekordowe prędkości przetwarzania tekstu, znacznie przewyższając istniejące rozwiązania.

RA

Udostępnij
Gigatoken: Nowy tokenizer BPE na Rust koduje tekst z prędkością 24,53 GB/s, 989x szybciej niż HuggingFace
Fot. MarkTechPost

Tokenizacja, często pomijana w analizie wydajności modeli językowych, zyskuje nowe światło dzięki projektowi Gigatoken. Opracowany przez Marcela Røda, doktoranta ze Stanfordu, i udostępniony na licencji MIT, ten tokenizer BPE (Byte-Pair Encoding) napisany w języku Rust z wiązaniami dla Pythona, rewolucjonizuje prędkość przetwarzania tekstu, osiągając gigabajty na sekundę na pojedynczej maszynie.

Rekordowa wydajność Gigatokena

Testy przeprowadzone na korpusie owt_train.txt o wielkości 11,9 GB z wykorzystaniem procesora AMD EPYC 9565 (144 rdzenie, konfiguracja dual-socket) wykazały, że Gigatoken przetwarza dane z oszałamiającą prędkością 24,53 GB/s. Dla porównania, tiktoken OpenAI osiągnął 36,0 MB/s, a tokenizery HuggingFace zaledwie 24,8 MB/s na tej samej konfiguracji sprzętowej. Oznacza to przewagę wydajnościową Gigatokena odpowiednio 681x i 989x.

Imponujące wyniki powtórzyły się również na innych platformach. Na Apple M4 Max (16 rdzeni) ten sam test GPT-2 osiągnął 8,79 GB/s, co stanowi 1268-krotne przyspieszenie w stosunku do tokenizatorów HuggingFace i 140-krotne w stosunku do tiktokena. Na konsumenckim procesorze AMD Ryzen 7 9800X3D prędkość wyniosła 6,27 GB/s, czyli 106x i 68x szybciej. Marcel Rød podkreśla, że te przyspieszenia nie są efektem specyfiki jednego procesora czy słownika.

Gigatoken (wersja 0.9.0, wydana 21 lipca 2026) jest dostępny w PyPI i można go zainstalować za pomocą pip install gigatoken. Repozytorium projektu składa się w 66,2% z kodu Rust i w 33,3% z Pythona. Obsługuje 23 różne rodziny tokenizatorów, w tym popularne modele takie jak GPT-2, Llama 3-4, Qwen 2-3.6, DeepSeek V3/R1/V4, GLM 4-5, Gemma i Mistral.

Dwa tryby działania i źródła optymalizacji

Gigatoken oferuje dwa tryby użytkowania:

  • Tryb kompatybilności: Umożliwia opakowanie istniejącego tokenizera HuggingFace lub tiktoken, zachowując dokładną zgodność wyjścia. Marcel Rød zaznacza, że w tym trybie, ze względu na narzut Pythona związany z tworzeniem list i konwersją string-to-bytes, wydajność spada do około 200-300x przyspieszenia.
  • Natywne API Gigatokena: Pozwala Rustowi na bezpośrednie odczytywanie plików, co jest źródłem publikowanych, rekordowych wyników wydajności.

Kluczowe zyski wydajnościowe Gigatokena nie pochodzą z ulepszonej pętli łączenia BPE, lecz z dwóch obszarów, które większość tokenizatorów traktuje jako rozwiązane:

  1. Pretokenizacja: Zamiast delegować to zadanie do silnika wyrażeń regularnych, Gigatoken implementuje je ręcznie. Dziennik optymalizacji pokazuje, że to podejście zapewnia 2,27x przewagę nad bazową wersją winnow + NEON i 22,3x nad implementacją opartą na wyrażeniach regularnych.
  2. Buforowanie pretokenów: Jeśli słowo zostało już wcześniej przetworzone, jego zakodowane tokeny są wyszukiwane w pamięci podręcznej zamiast być ponownie obliczane. Marcel Rød podkreśla, że jest to trudne do zaimplementowania w praktyce ze względu na szybki wzrost pamięci podręcznej i długi ogon rozkładu pretokenów. Dodatkowo, interakcje z Pythonem są minimalizowane, a wątki zaprojektowane tak, aby minimalnie oddziaływały na siebie.

Należy zaznaczyć, że porównanie nie jest w pełni bezpośrednie. Gigatoken koduje całe, niepodzielone pliki, samodzielnie znajdując granice dokumentów i automatycznie równolegle przetwarzając dane. W przeciwieństwie do tego, HuggingFace (encode_batch_fast) jest oceniany na pierwszych 100 MB, a tiktoken (encode_ordinary_batch) na pierwszych 1 GB, oba już podzielone na |endoftext|. Ponieważ rozwiązania bazowe pomijają buforowanie, ich przepustowość pozostaje jednolita.

Chociaż główne przyspieszenia dotyczą BPE, Gigatoken oferuje również znaczące ulepszenia dla tokenizatorów SentencePiece, choć o rząd wielkości niższe. Na EPYC, Gemma 1 przetwarza z prędkością 2,51 GB/s (7,3x przyspieszenie), Gemma 3 z 3,43 GB/s (9,6x), a CodeLlama z 3,47 GB/s (10,0x).

Niezależna weryfikacja na KrabArena potwierdziła te wyniki. Na maszynie wirtualnej Intel Xeon z 4 vCPU, Gigatoken 0.9.0 osiągnął medianę 277,8 MB/s na 174 MB wycinku OpenWebText, przewyższając tiktoken 0.13.0 (10,62 MB/s) o 26,2x i tokenizery 0.23.1 (3,33 MB/s) o 83,4x.

Znaczenie dla rozwoju AI

Wprowadzenie Gigatokena przez Marcela Røda stanowi istotny krok naprzód w dziedzinie przetwarzania języka naturalnego. Znaczące przyspieszenie procesu tokenizacji może mieć dalekosiężne konsekwencje dla rozwoju i wdrażania dużych modeli językowych. Szybsze przetwarzanie danych wejściowych oznacza krótszy czas treningu modeli, efektywniejsze wykorzystanie zasobów obliczeniowych oraz możliwość pracy z większymi korpusami tekstowymi, co w efekcie może prowadzić do tworzenia bardziej zaawansowanych i wydajnych systemów AI. Projekt ten podkreśla również, jak ważne jest optymalizowanie nawet tych elementów stosu technologicznego, które są często niedoceniane, otwierając drogę do dalszych innowacji w obszarze sztucznej inteligencji.

Źródło: marktechpost.com

Komentarze

Zaloguj się, aby dołączyć do dyskusji.

Nikt jeszcze nie skomentował. Bądź pierwszy!

Czytaj dalej

Sztuczna inteligencja zlikwidowała branżę pisania prac akademickich w Kenii
UBS wymaga od kandydatów znajomości AI. Umiejętności sztucznej inteligencji kluczowe dla przyszłych bankowców
Turyści uratowani po tym, jak Google Gemini doradził im zbyt mało prowiantu na Mount Shasta
Google Gemini Flash z nową funkcją agentowego rozumienia wideo: oszczędność tokenów do 88%
OpenAI prezentuje GPT-6 Astra: model do zastosowań komputerowych z kontekstem 1.05M i progiem cyberbezpieczeństwa
Perplexity udostępnia Lily: silnik wnioskujący w Rust i Metal dla Apple Silicon

Bądź na bieżąco ze światem AI

Najważniejsze newsy, recenzje i poradniki — raz w tygodniu, prosto na maila. Bez spamu.