Этот репо содержит реализацию последовательного агента планирования под названием «неопланинг». Этот планировщик подходит для текстовых сред с большим пространством состояния и пространством действий. Он синергирует оба поиска в пространстве состояний с помощью запросов на основополагающий LLM, чтобы получить лучший план действий. Сигналы вознаграждения количественно используются для управления поиском. Баланс разведки и эксплуатации поддерживается путем максимизации верхних доверительных границ значений состояний. В местах, где требуется случайное исследование, LLM запрашивается для создания плана действий. Участие в каждом испытании хранятся как отношения сущности в формате текста. Они используются в будущих запросах LLM для постоянного улучшения. Эксперименты в среде ScienceWorld выявляют улучшение на 124% по сравнению с текущим лучшим методом с точки зрения среднего вознаграждения, полученного по нескольким задачам. Ниже приведена архитехтура.

Во -первых, клонировать репо и перейдите в каталог новообразований и установите требования
git clone https://github.com/swarna-kpaul/neoplanner
cd neoplanner
python3 -m pip install -r requirements.txtЗатем вам нужно изменить файл config/keys.py , чтобы обновить OpenAiapikey . Вы можете получить свой ключ API, зарегистрируясь на портале Openai. Впервые пользователи могут получить бесплатный кредит на 5 долларов для экспериментов. Вы можете получить свой ключ API от этого URL
После этого пакет может быть импортирован
from solver import neoplannerИнициализировать объект решателя
# task is the identifier of tasks as specified in
# stmloadfile is the name of the file (with full path) that contains saved state. The state will be loaded initially. default value is None
# stmstoragefile is the name of the file (with full path) whare intermediate states can be saved. default value is None
# beliefstorefile is the name of the file (with full path) whare intermediate learnings can be saved. default value is None
# beliefloadfile is the name of the file (with full path) that contains intermediate learnings. The learnings will be loaded initially. default value is None
# sigma is exploration probability constant. Increasing its value would increase random exploration by the the LLM.
solverobj = neoplanner ( task = "2-1" , stmloadfile = None , stmstoragefile = None , beliefstorefile = None , beliefloadfile = None , sigma = 0.3 )Запустить решатель.
env = solverobj . train ()
######## get actionplan from statespace graph
additionalinstructions , actionplan , _ , _ , _ = env . getinstructions ()Обучение будет продолжаться до тех пор, пока не будет достигнута цель. Вы можете прервать процесс обучения между ними. В этом случае убедитесь, что вы предоставили STMStorageFile и VariefstoreFile, чтобы промежуточные состояния и убеждения спасаются.
Вы можете загрузить STMStorageFile и запросить объект ENV, чтобы получить план действия с космического графика состояния.
import pickle
from solver import scienv
env = scienv ( "2-1" )
stmstoragefile = < file name with full path >
with open ( stmstoragefile , 'rb' ) as f :
rootnodeid , invalidnodeid , DEFAULTVALUE , statespace , totaltrials , actiontrace , environment = pickle . load ( f )
env . model . rootnodeid = rootnodeid
env . model . invalidnodeid = invalidnodeid
env . model . DEFAULTVALUE = DEFAULTVALUE
env . model . statespace = statespace
env . model . totaltrials = totaltrials
env . environment = environment
env . reset ()
additionalinstructions , actionplan , _ , _ , _ = env . getinstructions ()Папка PretryedFiles содержит все обученные государственные пространства и файлы обучения для 7 задач. Вы можете изучить решенную плану действий задач с помощью приведенного выше кода, установив STMStorageFile с соответствующим именем файла
Участие можно увидеть, запустив следующий код
import pickle
beliefloadfile = < belief load file name >
with open ( beliefloadfile , 'rb' ) as f :
beliefaxioms , totalexplore = pickle . load ( f )
print ( beliefaxioms ) @misc{paul2023sequential,
title={Sequential Planning in Large Partially Observable Environments guided by LLMs},
author={Swarna Kamal Paul},
year={2023},
eprint={2312.07368},
archivePrefix={arXiv},
primaryClass={cs.AI}
}