Introdução geral
O Long-VITA é um macromodelo multimodal de código aberto desenvolvido pela equipe do VITA-MLLM, com foco em tarefas visuais e linguísticas que lidam com contextos muito longos. Ele é capaz de analisar imagens, vídeos e textos simultaneamente e suporta até 1 milhão de token O Long-VITA é um modelo de entrada para cenários como compreensão de vídeo, análise de imagens de alta resolução e raciocínio de inteligência multimodal. Em comparação com outros modelos, o Long-VITA tem um bom desempenho em tarefas de contexto curto, ao mesmo tempo em que oferece vantagens revolucionárias no processamento de sequências longas. Desenvolvido em colaboração com o Tencent YouTuber Lab, a Universidade de Nanjing e a Universidade de Xiamen, o projeto é treinado inteiramente em conjuntos de dados de código aberto, é compatível com plataformas NPU e GPU e tem como objetivo fornecer à comunidade de código aberto uma ferramenta avançada para pesquisas multimodais de contexto longo. O código do modelo, o método de treinamento e os pesos foram tornados públicos, o que é adequado para que pesquisadores e desenvolvedores explorem os aplicativos de ponta da IA multimodal.
Lista de funções
- Processamento de contexto extremamente longoSuporte a entradas de imagem, vídeo e texto de até 1 milhão de tokens ou quadros de 4K para análise de cenas complexas.
- compreensão multimodalRecursos integrados de processamento de imagem, vídeo e texto para analisar vários tipos de dados simultaneamente.
- Raciocínio distribuído eficiente:: raciocínio eficiente para entradas muito longas por meio de paralelismo contextual.
- Treinamento em conjunto de dados de código abertoUse 17 milhões de amostras públicas para garantir a reprodutibilidade e a transparência do modelo.
- Suporte a várias plataformasCompatível com Ascend NPU e GPU Nvidia para adaptação flexível a diferentes ambientes de hardware.
- Otimização de contexto curtoDescrição: manter o melhor desempenho em tarefas multimodais tradicionais, acomodando requisitos de sequências longas e curtas.
- Modelagem de linguagem com máscara de Logits:: Projeto inovador de cabeça de modelo de linguagem para aprimorar o raciocínio de sequências longas.
Usando a Ajuda
O Long-VITA é um projeto de código aberto que permite aos usuários obter pesos de código e modelos por meio de um repositório do GitHub e implantá-los para uso local ou em um servidor. Aqui está um guia detalhado para ajudar os usuários a começar e explorar seus recursos avançados.
Processo de instalação
- armazém de clones
Abra um terminal e digite o seguinte comando para clonar o repositório Long-VITA:git clone https://github.com/VITA-MLLM/Long-VITA.git cd Long-VITA
Isso fará o download de todo o código e da documentação do projeto.
- Criação de um ambiente virtual
Use o Conda para criar um ambiente Python separado e garantir o isolamento de dependências:conda create -n long-vita python=3.10 -y conda activate long-vita
- Instalação de dependências
Instale os pacotes Python necessários para seu projeto:pip install --upgrade pip pip install -r requirements.txt
Se for necessário um raciocínio acelerado, o Flash Attention poderá ser instalado adicionalmente:
pip install flash-attn --no-build-isolation
- Download dos pesos do modelo
O Long-VITA está disponível em várias versões (por exemplo, 16K, 128K, 1M tokens) que podem ser baixadas do Hugging Face:- Long-VITA-16K. link (em um site)
- Long-VITA-128K. link (em um site)
- Long-VITA-1M. link (em um site)
Após o download, coloque o arquivo de pesos no diretório raiz do projeto ou no caminho especificado.
- Configuração do ambiente de hardware
- GPUs da NvidiaVerifique se o CUDA e o cuDNN estão instalados e se as variáveis de ambiente estão definidas:
exportar CUDA_VISIBLE_DEVICES=0
- Ascend NPUConfigure seu ambiente MindSpeed ou Megatron de acordo com a documentação oficial.
- GPUs da NvidiaVerifique se o CUDA e o cuDNN estão instalados e se as variáveis de ambiente estão definidas:
Uso
O Long-VITA oferece suporte a dois modos principais de operação, inferência e avaliação, e as etapas a seguir são descritas.
raciocínio de execução
- Preparação para inserir dados
- imagens: Coloque um arquivo de imagem (por exemplo
.jpg
talvez.png
(computação) colocar (em)ativo
Pasta. - vídeoSuporte para formatos de vídeo comuns (por exemplo, vídeo de alta qualidade)
.mp4
), colocado no caminho especificado. - cópiasEscreva perguntas ou instruções e salve como
.txt
ou digite-o diretamente na linha de comando.
- imagens: Coloque um arquivo de imagem (por exemplo
- Executar comandos de raciocínio
Como exemplo de compreensão de imagem, execute o seguinte comando:CUDA_VISIBLE_DEVICES=0 python video_audio_demo.py \ ---model_path [caminho do peso do modelo] \ --image_path asset/sample_image.jpg \ ---model_type qwen2p5_instruct \ --conv_mode qwen2p5_instruct \ --question "Descreva sobre o que é essa imagem."
Para entrada de vídeo, adicione
--caminho_do_vídeo
Parâmetros:--video_path asset/sample_video.mp4
- Exibir saída
O modelo produzirá resultados no endpoint, como descrições de imagens ou conteúdo de análise de vídeo.
Avaliação de desempenho
- Preparação de conjuntos de dados de avaliação
Faça o download do conjunto de dados de referência (por exemplo, Video-MME) e organize a estrutura de arquivos conforme necessário. - Executar o script de avaliação
Avalie usando o script fornecido:bash script/evaluate.sh [caminho do modelo] [caminho do conjunto de dados]
Operação da função em destaque
Processamento de contexto extremamente longo
- procedimento:
- Selecione o modelo Long-VITA-1M para garantir que a contagem total de tokens dos dados de entrada (por exemplo, vídeo longo ou várias imagens HD) não exceda 1 milhão.
- fazer uso de
--max_seq_len 1048576
define o comprimento máximo da sequência. - Execute a inferência e observe como o modelo lida com tarefas de sequência longa (por exemplo, geração de resumo de vídeo).
- exemplo típicoInsira um vídeo de uma hora de duração, faça a pergunta "Resuma o enredo principal do vídeo" e o modelo produzirá um resumo de texto conciso.
compreensão multimodal
- procedimento:
- Prepare entradas multimodais, como imagem + texto ou vídeo + pergunta.
- Especifique ambos na linha de comando
--image_path
responder cantando--pergunta
Como:--image_path asset/sample_image.jpg --question "Quem é o personagem na imagem?"
- O modelo combinará informações visuais e textuais para gerar respostas.
- exemplo típicoDescrição: Insira uma foto de uma celebridade e a pergunta "What is he doing?" (O que ele está fazendo?). O modelo descreverá a ação na foto.
inferência distribuída
- procedimento:
- Para configurar um ambiente com várias GPUs, modifique o
CUDA_VISIBLE_DEVICES=0,1,2,3
. - Execute com a opção paralela contextual:
python -m torch.distributed.launch --nproc_per_node=4 video_audio_demo.py [argumentos]
- O modelo atribuirá automaticamente tarefas a vários dispositivos para aumentar a velocidade de processamento.
- Para configurar um ambiente com várias GPUs, modifique o
- exemplo típico:: O raciocínio distribuído pode reduzir o tempo gasto de horas para minutos ao lidar com vídeos muito longos.
advertência
- Certifique-se de que seu hardware tenha memória suficiente. Uma entrada de token de 1M pode exigir mais de 32 GB de memória de vídeo.
- Os dados de entrada precisam ser pré-processados (por exemplo, extração de quadros de vídeo) para atender aos requisitos do modelo.
- Verifique sua conexão com a Internet. Você precisa de uma conexão estável e de alta velocidade para baixar pesos.
Com essas etapas, os usuários podem implementar facilmente o Long-VITA e experimentar seus recursos de compreensão multimodal e de contexto ultralongo para pesquisa, desenvolvimento ou teste de aplicativos de IA multimodal.