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 AntGPT設置Python(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凝視+,我們還使用了自我topo的數據註釋和分裂。首先在根目錄中啟動數據文件夾。
mkdir data從此處下載EGO4D數據集,註釋和預處理的模型。
下載Epic-Kitchens 55數據集和註釋。
從此處下載EGTEA凝視+數據集。
從Ego-Topo下載數據註釋。請參考他們的說明。
您可以在此處找到我們的預處理文件,包括文本提示,目標功能等。
下載並解開兩個文件夾。
將goal_features放在data文件夾下。
將dataset文件夾放在Llama2_models文件夾下。
在Llama2_models文件夾的ICL子文件夾中進行符號鏈接。
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的模型檢查點和輸出文件。
解開兩個文件夾。
將ckpt文件夾放在llama_recipe文件夾的下方, Llama2_models文件夾。
將ego4d_outputs文件夾放在llama_recipe文件夾的下方, Llama2_models文件夾。
將輸出文件提交給排行榜。
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_in8要運行GPT實驗,請使用其中一個工作流插圖筆記本。
要運行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 }
}該項目根據麻省理工學院許可發布。