parallel decoding
Parallel decoding er en inferensteknik, hvor flere tokens genereres samtidigt i stedet for sekventielt for at fremskynde sprogmodeller.
Kort fortalt
I stedet for at generere ét ord ad gangen, gætter parallel decoding flere ord på én gang og accepterer dem, hvis de passer.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˈpærəlɛl dɪˈkoʊdɪŋ/
Betydninger
1- 1
En teknik til at fremskynde autoregressiv tekstgenerering ved at generere flere tokens på én gang ved hjælp af en hjælpemodel eller specialiserede hoveder.
- Parallel decoding kan reducere forsinkelsen i chatbots markant ved at generere flere ord pr. iteration.
- Medusa er en metode, der udvider parallel decoding med trænede afkodningshoveder. — https://arxiv.org/abs/2401.10774
Hvornår bruges det
Parallel decoding anvendes typisk i store sprogmodeller for at reducere latenstid ved inferens. Det kræver en hjælpemodel (draft model) eller en modificeret arkitektur som Medusa.
Kodeeksempel
# Simpel parallel decoding med en draft model (speculative decoding)
# Antag: draft_model og target_model, sekvens starter med [start_token]
def parallel_decode(draft_model, target_model, input_ids, gamma=4):
# Draft model foreslår gamma tokens autoregressivt
draft_tokens = draft_model.generate(input_ids, max_new_tokens=gamma)
# Target model verificerer alle foreslåede tokens i én fremad-pass
outputs = target_model(input_ids, draft_tokens)
accepted = verify_with_rejection_sampling(outputs, draft_tokens)
# Accepter sekvensen eller juster
return acceptedPython-eksempel på spekulativ afkodning, hvor en draft model foreslår tokens, og target-modellen verificerer dem parallelt.
Oprindelse
Sammensat af 'parallel' (fra græsk 'parallelos', 'ved siden af hinanden') og 'decoding' (afkodning, fra latin 'decodere').