ICLR2024
[Site] [ARXIV] [PDF]

Podemos antecipar melhor as ações futuras de um ator (por exemplo, misturar ovos) sabendo o que geralmente acontece após sua ação atual (por exemplo, ovos de crack)? E se também soubermos o objetivo de longo prazo do ator (por exemplo, fazendo arroz frito de ovo)? Nossa hipótese é que os grandes modelos de linguagem (LLMs), que foram pré-terem sido pré-terem sido pré-criados nos dados de texto do procedimento (por exemplo, receitas, instruções), têm o potencial de ajudar o LTA de ambas as perspectivas. Pode ajudar a fornecer o conhecimento prévio sobre as possíveis próximas ações e inferir o objetivo, dada a parte observada de um procedimento, respectivamente.
O ANTGPT é a estrutura proposta em nosso artigo para aproveitar o LLMS na antecipação de ação de longo prazo baseada em vídeo. O ANTGPT atinge o desempenho de última geração nos benchmarks EGO4D LTA V1 e V2, Epic-Kitchens-55, bem como Gaze+ Gaze+ na época da publicação.
Clone este repositório.
git clone [email protected]:brown-palm/AntGPT.git
cd AntGPTConfigure o ambiente virtual Python (3.9). Instale o Pytorch com a versão CUDA correta.
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 clipe.
pip install git+https://github.com/openai/CLIP.gitInstale outros pacotes.
pip install -r requirements.txt Instale os pacotes de receita de lhama seguindo as instruções aqui.
Em nossos experimentos, usamos dados de EGO4D, Epic-Kitchens-55 e Egtea Gaze+. Para Kitchens-55 e Egtea Gaze+, também usamos a anotação de dados e as divisões de ego-topo. Primeiro inicie uma pasta de dados no diretório raiz.
mkdir data Faça o download do conjunto de dados EGO4D, anotações e modelos pré -criados daqui.
Faça o download do conjunto de dados e anotações da Epic-Kitchens 55.
Faça o download do Egtea Gaze+ DataSet daqui.
Faça o download de anotações de dados do ego-topo. Por favor, consulte suas instruções.
Você pode encontrar nosso arquivo pré -processado, incluindo prompts de texto, recursos de metas, etc. aqui.
Baixou e descompacte as duas pastas.
Coloque o goal_features na pasta de data .
Coloque a pasta dataset na pasta Llama2_models .
Faça um link simulado na subpasta ICL da pasta Llama2_models .
ln -s {path_to_dataset} AntGPT/Llama2_models/ICLUsamos o clipe para extrair recursos desses conjuntos de dados. Você pode usar o arquivo de extração de recursos em Transformer_models para extrair os recursos.
python -m transformer_models.generate_clip_img_embeddingTemos uma estrutura de pasta de dados como ilustrado abaixo. Sinta -se à vontade para usar sua própria configuração e lembre -se de ajustar as configurações do caminho de acordo.
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
│
...
Nossa base de código consiste em três partes: os experimentos do transformador, os experimentos de GPT e os experimentos de LLAMA2. A implementação de cada módulos está localizada na pasta transformer_models , GPT_models e Llama2_models , respectivamente.
Você pode encontrar nossos pontos de verificação de modelo e arquivos de saída para o ego4d LTA aqui.
Descompactar as duas pastas.
Coloque a pasta ckpt na subpasta llama_recipe da pasta Llama2_models .
Coloque a pasta ego4d_outputs na subpasta llama_recipe da pasta Llama2_models .
Envie os arquivos de saída para o líder.
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 executar um experimento nos modelos do transformador, use o seguinte comando
python -m transformer_models.run --cfg transformer_models/configs/ego4d_image_pred_in8.yaml --exp_name ego4d_lta/clip_feature_in8Para executar um experimento GPT, use um dos notebooks de ilustração do fluxo de trabalho.
Para executar um experimento LLAMA2, consulte as instruções nessa pasta.
Nosso artigo está disponível no Arxiv. Se você achar útil nosso trabalho, considere nos citar.
@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 projeto é divulgado sob a licença do MIT.