В настоящее время основные крупные языковые модели, такие как ChatGPT, Llama 2 и Wenxin Yyyan, были ограничены из-за проблемы технической архитектуры, и даже Claude поддерживает максимум 100 000 входных токенов, что очень неудобно для интерпретации сотен страниц отчетов, книг и статей.
Чтобы решить эту дилемму, Калифорнийский университет в Беркли предложил MemGPT, вдохновленный механизмом управления памятью операционной системы. Самым большим новшеством этой модели является имитация многоуровневого механизма управления памятью операционной системы, а также преодоление фиксированного контекстного ограничения больших языковых моделей за счет передачи данных между различными уровнями памяти.
Адрес с открытым исходным кодом:
Тезис:
MemGPT в основном содержит два типа памяти: основной контекст и внешний контекст. Основной контекст эквивалентен основной памяти операционной системы и представляет собой контекстное окно фиксированной длины, к которому могут обращаться большие языковые модели.
Внешний контекст является эквивалентом дискового хранилища, в котором хранится дополнительная информация за пределами основного контекста. MemGPT также предоставляет множество вызовов функций, позволяя большим языковым моделям активно управлять собственной памятью без вмешательства человека.
Эти вызовы функций могут импортировать и экспортировать информацию между основным и внешним контекстами. В зависимости от текущей цели задачи большая языковая модель может независимо решать, когда следует переместить контекстную информацию, чтобы более эффективно использовать ограниченные основные ресурсы контекста.
Исследователи оценили его в нескольких тестовых средах, и результаты показали, что MemGPT может эффективно обрабатывать текстовый контент, который намного превышает предел длины контекста больших языковых моделей, например, M**emGPT может обрабатывать документы, которые намного превышают контекстные ограничения GPT-3.5 и GPT-4.
Когда количество извлекаемых документов увеличивается, производительность модели с фиксированным контекстом ограничивается качеством ретривера, в то время как MemGPT может извлекать больше документов, вызывая механизм разбивки на страницы, а его точность вопросов и ответов также повышается.
В недавно предложенной многоступенчатой задаче извлечения вложенных ключевых слов MemGPT успешно выполнил задачу, которая требовала многоузловых запросов по документам для получения решения путем многократного вызова внешнего контекста, в то время как точность GPT-3.5 и GPT-4 резко упала до 0 при увеличении количества вложенных слоев.
Основной контекст
Основной контекст в MemGPT эквивалентен «основной памяти» в операционной системе, которая представляет собой контекстное окно фиксированной длины, к которому могут напрямую обращаться большие языковые модели. Исследователи разделили основной контекст на три части:
Системные инструкции: Эта часть содержит базовую логику управления MemGPT, такую как режим вызова функций и т. д., с фиксированной длиной и только для чтения.
Контекст беседы: это очередь «первым пришел, первым ушел», которая содержит историю недавних взаимодействий с пользователем, доступную только для чтения, и обрезает предыдущие разговоры при превышении длины.
Рабочий контекст: Это временное хранилище для чтения и записи, в которое большие языковые модели могут автономно записывать информацию с помощью вызовов функций.
Важно отметить, что эти три части вместе не могут превышать максимальную длину контекста базовой большой языковой модели.
Внешний контекст
Внешний контекст содержит дополнительную информацию вне основного контекста, действуя как «дисковое хранилище» в операционной системе. Для внешних контекстов требуются явные вызовы функций для импорта информации в основной контекст для доступа модели, включая следующие два типа:
Backtracking Storage (Хранилище для возврата): содержит полную историческую информацию о событии, эквивалентную несжатой версии контекста беседы.
Архивное хранилище: база данных общего назначения для чтения и записи, которая может служить пространством переполнения для основного контекста для хранения дополнительной информации. В диалоговых приложениях архивное хранилище может содержать дополнительную информацию о роли пользователя или системы, предпочтениях и многом другом.
Хранилище с возвратом позволяет извлекать исторические взаимодействия за определенный период времени. При анализе документов архивное хранилище может поддерживать поиск больших наборов документов.
Независимое редактирование и поиск
MemGPT активно перемещает данные между уровнями памяти с помощью вызовов функций, генерируемых большими языковыми моделями, для достижения автономного редактирования и извлечения. Например, можно решить, когда перемещать информацию между контекстами, чтобы она соответствовала текущим целям задачи, без участия человека.
Новшество заключается в подробном описании архитектуры памяти и методов вызова функций в системных инструкциях, которые помогают большой языковой модели научиться использовать эти инструменты для управления памятью.
Большая языковая модель может корректировать стратегию вызова на основе обратной связи. В то же время, когда основного контекстного пространства недостаточно, система напоминает большой языковой модели о необходимости сохранения важной информации во времени и направляет ее на управление памятью.
Цепочка
В MemGPT различные внешние события запускают большие языковые модели для создания выводов, включая пользовательские сообщения, предупреждения о системной памяти, события взаимодействия с пользователем и многое другое.
Вызовы функций могут запрашивать получение управления, что позволяет выполнять цепочечные вызовы. Например, когда результаты разбиваются на страницы, последовательные вызовы могут собирать данные с разных страниц в основной контекст.
Вызов yield, с другой стороны, приостанавливает большую языковую модель до тех пор, пока следующее внешнее событие не вызовет вывод. Этот поток управления на основе событий обеспечивает бесперебойную связь между управлением памятью, логическим выводом модели и взаимодействием с пользователем.
Парсер и оптимизация
MemGPT использует парсер для проверки вызовов функций, генерируемых большой языковой моделью, проверки правильности параметров и т. д. Результат передается обратно в модель после вызова, чтобы можно было научиться корректировать стратегию и уменьшить количество ошибок.
Кроме того, системные инструкции MemGPT могут обновляться в режиме реального времени, чтобы добавить в модель настраиваемые рекомендации по управлению памятью для различных задач для достижения непрерывной оптимизации.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Бесконечный контекст, многоуровневое управление памятью! Преодолейте контекстные ограничения больших языковых моделей, таких как ChatGPT
Первоисточник: AIGC Open Community
В настоящее время основные крупные языковые модели, такие как ChatGPT, Llama 2 и Wenxin Yyyan, были ограничены из-за проблемы технической архитектуры, и даже Claude поддерживает максимум 100 000 входных токенов, что очень неудобно для интерпретации сотен страниц отчетов, книг и статей.
Чтобы решить эту дилемму, Калифорнийский университет в Беркли предложил MemGPT, вдохновленный механизмом управления памятью операционной системы. Самым большим новшеством этой модели является имитация многоуровневого механизма управления памятью операционной системы, а также преодоление фиксированного контекстного ограничения больших языковых моделей за счет передачи данных между различными уровнями памяти.
Адрес с открытым исходным кодом:
Тезис:
Внешний контекст является эквивалентом дискового хранилища, в котором хранится дополнительная информация за пределами основного контекста. MemGPT также предоставляет множество вызовов функций, позволяя большим языковым моделям активно управлять собственной памятью без вмешательства человека.
Эти вызовы функций могут импортировать и экспортировать информацию между основным и внешним контекстами. В зависимости от текущей цели задачи большая языковая модель может независимо решать, когда следует переместить контекстную информацию, чтобы более эффективно использовать ограниченные основные ресурсы контекста.
Когда количество извлекаемых документов увеличивается, производительность модели с фиксированным контекстом ограничивается качеством ретривера, в то время как MemGPT может извлекать больше документов, вызывая механизм разбивки на страницы, а его точность вопросов и ответов также повышается.
В недавно предложенной многоступенчатой задаче извлечения вложенных ключевых слов MemGPT успешно выполнил задачу, которая требовала многоузловых запросов по документам для получения решения путем многократного вызова внешнего контекста, в то время как точность GPT-3.5 и GPT-4 резко упала до 0 при увеличении количества вложенных слоев.
Основной контекст
Основной контекст в MemGPT эквивалентен «основной памяти» в операционной системе, которая представляет собой контекстное окно фиксированной длины, к которому могут напрямую обращаться большие языковые модели. Исследователи разделили основной контекст на три части:
Системные инструкции: Эта часть содержит базовую логику управления MemGPT, такую как режим вызова функций и т. д., с фиксированной длиной и только для чтения.
Контекст беседы: это очередь «первым пришел, первым ушел», которая содержит историю недавних взаимодействий с пользователем, доступную только для чтения, и обрезает предыдущие разговоры при превышении длины.
Рабочий контекст: Это временное хранилище для чтения и записи, в которое большие языковые модели могут автономно записывать информацию с помощью вызовов функций.
Важно отметить, что эти три части вместе не могут превышать максимальную длину контекста базовой большой языковой модели.
Внешний контекст
Внешний контекст содержит дополнительную информацию вне основного контекста, действуя как «дисковое хранилище» в операционной системе. Для внешних контекстов требуются явные вызовы функций для импорта информации в основной контекст для доступа модели, включая следующие два типа:
Backtracking Storage (Хранилище для возврата): содержит полную историческую информацию о событии, эквивалентную несжатой версии контекста беседы.
Архивное хранилище: база данных общего назначения для чтения и записи, которая может служить пространством переполнения для основного контекста для хранения дополнительной информации. В диалоговых приложениях архивное хранилище может содержать дополнительную информацию о роли пользователя или системы, предпочтениях и многом другом.
Независимое редактирование и поиск
MemGPT активно перемещает данные между уровнями памяти с помощью вызовов функций, генерируемых большими языковыми моделями, для достижения автономного редактирования и извлечения. Например, можно решить, когда перемещать информацию между контекстами, чтобы она соответствовала текущим целям задачи, без участия человека.
Большая языковая модель может корректировать стратегию вызова на основе обратной связи. В то же время, когда основного контекстного пространства недостаточно, система напоминает большой языковой модели о необходимости сохранения важной информации во времени и направляет ее на управление памятью.
Цепочка
В MemGPT различные внешние события запускают большие языковые модели для создания выводов, включая пользовательские сообщения, предупреждения о системной памяти, события взаимодействия с пользователем и многое другое.
Вызовы функций могут запрашивать получение управления, что позволяет выполнять цепочечные вызовы. Например, когда результаты разбиваются на страницы, последовательные вызовы могут собирать данные с разных страниц в основной контекст.
Парсер и оптимизация
MemGPT использует парсер для проверки вызовов функций, генерируемых большой языковой моделью, проверки правильности параметров и т. д. Результат передается обратно в модель после вызова, чтобы можно было научиться корректировать стратегию и уменьшить количество ошибок.
Кроме того, системные инструкции MemGPT могут обновляться в режиме реального времени, чтобы добавить в модель настраиваемые рекомендации по управлению памятью для различных задач для достижения непрерывной оптимизации.