Chiosa
ML · learning path

Adattare la generazione parallela al lavoro che rallenta il sistema

8 min4 paperintermediate
Aggiornato

Un agente sul telefono può attendere a ogni azione sullo schermo; un generatore di testo può impiegare tempo a proporre, verificare o ricostruire l’output. Il lavoro parallelo è utile quando raggiunge la fase più costosa di quel particolare workflow.

In questi studi, spostare o sovrapporre il lavoro produce miglioramenti dichiarati nel throughput o nella latenza per specifici carichi di lavoro e configurazioni di serving. Anche JetSpec++ riporta un miglioramento nel serving, ma le sue previsioni sul contesto futuro restano stime fino alla verifica.

I risultati indicano di valutare ciascun metodo in base all’esito pertinente nel suo contesto, senza costruire una classifica di velocità comune.

Cosa comprenderai

  • Quale fase della generazione ciascun metodo esegue in parallelo, sovrappone ad altro lavoro o riutilizza?

  • Che cosa misurano, nei confronti riportati, i token di output al secondo, i documenti al secondo e i secondi per richiesta?

  • Perché una previsione dell’esito della verifica è diversa da un risultato di serving misurato?

Individuare il lavoro sequenziale

Immagina di chiedere a un agente sul telefono di modificare un’impostazione. L’agente legge lo schermo, sceglie dove toccare, aspetta che l’app risponda e poi legge la schermata successiva prima di scegliere di nuovo.

Ogni richiesta al modello può produrre solo una breve azione, ma il ritardo si accumula nel corso dell’attività. L’esecuzione sul telefono comporta anche pause tra una richiesta e l’altra.

Per valutare la velocità in questo caso, conta il tempo per richiesta durante questa interazione ripetuta, non solo quanto rapidamente un modello può generare un lungo testo.

La generazione di testi lunghi comporta un’attesa diversa. Un sistema può proporre più token alla volta, ma un modello più grande deve comunque verificare la proposta.

Un altro sistema può perfezionare insieme molte posizioni, ma a ogni passo di perfezionamento deve comunque elaborare una sequenza lunga. Spostare il lavoro in gruppi paralleli può abbreviare una fase della generazione lasciandone un’altra sequenziale.

Per capire un miglioramento dichiarato, dobbiamo individuare quale lavoro è stato spostato e che cosa ha misurato l’esperimento.

I quattro studi qui esaminati intervengono su costi diversi. Uno corregge un blocco di token proposto prima della verifica; uno genera rappresentazioni compresse e le espande in testo; uno prepara il blocco successivo mentre la verifica è ancora in corso; un altro riutilizza lo stato tra richieste successive e diverse rivolte a un agente sul telefono.

La domanda comune è dove avviene il lavoro di generazione dopo ciascuna modifica e quale risultato misurato mostra che la modifica ha avuto effetto nel proprio contesto.

Come prosegue la lezione

  • Leggere il risultato misurato

  • Distinguere stime e risultati

  • Confrontare ogni metodo nel suo contesto