【要約】CLIPで「デスクの写真をAIが100点満点で採点」するWebツールをHugging Face無料枠で作った [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、ユーザーのデスク環境を客観的に評価するツールを、低コストかつ迅速に構築したいと考えていた。しかし、従来のAI開発では以下の課題に直面する。
- ・追加学習(ファインチューニング)に伴う膨大なデータ収集と計算資源のコスト。
- ・Hugging Face無料枠における、numpy 2.0とtransformersの互換性問題。
- ・無料枠特有のスリープ仕様による、初回リクエスト時のコールドスタート問題。
// Approach
開発者は、追加学習を一切行わないCLIPのゼロショット推論を活用し、相対的な類似度からスコアを算出する手法を採用した。
- ・各カテゴリに対し「良い状態(pos)」と「悪い状態(neg)」のテキストペアを用意。
- ・画像と各テキストのコサイン類似度を計算し、softmax関数で「posへの近さ」を0〜100点に変換。
- ・Hugging Face SpacesのDocker環境にFastAPIをデプロイし、起動時にモデルをプリロード。
- ・requirements.txtでnumpyを1.26.4に固定し、依存関係の競合を回避。
// Result
開発者は、学習なしで「納得感のある採点」が可能なWebツールを実現した。
- ・「照明」や「配線」など、画像の内容に基づいた妥当な改善点の提示が可能になった。
- ・Hugging Faceの無料枠のみで、AI推論APIの公開に成功した。
- ・コールドスタート対策として、フロントエンドでのUI表示やヘルスチェックによる運用回避策を確立した。
Senior Engineer Insight
> CLIPのゼロショット能力を「相対比較」に落とし込んだ設計は、実用的なプロトタイピングとして極めて賢明だ。厳密な精度を追わず、ユーザーの納得感を優先するアプローチは、開発リソースが限られる現場での正解の一つと言える。ただし、本番環境でのスケーラビリティや、CPU推論によるレイテンシは無視できない。大規模トラフィックを想定する場合、推論エンジンの最適化や、常時稼働するGPUインスタンスへの移行が必須となるだろう。