tokenizers v1 er tit tientals gange hurtigere
Hugging Faces bibliotek giver præcis de samme token-ID'er som før, men dropper regex-fortolkning og genbruger gentagne ord fra en cache.
Samme tokens, langt færre beregninger
En tokenizer omdanner tekst til de tal, modellen læser. Det sker i fire trin: normalisering, præ-tokenisering, selve modellen og efterbehandling. Det er især modeltrinet, der er ombygget.
Hugging Faces tokenizers v1 producerer præcis de samme token-ID'er som v0.23. API, ordforråd og ranglister er bevaret uændrede, så alle eksisterende modeller kan bruge det uden skift.
Biblioteket er stadig generelt og understøtter BPE, WordPiece og Unigram. Otte af de ti målte modelfamilier bruger BPE, hvor teksten bygges sammen parvis efter en lært rangliste.
Håndkodet mønster erstatter regex-motor
BPE-modeller deler først teksten med et regulært udtryk. Det mønster ligger fast i modellen og ændrer sig aldrig under kørsel, så der er ingen grund til at fortolke det med et general-purpose regex-bibliotek hver gang.
I stedet skriver v1 en ækvivalent funktion i hånden, som bruger CPU'ens SIMD-instruktioner: én instruktion behandler mange bytes på én gang og passer godt til UTF-8-tekst. Bitcannon ser byte-strømmene som parallelle bitstrømme og beslutter 64 bytes per registeroperation. Samme idé driver Parabix og simdjson.
Grænsen er genkendelse: kun en håndfuld grammere dækker de fleste byte-level BPE-modeller. Kendes mønsteret ikke, beholder tokenizeren regex-stien, og hastighedsgevinsten udebliver.
Gentagne ord hoppes over
Rigtig tekst indeholder mange gentagne ord. Da BPE altid giver samme ID'er for samme præ-token, kan v1 gemme resultatet efter første behandling. En trådlokal cache kobler præ-tokenets bytes til dets token-ID'er, så senere forekomster springer sløjfen over.
Jo længere tekst, jo større en andel udgør gentagelserne. Nye ord dukker dog fortsat op, og de giver cache-træf, der udebliver.
Den anden besparelse ligger i sløjfen, der gang på gang finder det højestrangerede nabopar og slår det sammen. Før allokerede den nyt hukommelse ved hver kald og byggede en ny prioritetskø for hvert præ-token. v1 genbruger i stedet en midlertidig buffer, som kalderen selv ejer.
Flere detaljer
- IBM, NVIDIA og ExecuTorch-holdet bidrog patches og test på flere hardwaretyper.
- tokbench kan genkøre alle benchmarks på din egen hardware.
- Målingerne er lavet på release candidate af tokenizers v1.
- Idéer kom fra blandt andet gigatoken, tiktoken og kitoken.
Kilder:
Hugging Face →
Genfortalt i egne ord af AI-nyheder.com · Tjek altid originalkilden, før du handler på vigtige oplysninger.