SigLIP
Explore o SigLIP, uma abordagem eficiente em termos de memória baseada na perda sigmoide para modelos de visão-linguagem. Saiba como melhora a escalabilidade e o treino dos projetos Ultralytics YOLO.
SigLIP, que significa Perda Sigmoide para Pré-treino de Linguagem e Imagem, é uma abordagem altamente eficiente para treinar modelos de visão-linguagem. Apresentado originalmente por investigadores da Google Research, este método altera fundamentalmente a forma como os modelos de IA aprendem a relação entre imagens e as respetivas descrições textuais. Ao substituir as funções de probabilidade tradicionais por uma abordagem mais simples de classificação binária, o SigLIP permite aos programadores treinar arquiteturas multimodais de grande escala com uma utilização de memória significativamente menor e maior eficiência computacional.
Compreender a arquitetura#
Em pipelines padrão de aprendizagem automática que combinam dados visuais e textuais, os modelos normalmente dependem de uma visão global de todos os dados de um determinado lote para aprender corretamente. O SigLIP elimina este estrangulamento ao tratar cada par imagem-texto como um problema de classificação binária independente. Utilizando uma função sigmoide padrão, o modelo simplesmente prevê se uma imagem específica e uma descrição textual correspondem ou não.
Esta abordagem localizada à função de perda significa que a memória necessária durante o treino do modelo aumenta linearmente, e não quadraticamente. Consequentemente, os engenheiros podem utilizar tamanhos de lote substancialmente maiores em configurações de hardware padrão compatíveis com frameworks como o PyTorch, obtendo um desempenho melhorado em diversos datasets sem exigir aumentos exponenciais nos recursos de GPU.
Distinguir SigLIP de CLIP#
Ao explorar arquiteturas modernas de IA, é essencial distinguir o SigLIP do seu antecessor, CLIP (Pré-treino Contrastivo de Linguagem e Imagem).
- CLIP: Depende de uma função de perda softmax, que exige que o modelo compare uma imagem com todas as descrições textuais de um lote simultaneamente. Isto cria um grave estrangulamento de memória durante o treino de aprendizagem profunda à medida que os tamanhos de lote aumentam.
- SigLIP: Utiliza uma perda sigmoide emparelhada. Só precisa de avaliar se um único par imagem-texto é uma correspondência verdadeira ou falsa, o que o torna altamente escalável e mais fácil de distribuir por vários dispositivos ao otimizar fluxos de trabalho de inteligência artificial.
Aplicações no mundo real#
O design eficiente em termos de memória do SigLIP torna-o uma base poderosa para várias aplicações práticas em todo o setor tecnológico:
- Classificação de Imagens Zero-Shot: O SigLIP destaca-se por categorizar imagens em novas classes que nunca viu explicitamente durante o treino. Isto é extremamente útil para sistemas dinâmicos de classificação de imagens, nos quais as categorias mudam frequentemente, eliminando a necessidade de anotação manual constante de dados.
- Motores de Pesquisa Semântica: Ao gerar embeddings multimodais altamente precisos, o SigLIP alimenta sistemas avançados de recuperação. Os utilizadores podem introduzir consultas textuais complexas para pesquisar enormes bases de dados de imagens não estruturadas com elevada precisão.
Ao gerir dados personalizados para este tipo de tarefas complexas de visão, as equipas recorrem frequentemente à Ultralytics Platform para simplificar a anotação de datasets na nuvem e integrar perfeitamente informações textuais e visuais antes de implementar modelos avançados como o Ultralytics YOLO26 para inferência de alta velocidade na periferia.
Exemplo de Implementação#
Para compreender como o SigLIP calcula a perda a um nível fundamental, podes simular o processo utilizando operações básicas do PyTorch. Este trecho demonstra como a abordagem sigmoide emparelhada substitui a lógica tradicional de probabilidade multiclasse.
import torch
import torch.nn.functional as F
# Simulate image and text embeddings from a vision-language model
image_embeddings = torch.randn(4, 256)
text_embeddings = torch.randn(4, 256)
# Calculate pairwise similarities (logits)
logits = torch.matmul(image_embeddings, text_embeddings.T)
# SigLIP uses a binary formulation: 1 for positive pairs, -1 for negative pairs
labels = torch.eye(4) * 2 - 1
loss = -F.logsigmoid(labels * logits).mean()
print(f"Calculated SigLIP Loss: {loss.item():.4f}")Ao tirar partido desta abordagem simplificada, a comunidade mais ampla de IA, incluindo investigadores que publicam em instituições como o IEEE e a ACM, continua a expandir os limites da aprendizagem multimodal, estabelecendo novas dicas para o treino de modelos e boas práticas para a próxima geração de IA para visão.









