Unsloth: инструмент с открытым исходным кодом для эффективной тонкой настройки и обучения больших языковых моделей

Общее введение

Unsloth - это проект с открытым исходным кодом, предназначенный для предоставления эффективных инструментов для тонкой настройки и обучения больших языковых моделей (LLM). Проект поддерживает широкий спектр известных моделей, включая Llama, Mistral, Phi, Gemma и т. д. Ключевыми особенностями Unsloth являются возможность значительно сократить использование памяти и ускорить обучение, что позволяет пользователям завершить тонкую настройку и обучение моделей за меньшее время. Кроме того, Unsloth предоставляет обширную документацию и учебные пособия, которые помогут пользователям быстро освоиться и в полной мере использовать все его возможности.

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

 

Список функций

  • Эффективная тонкая настройка: Поддержка нескольких моделей, таких как Llama, Mistral, Phi и Gemma, с 2-5-кратной ускоренной тонкой настройкой и 50-80% меньшим потреблением памяти.
  • Бесплатное использование: Предоставляется бесплатный блокнот, чтобы пользователи могли просто добавить набор данных и запустить весь код, чтобы получить точно настроенную модель.
  • Несколько форматов экспорта: Поддержка экспорта точно настроенных моделей в GGUF, Ollama, vLLM или загрузки на Hugging Face.
  • динамическое количественное определение: Поддерживает динамическое 4-битное квантование для повышения точности модели, занимая при этом менее 10% памяти.
  • Длительная поддержка контекста: Поддерживает 89K контекстных окон для моделей Llama 3.3 (70B) и 342K контекстных окон для моделей Llama 3.1 (8B).
  • Поддержка визуального моделирования: Поддерживает такие модели зрения, как Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) и Pixtral (12B).
  • Оптимизация рассуждений: Предоставляет различные возможности оптимизации вывода, позволяющие значительно повысить скорость вывода.

 

Использование помощи

Процесс установки

  1. Установка зависимостей: Убедитесь, что установлен Python 3.8 и выше, а также что установлены следующие зависимости: bash
    pip install torch transformers datasets
  2. склад клонов: Клонируйте репозиторий Unsloth с помощью Git: bash
    git clone https://github.com/unslothai/unsloth.git
    cd unsloth
  3. Установите Unsloth: Выполните следующую команду, чтобы установить Unsloth: bash
    pip install -e .

Учебники

  1. Модели для погрузки: Загрузите предварительно обученную модель в сценарий 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. Тонкая настройка модели: Используйте блокнот, предоставленный Unsloth, для тонкой настройки модели. Вот простой пример:
    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. Экспортная модель: После завершения тонкой настройки модель можно экспортировать в различные форматы: python
    model.save_pretrained("./finetuned_model")
    tokenizer.save_pretrained("./finetuned_model")

Детальное управление функциями

  • динамическое количественное определениеUnsloth поддерживает динамическое 4-битное квантование в процессе тонкой настройки, что позволяет значительно повысить точность модели, занимая при этом менее 10% памяти. Пользователи могут включить эту функцию в параметрах обучения:
    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"
    )
    
  • Длительная поддержка контекста: Unsloth поддерживает контекстное окно размером 89 КБ в модели Llama 3.3 (70B) и контекстное окно размером 342 КБ в модели Llama 3.1 (8B). Это делает модель еще лучше в работе с длинным текстом. Пользователь может указать размер контекстного окна при загрузке модели:
    model = AutoModelForCausalLM.from_pretrained(model_name, context_window=89000)
    
  • Поддержка визуального моделированияUnsloth также поддерживает различные модели зрения, такие как Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) и Pixtral (12B). Пользователи могут использовать эти модели для создания и обработки изображений: python
    model_name = "unslothai/llama-3.2-vision"
    model = AutoModelForImageGeneration.from_pretrained(model_name)
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...