Unsloth: una herramienta de código abierto para ajustar y entrenar modelos lingüísticos de gran tamaño
Últimos recursos sobre IAActualizado hace 6 meses Círculo de intercambio de inteligencia artificial 2.5K 00
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.

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
- 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 - almacén de clonesClona el repositorio de Unsloth usando Git:
bash
git clone https://github.com/unslothai/unsloth.git
cd unsloth - Instalar Unsloth: Ejecute el siguiente comando para instalar Unsloth:
bash
pip install -e .
Tutoriales
- 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)
- 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()
- 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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...