Delen via


Tokens begrijpen

Tokens zijn woorden, tekensets of combinaties van woorden en leestekens die worden gegenereerd door grote taalmodellen (LLM's) wanneer ze tekst opsplitsen. Tokenisatie is de eerste stap in de training. De LLM analyseert de semantische relaties tussen tokens, zoals hoe vaak ze samen worden gebruikt of dat ze in vergelijkbare contexten worden gebruikt. Na de training gebruikt de LLM deze patronen en relaties om een reeks uitvoertokens te genereren op basis van de invoervolgorde.

Tekst omzetten in tokens

De set unieke tokens waarop een LLM wordt getraind, wordt ook wel de woordenlijst genoemd.

Denk bijvoorbeeld aan de volgende zin:

I heard a dog bark loudly at a cat

Deze tekst kan worden tokenized als:

  • I
  • heard
  • a
  • dog
  • bark
  • loudly
  • at
  • a
  • cat

Door een voldoende grote set trainingsteksten te hebben, kan tokenisatie een woordenlijst van vele duizenden tokens compileren.

Veelgebruikte tokenisatiemethoden

De specifieke tokenisatiemethode verschilt per LLM. Veelvoorkomende tokenisatiemethoden zijn:

  • Word-tokenisatie (tekst wordt gesplitst in afzonderlijke woorden op basis van een scheidingsteken)
  • Tekentokenisatie (tekst wordt gesplitst in afzonderlijke tekens)
  • Subwordtokenisatie (tekst wordt gesplitst in gedeeltelijke woorden of tekensets)

De GPT-modellen, ontwikkeld door OpenAI, gebruiken bijvoorbeeld een type subwordtokenisatie dat bekend staat als Byte-Pair Encoding (BPE). OpenAI biedt een hulpprogramma om te visualiseren hoe tekst wordt tokenized.

Er zijn voor- en nadelen voor elke tokenisatiemethode:

Tokengrootte Voordelen Nadelen
Kleinere tokens (teken- of subwoordtokenisatie) - Hiermee kan het model een breder bereik van invoer verwerken, zoals onbekende woorden, typfouten of complexe syntaxis.
- Kan het zijn dat de vocabulaire grootte wordt verminderd, waardoor er minder geheugenbronnen nodig zijn.
- Een bepaalde tekst wordt opgesplitst in meer tokens, waarvoor extra rekenresources nodig zijn tijdens de verwerking.
- Gezien een vaste tokenlimiet is de maximale grootte van de invoer en uitvoer van het model kleiner.
Grotere tokens (woordtokenisatie) - Een bepaalde tekst wordt opgesplitst in minder tokens, waarvoor minder rekenbronnen nodig zijn tijdens de verwerking.
- Gezien dezelfde tokenlimiet is de maximale grootte van de invoer en uitvoer van het model groter.
- Kan leiden tot een grotere vocabulaire grootte, waarvoor meer geheugenresources nodig zijn.
- Kan de mogelijkheid van modellen beperken om onbekende woorden, typfouten of complexe syntaxis af te handelen.

Hoe LLM's tokens gebruiken

Nadat de LLM de tokenisatie heeft voltooid, wordt er een id toegewezen aan elk uniek token.

Bekijk onze voorbeeldzin:

I heard a dog bark loudly at a cat

Nadat het model een methode voor woordtokenisatie heeft gebruikt, kunnen token-id's als volgt worden toegewezen:

  • I (1)
  • heard (2)
  • a (3)
  • dog (4)
  • bark (5)
  • loudly (6)
  • at (7)
  • a (het token 'a' is al een id van 3 toegewezen)
  • cat (8)

Door id's toe te wijzen, kan tekst worden weergegeven als een reeks token-id's. De voorbeeldzin wordt weergegeven als [1, 2, 3, 4, 5, 6, 7, 3, 8]. De zin "I heard a cat" wordt weergegeven als [1, 2, 3, 8].

Naarmate de training wordt voortgezet, voegt het model nieuwe tokens in de trainingstekst toe aan de woordenlijst en wijst het een id toe. Voorbeeld:

  • meow (9)
  • run (10)

De semantische relaties tussen de tokens kunnen worden geanalyseerd met behulp van deze token-id-reeksen. Numerieke vectoren met meerdere waarden, ook wel insluitingen genoemd, worden gebruikt om deze relaties weer te geven. Aan elk token wordt een insluiting toegewezen op basis van hoe vaak het wordt gebruikt in combinatie met, of in vergelijkbare contexten, aan de andere tokens.

Nadat het is getraind, kan een model een insluiting berekenen voor tekst die meerdere tokens bevat. Het model tokeneert de tekst en berekent vervolgens een totale waarde voor insluitingen op basis van de geleerde insluitingen van de afzonderlijke tokens. Deze techniek kan worden gebruikt voor semantische documentzoekopdrachten of het toevoegen van vectorarchieven aan een AI.

Tijdens het genereren van uitvoer voorspelt het model een vectorwaarde voor het volgende token in de reeks. Het model selecteert vervolgens het volgende token uit het vocabulaire op basis van deze vectorwaarde. In de praktijk berekent het model meerdere vectoren met behulp van verschillende elementen van de insluitingen van de vorige tokens. Het model evalueert vervolgens alle mogelijke tokens uit deze vectoren en selecteert de meest waarschijnlijke om de reeks voort te zetten.

Het genereren van uitvoer is een iteratieve bewerking. Het model voegt tot nu toe het voorspelde token toe aan de reeks en gebruikt dat als invoer voor de volgende iteratie, waarbij de uiteindelijke uitvoer één token tegelijk wordt gebouwd.

Tokenlimieten

LLM's hebben beperkingen met betrekking tot het maximum aantal tokens dat kan worden gebruikt als invoer of gegenereerd als uitvoer. Deze beperking zorgt er vaak voor dat de invoer- en uitvoertokens worden gecombineerd in een maximaal contextvenster. Samen bepalen de tokenlimiet en tokenisatiemethode van een model de maximale lengte van tekst die kan worden opgegeven als invoer of gegenereerd als uitvoer.

Denk bijvoorbeeld aan een model met een maximumcontextvenster van 100 tokens. Het model verwerkt de voorbeeldzinnen als invoertekst:

I heard a dog bark loudly at a cat

Door een op woorden gebaseerde tokenisatiemethode te gebruiken, is de invoer negen tokens. Dit laat 91 woordtokens beschikbaar voor de uitvoer.

Met behulp van een op tekens gebaseerde tokenisatiemethode is de invoer 34 tokens (inclusief spaties). Dit laat slechts 66 tekentokens beschikbaar voor de uitvoer.

Prijzen en frequentiebeperking op basis van tokens

Generatieve AI-services maken vaak gebruik van prijzen op basis van tokens. De kosten van elke aanvraag zijn afhankelijk van het aantal invoer- en uitvoertokens. De prijzen kunnen verschillen tussen invoer en uitvoer. Zie bijvoorbeeld prijzen voor De Azure OpenAI-service.

Generatieve AI-services kunnen ook beperkt zijn met betrekking tot het maximum aantal tokens per minuut (TPM). Deze frequentielimieten kunnen variëren, afhankelijk van de serviceregio en LLM. Zie quota en limieten voor Azure OpenAI-service voor meer informatie over specifieke regio's.