Depois de ver o @karpathy nanochat, fiquei obcecado pela ideia de usar o ajuste fino do GRPO localmente no Mac. Consegui fazê-lo funcionar e estou a abrir o código-fonte de tudo aqui. Aqui está o nanochat a passar pelos passos de resolução do conjunto de dados GSM8K, embora possa ser demais para ele 😅
A parte mais difícil, o nanochat não tinha suporte total para MLX. Ele existia apenas como arquivos .pt do PyTorch com um tokenizador tiktoken personalizado. Tive que: - Construir um conversor de PyTorch → MLX - Descobrir o formato do tokenizador - Fazer tudo funcionar com o GRPO
Neste repositório, explico os detalhes da conversão do nanochat para MLX. Funciona para AMBOS os modelos: - Original de 20 camadas - O maior de 32 camadas do Karpathy (d32) Uma vez convertido → execute o GRPO em qualquer conjunto de dados que desejar.
Isto é experimental, mas acho que mostra um futuro possível: afinação forte de modelos locais em conjuntos de dados especializados. O repositório também inclui: - Utilitários para converter modelos para MLX - Ferramentas de inferência - O GRPO funciona com QUALQUER modelo (não apenas nanochat!)
15,66K