Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

InternLM-XComposer: um macromodelo multimodal para a produção de textos muito longos e compreensão de imagens e vídeos

Introdução geral

O InternLM-XComposer é um projeto de macromodelagem multimodal gráfica de código aberto desenvolvido pela equipe InternLM e hospedado no GitHub, que se baseia no modelo de linguagem InternLM e é capaz de processar dados multimodais, como texto, imagens e vídeo, e é amplamente utilizado nas áreas de criação gráfica, compreensão de imagens e análise de vídeo. O projeto é conhecido por sua capacidade de suportar contextos longos de até 96K, processar imagens de alta resolução em 4K e compreender vídeos de granulação fina, com desempenho comparável ao GPT-4V usando apenas 7B parâmetros. O código, os pesos do modelo e a documentação detalhada podem ser acessados pelo GitHub para pesquisadores, desenvolvedores ou usuários interessados em IA multimodal. Desde fevereiro de 2025, o projeto lançou várias versões, incluindo InternLM-XComposer-2.5 e OmniLive, para otimizar continuamente a experiência de interação multimodal.

InternLM-XComposer: um macromodelo multimodal para produção de conteúdo ultralongo e compreensão de imagem e vídeo-1


 

Lista de funções

  • Suporte a saída contextual ultralonga: lida com até 96K de conteúdo gráfico misto para tarefas complexas.
  • Compreensão de imagens de alta resolução: suporta a análise de imagens de 336 pixels a 4K com detalhes nítidos.
  • Compreensão refinada de vídeo: divisão do vídeo em imagens de vários quadros para capturar detalhes dinâmicos.
  • Criação de gráficos: gerar artigos gráficos ou conteúdo da Web de acordo com as instruções.
  • Várias rodadas de diálogo com várias imagens: suporte a várias entradas de imagens para análise contínua de diálogo.
  • Suporte a modelos de código aberto: forneça uma variedade de pesos de modelos e código de ajuste fino para facilitar o desenvolvimento secundário.
  • Interação de streaming multimodal: a versão OmniLive oferece suporte ao processamento de áudio e vídeo de longa duração.

 

Usando a Ajuda

O InternLM-XComposer é um projeto de código aberto baseado no GitHub; os usuários precisam de alguma base de programação para instalá-lo e usá-lo. A seguir, apresentamos um guia de operação detalhado para ajudar os usuários a começar rapidamente.

Processo de instalação

 

1. preparação ambiental

 

    • Certifique-se de ter o Python 3.9 ou superior instalado em seu dispositivo.
    • Requer GPU NVIDIA e suporte a CUDA (recomenda-se CUDA 11.x ou 12.x).
    • Instale o Git para clonar sua base de código.

 

2. clonagem de projetos
Execute o seguinte comando no terminal para fazer o download do projeto localmente:

 

git clone https://github.com/InternLM/InternLM-XComposer.git
cd InternLM-XComposer

3. Criação de um ambiente virtual   Isolar dependências usando o Conda ou ferramentas de ambiente virtual:

conda create -n internlm python=3.9 -y
conda activate internlm

4. Instalação de dependências   Instale as bibliotecas necessárias de acordo com a documentação oficial:

pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117
pip install transformers==4.33.2 timm==0.4.12 sentencepiece==0.1.99 gradio==4.13.0 markdown2==4.4.10 xlsxwriter==3.1.2 einops

- Opcional: instale o flash-attention2 para economizar memória da GPU:

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

5. Download dos pesos do modelo   O projeto permite o download de modelos pré-treinados do Hugging Face, por exemplo:

model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', torch_dtype=torch.bfloat16, trust_remote_code=True).cuda().eval ()

6. Verificar a instalação   Execute o código de amostra para testar se o ambiente está normal:

python -m torch.distributed.run --nproc_per_node=1 example_code/simple_chat.py

Funções principais

1. criação de gráficos

  • Introdução à funçãoGeração de conteúdo com texto e imagens, como artigos ou páginas da Web, com base nas instruções do usuário.
  • procedimento::
  1. Prepare a entrada: Escreva uma instrução de texto (por exemplo, "Escreva um artigo sobre viagens, incluindo três fotos").
  2. Execute o código:
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', trust_remote_code=True).cuda().eval()
tokenizer = AutoTokenizer.from_pretrained('internlm/internlm-xcomposer2d5-7b', trust_remote_code=True)
consulta = "Escreva um artigo sobre viagens que contenha três imagens"
response, _ = model.chat(tokeniser, query, do_sample=False, num_beams=3)
print(response)
  1. Resultado: o modelo gera uma mistura de conteúdo gráfico e textual, e as descrições das imagens são automaticamente incorporadas ao texto.

2. compreensão da imagem de alta resolução

  • Introdução à funçãoAnálise de imagens de alta resolução e descrições detalhadas.
  • procedimento::
  1. Prepare a imagem: coloque o arquivo de imagem em um diretório local (por exemplo examples/dubai.png).
  2. Execute o código:
query = "Analise essa imagem em detalhes"
image = ['examples/dubai.png']
com torch.autocast(device_type='cuda', dtype=torch.float16):
response, _ = model.chat(tokeniser, query, image, do_sample=False, num_beams=3)
print(response)
  1. Saída: o modelo retorna uma descrição detalhada do conteúdo da imagem, por exemplo, detalhes como edifícios, cores etc.

3. análise de vídeo

  • Introdução à funçãoDecompor um quadro de vídeo e descrever o conteúdo.
  • procedimento::
  1. Vídeo de preparação: Faça o download do vídeo de exemplo (por exemplo liuxiang.mp4).
  2. Use a versão do OmniLive:
do lmdeploy import pipeline
pipe = pipeline('internlm/internlm-xcomposer2d5-ol-7b')
vídeo = load_video('liuxiang.mp4')
query = "Descreva o conteúdo desse vídeo"
response = pipe((query, video))
print(response.text)
  1. Resultado de saída: retorna uma descrição detalhada do quadro de vídeo, como uma ação ou cena.

4. várias rodadas de diálogo com vários gráficos

  • Introdução à funçãoSuporte para entrada de várias imagens para diálogo contínuo.
  • procedimento::
  1. Prepare várias imagens (por exemplo cars1.jpgcars2.jpgcars3.jpg).
  2. Execute o código:
query = "Image1 ; Image2 ; Image3 ; Analise as vantagens e desvantagens desses três carros"
images = ['examples/cars1.jpg', 'examples/cars2.jpg', 'examples/cars3.jpg']
response, _ = model.chat(tokeniser, query, images, do_sample=False, num_beams=3)
print(response)
  1. Saída: o modelo analisa as características do veículo correspondentes a cada imagem, uma a uma.

advertência

  • Requisitos de hardwareRecomendamos pelo menos 24 GB de memória de GPU; experimente a versão quantised de 4 bits para dispositivos de baixo custo.
  • Dicas de depuraçãoSe a memória de vídeo for insuficiente, diminua a hd_num (padrão 18).
  • Suporte à comunidadeVisite a página de problemas do GitHub para ver as perguntas frequentes ou enviar comentários.

Com essas etapas, você pode instalar e usar facilmente o poder do InternLM-XComposer para pesquisa e desenvolvimento.

Conteúdo 2
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " InternLM-XComposer: um macromodelo multimodal para a produção de textos muito longos e compreensão de imagens e vídeos

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil