open_clip: 大規模な対照学習型言語・画像および音声・テキストモデルのトレーニングとデプロイのためのオープンソースフレームワーク
open_clip: 大規模な対照学習型言語・画像および音声・テキストモデルのトレーニングとデプロイのためのオープンソースフレームワーク
解決する課題
OpenCLIPは、OpenAIのCLIP (Contrastive Language-Image Pre-training) のオープンソース実装です。画像とテキストを共有の埋め込み空間で結びつける対照学習モデルをトレーニング、評価、および使用するためのスケーラブルなフレームワークを提供し、ゼロショット画像分類や効率的な画像・テキスト検索などのタスクを可能にします。
仕組み
このプロジェクトは、画像エンコーダーとテキストエンコーダーを同時にトレーニングして、ペアになった画像とキャプションの間の類似度を最大化する対照学習を実装しています。ViTやConvNextなどの幅広いアーキテクチャやトレーニング戦略をサポートしています。最近のアップデートでは、可変解像度の画像と音声のための "NaFlex" や、高度なアテンションメカニズム (RoPE, SwiGLU) を備えた "Modern" テキストタワーが導入されました。大規模なGPUクラスター全体での高性能な分散トレーニングのために、PyTorchのFSDP2と torch.compile を活用しています。
対象ユーザー
- AI研究者: 対照学習のスケーリング則を研究している、または新しいマルチモーダルアーキテクチャを開発している方。
- MLエンジニア: ダウンストリームアプリケーションのために、高性能で事前学習済みのマルチモーダル埋め込みを必要とする開発者。
- データサイエンティスト: 広範なファインチューニングなしに、独自の画像データセットに対してゼロショット分類を行いたいユーザー。
ハイライト
- 広範な事前学習済みモデル: LAION-2BやDataComp-1Bのような大規模なデータセットでトレーニングされた膨大なモデルライブラリへのアクセス。
- 高性能トレーニング: 極限のスケーラビリティを実現するためのFSDP2、SLURMクラスター、および
torch.compileのネイティブサポート (最大1024枚のA100でテスト済み)。 - マルチモーダルな汎用性: 画像・テキスト (CLIP)、音声・テキスト (CLAP)、および生成キャプション (GenLIP/GenLAP) のサポート。
- 柔軟な入力処理: NaFlexパイプラインにより、アスペクト比の異なる画像や長さの異なる音声の処理が可能。
- 効率的なデータロード: 低メモリオーバーヘッドで数十億のサンプルを扱うためのWebDatasetサポートの統合。
Sources
- undefinedmlfoundations/open_clip