Hoje, gostaria de apresentar a você um poderoso modelo multimodal de código aberto - o Janus-Pro, a versão mais recente da série Janus da DeepSeek. Ele pode não apenas ler imagens e responder a perguntas, mas também gerar imagens com base em descrições de texto. Em suma, ele integra a capacidade de ver imagens semelhante ao GPT-4V e a capacidade de desenhar imagens com o Stable Diffusion.
Esta postagem compartilha alguns prós e contras do Janus, como usá-lo, pacotes relacionados à implantação e à integração.
O que é Janus?
O modelo multimodal de grande porte de código aberto DeepSeek, para simplificar, é um modelo que pode entender o conteúdo da imagem e gerar imagens. Atualmente, há três versões do modelo, respectivamente: Janus, JanusFlow e Janus-Pro.
Leia mais:DeepSeek lança compreensão multimodal unificada e modelos generativos: do JanusFlow ao Janus-Pro
Teste Janus
Reconhecimento de cores
Aqui eu carreguei uma imagem de um capacete de cor diferente e deixei que Janus interpretasse a imagem.
Resposta de Janus.
Esta imagem mostra quatro capacetes, vermelho, branco, amarelo e azul. Cada capacete tem uma abertura para ventilação e dissipação de calor. Esses capacetes são normalmente usados em canteiros de obras, fábricas ou outros ambientes de trabalho em que o equipamento de segurança é necessário. O fundo da imagem é branco, o que torna as cores dos capacetes de segurança mais visíveis.
Janus pode ser visto identificando com precisão a cor e o número de capacetes.
reconhecimento de objetos
Aqui encontrei uma imagem de uma máquina CNC e a joguei no Janus para ver se ele a entendia.
Resposta de Janus.
Esta é uma máquina industrial, especificamente uma máquina-ferramenta com controle numérico (máquina CNC). A parte frontal da máquina tem um painel de controle com vários botões e visores para operar e monitorar a máquina. O lado esquerdo da máquina tem uma bandeja ajustável para segurar peças de trabalho ou materiais. A parte superior da máquina tem um ventilador de resfriamento para manter a área de trabalho fria. Há vários visores e indicadores nos painéis laterais e frontais da máquina para mostrar o status da máquina e as informações operacionais. A parte frontal e as laterais da máquina estão marcadas com o logotipo "VNT-600L", indicando que esse é o modelo 600L da marca VNT. O design geral é moderno e funcional, adequado para usinagem e fabricação de precisão.
Há alguns problemas aqui. É correto que a Janus seja capaz de reconhecer essa máquina CNC, incluindo a estrutura geral de toda a máquina. No entanto, o logotipo "VNT-600L" está incorretamente identificado aqui, deveria ser VMC850L.
reconhecimento de texto
Aqui está um teste usando o exemplo oficial, e você pode ver que o Janus também reconhece fórmulas matemáticas.
Resposta de Janus.
Essa fórmula é a definição de uma função (A_n) que descreve a posição de um número (n) em um conjunto (S). Especificamente, a fórmula define o valor de uma função (A_n) que depende da posição de um número (n) em um conjunto (S).
Especificamente, a fórmula é definida da seguinte forma:
[A_n = a_0 left[ 1 + frac{3}{4} sum_{k=1}^{n} frac{4}{9} right]^{k}
]
Essa fórmula pode ser interpretada como:
- A função (a_0) é uma constante que define o valor inicial da função (A_n).
- O valor da função (A_n) depende da posição de (n) no conjunto (S).
- A posição de (n) em (S) é representada por um número (k) cujo valor depende da posição de (n) no conjunto (S).
Essa fórmula pode ser usada para calcular o valor de (A_n) no conjunto (S), em que (S) é um conjunto que contém (n).
Em alguns casos, o reconhecimento do texto não é ideal, como na figura a seguir
Diagrama de Vincennes
O outro grande atrativo do Janus é o gráfico de geração de texto, mas, ao usá-lo, não acho que seja excelente. Ele não é rápido e requer muita memória de vídeo.
Mas... Algo é melhor do que nada 👍🏻
Diferenças entre as diferentes versões da série Janus
- Janus, a versão de primeira geração, introduziu pela primeira vez o conceito de "desacoplamento visual". Tamanho do modelo: 1,3B parâmetros.
- O JanusFlow, a versão de segunda geração, aprimora o método de geração de imagens em comparação com seu antecessor, aumentando a velocidade e a qualidade da geração de imagens.
- O Janus-Pro, a versão mais recente, foi totalmente atualizado e melhora substancialmente a compreensão do modelo. Tamanho do modelo: há duas versões, 1B e 7B.
As três versões são como atualizações constantes do mesmo produto, com melhorias significativas em cada geração, e o Janus-Pro é, de longe, a versão mais potente.
implantação local
Python versão 3.10
git clone https://github.com/deepseek-ai/Janus.git
pip install -e .
python demo/app_januspro.py
Modificar o modelo
A Janus-Pro tem duas versões do modelo, 1B e 7B, e modelos diferentes exigem memória de vídeo diferente.
Na versão MAC do pacote de integração que forneci, o modelo 1B é usado por padrão.
Se você tiver memória suficiente e quiser usar um modelo 7B, poderá definir odemo/app_januspro.py
roteirosload_model
no método
model_path = "deepseek-ai/Janus-Pro-1B"
modificar para
model_path = "deepseek-ai/Janus-Pro-7B"
É claro que os amigos do Windows não precisam se preocupar com isso, pois há opções de inicialização 1B e 7B para escolher.
Configuração em execução
GANHAR
O Windows NVIDIA Graphics 1B requer 8G de memória de vídeo
O suporte a CUDA é necessário para que o pacote de integração seja executado. cuda12.4 é necessário.
https://developer.nvidia.com/cuda-12-4-0-download-archive
MAC
MAC aqui para considerar a configuração da maioria dos usuários, coloquei apenas a versão 1B do modelo; se precisar da 7B, consulte as etapas na seção de implantação acima para modificar o modelo.
Para a versão MAC, fiz a otimização da memória para liberar a memória a tempo de evitar a redundância de memória. Chips MAC Apple Silicon M1/M2/M3/M4 com 16 G de memória.
escrever no final
Veja aqui, pode haver pequenos parceiros que acharão que a aplicação desse projeto é um cenário relativamente limitado. Mas, pelo que sei, há parceiros que usam os poderosos recursos de compreensão gráfica do Janus, desenhos de engenharia, documentos técnicos e outras informações em PDF em uma base de conhecimento inteligente.
Aqui está a captura de tela que ele me enviou:
Melhor ainda, se você leu minha última postagem sobre o WeChat BOT, é totalmente possível conectar o Janus e dar ao seu bot a capacidade de ver e gerar imagens também!