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.
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::
- Prepare a entrada: Escreva uma instrução de texto (por exemplo, "Escreva um artigo sobre viagens, incluindo três fotos").
- 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)
- 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::
- Prepare a imagem: coloque o arquivo de imagem em um diretório local (por exemplo
examples/dubai.png
). - 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)
- 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::
- Vídeo de preparação: Faça o download do vídeo de exemplo (por exemplo
liuxiang.mp4
). - 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)
- 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::
- Prepare várias imagens (por exemplo
cars1.jpg
,cars2.jpg
,cars3.jpg
). - 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)
- 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.