О чём урок
Этот рецепт пошагово объясняет, как выполнить fine-tuning модели Llama 3.2 Vision для задачи OCR VQA, используя набор данных OCRVQA. Примечание: Поскольку наши vision-модели уже обладают очень хорошими возможностями OCR, здесь мы используем набор данных OCRVQA исключительно в демонстрационных целях, чтобы показать необходимые шаги по fine-tuning'у наших vision-моделей с помощью llama-cookbook. Мы создали пример скрипта ocrvqa_dataset.py, который может загружать набор данных OCRVQA с помощью функции get_custom_dataset, а затем предоставляет класс OCRVQADataCollator для обработки набора данных изображений. Для полного fine-tuning'а с FSDP мы можем выполнить следующий код: Для LoRA fine-tuning'а с FSDP мы можем выполнить следующий код: Для fine-tuning'а с заморозкой LLM с использованием FSDP мы можем выполнить следующий код: Примечание: параметр --batching_strategy padding необходим, поскольку vision-модель не будет работать с методом packing. Для получения более подробной информации о конфигурациях fine-tuning'а, пожалуйста, ознакомьтесь с README по fine-tuning'у. Для получения более подробной информации о локальном inference с fine-tuned checkpoint, пожалуйста, ознакомьтесь с разделом Inference с FSDP checkpoint'ами, чтобы узнать, как преобразовать веса FSDP в консолидированную модель формата Hugging Face для локального inference. Чтобы использовать пользовательский набор данных, пожалуйста, выполните следующие шаги: Создайте новый Python-файл для набора данных в папке recipes/quickstart/finetuning/dataset. В этом Python-файле вам необходимо определить функцию get_custom_dataset(dataset_config, processor, split, split_ratio=0.9), которая будет обрабатывать загрузку данных. В этом Python-файле вам необходимо определить функцию get_data_collator(processor), которая возвращает пользовательский data collator, который может быть использован Pytorch Data Loader'ом. Этот пользовательский класс data collator'а должен иметь функцию __call__(self, samples), которая преобразует образцы изображений и текста в фактические входные данные, которые ожидает vision-модель. Выполните команду torchrun из раздела выше, пожалуйста, измените параметр --custom_dataset.file на новый Python-файл набора данных и соответствующим образом скорректируйте learning rate.
План урока
- Рецепт Fine-tuning'а моделей Llama 3.2 Vision
- Шаги Fine-tuning'а
- Как использовать пользовательский набор данных для fine-tuning'а vision-модели
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.