Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

Unsloth: uma ferramenta de código aberto para ajuste fino e treinamento eficientes de modelos de linguagem grandes

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.

Unsloth Zoo: fornecendo uma biblioteca gratuita de ferramentas de ajuste fino de modelos grandes para melhorar o desempenho do modelo-1


 

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

  1. 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
  2. armazém de clonesClonar o repositório do Unsloth usando o Git: bash
    git clone https://github.com/unslothai/unsloth.git
    cd unsloth
  3. Instalar o UnslothExecute o seguinte comando para instalar o Unsloth: bash
    pip install -e .

Tutoriais

  1. 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)
    
  2. 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()
    
  3. 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)
Conteúdo 1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Unsloth: uma ferramenta de código aberto para ajuste fino e treinamento eficientes de modelos de linguagem grandes

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil