Загрузка наборов данных на Hugging Face: пошаговое руководство
Часть 1: Загрузка набора данных на Hugging Face Hub
Введение
В этой части руководства мы рассмотрим процесс загрузки пользовательского набора данных на Hugging Face Hub, платформу для обмена и совместной работы с наборами данных и моделями.
Мы преобразуем существующий набор данных, содержащий инструкции на Python, в формат, подходящий для обучения современных больших языковых моделей (LLMs), и затем загрузим его для публичного использования. Мы будем форматировать наши данные в соответствии с шаблоном чата Llama 3.2, что подготовит их для дообучения моделей Llama 3.2.
Шаг 1: Установка и аутентификация
Сначала необходимо установить необходимые библиотеки и пройти аутентификацию на Hugging Face Hub:
!pip install -q datasets !huggingface-cli login
Здесь мы устанавливаем библиотеку datasets и выполняем команду для входа в систему с помощью токена аутентификации, который можно найти в настройках вашей учетной записи Hugging Face.
Шаг 2: Загрузка набора данных и определение функции трансформации
Теперь мы загрузим существующий набор данных и определим функцию для его преобразования в формат чата Llama 3.2:
from datasets import load_dataset dataset = load_dataset('Vezora/Tested-143k-Python-Alpaca') def transform_conversation(example): system_prompt = "Вы - эксперт по программированию на Python..." instruction = example['instruction'].strip() output = example['output'].strip() formatted_text = f"""{system_prompt} <|user|> {instruction} <|assistant|> {output}""" return {'text': formatted_text}
Мы загружаем набор данных, содержащий инструкции и выходные данные программирования на Python, и определяем функцию, которая перестраивает каждый пример в формат чата Llama 3.2, включая детализированную системную подсказку.
Шаг 3: Применение трансформации к набору данных
Теперь мы применим нашу функцию трансформации к всему набору данных:
transformed_dataset = dataset['train'].map(transform_conversation)
Функция map() применяет нашу трансформацию ко всем примерам в наборе данных, что позволяет подготовить данные для дообучения моделей Llama 3.2.
Шаг 4: Загрузка набора данных на Hugging Face Hub
После подготовки набора данных мы можем загрузить его на Hugging Face Hub:
transformed_dataset.push_to_hub("Llama-3.2-Python-Alpaca-143k")
Метод push_to_hub() загружает наш преобразованный набор данных на Hugging Face Hub, делая его доступным для скачивания и использования другими.
Часть 2: Дообучение и загрузка модели на Hugging Face Hub
Шаг 1: Установка необходимых библиотек
Сначала установим все необходимые библиотеки для эффективного дообучения больших языковых моделей:
!pip install "unsloth[colab-new]" !pip install -U transformers !pip install -U trl !pip install -U peft accelerate bitsandbytes !pip install torch torchvision torchaudio triton !pip install xformers
Шаг 2: Загрузка набора данных
Теперь загрузим набор данных, подготовленный в предыдущем разделе:
from unsloth import FastLanguageModel from trl import SFTTrainer from transformers import TrainingArguments import torch dataset = load_dataset("nikhiljatiwal/Llama-3.2-Python-Alpaca-143k", split="train")
Шаг 3: Загрузка предобученной модели
Теперь загружаем квантованную версию Llama 3.2:
model, tokenizer = FastLanguageModel.from_pretrained( model_name="unsloth/Llama-3.2-3B-Instruct-bnb-4bit", load_in_4bit=True )
Шаг 4: Настройка PEFT (параметрически эффективное дообучение)
Настраиваем модель для эффективного дообучения с помощью LoRA:
model = FastLanguageModel.peft_model( model, r=16, target_modules=["q_proj", "k_proj", "v_proj", "o_proj"], lora_alpha=16, use_gradient_checkpointing=True )
Шаг 5: Подключение Google Диска для сохранения
Чтобы сохранить нашу обученную модель, подключим Google Диск:
from google.colab import drive drive.mount('/content/drive')
Шаг 6: Настройка обучения и запуск процесса обучения
Теперь настраиваем и запускаем процесс обучения:
trainer = SFTTrainer( model=model, train_dataset=dataset, args=TrainingArguments( per_device_train_batch_size=2, max_steps=60, output_dir="/content/drive/My Drive/Llama-3.2-3B-Instruct-bnb-4bit" ) ) trainer.train()
Шаг 7: Сохранение дообученной модели локально
После обучения сохраняем нашу модель:
model.save_pretrained("lora_model")
Шаг 8: Загрузка модели на Hugging Face Hub
Наконец, загружаем нашу дообученную модель на Hugging Face:
model.push_to_hub("nikhiljatiwal/Llama-3.2-3B-Instruct-code-bnb-4bit", token=HF_TOKEN)
Заключение
В данном руководстве мы продемонстрировали полный рабочий процесс кастомизации модели ИИ с использованием Hugging Face. Мы преобразовали набор данных инструкций Python в формат Llama 3.2, дообучили модель с помощью эффективных методов, таких как квантование и LoRA, и поделились ресурсами на Hugging Face Hub.
Дополнительные советы
Изучите, как технологии ИИ могут изменить ваш подход к работе, автоматизируя процессы и добавляя ценность в взаимодействиях с клиентами. Определите ключевые показатели эффективности для оценки воздействия ваших инвестиций в ИИ.
Если вам нужна помощь в управлении ИИ в бизнесе, свяжитесь с нами по адресу hello@itinai.ru.