Shumai: Biblioteca de Tensores Diferenciáveis Rápida
Shumai é uma biblioteca de tensores diferenciáveis para TypeScript e JavaScript que utiliza Bun + Flashlight. Ela é projetada para facilitar a criação de conjuntos de dados, acelerar o treinamento de pequenos modelos e permitir uma lógica de treinamento e inferência avançada e mais expressiva.
Recursos Principais
- Instalação: O processo de instalação está em andamento. É necessário ter o Bun instalado e o ArrayFire. Para usuários macOS, deve-se instalar a versão CPU do ArrayFire, enquanto para usuários Linux, a versão CUDA é recomendada.
- Uso: Shumai tenta sempre utilizar uma GPU ou acelerador anexado. A biblioteca oferece diversas operações, como criação de tensores aleatórios, operações matemáticas, conversão para e de arrays nativos do JavaScript e cálculo de gradientes.
- Melhoria de Desempenho: A gestão da memória pode ser ajustada para melhorar o desempenho, reduzindo a sobrecarga do Garbage Collector.
- Estatísticas: É possível coletar estatísticas de uso, tanto para casos simples quanto para situações mais complexas, como captura de estatísticas em várias threads, processos e hosts.
Vantagens
- Facilita a criação de conjuntos de dados.
- Torna o treinamento de pequenos modelos mais rápido.
- Permite uma lógica de treinamento e inferência avançada.
- Aproveita o grande ecossistema do JavaScript para o desenvolvimento de aplicações.
Benchmarks
Foram realizados benchmarks comparando o Shumai com o TF.js. Os resultados mostram que o Shumai apresenta um desempenho superior em várias operações, como adição de largura variável e multiplicação de matrizes quadradas.
Em resumo, o Shumai é uma ferramenta promissora para desenvolvedores que trabalham com tensores em TypeScript e JavaScript, oferecendo desempenho e funcionalidades avançadas.