Контекст — не память. Почему ChatGPT может «забыть» то, что вы обсуждали.
Иногда ChatGPT ведёт себя довольно странно.
Вы долго обсуждаете задачу, уточняете детали, несколько раз что-то исправляете. Кажется, что теперь-то он точно понял, чего вы хотите. А потом проходит ещё десяток сообщений — и ChatGPT предлагает именно тот вариант, от которого вы отказались в самом начале.
Первая мысль: он забыл.
Так говорить удобно, но технически это не совсем то, что происходит. Мы вообще часто приписываем ChatGPT человеческие свойства: он «знает», «думает», «помнит», «понимает». В обычном разговоре ничего страшного в этом нет, но при серьёзной работе такие аналогии иногда начинают мешать.
Поэтому сегодня разберём одно понятие, без которого довольно сложно понять работу языковых моделей, — контекст.
Что ChatGPT видит, когда отвечает
Допустим, мы планируем поездку в Италию.
Я пишу:
Хочу съездить на неделю в Италию.
Через несколько сообщений уточняю:
Машину брать не хочу.
Потом добавляю:
Рим можно исключить, я там уже был.
А ещё немного позже спрашиваю:
Какой маршрут тогда лучше выбрать?
Если бы ChatGPT видел только последнюю фразу, ответить нормально он бы не смог. Для ответа ему нужны предыдущие условия: Италия, неделя, без автомобиля, без Рима.
Всё это можно очень упрощённо назвать контекстом — информацией, которая предоставлена модели и которую она может учитывать при подготовке текущего ответа.
Именно из-за этого возникает ощущение памяти. Мы сказали что-то двадцать сообщений назад, ChatGPT использовал эту информацию сейчас — значит, он её запомнил.
Но человеческая память устроена совсем иначе.
У модели есть ограниченное рабочее пространство
У языковых моделей есть так называемое контекстное окно. Это объём информации, с которым модель может работать при формировании ответа.
Текст при этом обрабатывается не привычными нам страницами или словами, а небольшими фрагментами — токенами. В устройство токенизации сейчас углубляться не будем. Для понимания достаточно знать, что объём контекста не бесконечен.
Причём туда попадает не только последний вопрос пользователя. В зависимости от того, как устроен конкретный продукт, модель может получать историю разговора, инструкции, содержимое файлов, результаты работы инструментов и другую информацию, необходимую для ответа.
Есть одна деталь, о которой легко забыть: то, что вы видите старое сообщение в интерфейсе чата, ещё не означает, что каждая его деталь будет одинаково хорошо учтена в очередном ответе.
И дело не только в размере контекстного окна.
Даже если нужная информация доступна модели, в длинном разговоре одна маленькая деталь может оказаться среди огромного количества других деталей.
Вернёмся к поездке. В самом начале мы договорились не арендовать автомобиль. Потом полчаса обсуждали города, отели, билеты, пляжи и рестораны. Наконец ChatGPT предлагает красивый маршрут вдоль побережья — на машине.
Для пользователя это выглядит просто: «Ты же знаешь, что я без машины».
Именно поэтому при долгой работе есть смысл повторять действительно важные ограничения, а не рассчитывать на фразу «мы это уже обсуждали».
Но ведь у ChatGPT есть память?
Есть. И здесь легко запутаться, потому что в интерфейсе всё выглядит как один собеседник.
У ChatGPT действительно существуют механизмы памяти, благодаря которым он может учитывать некоторую информацию о пользователе и в последующих разговорах. Например, предпочтения или какие-то устойчивые детали, которые помогают не начинать каждый новый разговор совсем с нуля.
Но память ChatGPT и контекст конкретной задачи — не одно и то же.
И уж тем более память не стоит воспринимать как точную базу данных вашего проекта.
Допустим, мы полгода делаем большой проект. За это время утвердили четыре версии плана, несколько раз поменяли требования, провели десять тестов и накопили список из тридцати обязательных условий.
Я бы точно не хотел через полгода выяснять:
«ChatGPT, а какая версия плана у нас была окончательной? Кажется, мы это где-то обсуждали в июле».
Финальный план лучше просто сохранить.
То же самое касается любых данных, которые должны воспроизводиться точно.
Не храните весь проект внутри разговора
Это не значит, что теперь к каждому чату нужно заводить папку документов.
Для простых задач всё это вообще лишнее. Спросили, получили ответ, закрыли чат.
Другое дело — работа, которая продолжается неделями или месяцами.
Возьмём наше изучение английского из предыдущей статьи. За несколько месяцев появятся результаты тестов, список слабых тем, слова для повторения, изменения программы и текущий уровень.
Вместо того чтобы искать всё это среди сотен сообщений, можно хранить отдельно короткую сводку:
Цель: B1Сейчас: модуль 4 из 7Последний тест: 76%Проблемы: условные предложения, артиклиНа повторение: 34 словаСледующая проверка: через неделю
Перед новым этапом такую сводку можно дать ChatGPT вместе с задачей.
Никакой сложной технологии. Мы просто сами выбрали, какая информация сейчас действительно важна, вместо того чтобы надеяться, что модель правильно восстановит её из огромной переписки.
Для рабочего проекта принцип тот же.
Предположим, компания анализирует с помощью ИИ документы. Тогда полезно разделить хотя бы четыре вещи.
Правило работы: если ответа в документах нет, не придумывать его.
Текущая задача: найти условия расторжения договора.
Состояние работы: проверено 17 документов из 30.
Исходные данные: сами документы.
Если всё это существует только в виде сотен сообщений одного чата, со временем становится сложно разобраться уже не только модели, но и человеку.
Важные правила не должны теряться среди сообщений
Представим, что в начале проекта вы написали:
Если информации недостаточно, прямо скажи об этом. Не додумывай отсутствующие факты.
После этого прошло сто сообщений.
Если соблюдение этого правила критично, странно оставлять его просто одной старой репликой.
Такие требования лучше держать среди постоянных инструкций проекта или явно передавать модели тогда, когда они нужны.
При этом нет смысла сохранять вообще всё.
Просьба «объясни этот абзац проще» нужна сейчас. Ограничение «не использовать данные, которых нет в предоставленных документах» может быть важно на протяжении всего проекта.
Разница простая: первое относится к текущему разговору, второе определяет правила работы.
Большое контекстное окно не превращает модель в человека с идеальной памятью
У современных моделей контекстные окна стали очень большими. В них можно передавать длинные документы и большие объёмы информации. Это серьёзно расширяет возможности LLM.
Но здесь возникает ещё одно ошибочное ожидание: если модель технически может получить огромный объём текста, значит, она одинаково хорошо воспользуется каждой его частью.
Это не гарантируется.
Мне нравится простая аналогия. Представьте, что перед совещанием человеку выдали папку на тысячу страниц. Нужная информация там точно есть. Но если для решения вопроса особенно важны пять условий, разумнее вынести их отдельно, чем надеяться, что человек в нужную секунду вспомнит строку со страницы 417.
Конечно, LLM работает не так, как человек с папкой. Сравнение нужно только для одного: доступ к информации и надёжное использование нужной информации — не совсем одно и то же.
Поэтому длинный контекст полезен, но сам по себе не заменяет нормальную организацию информации.
Что из этого нужно запомнить обычному пользователю
Совсем немного.
Для обычного вопроса можно просто пользоваться ChatGPT и не думать ни о каких контекстных окнах.
Если задача становится длинной, важную информацию лучше постепенно выносить из переписки. План проекта — в план. Принятые решения — в короткую сводку. Критические требования — в инструкции. Исходные документы — хранить как документы, а не надеяться на пересказ модели.
И перед важным запросом иногда проще ещё раз напомнить несколько условий, чем писать:
«Ты же помнишь, о чём мы договаривались?»
Особенно если ошибка может дорого стоить.
Забытый ресторан в маршруте путешествия легко заменить. Потерянное ограничение при анализе рабочего документа — уже совсем другая история.
Зачем вообще во всём этом разбираться
Чтобы пользоваться ChatGPT, знать слово «контекст» необязательно. Точно так же не нужно знать устройство двигателя, чтобы ездить на автомобиле.
Но если вы начинаете использовать ИИ постоянно — для учёбы, работы или больших проектов, — некоторые особенности технологии полезно понимать.
Главная из них довольно простая.
История переписки, контекст модели и память ChatGPT — не одно и то же.
То, что вы когда-то сообщили модели важную информацию, ещё не означает, что спустя сотню сообщений стоит безоговорочно рассчитывать на её правильное использование.
Поэтому в долгих задачах полезнее не спрашивать себя: «Запомнит ли ChatGPT всё, что мы обсуждали?»
Лучше подумать: «Что из этого настолько важно, что я вообще не хочу полагаться на память чата?»
Такой вопрос быстро меняет подход к работе с ИИ.
Вы перестаёте складывать всё в одну бесконечную переписку, начинаете отдельно хранить важные решения, инструкции и данные и передаёте модели то, что действительно нужно для текущей задачи.
Никакой магии и никакого «секретного промпта».
Просто чуть меньше надежды на то, что ChatGPT сам обо всём вспомнит.