ICLR2024
[Sitio web] [ARXIV] [PDF]

¿Podemos anticipar mejor las acciones futuras de un actor (por ejemplo, huevos de mezcla) sabiendo qué sucede comúnmente después de su acción actual (por ejemplo, huevos de crack)? ¿Qué pasa si también sabemos el objetivo a más largo plazo del actor (por ejemplo, que hace arroz frito de huevo)? Presumimos que los modelos de lenguaje grande (LLM), que se han practicado en los datos de texto del procedimiento (por ejemplo, recetas, How-Tos), tienen el potencial de ayudar a LTA desde ambas perspectivas. Puede ayudar a proporcionar el conocimiento previo sobre las posibles próximas acciones e inferir el objetivo dada la parte observada de un procedimiento, respectivamente.
ANTGPT es el marco propuesto en nuestro artículo para aprovechar las LLM en la anticipación de acción a largo plazo basada en video. ANTGPT logra un rendimiento de última generación en los puntos de referencia Ego4D LTA V1 y V2, Epic-Kitchens-55, así como Egtea Gaze+ en el momento de la publicación.
Clon este repositorio.
git clone [email protected]:brown-palm/AntGPT.git
cd AntGPTConfigure el entorno virtual Python (3.9). Instale Pytorch con la versión CUDA correcta.
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/cu117Instalar clip.
pip install git+https://github.com/openai/CLIP.gitInstale otros paquetes.
pip install -r requirements.txt Instale los paquetes de receta de llama siguiendo las instrucciones aquí.
En nuestros experimentos, utilizamos datos de Ego4D, Epic-Kitchens-55 y Egtea Gaze+. Para Epic-Kitchens-55 y Egtea Gaze+, también utilizamos la anotación de datos y las divisiones de ego-topo. Primero inicie una carpeta de datos en el directorio raíz.
mkdir data Descargue el conjunto de datos Ego4D, las anotaciones y los modelos previos a la aparición desde aquí.
Descargue el conjunto de datos y anotaciones de Epic-Kitchens 55.
Descargue Egtea Gaze+ DataSet desde aquí.
Descargue anotaciones de datos de ego-topo. Consulte sus instrucciones.
Puede encontrar nuestro archivo preprocesado que incluye indicaciones de texto, características de objetivos, etc. aquí.
Descargado y descifrar ambas carpetas.
Coloque la carpeta goal_features en la carpeta data .
Coloque la carpeta dataset en la carpeta Llama2_models .
Haga un enlace simbólico en la subcarpeta ICL de la carpeta Llama2_models .
ln -s {path_to_dataset} AntGPT/Llama2_models/ICLUtilizamos un clip para extraer características de estos conjuntos de datos. Puede usar el archivo de extracción de características en Transformer_models para extraer las características.
python -m transformer_models.generate_clip_img_embeddingTenemos una estructura de carpeta de datos como se ilustra a continuación. Siéntase libre de usar su propia configuración y recuerde ajustar las configuraciones de ruta en consecuencia.
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
│
...
Nuestra base de código consta de tres partes: los experimentos del transformador, los experimentos GPT y los experimentos LLAMA2. La implementación de cada módulos se encuentra en la carpeta transformer_models , GPT_models y Llama2_models , respectivamente.
Puede encontrar nuestros puntos de control modelo y archivos de salida para Ego4D LTA aquí.
Descomprima ambas carpetas.
Coloque la carpeta ckpt debajo de la subcarpeta llama_recipe de la carpeta Llama2_models .
Coloque la carpeta ego4d_outputs en la subcarpeta llama_recipe de la carpeta Llama2_models .
Envíe los archivos de salida a la tabla de clasificación.
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}Para ejecutar un experimento en los modelos de transformador, utilice el siguiente comando
python -m transformer_models.run --cfg transformer_models/configs/ego4d_image_pred_in8.yaml --exp_name ego4d_lta/clip_feature_in8Para ejecutar un experimento GPT, utilice uno de los cuadernos de ilustración de flujo de trabajo.
Para ejecutar un experimento LLAMA2, consulte las instrucciones en esa carpeta.
Nuestro papel está disponible en ARXIV. Si encuentra útil nuestro trabajo, considere citarnos.
@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 }
}Este proyecto se publica bajo la licencia MIT.