ICLR2024
[웹 사이트] [ARXIV] [PDF]

현재 행동 (예 : 균열 계란) 이후 일반적으로 무슨 일이 일어나는지 알면 배우의 미래의 행동 (예 : 믹스 알)을 더 잘 기대할 수 있습니까? 배우의 장기 목표 (예 : 계란 볶음밥 만들기)를 알고 있다면 어떨까요? 우리는 절차 텍스트 데이터 (예 : 레시피, How-Tos)에서 사전에 걸린 대형 언어 모델 (LLMS)이 두 관점에서 LTA를 도울 가능성이 있다고 가정합니다. 가능한 다음 조치에 대한 사전 지식을 제공하는 데 도움이 될 수 있으며 각각 관찰 된 절차의 일부가 주어진 목표를 추론 할 수 있습니다.
Antgpt는 비디오 기반 장기 행동 기대에서 LLM을 활용하기 위해 논문의 제안 된 프레임 워크입니다. Antgpt는 EGO4D LTA V1 및 V2 벤치 마크, Epic-Kitchens-55 및 출판 당시 Egtea Gaze+에서 최첨단 성과를 달성합니다.
이 저장소를 복제하십시오.
git clone [email protected]:brown-palm/AntGPT.git
cd AntGPTPython (3.9) 가상 환경을 설정하십시오. 올바른 CUDA 버전으로 Pytorch를 설치하십시오.
python3 -m venv venv/forecasting
source venv/forecasting/bin/activate
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 --extra-index-url https://download.pytorch.org/whl/cu117클립을 설치하십시오.
pip install git+https://github.com/openai/CLIP.git다른 패키지를 설치하십시오.
pip install -r requirements.txt 여기에 지침에 따라 llama-recipe 패키지를 설치하십시오.
실험에서, 우리는 ego4d, epic-kitchens-55 및 egtea Gaze+의 데이터를 사용했습니다. Epic-Kitchens-55 및 Egtea Gaze+의 경우 데이터 주석과 자아 토포 분할을 사용했습니다. 먼저 루트 디렉토리에서 데이터 폴더를 시작하십시오.
mkdir data 여기에서 ego4d 데이터 세트, 주석 및 사전에 걸린 모델을 다운로드하십시오.
Epic-Kitchens 55 데이터 세트 및 주석을 다운로드하십시오.
여기에서 egtea Gaze+ 데이터 세트를 다운로드하십시오.
자아 토포에서 데이터 주석을 다운로드하십시오. 그들의 지침을 참조하십시오.
텍스트 프롬프트, 목표 기능 등을 포함한 전처리 파일을 여기에서 찾을 수 있습니다.
다운로드 및 두 폴더를 모두 압축합니다.
goal_features 를 data 폴더 아래에 놓습니다.
dataset 폴더를 Llama2_models 폴더 아래에 배치하십시오.
Llama2_models 폴더의 ICL 하위 폴더에서 Symlink를 만듭니다.
ln -s {path_to_dataset} AntGPT/Llama2_models/ICL클립을 사용하여 이러한 데이터 세트에서 기능을 추출했습니다. Transformer_Models의 기능 추출 파일을 사용하여 기능을 추출 할 수 있습니다.
python -m transformer_models.generate_clip_img_embedding아래 그림과 같은 데이터 폴더 구조가 있습니다. 자신의 설정을 자유롭게 사용하고 그에 따라 경로 구성을 조정하는 것을 잊지 마십시오.
data
├── ego4d
│ └── annotations
| │ ├── fho_lta_taxonomy.json
| │ ├── fho_test_unannotated.json
│ │ ├── ...
│ │
│ └── clips
│ ├── 0a7a74bf-1564-41dc-a516-f5f1fa7f75d1.mp4
│ ├── 0a975e6e-4b13-426d-be5f-0ef99b123358.mp4
│ ├── ...
│
├── ek
│ └── annotations
| │ ├── EPIC_many_shot_verbs.csv
│ │ ├── ...
│ │
│ └── clips
│ ├── rgb
│ ├── obj
│ └── flow
│
├── gaze
│ └── annotations
| │ ├── action_list_t+v.csv
│ │ ├── ...
│ │
│ └── clips
│ ├── OP01-R01-PastaSalad.mp4
│ ├── ...
│
├── goal_features
│ ├── ego4d_feature_gt_val.pkl
│ ├── ...
│
├── output_CLIP_img_embedding_ego4d
│
...
우리의 코드베이스는 변압기 실험, GPT 실험 및 LLAMA2 실험의 세 부분으로 구성됩니다. 각 모듈의 구현은 각각 transformer_models 폴더, GPT_models 및 Llama2_models 폴더에 있습니다.
EGO4D LTA의 모델 체크 포인트 및 출력 파일을 여기에서 찾을 수 있습니다.
두 폴더를 모두 압축합니다.
Llama2_models 폴더의 llama_recipe 하위 폴더 아래에 ckpt 폴더를 배치하십시오.
Llama2_models 폴더의 llama_recipe 하위 폴더 아래에 ego4d_outputs 폴더를 배치하십시오.
출력 파일을 리더 보드에 제출하십시오.
cd Llama2_models/Finetune/llama-recipesCUDA_VISIBLE_DEVICES=0 python inference/inference_lta.py --model_name {your llama checkpoint path} --peft_model {pretrained model path} --prompt_file ../dataset/test_nseg8_recog_egovlp.jsonl --response_path {output file path}변압기 모델에 대한 실험을 실행하려면 다음 명령을 사용하십시오.
python -m transformer_models.run --cfg transformer_models/configs/ego4d_image_pred_in8.yaml --exp_name ego4d_lta/clip_feature_in8GPT 실험을 실행하려면 워크 플로 그림 중 하나를 사용하십시오.
LLAMA2 실험을 실행하려면 해당 폴더의 지침을 참조하십시오.
우리 논문은 Arxiv에서 구입할 수 있습니다. 우리의 일이 유용하다고 생각되면, 우리를 인용하는 것을 고려하십시오.
@article { zhao2023antgpt ,
title = { AntGPT: Can Large Language Models Help Long-term Action Anticipation from Videos? } ,
author = { Qi Zhao and Shijie Wang and Ce Zhang and Changcheng Fu and Minh Quan Do and Nakul Agarwal and Kwonjoon Lee and Chen Sun } ,
journal = { ICLR } ,
year = { 2024 }
}이 프로젝트는 MIT 라이센스에 따라 릴리스됩니다.