ICLR2024
[Site Web] [ARXIV] [PDF]

Pouvons-nous mieux anticiper les actions futures d'un acteur (par exemple, mélangez les œufs) en sachant ce qui se passe couramment après son action actuelle (par exemple, les œufs de crack)? Et si nous connaissons également l'objectif à plus long terme de l'acteur (par exemple, la fabrication du riz frit aux œufs)? Nous émettons l'hypothèse que les modèles de grands langues (LLM), qui ont été pré-entraînés sur les données de texte de la procédure (par exemple, les recettes, How-Tos), ont le potentiel d'aider LTA sous les deux angles. Il peut aider à fournir les connaissances antérieures sur les actions suivantes possibles et à déduire l'objectif étant donné la partie observée d'une procédure, respectivement.
ANTGPT est le cadre proposé de notre article pour tirer parti des LLM dans l'anticipation d'action à long terme basée sur vidéo. Antgpt obtient des performances de pointe sur les références EGO4D LTA V1 et V2, Epic-Kitchens-55, ainsi que le regard EGTEA + au moment de la publication.
Cloner ce référentiel.
git clone [email protected]:brown-palm/AntGPT.git
cd AntGPTConfigurez l'environnement virtuel Python (3.9). Installez Pytorch avec la bonne version CUDA.
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/cu117Installez le clip.
pip install git+https://github.com/openai/CLIP.gitInstallez d'autres packages.
pip install -r requirements.txt Installez les packages de recette LLAMA suivant les instructions ici.
Dans nos expériences, nous avons utilisé des données d'Ego4d, Epic-Kitchens-55 et Egtea Gaze +. Pour Epic-Kitchens-55 et Egtea Gaze +, nous avons également utilisé l'annotation des données et les divisions de l'ego-topo. Démarrez d'abord un dossier de données dans le répertoire racine.
mkdir data Téléchargez un ensemble de données Ego4d, des annotations et des modèles pré-entraînés à partir d'ici.
Téléchargez Epic-Kitchens 55 Dataset et Annotations.
Téléchargez Egtea Gaze + DataSet à partir d'ici.
Téléchargez les annotations de données à partir de l'ego-topo. Veuillez vous référer à leurs instructions.
Vous pouvez trouver notre fichier prétraité, y compris les invites de texte, les fonctionnalités d'objectif, etc.
Téléchargé et dézip les deux dossiers.
Placez le dossier goal_features dans le dossier data .
Placez le dossier dataset dans le dossier Llama2_models .
Faites un lien de symbolique dans le sous-dossier ICL du dossier Llama2_models .
ln -s {path_to_dataset} AntGPT/Llama2_models/ICLNous avons utilisé CLIP pour extraire les fonctionnalités de ces ensembles de données. Vous pouvez utiliser le fichier d'extraction des fonctionnalités sous Transformer_Models pour extraire les fonctionnalités.
python -m transformer_models.generate_clip_img_embeddingNous avons une structure de dossiers de données comme illustré ci-dessous. N'hésitez pas à utiliser votre propre configuration et n'oubliez pas d'ajuster les configurations de chemin en conséquence.
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
│
...
Notre base de code se compose de trois parties: les expériences du transformateur, les expériences GPT et les expériences LLAMA2. La mise en œuvre de chaque module est située dans le dossier transformer_models , GPT_models et le dossier Llama2_models respectivement.
Vous pouvez trouver nos points de contrôle de modèle et nos fichiers de sortie pour Ego4d LTA ici.
Décompressez les deux dossiers.
Placez le dossier ckpt sous le sous-dossier llama_recipe du dossier Llama2_models .
Placez le dossier ego4d_outputs sous le sous-dossier llama_recipe du dossier Llama2_models .
Soumettez les fichiers de sortie au classement.
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}Pour exécuter une expérience sur les modèles Transformer, veuillez utiliser la commande suivante
python -m transformer_models.run --cfg transformer_models/configs/ego4d_image_pred_in8.yaml --exp_name ego4d_lta/clip_feature_in8Pour exécuter une expérience GPT, veuillez utiliser l'un des cahiers d'illustration de workflow.
Pour exécuter une expérience LLAMA2, veuillez vous référer aux instructions de ce dossier.
Notre article est disponible sur Arxiv. Si vous trouvez notre travail utile, envisagez de nous citer.
@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 }
}Ce projet est publié sous la licence du MIT.