Одна из причин столь ажиотажного интереса к ChatGPT по сравнению с другими LLM (large language models) аля GPT-3 и аналогов заключается в том, что ChatGPT помнит контекст, то есть отвечая на последующие вопросы LLM учитывает предыдущий разговор.
Но как ChatGPT это делает, если он построен на архитектуре GPT-3, в которой технически нет поддержки внешней памяти, а переобучение налету невозможно, так как это долгий процесс?
Если посмотреть в документацию OpenAI то мы увидем такой ответ на вопросы “Does ChatGPT remember what happened earlier in the conversation?”
“While ChatGPT is able to remember what the user has said earlier in the conversation, there is a limit to how much information it can retain. The model is able to reference up to approximately 3000 words (or 4000 tokens) from the current conversation - any information beyond that is not stored. “
Это подсказывает нам, что фактически то, что делают ребята из OpenAI это используют предыдущие ответы как часть вопроса в новом запросе. Такой подход называется “language model cascades”.
Еще одна гипотиза, которая дает развитие идеи “language model cascades” это использование x-prompt, т.е. не только обычных слов, но и “кодированных контекстов” которые передают блок информации в сжатом виде. Например вместо “Criticize the ++ language” мы делаем запрос “Criticize the C++ language
in w_Sheldon_g style”. Помимо передачи контекста, x-prompt позволяет нам более продвинуто задавать запросы, фактически сразу направляя AI в нужно нам направление.
Другие идеи как ChatGPT сохраняет контекст?
Подробнее в научных работах:
https://arxiv.org/pdf/2301.04589.pdf
https://arxiv.org/pdf/2212.00616.pdf