Hoppa till innehållet
AI-grafen
E· UniversitetLaboration· ca 60 min· container

Labb: byte-pair encoding från grunden

Träna en BPE-tokeniserare på en liten korpus, tokenisera ny text med de lärda sammanslagningarna och se avvägningen mellan ordförrådsstorlek och sekvenslängd.

Lär ut: bpe-tokenisering · Kräver: tokeniseringpython-listor-och-loopar

Teori

Börja med tecken. Räkna alla intilliggande par, slå ihop det vanligaste till en ny symbol, upprepa N gånger. Tokenisering av ny text tillämpar sammanslagningarna i samma ordning.

Deluppgifter

  1. par-statistik — `pair_counts(words)` där words är dict {tuple-av-symboler: antal} → dict {(a,b): antal}.
  2. merge — `merge(words, pair)` slår ihop paret i alla ord.
  3. träna och tokenisera — `train(text, n_merges)` returnerar listan av merges; `encode(text, merges)` returnerar tokens.

Evals: kompression (tokens_per_char <= 0.6)

Logga in för att köra laborationen.

Förväntade resultat

Efter 50 merges på korpusen: tokens per tecken ≤ 0,6 på ny text, vanliga ord blir en token.

Vanliga fel

  • Slår ihop fler än ett par per iteration.
  • Tillämpar merges i fel ordning vid encode.
  • Ordslutmarkör (</w>) saknas → 'is' i 'this' och 'is' blandas.