Sobre o projeto

micrograd fornece um motor de autograd escalar mínimo e uma biblioteca leve de rede neural construída sobre ele. A abstração central `Value` registra operações em um grafo acíclico dirigido construído dinamicamente e suporta retropropagação por meio de operações aritméticas e de ativação suportadas, incluindo adição, multiplicação, exponenciação, divisão, subtração e ReLU. O README descreve o motor e os componentes da rede neural como tendo aproximadamente 100 e 50 linhas, respectivamente, enfatizando clareza e uso educacional em vez de desempenho de tensores em escala de produção. O pacote pode ser instalado com `pip install micrograd`. O exemplo mostra a construção de expressões a partir de objetos `Value`, a leitura dos resultados do passe direto em `.data`, a chamada de `backward()` e a inspeção dos gradientes de entrada por meio de `.grad`. O módulo incluído `micrograd.nn` fornece blocos de construção no estilo neurônio, camada e MLP com uma interface semelhante à do PyTorch. O `demo.ipynb` demonstra o treinamento de um perceptron multicamadas de duas camadas como classificador binário no conjunto de dados moon usando uma perda de margem máxima e SGD. Outro notebook, `trace_graph.ipynb`, usa Graphviz para visualizar nós de computação com seus valores e gradientes. O conjunto de testes usa PyTorch como implementação de referência para verificar os gradientes calculados e é executado com pytest. O README também contém um link para um exemplo externo microgpt mostrando como uma abordagem de autograd relacionada pode ser usada para treinar e amostrar de um transformador semelhante ao GPT-2. O projeto é lançado sob a licença MIT.