Misurare i costi di trasferimento e capacità prima di spostare dati o lavoro di serving sulla GPU
Un modello può superare la memoria della GPU, una richiesta lunga può occupare il frontend che elabora il testo e recuperare un prompt memorizzato nella cache può richiedere tempo. Spostare dati o lavoro può alleviare ciascuna pressione, ma la nuova posizione comporta un costo proprio.
Nei tre studi, la domanda utile è quale vincolo misurato venga alleviato da una modifica della collocazione.
La risposta dipende dal carico di lavoro testato: l’accesso alla memoria di sistema può rallentare la generazione, preparare il testo sulla GPU può aumentare la capacità del frontend e caricare una cache remota può richiedere più tempo che ricalcolare.
Cosa comprenderai
Quale costo si presenta quando un modello supera la memoria della GPU e i suoi dati restano nella memoria di sistema?
Che cosa misura il tasso di richieste di un frontend quando le GPU che lo servono sono simulate?
Quali costi di trasferimento e costi fissi contano nel confronto tra recuperare una cache remota e ricalcolare un prompt?
Tre modi per spostare il costo
Immaginiamo di mettere in servizio un modello i cui dati superano la memoria della GPU. Tenere parte dei dati nella memoria di sistema permette al modello di funzionare, ma per leggerli la GPU deve attraversare un collegamento tra i dispositivi.
Spostare i dati nella memoria della GPU ne velocizza l’accesso, ma occupa spazio che potrebbe servire presto a un’altra parte del modello. Ember, un gestore di memoria per carichi di lavoro che superano la memoria della GPU, studia questa scelta durante la generazione del testo. Il problema è dove collocare i dati mentre la GPU li usa ripetutamente.
Una richiesta diversa può mettere sotto pressione il sistema prima ancora che inizi il calcolo del modello. Un agente può inviare di nuovo una lunga conversazione aggiungendo poco testo nuovo.
Una cache può evitare al modello gran parte del lavoro sul prefisso ripetuto, ma il frontend di serving deve comunque convertire il testo ricevuto in token ID, cioè gli identificatori ordinati che il modello legge. GraphTok studia come spostare questa preparazione dalla CPU alla GPU.
Usa capacità della GPU per alleviare un vincolo del frontend, invece che per fare spazio ai dati memorizzati del modello.
Per le richieste ripetute c’è una terza opzione: conservare i risultati dell’elaborazione precedente del prompt e recuperarli per riutilizzarli. Questo stato memorizzato si chiama KV cache.
Una copia remota fa risparmiare calcolo sulla GPU solo se recuperarla serve all’obiettivo pertinente a un costo accettabile. Lo studio sulla cache remota chiede quanto rapidamente debba arrivare lo stato e quale lavoro resti comunque a carico del motore quando la cache contiene i dati richiesti.
Nel loro insieme, questi casi sollevano una domanda di deployment: quale costo elimina ogni spostamento e quale ne introduce?
Come prosegue la lezione
Fare spazio nella memoria GPU
Preparare il testo sulla GPU
Valutare il costo di una cache remota
Scegliere la metrica da migliorare