Комментарии 11
Благодарствую, очень позновательно!
Вопрос по поводу передачи "summary" - какими средствами этот саммари должен формулироваться, чтобы он был по существу ?
Спасибо за добрые слова 🤗
По summary: единой "правильной" стратегии нет. Summary всегда зависит от задачи. Для чат-бота обычно работает связка структурированное summary (темы/факты/сущности) + отдельный буфер последних 10–15 сообщений, чтобы не терять контекст. Для RAG summary - это скорее короткое превью документа + подробные метаданные, чтобы потом фильтровать и ранжировать источники.
Само summary обычно делаем с помощью LLM и обновляем в фоновом режиме инкрементально. Но! Если summary делает LLM, она может выкидывать важные детали или путать факты, поэтому полезно заранее задать структуру summary в JSON и при обновлении заполнять/обновлять именно поля этой структуры, а не писать каждый раз вольный пересказ.
Спасибо за статью. А я-то грешил, что LLM меня не понимает из за потенциального конфликта в подробных инструкциях. Вроде бы всё разжевано, да с примерами, а в результате - совершенно неправильный ответ. Мысли поискать "а не системная ли это проблема?" почему-то даже не возникло...
Впрочем в итоге всё равно пришел примерно к тем же выводам и принципу "говорить коротко, и по существу".
Как это знакомо!
Но иногда очень сложно сказать по существу и коротко - особенно когда изначально начал делать неправильно.
Я в таких ситуациях брал размышляющую модель и смотрел ход её мыслей. Она практически всегда подсвечивает разногласия в системных инструкциях.
Сам, возможно, сталкивался с подобной ситуацией, но вроде кажется, что даже подробная инструкция не настолько большая, чтобы вызывать проблемы. Или это не так?
Обычно правила и контекст к которым эти правила применять - ассоциативно, а не дословно, связаны. Как показано в статье, контекст для решения таких задач, крайне мал. Поэтому несколько правил на одну тему, особенно конструкции "если-то" - потенциальный источник ошибок.
Но более вероятная ситуация - неоднозначность инструкций. Часто, то как мы воспринимаем текст отличается от того как модель может его интерпретировать. Чтобы понять, как она воспринимает некоторые сложные конструкции языка нужно либо много опыта с ней общаться, либо сразу начать тестировать свой промпт на кейсах и читать мысли модели. Или для ситуаций, где она постоянно ошибается, просить её объяснить как она применяет системные правила.
PS. что такое подробная инструкция для вас? У меня была ситуация, когда промпт был более 60k токенов с фью-шотами. Если ваш промпт до 4k - вероятнее всего сложность самой задачи или непрозрачность инструкций, или краевые случаи - более острая проблема.
я продолжаю разбирать подобные вещи у себя в Telegram короткими постами, экспериментами и примерами из практики: «надо разобраться | заставляем LLM работать».
На всякий случай. В дебиановском ТГ эти Ваши короткие посты выглядят так: "This message is not supported by your version of Telegram."
Сам, возможно, сталкивался с подобной ситуацией, но вроде кажется, что даже подробная инструкция не настолько большая, чтобы вызывать проблемы. Или это не так?
Отличное направление для размышления. Спасибо за статью.
На самом деле, у меня не так часто возникает проблема потери контекста. И главный вопрос - действительно всегда в конце *простыни*
...но, конечно, все, кто предупреждал, что LLM не понимает сути происходящего, а просто подсовывает следющий наиболее вероятный токен — это луддиты, технофобы и ничего не понимают.

Антипаттерн LLM-приложений: когда модель игнорирует контекст. Часть 2