Utilizza contenitori di inferenza di modelli di grandi dimensioni basati su DJL Serving e Nvidia TensorRT
Lo spazio dell’intelligenza artificiale generativa continua ad espandersi a un ritmo senza precedenti, con l’introduzione di nuove famiglie di modelli LLM (Large Language Model) di giorno in giorno. All’interno di ogni famiglia ci sono anche diverse dimensioni di ciascun modello, ad esempio Llama7b, Llama13B e Llama70B. Indipendentemente dal modello selezionato, si presentano le stesse sfide per l’hosting di questi LLM per l’inferenza.
La dimensione di questi LLM continua a rappresentare la sfida più urgente, poiché è molto difficile/impossibile adattare molti di questi LLM su una singola GPU. Esistono diversi approcci per affrontare questo problema, come il partizionamento del modello. Con il partizionamento del modello è possibile utilizzare tecniche come Parallelismo della pipeline o del tensore essenzialmente per suddividere il modello su più GPU. Al di fuori del partizionamento del modello, altri approcci popolari includono Quantizzazione dei pesi del modello a una precisione inferiore per ridurre le dimensioni del modello stesso a scapito della precisione.
Sebbene la dimensione del modello sia di per sé una grande sfida, c’è anche la sfida di mantenere la precedente inferenza/attenzione nella generazione del testo per Modelli basati su decoder. La generazione di testo con questi modelli non è semplice come l’inferenza del modello ML tradizionale in cui sono presenti solo input e output. Per calcolare la parola successiva nella generazione del testo, è necessario mantenere lo stato/attenzione dei token precedentemente generati per fornire un output logico. La memorizzazione di questi valori è nota come file Cache KV. La KV Cache consente di memorizzare nella cache i tensori generati in precedenza nella memoria della GPU per generare i token successivi. La KV Cache occupa inoltre una grande quantità di memoria di cui è necessario tenere conto durante l’inferenza del modello.
Per affrontare queste sfide sono state introdotte molte diverse tecnologie di modellazione, come ad esempio vLLM, DeepSpeedFasterTransformers e altro ancora. In questo articolo esaminiamo nello specifico Nvidia TensorRT-LLM e come possiamo integrare lo stack di servizio con DJL Serving su Amazon SageMaker Real-Time Inference per ospitare in modo efficiente il popolare Modello Mistral 7B.
NOTA: questo articolo presuppone una conoscenza intermedia di Python, LLM e Amazon SageMaker Inference. Vorrei…
Fonte: towardsdatascience.com