GitHub Repo
TransformersコミュニティがCLAPの前処理異常を報告、バッチサイズが音声検索結果を変える可能性
10月28日のTransformersコミュニティからの報告によると、fusionモードのCLAPは短い音声をランダムに長い音声として扱い、埋め込みと検索結果に影響する。報告者は修正案と回帰テストを提出したが、確認時点では未マージで、測定結果は独立した検証を待っている。

Hugging Face Transformersコミュニティは10月28日、CLAPの音声前処理に関する問題を報告した。バッチ内のすべてのクリップが長さの上限を超えていない場合でも、ClapFeatureExtractorはfusionモードでランダムに1つを選び、is_longerをtrueに設定する。そのため、単一サンプルの推論では常にfusion分岐が使われる一方、大きなバッチでは実行ごとに異なるクリップが選ばれる可能性がある。問題報告
CLAPは対照学習によって音声とテキストを結び付け、音声検索や分類に利用できる。公式ドキュメントでは、fusionを長い音声向けのマルチビュー処理として説明している。ランダムに切り出した3つの区間と、全体のスペクトログラムをダウンサンプリングしたものを組み合わせる。短い音声はパディングしたうえで4つに複製される。したがって、前処理でfusion分岐をどう選ぶかは、実装の一貫性を評価するうえで重要となる。公式ドキュメント
報告者はlaion/clap-htsat-fused、AudioCapsの957件の音声、10秒のクロップを使って、テキストから音声を検索するテストを行った。報告者が示した1位再現率(R@1)は、バッチサイズ1で0.232、バッチサイズ8で約0.315~0.322だった。短い音声のフラグを常にfalseにすると、単一サンプルでの結果は0.349に上昇した。これらは特定のテスト条件におけるコミュニティの測定値であり、あらゆるCLAPワークロードに当てはまる差とは限らない。テスト条件と結果
報告者は同日、ランダムにフラグを書き換えるコードを削除し、音声の長さに応じて分岐を決めるPR #50101を提出した。また、単一サンプル、8サンプル、長短の音声が混在するバッチを対象とした回帰テストも追加した。報告者によると、個別テストは17件通過し、統合テストは4件失敗した。後者は未変更のメインブランチでも発生するとしている。確認時点でPRはオープンのままで、メンテナーによるレビュー結果もないため、正式な修正と見なすことはできない。修正案
音声ベクトルインデックスを運用するエンジニアにとって、この報告は、再現性を確保する記録にバッチサイズと前処理のバージョンを含める必要性を示している。上記の仕組みから推測すると、修正が取り込まれた場合、既存の短い音声の埋め込みが変わる可能性がある。アップグレード前に固定サンプルのベクトルと検索順位を比較し、インデックスを再構築するか判断するとよい。今後は、メンテナーの確認と正式リリースへの反映状況を追う必要がある。