Unsloth: una herramienta de código abierto para ajustar y entrenar modelos lingüísticos de gran tamaño

Introducción general

Unsloth es un proyecto de código abierto diseñado para proporcionar herramientas eficaces de ajuste y entrenamiento de grandes modelos lingüísticos (LLM). El proyecto es compatible con una amplia gama de modelos bien conocidos, como Llama, Mistral, Phi, Gemma, etc. Las principales características de Unsloth son su capacidad para reducir significativamente el uso de memoria y acelerar el entrenamiento, lo que permite a los usuarios terminar el ajuste fino y el entrenamiento de los modelos en menos tiempo. Además, Unsloth proporciona una amplia documentación y tutoriales para ayudar a los usuarios a iniciarse rápidamente y aprovechar al máximo sus funciones.

Unsloth:高效微调和训练大语言模型的开源工具

 

Lista de funciones

  • Ajuste fino eficaz: Compatibilidad con varios modelos como Llama, Mistral, Phi y Gemma, con un ajuste fino entre 2 y 5 veces más rápido y un uso de memoria 50-80% menor.
  • Uso gratuitoEl cuaderno es de uso gratuito, por lo que los usuarios sólo tienen que añadir un conjunto de datos y ejecutar todo el código para obtener un modelo afinado.
  • Múltiples formatos de exportación: Soporte para exportar modelos ajustados a GGUF, Ollama, vLLM o subirlos a Hugging Face.
  • cuantificación dinámicaAdmite la cuantificación dinámica de 4 bits para mejorar la precisión del modelo añadiendo menos de 10% de memoria.
  • Ayuda a largo plazo: Admite 89K ventanas de contexto para los modelos Llama 3.3 (70B) y 342K ventanas de contexto para los modelos Llama 3.1 (8B).
  • Apoyo a la modelización visualCompatible con modelos de visión como Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) y Pixtral (12B).
  • Optimización del razonamiento: Proporciona una variedad de opciones de optimización de la inferencia para mejorar significativamente la velocidad de inferencia.

 

Utilizar la ayuda

Proceso de instalación

  1. Instalación de dependenciasAsegúrese de que Python 3.8 y superior está instalado, y que las siguientes dependencias están instaladas: bash
    pip install torch transformers datasets
  2. almacén de clonesClona el repositorio de Unsloth usando Git: bash
    git clone https://github.com/unslothai/unsloth.git
    cd unsloth
  3. Instalar Unsloth: Ejecute el siguiente comando para instalar Unsloth: bash
    pip install -e .

Tutoriales

  1. Modelos de cargaCarga el modelo preentrenado en un script de Python:
    from transformers import AutoModelForCausalLM, AutoTokenizer
    model_name = "unslothai/llama-3.3"
    model = AutoModelForCausalLM.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    
  2. Ajuste del modelo: Utiliza el cuaderno proporcionado por Unsloth para afinar el modelo. He aquí un ejemplo sencillo:
    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=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    )
    trainer.train()
    
  3. Modelo de exportaciónUna vez finalizados los ajustes, el modelo puede exportarse a varios formatos: python
    model.save_pretrained("./finetuned_model")
    tokenizer.save_pretrained("./finetuned_model")

Funcionamiento detallado

  • cuantificación dinámicaUnsloth admite la cuantificación dinámica de 4 bits durante el proceso de ajuste fino, lo que puede mejorar significativamente la precisión del modelo al tiempo que añade menos de 10% de uso de memoria. Los usuarios pueden activar esta función en los parámetros de entrenamiento:
    training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    save_steps=10_000,
    save_total_limit=2,
    quantization="dynamic_4bit"
    )
    
  • Ayuda a largo plazoUnsloth soporta la ventana de contexto de 89K del modelo Llama 3.3 (70B) y la ventana de contexto de 342K del modelo Llama 3.1 (8B). Esto hace que el modelo sea aún mejor a la hora de manejar textos largos. El usuario puede especificar el tamaño de la ventana contextual al cargar el modelo:
    model = AutoModelForCausalLM.from_pretrained(model_name, context_window=89000)
    
  • Apoyo a la modelización visualUnsloth también es compatible con diversos modelos de visión, como Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) y Pixtral (12B). Los usuarios pueden utilizar estos modelos para tareas de generación y procesamiento de imágenes: python
    model_name = "unslothai/llama-3.2-vision"
    model = AutoModelForImageGeneration.from_pretrained(model_name)
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...