Yolo 深圳
深セン
今すぐ参加
用語集

SigLIP

ビジョン・言語モデル向けのメモリ効率に優れたシグモイド損失アプローチ「SigLIP」をご紹介します。Ultralytics YOLO におけるスケーリングとトレーニングをどのように改善するかをご覧ください。

SigLIP(Sigmoid Loss for Language Image Pre-Trainingの略)は、視覚言語モデルを学習させるための 極めて効率的な手法です。もともと Google の研究者らによって提案されたこの手法は、AIモデルが画像とそれに対応するテキスト記述との関係を 学習する方法を根本的に変革します。 従来の 確率関数をより単純な二値分類アプローチに置き換えることで、SigLIPは開発者が 膨大なマルチモーダルアーキテクチャを、メモリ負荷を大幅に低減し、計算効率を向上させて学習できるようにします。

アーキテクチャーを理解する

視覚データとテキストデータを組み合わせた標準的な機械学習パイプラインでは、 モデルは通常、正しく学習するために、特定のバッチに含まれる全データの全体像に依存しています。 SigLIPは、すべての画像とテキストのペアを独立した二値分類問題として扱うことで、このボトルネックを解消します。 標準的なシグモイド関数を使用し、モデルは単に 特定の画像とテキストの説明が一致するか、一致しないかを予測するだけです。

損失関数に対するこの局所的なアプローチにより、 モデル学習中に必要なメモリは、2乗的にではなく 線形に増加します。その結果、エンジニアは、 PyTorchなどのフレームワークがサポートする標準的なハードウェア構成上で、 大幅に大きなバッチサイズを利用できるようになります PyTorchのようなフレームワークがサポートする標準的なハードウェア構成上で、 はるかに大きなバッチサイズを利用できるようになり、 GPU 指数関数的に増やすことなく、 多様なデータセットでのパフォーマンス向上が実現されます。

SigLIPとCLIPの区別

現代のAIアーキテクチャを検討する際には、SigLIPをその前身である CLIP(Contrastive Language-Image Pre-training)と区別することが不可欠である。

  • CLIP: ソフトマックス損失関数に依存しており、モデルはバッチ内のすべてのテキスト 説明文と画像を同時に比較する必要がある。これにより、バッチサイズが大きくなるにつれて、 ディープラーニングのトレーニング中に深刻なメモリのボトルネックが発生する。
  • SigLIP: ペアワイズシグモイド損失を利用します。単一の画像とテキストのペアが真の一致か偽の一致かを評価するだけで済むため、 拡張性が高く、人工知能ワークフローを最適化する際に複数のデバイスに分散させやすくなっています。

実際のアプリケーション

SigLIPのメモリ効率に優れた設計により、テクノロジー業界における様々な実用的なアプリケーションの強力な基盤となっています:

  • ゼロショット画像分類: SigLIPは、学習中に明示的に提示されたことのない新しいクラスへの画像分類に優れています。これは、 カテゴリが頻繁に変化する動的な 画像分類システムにおいて 極めて有用であり、絶え間ない手動によるデータラベリングの必要性を排除します。
  • セマンティック検索エンジン: SigLIPは、高精度なマルチモーダル埋め込みを生成することで、高度な検索システムを支えています。ユーザーは 複雑なテキストクエリを入力することで、膨大な非構造化画像データベースを高い精度で検索することができます。

こうした複雑なビジョンタスク向けのカスタムデータを管理する際、チームはしばしば Ultralytics 、クラウド上のデータセットへのアノテーションを効率化し、 テキストと画像の分析結果をシームレスに統合した上で、 Ultralytics 高度なモデルを高速エッジ推論に展開しています。

実施例

SigLIPが損失をどのように計算しているかを根本的なレベルで理解PyTorch 、基本的なPyTorch 演算を用いてそのプロセスをシミュレートすることができます。このスニペットは、ペアワイズシグモイドアプローチが従来の多クラス確率 ロジックに取って代わる仕組みを示しています。

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}")

この効率的なアプローチを活用することで、IEEEやACMなどの機関で論文を発表する研究者を含む、より広範なAIコミュニティは、 マルチモーダル学習の限界を押し広げ続け、次世代のビジョンAIに向けた 新たなモデル学習のヒントやベストプラクティスを確立しています。

一緒にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。