Модель не пам'ятає. Пам'ятаєте ви.

Великі мовні моделі (LLMs) не мають пам'яті.

Раніше я думав, що кожен чат зберігає власний контекст. Я помилявся. Коли ви спілкуєтеся з LLM, вона не пам'ятає вашого попереднього запитання, якщо ви не надішлете його знову.

Модель є безстановою (stateless). Це означає, що кожен запит — це новий початок.

Щоб створити діалог, ви повинні керувати історією самостійно. Ви робите це, надсилаючи масив усіх попередніх повідомлень із кожним новим запитом.

«Пам'ять» — це просто список повідомлень:

  • Користувач: Привіт.
  • Асистент: Привіт!
  • Користувач: Як справи?

Якщо ви не включите перші два рядки у свій наступний запит, модель не знатиме, що ви вже привіталися.

Я дізнався про це, уникаючи використання SDK. Більшість розробників використовують такі інструменти, як Anthropic SDK, щоб приховати цю складність. SDK бере на себе керування історією повідомлень і заголовками.

Якщо ви хочете зрозуміти, як працюють LLM, використовуйте замість цього прямий fetch. Не використовуйте абстракції. Коли ви керуєте циклом запиту та відповіді вручну, ви бачите кожне рішення.

Таке ручне керування дозволяє згодом будувати складні стратегії, як-от:

  • Ковзні вікна (sliding windows) для керування довгими чатами.
  • Retrieval Augmented Generation (RAG).
  • Семантичний пошук.

Розуміння цього масиву є основою розробки ШІ. Саме ви надаєте контекст. Модель знає лише те, що ви їй надсилаєте.

Джерело: https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk