PyTorch ha rilasciato la versione 2.3, con una serie di nuove funzionalità e miglioramenti mirati a rendere più efficiente l’addestramento di modelli linguistici di grandi dimensioni e l’inferenza sparsa.
Tra le novità ci sono il supporto per i kernel Triton definiti dall’utente in torch.compile, che consente di migrare i kernel esistenti senza compromettere le prestazioni o interrompere il flusso di lavoro. Inoltre, Torch Inductor può ora precompilare questi kernel, organizzando il codice in modo più efficiente.
Un’altra caratteristica importante è il parallelismo del tensore, progettato per migliorare l’addestramento di modelli linguistici su larga scala. Questo parallelismo consente varie operazioni sui tensori su GPU e host, integrandosi con FSDP per un parallelismo 2D efficiente. Il team PyTorch ha dimostrato l’efficacia di questo parallelismo nell’addestramento di modelli con oltre 100 miliardi di parametri.
PyTorch 2.3 introduce anche il supporto per la sparsità semistrutturata, come la sparsità 2:4, che migliora le prestazioni fino a 1,6 volte rispetto alla moltiplicazione di matrici dense. Questa versione offre anche funzionalità avanzate come la miscelazione di diversi tipi di dati durante la quantizzazione e utilizza versioni migliorate dei kernel cuSPARSELt e CUTLASS.
Rispetto alla versione precedente, PyTorch 2.2, che ha introdotto miglioramenti come FlashAttention-v2 e AOTInductor, la versione 2.3 si concentra specificamente su modelli linguistici di grandi dimensioni e inferenza sparsa, sfruttando i miglioramenti precedenti e aggiungendo nuove funzionalità.
Grazie al contributo di una vasta e attiva comunità, PyTorch 2.3 offre funzionalità come i kernel Triton definiti dall’utente e il parallelismo del tensore, migliorando complessivamente prestazioni, scalabilità e flessibilità.