HTN 플래너는 OpenAI의 GPT 및 HTN (Hierarchical Task Network) 아키텍처를 사용하여 자세한 계획을 자동으로 생성합니다. 이 시스템은 LLM을 사용하여 목표를 달성하는 작업을 생성 한 다음 반복적으로 실행할 수있는 하위 작업으로 분해됩니다.
최상의 결과는 GPT-4를 사용하지만 다른 OpenSource LLM은 API에 대한 수정으로 충분할 수 있습니다.
구성 요소 :
- 분해 - 작업을 수행하고 최대 깊이에 도달하거나 계획이 실패 할 때까지 하위 작업으로 분해됩니다. 이 시스템은 후보 분해를 추적하고 최상의 옵션을 선택하려고 시도합니다. 결과가 좋으면 일찍 나갈 수 있습니다.
- 다시 계획-계획이 실패하거나 계획의 일부가 실패하면 재구성이 발생합니다.
- 작업 실행 - 작업을 실행 파일로 식별합니다.
- 현재 작업은 실제로 터미널에서 실행되지 않습니다.
- 상태 추적 - LLM은 실행이 발생함에 따라 상태를 추적하고 업데이트합니다.
- 텍스트 구문 분석 - LLM에서 생성 한 자연어 응답에서 정보를 구문 분석하고 추출합니다.
- 작업 변환 - 낮은 레벨 작업을 실행할 수있는 명령 또는 코드 조각으로 변환하려고 시도합니다.
- Frontend- 계획을 나타내는 계층 구조를 표시하는 간단한 반응 프론트 엔드
- Prompt Evolver- 진화 알고리즘을 사용하여 프롬프트를 자동으로 생성하도록 설계된 응용 프로그램
-
roulette wheel selection 사용하여 선택을 수행합니다 - 돌연변이는 LLM에 의해 수행된다
- 선택 결과를 사용하여 LLM에 의해 재조합을 수행합니다.
- 피트니스는 LLM에 의해 결정되며 표준 편차를 사용하여 결과를 비교할 수 있도록 z- 점수를 사용하여 정규화됩니다.
- 환경 토폴로지
- 로그 - "로그"폴더에서 다양한 로그가 생성되며 함수 추적은 "function_trace.log"에서 찾을 수 있습니다.
- function_trace.log- "@trace_function_calls"로 주석이 붙은 모든 함수 호출을 추적합니다.
- "logs"폴더의 로그는 "log_response"기능을 사용하여 특정 하위 시스템을 추적합니다.
- parsing_errors- LLM의 출력을 구문 분석하는 데 문제가있는 모든 문제를 추적하여 문제를 해결하기 위해 파서에 업데이트를 할 수 있습니다.
- State_changes- LLM에 의해 시간이 지남에 따라 상태 전환을 추적합니다.
TODO :
- 나중에 사용하기 위해 성공적인 계획을 벡터 DB에 저장하고 생성 비용을 줄입니다.
- 더 많은 엣지 케이스를 처리하기 위해 텍스트 구문 분석을 계속 개선하십시오.
- 더 많은 사후 처리
- 작업 실행의 요구 사항으로 전제 조건을 재평가합니다
설치 :
백엔드
- 환경 변수
OPENAI_KEY 설정 OpenAI API 키로 설정 - 종속성을 설치하십시오
-
pip install -r requirements.txt 실행합니다 .txt
- 계획 응용 프로그램을 실행하십시오
-
python src/main.py - 초기 상태를 입력하십시오
- 계획을 시작하기 전에 시스템이 알고 싶은 정보입니다.
- 이 입력에
None 넣지 않을 수 있습니다
- 당신의 목표를 설명하십시오
- 시스템이 도달하려는 목표를 입력하십시오.
- 예 :
eat a ham sandwich
- 기본 기능
- 계획을 작성할 때 플래너가 사용할 수있는 도구입니다.
- 이 기본값은
Linux terminal, internet access 대한 기본값을 사용하여 Enter를 눌러 사용하여
- 플래너를 선택하십시오
- 다양한 유형의 계획 알고리즘을 사용하여 계획 작성 옵션. HTN 플래너 및* 검색 플래너와 같은 옵션.
- 이 기본값은 HTN 플래너 사용에 대한 기본값입니다
- 프롬프트 진화기 응용 프로그램을 실행하십시오
-
python src/prompt_evolver.py - 주변에 설계된 프롬프트를 원하는 목표 또는 문제를 입력하십시오.
프론트 엔드 :
- 프론트 엔드 디렉토리로 이동하십시오
- 프론트 엔드를 시작하십시오
크레딧 :
참조 :
- HTN
- 서류
- https://arxiv.org/pdf/1106.4869.pdf
- https://arxiv.org/pdf/1403.7426.pdf
- https://www.cs.umd.edu/~nau/papers/nau2021gtpyhop.pdf
- 서적
- Malik Ghallab, Dana Nau, Paolo Traverso (11 장)의 자동 계획, 이론 및 실습 (2008)
- 구현 및 문서
- https://www.cs.umd.edu/projects/shop/description.html
- https://github.com/ptrefall/fluid-hierarchical-task-network
- https://github.com/maksmaisak/htn
- https://maksmaisak.github.io/htn/front.html
- https://github.com/dananau/gtpyhop
- 비디오
- https://www.youtube.com/watch?v=7L3TCOFMR7W
- https://www.youtube.com/watch?v=mypf9_5wvlm
- https://www.youtube.com/watch?v=7RHI4FWLJW4
- https://www.youtube.com/watch?v=kxm467tftcy
- https://www.youtube.com/watch?v=XXUSFBVQULY