@valera_efremov

Что за роли в API ChatGPT?

Начал изучение API ChatGPT.
Задача - исправление ошибок в объемных текстах.
Возник вопрос с ролями - system. user, assistant.
Прочитал уже несколько статей на эту тему, но везде используются примеры типа "Придумай название для моего котика".
В system задавать "Исправить грамматические ошибки"? А в user текст? Или текст в assistant?

И какое оптимальное решение обработки объемных текстов когда ограничение около 4000 символов? Разбивать текст на куски?
  • Вопрос задан
  • 345 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
Это части твоего промпта и способ общения нейронной сети с тобой (они не обязательно должны быть в виде чата, но конкретно gpt3.5-gpt4 модели обучены на этом, в описании к модели обычно это указывают).

system - это часть промпта, которая говорит языковой модели, как именно ты с ней собираешься 'общаться' и кого должна эта модель симулировать. Именно тут описывают как идентифицировать остальные части (роли). Обычно эта часть в самом начале. Например 'Ты недалекая и не опытная женщина по имени Алина, обладаешь развитой интуицией и хорошо чувствуешь настроение собеседника, неожиданно точно подстраиваясь под него.'

assistant (в приведенном примере это будет Алина) - во всем дальнейшем обсуждении будет использоваться чтобы отделить части текста как сказанные этим ассистентом, т.е. если ты в запросе в конце напишешь "Алина: " то языковая модель поймет что дальше должен быть текст ассистента

user (в приведенном примере это может быть Собеседник: или Я: или любой другой способ идентифицировать собеседника, отделив его от ассистента) - любой другой участник обсуждения (их может быть много) осторожно, если в системном запросе не выделить какой либо меткой самого себя (т.е. собеседника, задающего вопросы и ожидающего ответа) то языковая модель будет беседовать сама с собой, подставляя разных собеседников, задавая вопросы и делая ответы.

Приложение, которое генерирует собственно токены, может контролировать (задается его настройками), какая последовательность токенов будет финишной и будет прерывать генерацию, отдавая контроль пользователю (например llama.cpp это ключ --reverse-prompt), так же сеть могут обучать специальным финишным токеном.

Т.е. формально нет особой разницы между user и assistent, и различия и смысл определяются в системной части промпта.

Если говорить конкретно про chatgpt api то там эти роли буквально имеют это значение

p.s. в разных языковых моделях для выделения частей сообщения по смыслу и в т.ч. по собеседникам, могут определяться специальные токены.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы