Aprendizagem pessoal com IA
e orientação prática
TRAE

InternVL: grandes modelos multimodais de código aberto para processamento de imagens, vídeos e textos

Introdução geral

O InternVL é um grande projeto de modelo multimodal de código aberto desenvolvido pelo Shanghai Artificial Intelligence Lab (OpenGVLab) e hospedado no GitHub. O objetivo do InternVL é criar uma alternativa de código aberto comparável aos modelos comerciais (por exemplo, GPT-4o) para uma ampla gama de tarefas, como percepção visual, recuperação multimodal e diálogos multimodais. O projeto é conhecido por seus potentes codificadores visuais, suporte dinâmico de alta resolução e estratégias de treinamento eficientes, com tamanhos de modelos que variam de 1B a 78B parâmetros, adequados para uma ampla gama de cenários de aplicativos, desde dispositivos de ponta até servidores de alto desempenho. O código, os modelos e os conjuntos de dados estão abertos sob a licença MIT, e os pesquisadores e desenvolvedores são incentivados a usá-los e aprimorá-los livremente.

InternVL: grandes modelos multimodais de código aberto para processamento de imagens, vídeos e textos-1


 

Lista de funções

  • diálogo multimodalSuporte a entradas de imagem, vídeo e texto para gerar respostas em linguagem natural para bate-papo, perguntas e respostas e instruções de tarefas.
  • processamento de imagensProcessamento dinâmico de imagens com resolução de até 4K e suporte à classificação de imagens, segmentação e detecção de objetos.
  • Compreensão de vídeoAnálise de conteúdo de vídeo para classificação de vídeo de amostra zero e recuperação de texto-vídeo.
  • resolução de documentosManuseio de documentos complexos e especialização em OCR, reconhecimento de formulários e questionamento de documentos para tarefas como o DocVQA.
  • Suporte a vários idiomasCodificador de texto multilíngue integrado com suporte a mais de 110 tarefas de geração de idiomas.
  • Raciocínio eficienteLMDeploy: fornece um processo de inferência simplificado por meio do LMDeploy, oferecendo suporte ao processamento de várias imagens e de contextos longos.
  • Abertura dos conjuntos de dadosShareGPT-4o: fornece conjuntos de dados multimodais em grande escala, como o ShareGPT-4o, contendo imagens, vídeo e áudio.

 

Usando a Ajuda

Processo de instalação

Para usar a InternVL localmente, você precisa configurar seu ambiente Python e instalar as dependências relevantes. Veja a seguir as etapas detalhadas de instalação:

  1. armazém de clones
    Execute o seguinte comando no terminal para obter o código-fonte do InternVL:

    git clone https://github.com/OpenGVLab/InternVL.git
    cd InternVL
    
  2. Criação de um ambiente virtual
    Crie um ambiente Python 3.9 com o conda e ative-o:

    conda create -n internvl python=3.9 -y
    conda activate internvl
    
  3. Instalação de dependências
    Instale as dependências necessárias para o projeto, que, por padrão, incluem as bibliotecas necessárias para o diálogo multimodal e o processamento de imagens:

    pip install -r requirements.txt
    

    Se for necessária uma funcionalidade adicional (como segmentação ou classificação de imagens), as dependências específicas poderão ser instaladas manualmente:

    pip install -r requirements/segmentation.txt
    pip install -r requirements/classification.txt
    
  4. Instalar o Flash-Attention (opcional)
    Para acelerar a inferência do modelo, recomenda-se a instalação do Flash-Attention:

    pip install flash-attn==2.3.6 --no-build-isolation
    

    Ou compilar a partir do código-fonte:

    git clone https://github.com/Dao-AILab/flash-attention.git
    cd flash-attention
    git checkout v2.3.6
    python setup.py install
    
  5. Instalar o MMDeploy (opcional)
    Se você precisar implantar o modelo em um ambiente de produção, instale o MMDeploy:

    pip install -U openmim
    mim install mmdeploy
    

Uso

A InternVL oferece várias formas de uso, incluindo raciocínio de linha de comando, serviços de API e demonstrações interativas. A seguir, um exemplo do modelo InternVL2_5-8B para apresentar o fluxo de operação das principais funções:

1. diálogo multimodal

A InternVL oferece suporte a diálogos com entrada de imagem e texto. A seguir, um exemplo de raciocínio usando o LMDeploy:

  • Preparação de modelos e imagensVerifique se o download do modelo foi feito (por exemplo OpenGVLab/InternVL2_5-8B) e preparar uma imagem (por exemplo tiger.jpeg).
  • raciocínio de execuçãoExecute o seguinte código Python que descreve o conteúdo da imagem:
    from lmdeploy import pipeline, TurbomindEngineConfig
    from lmdeploy.vl import load_image
    model = 'OpenGVLab/InternVL2_5-8B'
    image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
    pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192))
    response = pipe(('描述这张图片', image))
    print(response.text)
    
  • no finalDescrição da imagem: O modelo gera uma descrição detalhada da imagem, por exemplo, "A imagem é de um tigre em pé com grama verde ao fundo".

2. processamento de várias imagens

O InternVL suporta o processamento simultâneo de várias imagens, adequado para comparação ou análise abrangente:

  • exemplo de código::
    from lmdeploy.vl.constants import IMAGE_TOKEN
    image_urls = [
    'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/human-pose.jpg',
    'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/det.jpg'
    ]
    images = [load_image(url) for url in image_urls]
    prompt = f'Image-1: {IMAGE_TOKEN}\nImage-2: {IMAGE_TOKEN}\n描述这两张图片'
    response = pipe((prompt, images))
    print(response.text)
    
  • no finalO modelo descreverá o conteúdo de cada imagem separadamente e possivelmente resumirá as relações entre elas.

3. análise de documentos

A InternVL tem bom desempenho nas tarefas de questionamento de documentos (DocVQA) e de reconhecimento de formulários. O fluxo de operação é o seguinte:

  • Preparação de imagens de documentosCarregar imagens que contenham texto, tabelas ou gráficos.
  • fazer perguntasUse prompts como "Extract data from table" (Extrair dados da tabela) ou "Summarise document contents" (Resumir o conteúdo do documento).
  • exemplo de código::
    image = load_image('document.jpg')
    response = pipe(('提取图片中表格的内容', image))
    print(response.text)
    
  • no finalModelo: O modelo retorna um resumo dos dados estruturados da tabela ou do documento.

4. implantação de serviços de API

A InternVL oferece suporte à implementação de APIs RESTful por meio do LMDeploy para ambientes de produção:

  • Início dos serviços::
    lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
    
  • Acessando a APIUse interfaces compatíveis com a OpenAI para enviar solicitações, por exemplo, por meio do curl ou modelo de chamada de cliente Python.

5. apresentação on-line

O OpenGVLab oferece uma plataforma de demonstração on-line (https://internvl.opengvlab.com/), nenhuma instalação é necessária para experimentá-lo:

  • Visite o site, carregue uma imagem ou um vídeo e insira uma pergunta.
  • O modelo retorna resultados em tempo real, o que o torna adequado para testes rápidos.

Operação da função em destaque

  • Alta resolução dinâmicaInternVL: O InternVL divide automaticamente as imagens em partes de 448x448 e suporta resolução de até 4K. Os usuários não precisam redimensionar manualmente as imagens, basta carregá-las.
  • Compreensão de vídeoAo carregar um arquivo de vídeo, combinado com um prompt (por exemplo, "resumir o conteúdo do vídeo"), o modelo analisa os quadros principais e gera uma descrição.
  • Geração em vários idiomasResposta em francês: Especifique o idioma no prompt (por exemplo, "Responda em francês") e o modelo gerará uma resposta no idioma correspondente.

advertência

  • Verifique se você tem memória suficiente na GPU (os modelos 8B exigem cerca de 16 GB de memória da GPU).
  • Aumente a janela de contexto ao processar várias imagens ou vídeos longos (session_len=16384).
  • Verifique as versões dependentes para evitar problemas de compatibilidade.

 

cenário do aplicativo

  1. pesquisa acadêmica
    Os pesquisadores usam o InternVL para analisar diagramas científicos, processar imagens experimentais ou analisar dados tabulares de documentos. Os recursos de OCR de alta precisão e de compreensão de documentos do modelo aumentam consideravelmente a eficiência da extração de dados.
  2. Auxílios educacionais
    Professores e alunos usam o InternVL para resolver problemas de lição de casa relacionados a imagens, como interpretação de imagens históricas ou análise de diagramas geográficos. O suporte multilíngue do modelo é adequado para cenários educacionais internacionalizados.
  3. Processamento de documentos corporativos
    As organizações usam o InternVL para automatizar o processamento de documentos, contratos ou faturas digitalizados, extraindo informações importantes e gerando relatórios, economizando custos de mão de obra.
  4. criação de conteúdo
    Os criadores de conteúdo usam o InternVL para analisar imagens de vídeo e gerar roteiros ou legendas para aumentar a eficiência criativa.
  5. Atendimento inteligente ao cliente
    O sistema de atendimento ao cliente integra o InternVL para processar as imagens carregadas pelos usuários (por exemplo, fotos de falhas de produtos), diagnosticar rapidamente os problemas e fornecer soluções.

 

QA

  1. Quais tamanhos de modelo são compatíveis com a InternVL?
    A InternVL oferece modelos com parâmetros que variam de 1B a 78B, adequados para diferentes dispositivos. Os modelos 1B são adequados para dispositivos de borda, enquanto os modelos 78B têm desempenho comparável ao GPT-4o.
  2. Como você lida com imagens de alta resolução?
    O modelo divide automaticamente a imagem em pedaços de 448x448 e oferece suporte à resolução 4K. Faça upload de imagens diretamente sem pré-processamento.
  3. Ele oferece suporte à análise de vídeo?
    Sim, a InternVL oferece suporte à classificação de vídeo de amostra zero e à recuperação de texto-vídeo. Basta carregar um vídeo e digitar a palavra de alerta.
  4. O modelo é de código aberto?
    O InternVL é totalmente de código aberto, com código e pesos de modelo disponíveis no GitHub sob a licença MIT.
  5. Como otimizar a velocidade de raciocínio?
    Instale o Flash-Attention e use a aceleração de GPU. Ajustes session_len para acomodar contextos longos.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " InternVL: grandes modelos multimodais de código aberto para processamento de imagens, vídeos e textos
pt_BRPortuguês do Brasil