top-k filtrering
En dekodningsstrategi for sprogmodeller, hvor kun de k mest sandsynlige tokens overvejes ved hvert generationstrin.
Kort fortalt
En metode, der gør tekstgenerering mindre tilfældig ved kun at vælge mellem de k mest sandsynlige næste ord.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- tɔp ˈkɛj
Betydninger
1- 1
En stokastisk dekodningsmetode, hvor sandsynlighedsfordelingen for næste token begrænses til de k tokens med højest sandsynlighed, og disse sandsynligheder renormaliseres.
- Ved brug af top-k filtrering med k=40 undgår modellen at vælge usandsynlige tokens, hvilket reducerer nonsens.
- Top-k filtrering er en af flere teknikker til at forbedre kvaliteten af genereret tekst.
Hvornår bruges det
Top-k filtrering bruges i autoregressive sprogmodeller som GPT til at kontrollere kreativitet og sammenhæng. Værdien af k justeres typisk mellem 10 og 100; lavere værdier giver mere forudsigelig tekst, højere værdier giver mere variation.
Kodeeksempel
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
inputs = tokenizer("The future of AI is", return_tensors="pt")
output = model.generate(
**inputs,
do_sample=True,
top_k=50,
max_new_tokens=20
)
print(tokenizer.decode(output[0]))Eksempel på brug af top-k filtrering (top_k=50) i Hugging Face Transformers med GPT-2.
Oprindelse
Fra engelsk 'top-k filtering', hvor 'top' betyder øverst og 'k' er en parameter, kombineret med 'filtrering'.