216万ウォンのラベリングを9万ウォンに削減する
(na2ru2.me)画像ラベリング費用を96%削減: 人がやっていた作業をシステムに任せることで、予算と時間が不足する環境でも、人の反復労働をソフトウェアパイプラインに置き換えて中核機能を実装した実践的なエンジニアリング事例を扱う
要点まとめ
• 課題認識: 有名キャラクターのぬいぐるみを自動認識・登録する機能に適した既存モデルは存在せず、人手によるラベリングはコスト・速度・拡張性のすべてに明確な限界があった。
• アプローチ: 「人をさらに投入するか」ではなく、人の判断プロセスをシステムとして分解し、パイプライン化。
4段階の自動化パイプライン設計
1. CLIPフィルタリング – 意味のない画像を大量に除去してLLMコストを削減
2. YOLO検出 – 主対象オブジェクトだけをクロップして分析範囲を縮小
3. LVMラベリング – 精製されたデータにのみ高性能VLMを投入
4. LVM検証 – 信頼度に基づく条件付き検証で呼び出し回数をさらに削減
成果:
• 人手ラベリング費用 約216万ウォン → 9万ウォン
• 約95.7%のコスト削減、作業時間は数日 → 数時間
• 本質的な価値: 一度きりの節約ではなく、再利用可能なシステムを確保
資本の限界は技術で乗り越えられ、ソフトウェアはコスト問題を構造問題へ変えられるツールであることを証明している
9件のコメント
良い内容の共有ありがとうございます。
なるほど、興味深く読ませていただきました。追加検証を信頼度に基づいて実施するかどうか判断するとおっしゃっていましたが、この信頼度がどのように測定された値なのかも気になります。
ちなみに、gpt-4o-mini モデルは画像入力時の入力トークンがかなり高価なので、他の軽量モデルも検討してみることをおすすめします!
winterjungさん、こんにちは。私の作業に関心を持っていただきありがとうございます。信頼度については、VLM(GPT-4o)が直接返す confidence 値を使用しています。おっしゃる通り、GPT-4o の confidence の算出根拠が不明確で再現不可能だという限界があります。ただ、実用的な観点では、VLM が返す confidence がある程度正確であるという前提のもと、最後の検証(Verifier)段階で threshold ベースで検証するかどうかを決定するように実装しました。
gpt-4o-mini モデルで画像入力トークンが過度に高価だという事実はまったく知りませんでした。教えていただきありがとうございます。すぐにコードに反映しました(笑)
4o mini の価格がなぜあんな感じなのか本当に疑問です。通常の 4o のほうが安いと認識しているのですが(笑)
VLMを使って問題をうまく解決した記事ですね。興味深く読みました。
記事を読んでいて1つ気になった点があるのですが、
このプロセスはどのように組み込まれたのか気になります。
記事を読みながら、VLMのほうがYOLOより性能が良いはずなのに、むしろクロップするとYOLOモデルが誤判定して、VLMに渡す前に重要な情報が失われる問題があるのではないかと思いました。
クロップはどのような課題をきっかけに考えるようになったのか、また、どのように精度を検証して導入されたのか気になります。
こんにちは、記事を興味深く読んでいただきありがとうございます!
ご指摘の点には共感します。VLMがYOLOより高性能である一方、YOLOの誤判定によって重要な情報が失われる可能性があるという点は、その通りです。ただ、以下の理由からクロップ工程を入れました。
1つ目はコストの問題です。VLMに画像全体を直接入力すると、高解像度画像の処理によってコストが急激に増加します。これがクロップを導入した最大の理由でした。
2つ目は処理速度の問題です。
大規模データセットを現実的な時間内で処理するには、このような速度向上が不可欠でした。
3つ目は精度の向上です。
クロップはむしろVLMの判断精度を高めます。画像全体には複雑な背景、複数のキャラクター、テキスト、装飾品などが一緒に含まれているため、VLMがどのオブジェクトを判定すべきか混乱することがあります。たとえば、背景のポスターにいるキャラクターなのか、メインのぬいぐるみなのか、隣にある別のキャラクターなのかが明確でないケースが生じます。一方でクロップを使えば対象オブジェクトだけを明確に分離できるため、VLMはそのオブジェクトのみに集中して判断できるようになります。
もちろん、YOLOの見逃しや誤検出の問題が完全に解決されるわけではありません。しかし、YOLOのconfidence thresholdを0.5に設定してrecallを高め、その後のCLIPフィルタリングとVerifierの検証段階で誤検出を除外する形で、この問題を緩和しました。また、大規模データを処理しているため、一部に見逃しが発生しても、統計的には十分な量の高品質データを確保できました。
結果として、コスト・速度・精度のバランスが取れた実用的なパイプラインを構築することが目標であり、クロップ工程はこの3つの側面すべてで良い効果をもたらしました。
ご回答ありがとうございます。
私もコストの問題が気になっていたのですが、やはり入力画像の解像度によって費用が大きく変わるのですね。さらに、入力画像のサイズと処理速度の関係はまったく考えていなかったので興味深いです。クロップすると処理速度まで速くなるのですね。
そして、精度向上には本当に驚きました!
VLMの性能はかなり向上しましたが、それでもまだ、単一の目的のために学習されたYOLOモデルの性能は超えられないのでしょうか?
実際の現場で得られたノウハウを文章として残してくださり、ありがとうございます。
私も似たような問題に出会ったら、使われていた方法をぜひ参考にしてみます。
構造問題への変換して解いたというより、新しいモデルを作られたのではないかと思いますね
ご指摘ありがとうございます!
「構造問題への転換」という表現は、やや抽象的だったかもしれません。
私が記事でお伝えしたかったのは、
Before: "ラベリング = 人手投入 = コスト比例"
After: "ラベリング = パイプライン = 初期構築後は変動費を最小化"
つまり、一回限りのコスト問題をシステム構築の問題に変えた、ということです。
「新しい作業モデルを作った」という表現もその通りです!
より正確には、「人の労働をソフトウェアパイプラインで置き換えた」と言えるかと思います(笑)