О чём урок
Пользователи часто ведут долгие беседы с LLM, ожидая, что LLM полностью запомнит все, что было сказано в предыдущих репликах. Мы делаем LLM осведомленными о предыдущей информации, просто предоставляя им полную историю разговора, то есть конкатенацию предыдущих входных запросов и генераций. По мере того как Agents все чаще используются, мы сталкиваемся с проблемой обеспечения их полной осведомленности об информации из предыдущих реплик. Текущий подход заключается в передаче Agent'у генераций из предыдущих реплик (см. https://python.langchain.com/docs/modules/agents/how_to/custom_agent/), то есть делать то же самое, что мы делаем с LLM. Однако, как мы покажем ниже, хотя это хороший подход для LLM, он не подходит для Agents. Причина в том, что, получив тот же вход, LLM производят только окончательную генерацию; напротив, Agents сначала производят цепочку рассуждений (промежуточные шаги), затем производят окончательный результат. Следовательно, если мы сохраняем только окончательную генерацию, мы теряем некоторую важную информацию: цепочку рассуждений. Простым решением этой проблемы было бы добавление в историю разговора как цепочки рассуждений, так и генераций. Это проблематично из-за того, что цепочки рассуждений могут быть очень длинными, особенно когда модель делает ошибки и исправляет их. Использование полных цепочек рассуждений (i) внесло бы много шума; (ii) быстро заполнило бы все входное окно модели. В этом блокноте мы представляем простой подход к решению описанной выше проблемы. Мы предлагаем использовать объекты дополненной памяти, которые мы определяем как компактные и интерпретируемые фрагменты информации, основанные на цепочке рассуждений и генерации. Ниже мы покажем, что с объектами дополненной памяти Agent лучше осведомлен об информации, появившейся в разговоре, и, в свою очередь, это делает поведение Agent'а более надежным и эффективным.
План урока
- Мотивация
- Цель
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.