数日かかっていた埋め込み生成と顔検出が、GTX 1070の追加で一晩に短縮された——Ty Sherback氏が、自宅NASで動かすImmichに専用GPUを投入することで、ようやく本気でGoogle Photosを削除できたと報告しています。鍵はストレージではなく「機械学習の処理能力」だったとされています。
CLIPと顔認識が「数日」から「一晩」へ——GTX 1070がボトルネックを解消
Immichのスマート検索は、すべての画像をCLIPモデルに通して埋め込み(embedding)と呼ばれる数値的な指紋を生成することで成立しています。これにより、ファイル名ではなく「ビーチ」のような自然な記述で写真を検索できます。顔認識も同様に、ライブラリ全体に対して検出パスを走らせるバッチ機械学習ジョブです。
Sherback氏のホームラボは2015年のSkylake世代「i7-6700K」(4コア)が中核で、一般的なセルフホストワークロードはこなせる構成でした。しかしImmichのMLジョブは、技術的には動くものの実用には耐えなかったといいます。氏は、ジョブを開始して翌日見にいくと、ほとんど進んでいなかったと振り返っています。
そこで投入されたのが「GTX 1070」です。CUDAアクセラレーションが効くようになった結果、これまで日単位で計測していた埋め込み生成と顔検出が一晩で完了するように変わったとされています。インデックス時に重い処理を済ませる設計のため、テキスト検索も顔検索もクエリ時に即座に応答すると報告されています。つまり日常使いではGoogle Photosに近い体感速度に届いた、というのが氏の評価です。
モバイルアプリと共有アルバムが「監視不要」レベルに
機能を動かすことと、日常的に使い続けられることは別問題です。Google Photosが長年強かったのは、まさに自動バックアップとタイムラインのなめらかさ、検索の「ただ動く」感だったと振り返られています。
Immichのモバイルアプリは日常運用に耐える水準に達したと評価されています。自動バックアップが信頼できるようになり、新規ショットがアップロードされているかを確認しなくなった、と氏は述べています。共有アルバムも、相手側に環境を整えてもらえばシームレスに機能するという報告です。
ただし「ピクセル単位でGoogle Photosと並ぶわけではなく、粗い部分も残る」とも明言されており、過度な期待は禁物です。それでも差は十分に縮まった、というのが氏の結論です。
いつ壊れるか分からない可能性——Pascal依存という不安要素
ただし、この構成には看過できない注意点があります。次のアップデート次第で動かなくなる可能性があり、不安定さを抱えているのが実情です。GTX 1070はPascalアーキテクチャで、ImmichのMLコンテナが依存するNVIDIAのcuDNNライブラリは、新しいバージョンでPascalサポートを完全に打ち切っているためです。
現在も動いている理由は、Immichのメンテナーが古いcuDNNリリースをあえてピン留めし、Pascal世代のGPUを延命させているからだと説明されています。さらに、ドライバとCUDAスタックも古いものを維持する必要があり、最新版へアップグレードするとImmichが壊れる可能性が高いと指摘されています。
氏は、Pascalサポートがギリギリの状態でぶら下がっていると表現していると伝えられています。
NAS単体は「バックアップ」ではない——3-2-1ルールが必須
Google Photos解約と引き換えに発生するのが、冗長化・オフサイト保管・ハードウェアメンテナンスといった責任です。氏は、単一のNASはバックアップとは呼べないと釘を刺していると報じられています。
ドライブ1台の故障、盗難、火災、アップデート失敗——いずれも、かけがえのない写真を午後ひとつで吹き飛ばし得る、と警告されています。
加えて、Google Takeoutでのエクスポート、メタデータとタイムスタンプのクセを解きほぐす作業、大規模ライブラリの移行にかかる相当な時間——これらが「移行税」として発生する点も明示されています。iCloudから併せて移行する場合は、さらに追加の工数が発生するとされています。
セルフホスト環境を検討する際の判断軸
ストレージ容量とGPUの余力があるなら、Immichを自宅NASで運用する選択肢は十分現実的になったと言えます。一方で、移行コストと運用責任を引き受けられるかは慎重に判断する必要があります。
これからセルフホスト環境を構築するのであれば、Pascal世代のGPUは長期運用に不安が残る可能性があります。cuDNNのサポート打ち切りがすでに進行しており、メンテナーのピン留めという綱渡りに依存する形になるためです。新しい世代のGPUを選ぶ方が、結果的にトラブルも乗り換えコストも抑えやすいと考えられます。
Q&A
Q. Immichを動かすのにGPUは必須ですか? 必須ではありません。i7-6700KのようなCPUだけでもImmichのMLジョブは技術的に動作しますが、ライブラリが大きい場合は実用速度に達しないと報告されています。スマート検索や顔認識を実用レベルで使うならCUDA対応GPUの追加が現実的とされています。
Q. 中古のGTX 1070でも問題なく使い続けられますか? 現時点ではImmichのメンテナーが古いcuDNNをピン留めしてPascal世代を延命させていますが、サポートはギリギリの状態だと表現されています。長期運用を前提とする場合は、新しい世代のカードを検討する余地があると考えられます。
Q. 家族との写真共有はGoogle Photosと比べてどうですか? Immichの共有アルバムは、相手側にもImmich環境を整えてもらえばシームレスに機能すると報告されています。Google Photosのように相手のアカウント1つで完結する手軽さはありませんが、運用が乗ってしまえば日常的な共有体験は遜色ない水準に近づいたと評価されています。