Artykuł

Przyspieszanie Sonaru poprzez spekulację

Abstrakcyjny promień światła przecinający formę geometryczną, symbolizujący przyspieszenie generacji LLM

Spekulacyjne dekodowanie przyspiesza szybkość generowania Dużych Modeli Językowych (LLM) poprzez użycie szybkiego i małego modelu wstępnego do tworzenia kandydatów dopełnienia, które są weryfikowane przez większy model docelowy.

W tym schemacie, zamiast pojedynczego przetworzenia drogiego modelu docelowego produkującego jeden token, wiele jest emitowanych w jednym kroku. Przedstawiamy tutaj szczegóły implementacji różnych rodzajów spekulacyjnego dekodowania, stosowanego w Perplexity do redukcji opóźnienia między tokenami na modelach Sonar.

Spekulacyjne Dekodowanie

Spekulacyjne Dekodowanie wykorzystuje strukturę języków naturalnych i auto-regresyjny charakter transformatorów, by przyspieszyć generowanie tokenów. Nawet jeśli większe modele, takie jak Llama-70B, mają więcej wiedzy niż mniejsze, takie jak Llama-1B, w niektórych prostszych zadaniach działają podobnie. Ten nakład sugeruje, że pewne sekwencje są lepiej generowane przez mniej kosztowne modele, pozostawiając złożone problemy większym modelom. Wyzwanie polega na określeniu, które dopełnienia są lepsze i czy generacja mniejszego modelu jest tej samej jakości co większego.

Na szczęście LLM to auto-regresyjne transformatory: po podaniu sekwencji tokenów, generują rozkład prawdopodobieństwa kolejnego tokena. Dodatkowo, logity wynikłe z cech pośrednich związanych z tokenami w sekwencji wejściowej również wskazują, jak prawdopodobne jest dla modelu wydanie tych konkretnych tokenów. Ta właściwość umożliwia spekulację: jeśli sekwencja tokenów jest generowana przez mniejszy model od punktu początkowego, można ją przepuścić przez większy model, by sprawdzić, jak dobrze pasuje do modelu docelowego. Każdy prefiks kandydatów jest oceniany prawdopodobieństwem, a najdłuższy, który przekracza próg akceptacji, jest wybierany. Dodatkowo, model docelowy dostarcza również kolejny token za darmo: jeśli model wstępny generuje n tokenów, można wyemitować do n + 1 w jednym kroku.

W czasie inferencji proces spekulacyjnego próbkowania można podzielić na około 4 etapy:

  1. Prefill: zarówno model docelowy, jak i model wstępny muszą być uruchomione na sekwencji wejściowej, aby wypełnić wpisy pamięci podręcznej KV. Chociaż niektóre schematy, takie jak Medusa, używają prostszych warstw gęstych do przewidywań, w tym poście skupiamy się na projektach opartych na transformatorach, które potrzebują własnych pamięci podręcznych KV.

  2. Generowanie Wstępne: model wstępny iteruje, by wygenerować{

Zainteresowany kształtowaniem przyszłości naszej platformy API? Dołącz do naszego zespołu.

Dołącz do naszej społeczności deweloperów, aby być na bieżąco z nowymi wydaniami, funkcjami i aktualizacjami.

Zainteresowany kształtowaniem przyszłości naszej platformy API? Dołącz do naszego zespołu.

Dołącz do naszej społeczności deweloperów, aby być na bieżąco z nowymi wydaniami, funkcjami i aktualizacjami.

Zainteresowany kształtowaniem przyszłości naszej platformy API? Dołącz do naszego zespołu.

Dołącz do naszej społeczności deweloperów, aby być na bieżąco z nowymi wydaniami, funkcjami i aktualizacjami.