1年分のビデオをローカルでインデックス化する:レガシーなApple Silicon上でGemma 4 31Bを活用する
多くのビデオグラファーやコンテンツクリエイターにとって、アーカイブは増え続ける負債となります。iPhoneやドローン、プロフェッショナルなミラーレスカメラなど、複数のSSDやデバイスに映像が蓄積されるにつれ、ボトルネックはコンテンツのキャプチャから、特定の瞬間を見つけ出すという純粋な認知負荷へと移行します。ファイル名が IMG_1103.MOV で、Mara june 2024 backup final FINAL のようなフォルダに保存されている場合、アーカイブはブラックホールと化します。
ほとんどのAIビデオエディターは、反復的な編集や生成的なB-rollを提供することでこの問題を解決しようと試みています。しかし、これらのツールは映像がすでにラベル付けされていることを前提としています。真の問題は編集ではなく、インデックスにあります。これを解決するために、あるエンジニアは2021年モデルのM1 Max MacBook ProとGemma 4 31Bモデルを使用して、ローカルファーストのインデックス作成パイプラインを構築し、ラベルのない1年分のビデオを、英語のクエリで検索可能なデータベースへと変貌させました。
ローカルインデックスのアーキテクチャ
パーソナルおよびプロフェッショナルな映像のテラバイト級のデータをクラウドにアップロードするコストとプライバシーの懸念を避けるため、システムはローカルファーストの哲学に基づいて設計されました。目標は「サイドカー」システムを作成することでした。つまり、各クリップに対して、元のファイルと並行して存在する .description.md ファイルを作成し、データのポータビリティとgrep可能性を確保することです。
プロセッシング・パイプライン
このパイプラインは、視覚データを大規模言語モデル(LLM)に渡す前に、あらゆる可能なメタデータを抽出するために一連の特化されたツールを使用します:
- メタデータ抽出:
ffprobeが技術的なメタデータを処理し、exiftoolがGPS座標と高度を抽出します。 - ジオコーディング: GPSデータは、Nominatimを介して人間が読める場所の情報に変換されます。
- ビジュアル・サンプリング:
ffmpegがクリップを代表する、1920pxの等間隔に配置された5つのフレームを抽出します。 - 音声文字起こし: WhisperX が97言語にわたって単語レベルのアライメントと話者ダイアリゼーションを提供します。
- 顔認識:
insightfaceが顔を検出し、アーカイブを横断した人物検索を可能にするために、512次元のArcFace埋め込みを中央集権的なSQLiteデータベースに保存します。 - ビジョン分析: ビジョンモデル(LM Studio経由のGemma 4 31B)が、フレーム、文字起こし、およびフォルダのコンテキストを分析して、構造化されたYAMLフロントマターと散文的な説明文を生成します。
ハードウェアの限界を押し広げる:M1 Maxと50GBのスワップ
この構築における最も驚くべき側面の一つは、5年前にリリースされたM1 Max(64GB RAM)のパフォーマンスでした。Gemma 4 31B Q4モデルは約28GBのメモリを使用しますが、一括インデックス作成プロセスはシステムを絶対的な限界まで押し上げ、50GBを超えるスワップの使用をもたらしました。
激しいスワップは、SSDの摩耗のため日常的な使用では一般的に推奨されませんが、著者は、短期的かつ高強度のプロジェクトにおいては、M1 Maxのユニファイドメモリ・アーキテクチャと高いメモリ帯域幅により、これが実行可能であることを指摘しています。あるコミュニティメンバーが指摘したように、x86アーキテクチャにおける同レベルのスワップは、おそらく推論が使い物にならないほど遅くなるでしょう。
構築における教訓訓
Claude Codeを主要なオーケストレーターとしてシステムを構築することで、ローカルLLMのデプロイに関するいくつかの重要な技術的教訓が明らかになりました:
1. 指示よりも列挙型(Enums)
自由記述の散文的なプロンプトは、「混同(hallucinations)」の影響を受けやすくなります。例えば、モデルが内部照明を誤解釈した場合、夜のシーンを「明るく照らされている」と記述してしまうことがあります。厳格な列挙型(例:golden_hour | bright_daylight | nighttime | unclear)から選択させることで、モデルを既知の有効な選択肢に制約約させ、精度を大幅に向上させることができます。
2. 「間引き(Cull)」のロジック
写真において、間引きは攻撃的です(ぼけやソフトフォーカスを除去する)。ビデオの思い出においては、間引きは寛容であるべきです。手持ちでぼやけたオートバイの走行映像は、技術的には「劣っている」かもしれませんが、感情的に価値があります。システムは、不完全なキャプチャを除去するのではなく、「記録されていないもの」(レンズキャップ、ポケットの中の映像)のみを「間引き」するように再定義されました。
3. サイレント・フェイラー(静かな失敗)の処理
Claude CLIのようなAIツールをスクリプト化する場合、非対話モードでは権限エラーが成功レスポンス(終了コード 0)として返されることがあります。「I need permission」という文字列をマッチングさせるなどの防御的なチェックを実装することは、パイプラインが説明文の代わりにエラーメッセージでインデックスを埋め尽くすのを防ぐために不可欠です。
戦略的な教訓:前提条件としてのインデックス化
このプロジェクトの核心的な洞察は、現在のAIビデオエディティング市場は「一段階上のレイヤー」をターゲットにしているという点です。ほとんどのツールは編集の表面的なレベルに焦点を当てていますが、真の価値はインデックスにあります。
アーカイブが、例えば「Mara, golden hour, with people, longer than 8 seconds の手持ちの室内クリップを見せて」といった、平易な英語のクエリで検索可能になったとき、実際の編集は薄く、単純な作業へと変わります。インデックスを最初に構築することで、著者は膨大な、停滞したアーカイブを機能的な資産へと変貌させ、ローカルの31Bモデルが、以前は高価なクラウドAPIの領域であった一括アーカイブ作業を処理する能力があることを証明しました。