Sutra: Un linguaggio di programmazione che compila in reti neurali PyTorch
I ricercatori hanno creato un nuovo linguaggio di programmazione chiamato Sutra. È un linguaggio tipizzato e puramente funzionale che compila in una rete neurale PyTorch durante il suo forward pass. Il compilatore integra l'intero programma, comprese le sue primitive e il flusso di controllo, in un unico grafico di operazioni tensoriali costruito su un substrato di embedding fisso. Operazioni come rotation binding, unbind e logica polinomiale di Kleene vengono convertite in operazioni tensoriali, con i connettivi di Kleene rappresentati come polinomi interpolati di Lagrange che riflettono accuratamente la griglia di verità {-1, 0, +1}. Per validare l'efficacia, sono stati condotti due test: uno ha eseguito lo stesso programma su quattro embedding congelati in due modalità, raggiungendo un'accuratezza del 100% con larghezza k=8, e l'altro ha confermato che PyTorch autograd ha elaborato correttamente i calcoli.
Fatti principali
- 1. Sutra è un linguaggio di programmazione tipizzato e puramente funzionale.
- 2. Il suo forward pass compilato è una rete neurale PyTorch.
- 3. Il compilatore beta-riduce l'intero programma in un unico grafico di operazioni tensoriali fuse.
- 4. Le operazioni includono rotation binding, unbind, bundle, logica ternaria polinomiale di Kleene e cicli tail-recursive.
- 5. I connettivi di Kleene sono polinomi interpolati di Lagrange esatti sulla griglia di verità {-1, 0, +1}.
- 6. La validazione ha testato lo stesso programma su quattro embedding congelati: nomic-embed-text, all-minilm, mxbai-embed-large e ESM-2.
- 7. La decodifica ha raggiunto un'accuratezza del 100% con larghezza k=8 su ogni substrato.
- 8. Il prodotto di Hadamard è crollato al 2.5% su mxbai-embed-large e al 7.5% su all-minilm.
Entità
Istituzioni
- arXiv