SigLIP
Изучи SigLIP — экономичный по памяти подход с сигмоидальной функцией потерь для vision-language моделей. Узнай, как он улучшает масштабирование и обучение проектов Ultralytics YOLO.
SigLIP, что расшифровывается как сигмоидальная функция потерь для предварительного обучения на языково-изобразительных данных, — высокоэффективный подход к обучению мультимодальных моделей, работающих с изображениями и текстом. Впервые представленный исследователями из Google Research, этот метод кардинально меняет принцип, по которому модели AI изучают взаимосвязь между изображениями и соответствующими текстовыми описаниями. Заменяя традиционные вероятностные функции более простым подходом бинарной классификации, SigLIP позволяет разработчикам обучать масштабные мультимодальные архитектуры с существенно меньшими накладными расходами памяти и более высокой вычислительной эффективностью.
Понимание архитектуры#
В стандартных конвейерах машинного обучения, объединяющих визуальные и текстовые данные, модели обычно используют глобальное представление всех данных в заданном пакете, чтобы корректно обучаться. SigLIP устраняет это узкое место, рассматривая каждую пару изображения и текста как независимую задачу бинарной классификации. Используя стандартную функцию сигмоиды, модель просто предсказывает, соответствует ли конкретное изображение текстовому описанию или нет.
Такой локализованный подход к функции потерь означает, что требования к памяти во время обучения модели растут линейно, а не квадратично. Благодаря этому инженеры могут использовать значительно большие размеры пакетов на стандартных аппаратных конфигурациях с поддержкой таких фреймворков, как PyTorch, повышая производительность на различных наборах данных без экспоненциального увеличения ресурсов GPU.
Отличия SigLIP от CLIP#
При изучении современных архитектур AI важно отличать SigLIP от его предшественника — CLIP (контрастивное предварительное обучение на языково-изобразительных данных).
- CLIP: использует функцию потерь softmax, поэтому модели необходимо одновременно сравнивать изображение со всеми текстовыми описаниями в пакете. При увеличении размера пакета это создает серьезное ограничение по памяти во время обучения глубоких нейронных сетей.
- SigLIP: использует попарную функцию потерь sigmoid. Ему нужно лишь определить, является ли одна пара изображения и текста соответствующей или несоответствующей, благодаря чему подход хорошо масштабируется и его проще распределять между несколькими устройствами при оптимизации рабочих процессов искусственного интеллекта.
Практические применения#
Благодаря экономичному использованию памяти SigLIP служит мощной базовой моделью для различных практических приложений в технологической отрасли:
- Классификация изображений в режиме zero-shot: SigLIP отлично справляется с распределением изображений по новым классам, которые он никогда явно не видел во время обучения. Это особенно полезно для динамических систем классификации изображений, в которых категории часто меняются, поскольку устраняет необходимость в постоянной ручной разметке данных.
- Системы семантического поиска: создавая высокоточные мультимодальные эмбеддинги, SigLIP обеспечивает работу продвинутых систем поиска. Пользователи могут вводить сложные текстовые запросы и с высокой точностью искать по огромным неструктурированным базам изображений.
При работе с пользовательскими данными для таких сложных задач компьютерного зрения команды часто обращаются к Ultralytics Platform, чтобы упростить разметку наборов данных в облаке и беспрепятственно объединить текстовые и визуальные данные перед развертыванием продвинутых моделей, таких как Ultralytics YOLO26, для высокоскоростного вывода на периферийных устройствах.
Пример реализации#
Чтобы понять, как SigLIP вычисляет потери на фундаментальном уровне, можно смоделировать этот процесс с помощью базовых операций PyTorch. Этот фрагмент демонстрирует, как попарный подход с sigmoid заменяет традиционную логику вероятностей для нескольких классов.
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}")Используя этот оптимизированный подход, более широкое сообщество AI, включая исследователей, публикующих работы в таких организациях, как IEEE и ACM, продолжает расширять возможности мультимодального обучения, формируя новые рекомендации по обучению моделей и лучшие практики для следующего поколения AI в области компьютерного зрения.









