Show HN: fine-tuning de Llama com 80% mais velocidade, 50% menos uso de memória e 0% de perda de precisão
(github.com/unslothai)Maior eficiência no ajuste de modelos QLoRA
- Os modelos QLoRA/LoRA alcançam velocidade 80% maior e 50% menos uso de memória por meio de etapas de retropropagação induzidas manualmente.
- Todos os kernels escritos na linguagem Triton da OpenAI foram otimizados sem perda de precisão.
- Pode ser usado em GPUs NVIDIA (modelos a partir de 2018, com suporte a CUDA 7.5+) sem alterações de hardware.
- O treinamento eficiente de modelos é possível com suporte a Flash Attention e fine-tuning LoRA em 4 bits e 16 bits.
- É possível treinar o modelo Slim Orca em ambiente local, reduzindo drasticamente o tempo de 1301 horas para 260 horas.
- A versão open source oferece treinamento 5x mais rápido, enquanto os caminhos de código Unsloth Pro e Max oferecem treinamento até 30x mais rápido.
Instruções de instalação
- O Unsloth é compatível apenas com distribuições Linux e Pytorch 2.1 ou superior.
- Pode ser instalado via Conda e Pip, escolhendo o pacote adequado de acordo com a versão do CUDA.
Exemplo com o modelo Alpaca
- Use
FastLlamaModelpara carregar o modelo Llama e reduzir o uso de memória com quantização de 4 bits. - Melhore o desempenho com patching do modelo e adição de pesos LoRA rápidos.
- É possível treinar o modelo usando o Trainer da Huggingface e carregamento de datasets.
Objetivos futuros e limitações
- Está previsto suporte a checkpointing de gradiente
sqrt, que pode reduzir o uso de memória em mais 25%. - Atualmente, apenas o modelo Llama é compatível, mas há planos de oferecer suporte a outros modelos no futuro.
Comparação de desempenho
- Ao usar uma GPU Tesla T4, o Unsloth apresenta tempos de época muito mais rápidos e menor uso de memória em comparação com o Huggingface.
- Tanto em sistemas com GPU única quanto com múltiplas GPUs, as versões Pro e Max do Unsloth oferecem desempenho superior.
Solução de problemas
- São fornecidas soluções quando
bitsandbytesouxformersnão são vinculados corretamente. - No momento, o Windows não é compatível, e o Unsloth passará a oferecer suporte quando Xformers e Triton tiverem suporte oficial ao Windows.
- Se houver problemas na instalação, atualizar o
pippode ser a solução.
Opinião do GN⁺
O ponto mais importante deste artigo é que o ajuste de modelos QLoRA/LoRA é muito mais rápido e mais eficiente em memória do que os métodos existentes. Como essa otimização reduz drasticamente o tempo e o custo de treinamento de modelos de inteligência artificial, ela pode se tornar uma solução atraente até mesmo para engenheiros de software iniciantes. Além disso, o artigo oferece um caso interessante sobre o avanço das tecnologias open source e como elas aumentam a acessibilidade da tecnologia.
Ainda não há comentários.