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 }
}该项目根据麻省理工学院许可发布。