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. 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'.

Afledte ord

1

Kilder

2