軽量な画像言語モデルによるアパレルドメインでのゼロショットクラス分類パイプラインの構築
1. 課題設定
当社は創業当初から、アパレル領域における商品画像・着用画像に基づく画像解析 AI を独自に構築し、さまざまな企業へサービスとして展開してきました。長年このドメインに向き合うなかで繰り返し突き当たってきたのが、本記事で扱う「専門性の高いアパレル画像から、いかに低コストかつ高速に意味のある情報を引き出すか」という課題です。
当社のビジネスにおける最優先課題は、日々蓄積される膨大な数の商品画像から、低コストかつ高速にインサイトを抽出し、ビジネス活用可能な形に構造化することです。アパレル業界はトレンドの移り変わりが激しく、商品サイクルが短いため、AI モデルの構築においても「数ヶ月かけて教師データを収集し学習する」という進め方は取れません。市場に投入された新しいカテゴリや属性が、数週間後には主力商品になっていることも珍しくないためです。ビジネスサイクルに遅れず追随するためには、新たなカテゴリや属性に対しても即座に対応できる、高速な検証・改善サイクルが必要となります。
また、消費者(顧客)に対してパーソナライズされた体験を直接提供しようとすると、推論基盤のコスト構造そのものが問題となります。商品画像は数百万枚規模で蓄積され、かつ日々更新されるため、クラウドの大きな計算リソースに依存したアーキテクチャでは、スケールに比例して運用コストが膨らんでいきます。安価な CPU 環境やエッジデバイス上でも現実的な速度で動作する「軽量なモデル」であることは、機能要件であると同時に事業継続性の要件でもあります。
さらに、対象ドメインがアパレルであるという点も難しさを加えます。アパレルは「ネックラインの形状」「生地の質感」「微細なパターンの違い」など、専門性が高く、細かな差異が意味を持つドメインです。これらは大規模言語モデル(LLM)であれば文脈から理解できますが、従来の汎用的なゼロショットモデルでは、そのニュアンスを十分に捉えきれず精度が不足する、という課題に直面してきました。
つまり解くべきは、「コスト」「速度」「専門ドメインへの適応」という、通常はトレードオフの関係にある 3 つの要求を同時に満たすことです。本記事では、この要求を軽量な画像言語モデルによってどのように解いたかを、パイプラインの設計から定量評価まで紹介いたします。
2. 関連研究
画像と言語を統合的に扱う技術は急速に進化していますが、実運用においては「精度」と「コスト」のバランスが常に課題となります。モデル選定にあたって比較検討した主要な手法を、それぞれの強みと、今回のユースケースにおける限界とともに整理します。
- CLIP (Contrastive Language-Image Pre-training) : 現代の画像言語モデルの祖であり、画像とテキストを同一空間に埋め込んで類似度を計算するアプローチのデファクトスタンダードです。軽量で扱いやすい一方、アパレルのような専門的なドメインでは、ゼロショットでの分類精度が不十分なケースが多く、微細な属性の識別には限界があります。汎用的な学習データで獲得した表現が、専門用語の細かなニュアンスまではカバーしきれないためと考えられます。
- LLM2CLIP : LLM の言語理解能力を CLIP に注入する手法であり、質の高い特徴量空間を実現しています。ただし、テキストのエンコードに LLM 自体を使用するため、推論コストが従来の CLIP に比べて数十倍に膨らみます。クラス定義を事前にキャッシュできず、画像ごとに動的なテキストを扱うようなオンザフライ(実行時)の特徴量化においては、この推論コストがネックとなります。
- LLaVA (Large Language-and-Vision Assistant) : 画像を見て詳細な回答を生成でき、柔軟な質問応答が可能な VLM(Vision Language Model、画像言語モデル)です。ただし、モデルサイズが 7B〜13B と大きく、大量の商品画像から高速に埋め込みを抽出するような高スループットのバッチ処理には、計算コストの面から適していません。
いずれの手法も「精度を取ればコストが膨らみ、コストを抑えれば専門ドメインで精度が落ちる」というトレードオフの中にあります。では、このトレードオフは実際にどの程度のものなのでしょうか。結論を述べる前に、まず「軽量さ・速度」の側を定量的に押さえておきます。CPU 環境で 1 アイテムあたりのエンコード速度を実測した結果が表 1 です。LLM ベースの VLM である Qwen2.5-VL-3B、デファクトスタンダードである CLIP (ViT-B/32)、そして SigLIP 2 の 3 モデルを、同一データセット・同一環境で比較しました。
| モデル | 画像: レイテンシ [秒/件] | 画像: スループット [件/秒] | テキスト: レイテンシ [秒/件] | テキスト: スループット [件/秒] |
|---|---|---|---|---|
| Qwen2.5-VL-3B(LLM ベース) | 4.03 | 0.25 | 0.694 | 1.44 |
| CLIP (ViT-B/32) | 0.034 | 29.70 | 0.023 | 43.51 |
| SigLIP 2 (siglip2-base-patch16-224) | 0.075 | 13.27 | 0.035 | 28.19 |
表 1: CPU 環境における 1 アイテムあたりのエンコード速度(画像・テキスト)。SigLIP 2 は CLIP と同じオーダーの速度で動作する一方、LLM ベースの Qwen2.5-VL-3B は画像エンコードで SigLIP 2 の約 54 倍、テキストエンコードでも約 20 倍の時間を要する。
速度の差は 1 〜 2 桁の開きとなりました。LLM ベースの Qwen2.5-VL-3B は画像 1 枚のエンコードに約 4 秒(0.25 件/秒)を要し、数百万枚規模の商品画像を CPU で捌く用途には耐えられません。これに対し SigLIP 2 は画像を毎秒 13 枚以上(テキストは毎秒 28 件)エンコードでき、CLIP と同じオーダーの軽量さを保っています。すなわち SigLIP 2 は、処理速度の面では「CPU で回せる軽量モデル」の側に明確に位置づけられることが分かります。
こうした背景を踏まえ、本プロジェクトでは SigLIP 2 を採用しました。表 1 が示すとおり CLIP 並の軽量さ・処理速度を維持しながら、従来の Large モデルや LLM 連携モデルに匹敵する詳細把握能力を持つとされているためです。前述のトレードオフの中では、今回の目的に最も適したオープンソースモデルであると判断しました。
3. 実装:ゼロショットクラス分類パイプラインの 3 ステップ
本記事では具体例として、アパレル画像(商品単体、または複数の商品が含まれる着用画像)から、以下の 8 種類の「柄(パターン)」をマルチラベルで抽出するタスクを想定します。
対象ラベル:
-
plain(無地) -
horizontal_stripe(ボーダー) -
dot(ドット) -
check(チェック) -
floral(花柄) -
vertical_stripe(ストライプ) -
animal(アニマル) -
camouflage(迷彩)
アパレル画像には「花柄のシャツに無地のカーディガンを羽織っている」といった複数要素が混在するケースが多く、単一ラベルを返す通常の分類器ではこうした画像を正しく扱えません。この課題を、SigLIP 2 を用いた次の 3 ステップのパイプラインで解きます。各ステップは独立しており、ラベルの追加・変更が Step 1 のやり直しだけで完結する点が、運用上の利点となります。全体のデータフローを図 1 に示します。
図 1: SigLIP 2 を用いたゼロショットクラス分類パイプラインのデータフロー。Step 1 のテキスト埋め込みはクラス定義が変わらない限り一度だけ実行してキャッシュし、推論時は Step 2・Step 3 のみを画像ごとに実行する。Step 3 でラベルごとに独立したシグモイド判定を行うため、複数の柄を同時に出力できる。
-
Step 1: クラス定義の埋め込み(Encoding)
上記の 8 つの柄に対し、後述する類義語リストを用いてプロンプトを作成し、テキストエンコーダーでベクトルを生成してキャッシュします。このベクトル化はクラス定義が変わらない限り一度きりで済むため、推論時のコストには含まれません。新しい柄カテゴリを追加する場合も、そのラベルのテキストをエンコードしてキャッシュに加えるだけでよく、教師データの再収集やモデルの再学習は不要となります。 -
Step 2: 特徴量抽出と内積計算
入力画像をエンコードし、キャッシュ済みのテキストベクトルそれぞれとの内積を計算します。画像のエンコードは 1 枚につき一度でよく、その結果を全ラベルのテキストベクトルと内積するだけでスコアが得られるため、ラベル数が増えても計算コストはほとんど増えません。また SigLIP 2 の画像エンコーダーは MAP head(Multihead Attention Pooling、学習されたアテンション重みに従って画像内の局所特徴を集約するプーリング機構)を持つため、画像内に複数のアイテムが写っていても、それぞれの柄の特徴を捉えることができます。 -
Step 3: クラスごとのシグモイド判定
計算されたスコアに対し、モデルが保持する学習済みの温度 とバイアス を適用したシグモイド関数 を通します。
ここが従来の CLIP との決定的な違いとなります。CLIP は全ラベルに対する softmax によって「最も近い 1 つ」を選ぶ設計であるのに対し、SigLIP 2 は「この画像にこの柄が含まれるか」をラベルごとに独立した二値分類として判定します。そのため、出力が 0.5 以上のラベルをすべて採用するだけで、「floral」と「plain」の両方を同時に割り当てることができます。冒頭で挙げた「複数要素が混在する画像」という課題は、このステップで構造的に解消されるわけです。
4. 類義語の扱いによる精度の向上
アパレルドメインでは、一つの概念に対して複数の呼び名が存在することが一般的です。たとえば「チェック」一つをとっても、tartan、gingham、plaid など、由来や見た目の異なる複数の表現が流通しています。これらを一つのラベルとして統合し、判定精度を高めるうえで、埋め込みベクトルの線形平均化が有効に働きます。
各ラベルに対しては、以下のような類義語をエンコードして平均化することを推奨します。単一の代表語だけでは、その語が持つ表現の偏りをそのまま引き継いでしまいますが、複数の表現を束ねることで、ラベルが指す概念をより安定して捉えられるようになります。
| ターゲットラベル | 線形平均化に推奨される類義語・表現例 |
|---|---|
plain
(無地)
|
solid color, unpatterned, monochromatic, plain fabric |
horizontal_stripe
(ボーダー)
|
border pattern, horizontal lines, nautical stripe, horizontal stripes |
dot
(ドット)
|
polka dot, spotted, speckled, dotted pattern |
check
(チェック)
|
plaid, tartan, gingham, grid pattern |
floral
(花柄)
|
flower print, botanical pattern, rose print, blossom pattern |
vertical_stripe
(ストライプ)
|
vertical lines, pinstripe, striped pattern, vertical stripes |
animal
(アニマル)
|
leopard print, zebra print, cheetah print, animalier |
camouflage
(迷彩)
|
camo, military print, army pattern, woodland camouflage |
表 2: 各ターゲットラベルに対して線形平均化に用いる類義語・表現例。これらをまとめてエンコードし平均化することで、単一の代表語が持つ表現の偏りを抑える。
「ベクトルの平均」が有効となる最も単純な理解は、類義語は埋め込み空間において密集しており、その重心が最も偏りのない代表ベクトルとなる、というものです。
依然として線形平均で良いのかという疑問は残るのですが、少なくとも言語モデルの埋め込み表現については、
- 言語 | English, French, Russian, ...
- 性別 | Male, Female
のような、同じカテゴリに属する単語の集合に対して、極めて一般的な論法により埋め込み空間の線形性が成り立つことが主張されています(例えば
線形表現仮説(Linear Representation Hypothesis)に関する論文
)。
言語を埋め込める SigLIP 2 のような VLM
にも、同様の線形性を期待して良いものと考えます。
5. 評価結果:アパレル柄分類における性能比較
ここまで述べたパイプラインが実際にどれだけの性能を発揮するのかを、定量的に検証します。10,400 枚のアパレル評価画像を用い、「plain(無地)」ラベルの分類性能を CLIP および SigLIP 2 の各バリアントで比較しました。
5.1 評価手法
Step 3
で述べたとおり、本パイプラインは各ラベルのスコアに閾値を設定して二値判定を行います。この閾値をどこに置くかによって
Precision と Recall
のバランスが大きく変わるため、「閾値の決め方」自体が評価の前提となります。
そこで本評価では
ROC 最適化
、すなわち ROC 曲線(Receiver Operating
Characteristic、偽陽性率と真陽性率の関係を描いた曲線)上で真陽性率と偽陽性率の差が最大となる点を閾値として採用する方法を用います。特定の閾値の置き方に依存せず、モデルが本質的に持つ「クラスを分離する能力」を評価するためです。
F1 スコアを最適化しない
理由は、データの偏りにあります。今回の評価データは「無地」が約 86.5%
を占めるため、何も考えず全画像を「無地」と答えるだけで Precision は 0.865、Recall は
1.0 となり、結果として F1 は 0.928 に達してしまいます。
つまり F1
最適化による高スコアは、モデルの識別能力ではなく、データの偏りを反映しているにすぎません。クラス不均衡なデータにおいて
F1 最適化が時に無意味な結論を導く、典型的な例といえます。
5.2 定量結果
VLM を横並びで比較するため、CLIP と SigLIP 2 のバリエーションごとに評価を行いました。これまでの説明のとおり、VLM 部分は固定し、ゼロショットのまま評価しています。
(参考)F1 スコアに基づく評価
F1 スコアに基づく最適化の結果は次のとおりで、前節で述べたとおりデータの偏りを反映して全モデルが横並びで一致します。「すべて無地」と判定するモデルが選ばれている、ということです。
| モデル | 画像サイズ | Optimal Threshold | AUC | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|---|---|---|
| SigLIP 2 | 224 | 0.0233 | 0.6025 | 0.8651 | 0.8651 | 1.0000 | 0.9277 |
| SigLIP 2 | 384 | -0.0090 | 0.6788 | 0.8650 | 0.8650 | 1.0000 | 0.9276 |
| SigLIP 2 | 512 | 0.0246 | 0.6418 | 0.8650 | 0.8650 | 1.0000 | 0.9276 |
| CLIP (ViT-L/14) | 336 | 0.0996 | 0.6450 | 0.8650 | 0.8650 | 1.0000 | 0.9276 |
表 3: F1 スコアを最大化する閾値で評価した結果。全モデルで Recall = 1.0、Accuracy = Precision となっており、「すべて無地」と判定する退化した分類器に collapse している。
ROC 曲線に基づく評価
一方、ROC 曲線に基づく評価を行うと、CLIP と SigLIP 2 で明確に差が出ることが分かります。
| モデル | 画像サイズ | Optimal Threshold | AUC | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|---|---|---|
| SigLIP 2 | 224 | 0.0672 | 0.6025 | 0.5591 | 0.9004 | 0.5513 | 0.6839 |
| SigLIP 2 | 384 | 0.0490 | 0.6788 | 0.6415 | 0.9151 | 0.6454 | 0.7570 |
| SigLIP 2 | 512 | 0.0637 | 0.6418 | 0.5810 | 0.9122 | 0.5704 | 0.7019 |
| CLIP (ViT-L/14) | 336 | 0.2106 | 0.6450 | 0.5856 | 0.9080 | 0.5796 | 0.7076 |
表 4: ROC 曲線に基づいて閾値を決めた場合の評価結果。退化を起こさずモデル本来の識別能力を反映しており、SigLIP 2 (384) が AUC・F1 ともに最良で、CLIP (ViT-L/14) を F1 で 4.9 ポイント上回る。
5.3 考察
退化を起こさず、モデルが本来持つ識別能力を測れるのが ROC 最適化です。この結果では、モデル間に明確な差が現れました。 SigLIP 2 (384) が F1 = 0.7570、AUC = 0.6788 で最も良い性能を示し、CLIP (ViT-L/14) と比較して F1 スコアで 4.9 ポイント の向上となっています。また Precision は全モデルで 0.90 以上を維持しており、SigLIP 2 (384) は「見逃しを減らしながら誤検出も抑える」という、実運用で求められるバランスに最も近い位置にあるといえます。
ただし、AUC の絶対値は 0.6788 であり、ゼロショットのままで十分な識別能力に達しているとはいえません。ゼロショットのパイプラインは、教師データを用意せずに新しい属性を立ち上げるための手段としては有効ですが、精度そのものを詰める段階では別の工夫が必要になる、というのが実感です。
6. まとめ
本記事では、「コスト」「速度」「専門ドメインへの適応」という相反する要求を同時に満たすことを目標に、アパレルドメインにおけるゼロショットクラス分類パイプラインの構築手法を紹介しました。
ゼロショットであるため、新規カテゴリの追加にはプロンプトの定義だけで即座に対応でき、これまで必要だった
教師データの収集工程が不要
となり、トレンドの変化に検証サイクルを追随させられるようになります。
また、汎用 CPU
でも動作する軽量モデルであるため、クラウドの大規模リソースに依存せず、商品画像が数百万枚規模に増えても運用コストが線形に膨張しにくい、
事業のスケールに耐える基盤設計
が可能となります。
6.1 手法の要約
本手法は、次の 3 つの設計判断によって成り立っています。
- 軽量モデルの選定 : 精度とコストのトレードオフを崩す候補として SigLIP 2(Base サイズ・約 2 億パラメータ)を採用し、CPU 環境やエッジデバイスでの動作を可能にしました。
- 3 ステップ分類パイプライン : クラス定義の埋め込み(Step 1)、特徴量抽出と内積計算(Step 2)、クラスごとのシグモイド判定(Step 3)に役割を分離しました。これにより、ラベル追加が Step 1 のやり直しだけで済み、かつ複数の柄が混在する画像にもマルチラベルで対応できる構造となっています。
- 類義語の線形平均化 : 線形表現仮説を根拠として、専門用語の複数の埋め込みを平均化し、ラベルが指す概念の重心を代表ベクトルとして用いました。
6.2 定量評価の結論
10,400 枚の評価データによる検証の結果、 SigLIP 2 (384) が最もバランスの取れた性能を示しました。モデルの本質的な識別能力を測る ROC 最適化において F1 = 0.7570 、 AUC = 0.6788 となり、デファクトスタンダードである CLIP (ViT-L/14) を F1 で 4.9 ポイント 上回っています。画像サイズの比較からは、384 が精度と計算コストのバランス点であることも確認できました。軽量モデルでありながら従来手法を上回るという、本プロジェクトの狙いは達成できたといえます。
なお、ここで得られたゼロショットのスコアをそのまま使うのではなく、SigLIP 2 の埋め込みを入力とする軽量な分類器を後段に置くことで、精度をさらに引き上げることができます。その具体的な手法は マルチモーダルLLMのソフトラベル生成による、アパレル画像分類モデルの構築手法 で紹介しています。