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

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

Afledte ord

2

Kilder

2