Introdução geral
O Ovis (Open VISion) é um modelo de linguagem grande multimodal (MLLM) de código aberto desenvolvido pela equipe AIDC-AI do International Digital Commerce Group da Alibaba e hospedado no GitHub, que usa uma técnica inovadora de alinhamento de incorporação estrutural para mesclar dados visuais e textuais com eficiência, oferecer suporte a entradas multimodais, como imagens, texto e vídeo, e gerar o conteúdo de saída correspondente. Em março de 2025, a Ovis lançou a família Ovis2 (escalas de parâmetros de 1B a 34B), que oferece desempenho superior de miniaturização, recursos aprimorados de inferência e a capacidade de processar imagens e vídeos de alta resolução. Voltado para desenvolvedores e pesquisadores, o projeto fornece documentação e código detalhados, enfatiza a colaboração de código aberto e já ganhou força na comunidade.
Lista de funções
- Suporte a entradas multimodaisManuseio de vários tipos de entrada, como imagens, texto, vídeo etc.
- Alinhamento visual do textoGerar descrições de texto que correspondam precisamente ao conteúdo da imagem ou do vídeo.
- Processamento de imagens de alta resoluçãoOtimizado para suportar imagens de alta resolução e reter detalhes.
- Análise de vídeo e de vários gráficosProcessamento sequencial: suporta o processamento sequencial de sequências de quadros de vídeo e várias imagens.
- Aprimoramento das habilidades de raciocínioAprimore o raciocínio lógico por meio do ajuste de instruções e do treinamento de DPO.
- Suporte a OCR em vários idiomasReconhecer e processar texto de imagem multilíngue.
- Várias opções de modelosModelos com parâmetros de 1B a 34B estão disponíveis para atender a diferentes tipos de hardware.
- Suporte à versão quantitativaPor exemplo, o modelo GPTQ-Int4 para reduzir o limite operacional.
- Integração da interface do GradioFornecer uma interface intuitiva para interação com a Web.
Usando a Ajuda
Processo de instalação
A instalação do Ovis depende de ambientes e bibliotecas Python específicos, conforme detalhado abaixo:
- Preparação ambiental
- Certifique-se de que o Git e o Anaconda estejam instalados.
- Clone o repositório do Ovis:
git clone git@github.com:AIDC-AI/Ovis.git
- Criar e ativar um ambiente virtual:
conda create -n ovis python=3.10 -y conda activate ovis
- Instalação dependente
- Vá para o catálogo de projetos:
cd Ovis
- Instalar dependências (com base em
requisitos.txt
):pip install -r requirements.txt
- Instale o pacote Ovis:
pip install -e .
- (Opcional) Instalação de bibliotecas de aceleração (como o Flash Attention):
pip install flash-attn==2.7.0.post2 --no-build-isolation
- Vá para o catálogo de projetos:
- Validação ambiental
- Verifique a versão do PyTorch (recomenda-se a versão 2.4.0):
python -c "import torch; print(torch.__version__)"
- Verifique a versão do PyTorch (recomenda-se a versão 2.4.0):
Como usar o Ovis
O Ovis é compatível com as operações de raciocínio da linha de comando e da interface do Gradio:
raciocínio de linha de comando
- Preparação de modelos e insumos
- Faça o download do modelo do Hugging Face (por exemplo, Ovis2-8B):
git clone https://huggingface.co/AIDC-AI/Ovis2-8B
- Preparar arquivos de entrada, por exemplo, imagens
exemplo.jpg
e o prompt "Describe this picture" (Descreva esta imagem).
- Faça o download do modelo do Hugging Face (por exemplo, Ovis2-8B):
- raciocínio de execução
- Criação de scripts
run_ovis.py
::importar tocha from PIL import Image from transformers import AutoModelForCausalLM Modelo de carga # model = AutoModelForCausalLM.from_pretrained( "AIDC-AI/Ovis2-8B", torch_dtype=torch.bfloat16, multimodal_max_length=32768, trust_remote_code=True ).cuda() # Obter tokenizador text_tokenizer = model.get_text_tokenizer() visual_tokenizer = model.get_visual_tokenizer() # Processar entrada image = Image.open("example.jpg") text = "Descreva esta imagem" consulta = f"\n{texto}" prompt, input_ids, pixel_values = model.preprocess_inputs(query, [image]) attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id) # Gerar saída com torch.inference_mode(): output_ids = model.generate( input_ids.unsqueeze(0).cuda(), pixel_values=[pixel_values.cuda()], attention_mask=attention_mask.unsqueeze(0).cuda(), max_new_tokens=1024 ) output = text_tokenizer.decode(output_ids[0], skip_special_tokens=True) print("Resultado da saída: ", output)
- Execute o script:
python run_ovis.py
- Criação de scripts
- Exibir resultados
- Exemplo de saída: "A imagem é de um cachorro parado em um campo gramado com um céu azul ao fundo".
Operação da interface do Gradio
- Início dos serviços
- Execute-o a partir do catálogo Ovis:
python ovis/serve/server.py --model_path AIDC-AI/Ovis2-8B --port 8000
- Aguardando para carregar, acessando
http://127.0.0.1:8000
.
- Execute-o a partir do catálogo Ovis:
- operação de interface
- Faça upload de uma imagem para a interface.
- Digite solicitações como "O que há nesta imagem?" .
- Clique em Submit para visualizar os resultados gerados.
Funções em destaque
Processamento de imagens de alta resolução
- procedimentoCarregar imagens de alta resolução e o modelo é particionado automaticamente (número máximo de partições: 9).
- tomarAdequado para tarefas como análise de obras de arte e interpretação de mapas.
- Recomendações de hardwareA mais nova adição ao sistema operacional é a memória gráfica de 16 GB, que garante uma operação suave.
Análise de vídeo e de vários gráficos
- procedimento::
- Preparar quadros de vídeo ou várias imagens, como
[Image.open("frame1.jpg"), Image.open("frame2.jpg")]
. - Modifique o código de inferência no
valores_de_pixel
O parâmetro é uma lista de várias imagens.
- Preparar quadros de vídeo ou várias imagens, como
- tomarAnálise de clipes de vídeo ou sequências de imagens contínuas.
- Saída de amostra: "O primeiro quadro é uma rua, o segundo é um pedestre".
Suporte a OCR em vários idiomas
- procedimentoExtrair texto da imagem: Carregue imagens que contenham texto em vários idiomas e digite o prompt "Extract text from image" (Extrair texto da imagem).
- tomarDigitalização de documentos, tradução de textos de imagens.
- Exemplos de resultadosExtração de textos mistos em chinês e inglês e geração de descrições.
Aprimoramento das habilidades de raciocínio
- procedimentoDigite perguntas complexas, como "Quantas pessoas estão na foto? Por favor, explique passo a passo".
- tomar:: Educação, tarefas de análise de dados.
- Saída de amostraO primeiro passo é observar uma pessoa do lado esquerdo e o segundo passo é observar uma segunda pessoa do lado direito".
advertência
- Requisitos de hardwareOvis2-1B requer 4 GB de memória de vídeo, enquanto o Ovis2-34B recomenda várias GPUs (mais de 48 GB).
- Compatibilidade de modelosSuporte para LLM convencional (por exemplo, Qwen2.5) e ViT (por exemplo, aimv2).
- Feedback da comunidadeProblemas: Os problemas podem ser enviados para o GitHub Issues.
Ovis2 Image Backpropagation Prompt Word One-Click Installer
Baseado nos modelos Ovis2-4B e Ovis2-2B.
Quark: https://pan.quark.cn/s/23095bb34e7c
Baidu: https://pan.baidu.com/s/12fWAbshwKY8OYcCcv_5Pkg?pwd=2727
Descompacte a senha e encontre-a você mesmo em jian27.