PyTorch ha recentemente lanciato un nuovo aggiornamento, PyTorch 2.1, che porta con sé una serie di importanti miglioramenti. Questo aggiornamento è il risultato del duro lavoro di 784 contributori con ben 6.682 commit.
Le principali caratteristiche di questo aggiornamento includono:
- Supporto per forme dinamiche: PyTorch 2.1 ora offre supporto automatico per forme dinamiche nella compilazione, il che lo rende più flessibile ed efficiente nella gestione di dati di diverse dimensioni.
- Checkpoint paralleli: La nuova versione consente di salvare e caricare checkpoint in modo parallelo durante la formazione distribuita su più ranghi, migliorando notevolmente l’efficienza.
- Supporto per l’API NumPy: PyTorch 2.1 aggiunge il supporto per l’API NumPy, semplificando l’integrazione con altri framework e librerie.
- Librerie di dominio: Le librerie di dominio PyTorch per TorchAudio e TorchVision sono state aggiornate nella versione beta, offrendo nuove funzionalità e miglioramenti.
- Modelli Llama 2 basati su AWS Inferentia2: Questa release introduce la formazione e l’inferenza dei modelli Llama 2 basati su AWS Inferentia2, che promettono esecuzioni più rapide, economiche ed efficienti.
- Supporto ARM a 64 bit: PyTorch ora supporta build di ruote AArch64, consentendo ai dispositivi con architettura ARM a 64 bit di utilizzare PyTorch.
- Supporto CUDA 12.1: La nuova versione include il supporto per CUDA 12.1, migliorando le prestazioni su hardware compatibile.
- Compilazione nativa su M1: PyTorch è ora compilato nativamente su processori Apple M1, migliorando notevolmente le prestazioni su questi dispositivi.
- Backend di comunicazione distribuita UCC: Gli sviluppatori possono ora testare ed eseguire il debug in modo efficiente del proprio codice con il supporto UCC.
- Miglioramenti vari: La nuova versione presenta miglioramenti nel frontend Python, un nuovo ottimizzatore chiamato NAdamW, e una sparsità semi-strutturata più efficiente su alcune architetture.
Inoltre, nell’ambito dell’elaborazione audio, ci sono nuove funzionalità come l’API AudioEffector per migliorare la forma d’onda audio, l’allineamento forzato per una sincronizzazione più precisa tra trascrizione e audio, e i modelli TorchAudio-Squim per la stima dei parametri di qualità del parlato.
Per quanto riguarda l’intelligenza artificiale musicale, sono state introdotte nuove utilità per la generazione di musica utilizzando tecniche di intelligenza artificiale e aggiornate le ricette di formazione per migliorare l’addestramento dei modelli. Tuttavia, ci sono cambiamenti come il supporto aggiornato di FFmpeg e l’integrazione di libsox che possono influire sulla gestione dei file audio.
Nel campo del reinforcement learning with human feedback (RLHF), PyTorch ha semplificato la creazione di cicli di formazione RLHF anche per gli sviluppatori con conoscenze limitate di RL. Sono state introdotte nuove funzionalità come TensorDict per facilitare l’interazione tra set di dati e modelli RL, insieme a nuovi algoritmi per l’addestramento RL offline.
TorchRL ora supporta l’hardware, come i robot, per la formazione e l’implementazione senza soluzione di continuità, con algoritmi essenziali e un’ampia gamma di ambienti supportati.
Inoltre, PyTorch ha migliorato notevolmente le prestazioni di Resize e offre ora supporto per gli ampliamenti CutMix e MixUp in TorchVision.
Infine, PyTorch ha implementato con successo il modello Llama 2 utilizzando l’inferenza tramite Transformer Neuron e Torch Serve su Amazon SageMaker con istanze EC2 Inferentia2, ottenendo un notevole aumento delle prestazioni con costi ridotti.
In sintesi, PyTorch 2.1 introduce una serie di miglioramenti significativi in diversi settori, rendendo l’elaborazione audio, l’intelligenza artificiale musicale, il reinforcement learning e molti altri più efficienti e precisi.