пппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп
Взгляните на текст выше
Подобное явление часто называют repetition problem или infinite output loop. Обычно это происходит из-за того, что модель не была обучена реагировать на некорректный промпт, или в самом датасете были логические ошибки (к примеру, разные ответы на идентичный запрос). В данной статье я вкратце расскажу как, зачем и когда файн-тюнить модели от OpenAI (но отчасти это подойдёт и под другие языковые модели).
Зачем файн-тюнить
Fine-tuning – это по факту способ доучить или переобучить уже обученную модель. Конкретно у OpenAI формат датасета для файн-тюнинга выглядит так (но только в формате JSONL):
Система: Инструкции
Пользователь: Сообщение
Ассистент: Ответ
Пользователь: Сообщение
Ассистент: Ответ
То есть условно чем-то подобным мы просто показываем нейросети как она должна отвечать. Использовать файн-тюнинг можно в случаях:
A. Чтобы задать стилистику ответов;
Б. Чтобы задать формат взаимодействия;
C. Чтобы добавить в модель новые знания.
Ниже мы рассмотрим все эти случаи.
Задаём стилистику
Давайте представим задачу в которой нам нужно сделать так, чтобы нейросеть отвечала как хрюшка. Промптом это до конца сделать нельзя т. к. в таком случае сообщения выглядят слишком детерминично:
Сделать сообщения более живыми с помощью промпта крайне сложно, поэтому мы обучим модель отвечать как хрюшка.
Очевидно, что всё что нужно сделать – это привести модели примеры в которых она отвечает нужным образом, но... Если сделать это неправильно, то заместо файн-тюнинга мы сделаем лоботомию и получим текст похожий на тот, что был в начале статьи.
Наша задача: Просто задать стилистику не изменяя мышление модели. Если мы возьмём из головы примеры и понапишем их в датасет, мы таки изменим это мышление.
Чтобы правильно обучить нейросеть в данном случае, нам необходимо обучать её на её же ответах, но немного видоизменённых.
Получаем базовый ответ модели без инструкций:
А теперь немного его корректируем:
Хрю-хрю, очень интересный вопрос!