Introdução geral
O Unsloth é um projeto de código aberto criado para fornecer ferramentas eficientes para o ajuste fino e o treinamento de LLMs (Large Language Models). O projeto oferece suporte a uma ampla gama de modelos conhecidos, incluindo Llama, Mistral, Phi e Gemma, etc. Os principais recursos do Unsloth são a capacidade de reduzir significativamente o uso da memória e acelerar o treinamento, permitindo que os usuários concluam o ajuste fino e o treinamento de modelos em menos tempo. Além disso, o Unsloth oferece ampla documentação e tutoriais para ajudar os usuários a começar rapidamente e aproveitar ao máximo seus recursos.
Lista de funções
- Ajuste fino eficienteSuporte a vários modelos, como Llama, Mistral, Phi e Gemma, com ajuste fino de 2 a 5 vezes mais rápido e 50-80% menos uso de memória.
- Uso gratuitoNotebook: Um notebook de uso gratuito é fornecido para que os usuários possam simplesmente adicionar um conjunto de dados e executar todo o código para obter um modelo ajustado.
- Vários formatos de exportaçãoSuporte para exportação de modelos ajustados para GGUF, Ollama, vLLM ou upload para Hugging Face.
- quantificação dinâmicaSuporte à quantificação dinâmica de 4 bits para melhorar a precisão do modelo, adicionando menos de 10% de memória.
- Suporte a contextos longosSuporte a 89 mil janelas de contexto para os modelos Llama 3.3 (70B) e 342 mil janelas de contexto para os modelos Llama 3.1 (8B).
- Suporte à modelagem visualSuporte a modelos de visão, como Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) e Pixtral (12B).
- Otimização do raciocínioOferece uma variedade de opções de otimização de inferência para melhorar significativamente a velocidade de inferência.
Usando a Ajuda
Processo de instalação
- Instalação de dependênciasVerifique se o Python 3.8 ou superior está instalado e se as seguintes dependências estão instaladas:
bash
pip install torch transformers datasets
- armazém de clonesClonar o repositório do Unsloth usando o Git:
bash
git clone https://github.com/unslothai/unsloth.git
cd unsloth
- Instalar o UnslothExecute o seguinte comando para instalar o Unsloth:
bash
pip install -e .
Tutoriais
- Modelos de carregamentoCarregamento do modelo pré-treinado em um script Python:
from transformers import AutoModelForCausalLM, AutoTokenizer nome_do_modelo = "unslothai/llama-3.3" model = AutoModelForCausalLM.from_pretrained(nome_do_modelo) tokeniser = AutoTokenizer.from_pretrained(nome_do_modelo)
- Ajuste fino do modeloUse o notebook fornecido pelo Unsloth para o ajuste fino do modelo. Aqui está um exemplo simples:
from unsloth import Trainer, TrainingArguments training_args = TrainingArguments( output_dir=". /results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, ) trainer = Trainer( model=model, args=args_de_treinamento, train_dataset=train_dataset, eval_dataset=eval_dataset, ) trainer = Trainer( eval_dataset=eval_dataset, ) ) trainer.train()
- Modelo de exportaçãoAjuste fino: Quando o ajuste fino estiver concluído, o modelo poderá ser exportado para vários formatos:
python
model.save_pretrained(". /finetuned_model")
tokeniser.save_pretrained(". /finetuned_model")
Operação detalhada da função
- quantificação dinâmicaO Unsloth oferece suporte à quantização dinâmica de 4 bits durante o processo de ajuste fino, o que pode melhorar significativamente a precisão do modelo e, ao mesmo tempo, adicionar menos de 10% de uso de memória. Os usuários podem ativar esse recurso nos parâmetros de treinamento:
training_args = TrainingArguments( output_dir=". /results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, quantisation="dynamic_4bit" e quantisation="dynamic_4bit" )
- Suporte a contextos longosO Unsloth suporta a janela de contexto de 89K do modelo Llama 3.3 (70B) e a janela de contexto de 342K do modelo Llama 3.1 (8B). Isso torna o modelo ainda melhor para lidar com textos longos. O usuário pode especificar o tamanho da janela de contexto ao carregar o modelo:
model = AutoModelForCausalLM.from_pretrained(nome_do_modelo, janela_de_contexto=89000)
- Suporte à modelagem visualO Unsloth também oferece suporte a vários modelos de visão, como o Llama 3.2 Vision (11B), o Qwen 2.5 VL (7B) e o Pixtral (12B). Os usuários podem usar esses modelos para tarefas de geração e processamento de imagens:
python
model_name = "unslothai/llama-3.2-vision"
model = AutoModelForImageGeneration.from_pretrained(nome_do_modelo)