モデルのアップグレード後にAI写真ラベルが変わるのはなぜですか?

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

AIによる写真ラベルは、アップグレード後に変わることがあります。これは、新しいモデルが画像を表現し、ラベルを比較し、信頼度の境界を以前のモデルとは異なる方法で適用するためです。

セルフホスト型のフォトライブラリでは、元のファイルが同じままでも、スマート検索語、検出オブジェクト、顔グループ、重複候補、シーンラベルが更新後に変わることがあります。これらのラベルは、画像に永続的に書き込まれた事実ではなく、データベースから生成されたレコードです。画像エンコーダー、テキストエンコーダー、クラス語彙、しきい値、前処理パイプライン、クラスタリング規則が変わると、システムは写真が属する場所を再計算します。

写真ラベルは永続的なメタデータではなく、モデルの判断

カメラのタイムスタンプやファイル名は保存データから読み取れますが、「ビーチ」「犬」「誕生日」「乗り物」などのラベルは、特定のモデルバージョンと設定によって生成される予測です。

Amazon Rekognitionは、結果とともにラベル検出モデルのバージョンを返します。これは、バージョンが予測の意味の一部だからです。また、1つのラベル文字列を変わらない属性として扱うのではなく、別名、カテゴリ、信頼度も提供します。

ローカルのフォトシステムでも、同じ来歴情報を保持すべきです。モデル名、バージョン、前処理設定、ジョブの実行時刻がなければ、管理者はラベルの変更が新しいモデル、異なるしきい値、または破損したインデックスのどれによるものか判断できません。

新しい埋め込みは異なる類似性空間を作る

スマート検索システムでは、通常、各画像をベクトルに変換します。テキストクエリや候補概念も同じ空間にマッピングされ、どの項目が最も近いかによってラベルや検索結果が決まります。

Qdrantは、埋め込みモデルの小さな変更でもベクトル空間の幾何学が変わる可能性があり、正確な比較にはデータの再埋め込みと再インデックスが必要になると説明しています。

古いベクトルと新しいベクトルは、互換性のあるスコアではありません。ある空間で「庭」に近かった写真が、別の空間では「公園」や「裏庭」に近くなることがあります。どちらのモデルも、その場面を妥当に説明している場合でもです。

候補語とプロンプトによって選ばれるラベルが変わる

ゼロショット分類は、言語に関係なく普遍的なラベルを1つ発見する仕組みではありません。指定された候補ラベルやテキストプロンプトと画像を比較し、それらの選択肢を順位付けします。

Hugging Faceのゼロショット画像分類ワークフローでは、画像とスコアを比較する前に、「これは…の写真です」のような候補ラベル用プロンプトを明示的に作成します。

アップグレードによって、ラベルの追加、名称変更、翻訳、プロンプトテンプレートの変更が行われることがあります。「ゴールデンレトリバー」を追加すると、より広い意味の「犬」に代わって選ばれる可能性があります。一方、細分化されたクラスを削除すると、同じ画像が「動物」に戻ることがあります。

ラベル階層によって細かさが変わる

写真ラベルには、「乗り物、車、スポーツカー」や「食べ物、デザート、ケーキ」のような親子関係があることがよくあります。モデルやインターフェースによって、最も細かいクラス、親クラス、または複数の階層が表示されます。

CHiLSの研究では、階層型ラベルセットによって、サブクラスを生成し、その後に予測を親カテゴリへ対応付けることで分類結果が変わる可能性が示されています。

そのため、オントロジーのアップグレードによって、明確な精度低下がなくても、ラベルがより具体的または一般的に見えることがあります。監査では、古い文字列が残っているかだけでなく、階層とマッピング規則を比較すべきです。

信頼度のしきい値によって表示されるラベルが決まる

モデルは通常、複数の候補とスコアを返します。アプリケーションは、保存する候補数と、ラベルを検索結果や写真詳細画面に表示するために必要な最低信頼度を決定します。

しきい値を変更すると、境界付近のラベルが非表示になったり、弱いラベルがより多く表示されたりします。後継モデルでスコアの較正が異なる場合、順位付けの品質が向上していても、別のしきい値が必要になることがあります。

評価中は生のスコアまたは上位k件のスコアを保存し、そのうえでモデルバージョンごとに表示しきい値を選択してください。無関係なモデル間で同じ数値のカットオフを使い回すと、実際の問題がスコアの較正であるにもかかわらず、アップグレードが不安定に見えることがあります。

オブジェクトラベルが変わらなくても顔グループは変わる

顔認識では通常、検出した顔の埋め込みを作成し、近い点を人物ごとにクラスタリングします。新しい検出器によって切り抜きが変わることがあり、新しい認識モデルによって顔ベクトル間の距離が変わることもあります。

DBSCANは、近傍半径と最小密度に基づいて点をグループ化します。距離と密度のパラメータによって、顔が人物グループに加わるか、別のグループを形成するか、外れ値として残るかが決まります。

モデルの変更とクラスタリングの変更は、分けて監査すべきです。よりきれいな顔の切り抜きによって、以前は統合されていた人物が分離されることがあります。一方、距離のしきい値を緩くすると、よく似た親族が統合される可能性があります。

部分的な再処理では2世代のラベルが混在する

アップグレードしたモデルで新しい写真だけを処理すると、ライブラリ内に古い意味空間と新しい意味空間が同時に存在することになります。検索結果やラベルは、各アセットがシステムに登録された時期によって変わる可能性があります。

Immichは、スマート検索モデルを変更した後にすべてのアセットを再処理するよう管理者に案内しており、そうしない場合、以前のモデルの互換性のないデータによってエラーが発生する可能性があると説明しています。

バージョン管理された再構築、または第2のインデックスを使用し、完了を確認してから検索をアトミックに切り替えてください。新しい世代でアセット数が完全に一致し、検索テストで許容できる結果が得られるまで、古いインデックスを削除しないでください。

予測をバージョン管理し、人による修正を保護する

モデルが生成したラベルは、ユーザーが作成したアルバム、手動タグ、名前付き人物、非表示ラベルの設定とは分けて保持してください。自動再構築によって、ユーザーが整理した内容を密かに上書きしてはいけません。

本番導入前に、代表的な写真を固定した評価セットでテストしてください。追加・削除されたラベル、順位の変化、誤検出、顔グループの分割と統合、家庭内で重要な検索クエリを比較します。

ZimaSpaceの画像解像度がマルチモーダルAIの負荷を変える理由に関する記事では、別の変数も取り上げています。前処理時の解像度や切り抜き方針によって、アップグレードしたモデルに提供される視覚情報が変わる可能性があります。

よくある質問

ラベルが変わったということは、新しいモデルの性能が悪いということですか?

いいえ。異なる語彙を使用している場合や、親子関係にあるクラスのうち、より具体的なものを選択している場合があります。精度は、代表的な写真と実際に想定する検索タスクに基づいて評価する必要があります。

古いAIラベルはすぐに削除すべきですか?

いいえ。再処理と比較が完了するまで、古い世代を保持してください。ラベルをバージョン管理すると、ロールバックや回帰分析が可能になります。

手動で付けた写真タグはモデルのアップグレード後も保持できますか?

はい。手動タグを生成された予測とは別に保存し、再構築ジョブをモデル管理対象のフィールドに限定すれば保持できます。

テック&AIハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.