AI関連の最新ニュースをピックアップ
AI研究開発のデファクトスタンダードである深層学習フレームワークPyTorch(Metaが開発を主導するオープンソースの機械学習フレームワーク)の公式ブログにおいて、画像・動画・音声といったマルチメディアの処理スタックを大幅に再編し、デコードおよびエンコード処理を新ライブラリ「TorchCodec(PyTorchにおける画像・動画・音声のエンコード/デコードに特化したI/Oライブラリ)」へ一本化する方針が発表されました。これまで関連ライブラリに分散していたI/O機能を統合することで、パフォーマンス向上と依存関係の整理を図ります。
近年、Vision-Language Model(VLM:視覚と言語を統合するマルチモーダルAI)や画像・動画を生成する拡散モデル(Diffusion Model)の台頭に伴い、学習パイプラインにおけるメディアファイルのテンソル変換および出力生成の比重が急速に高まっています。
従来、メディアのデコード・エンコード処理は以下のようにライブラリ間で重複・分散していました。
io.read_video() や io.VideoReader() などのAPIが存在し、PyAV(Pythonラッパー)、C++ FFmpegバックエンド、CUDA/NVCUVIDバックエンドの3系統が乱立していました。ソースビルドが必要だったり、特定のFFmpegバージョンに強く束縛される課題を抱えていました。StreamReader / StreamWriter が用意されていたほか、FFmpeg、libsoundfile、libsoxなどをバックエンドとする個別デコード関数が混在していました。今回の再編により、CPUおよびCUDA上での画像・動画・音声のすべてのデコード・エンコード処理が「TorchCodec」に集約されます。旧来のTorchVisionやTorchAudioに含まれていたデコード関連APIは非推奨(deprecated)または削除となります。
今回の再設計により、PyTorchのメディア処理は以下の明確なパイプラインに整理されます。
| ライブラリ名 | 主な役割 | 対象メディア | 特徴と状態 |
|---|---|---|---|
| TorchCodec | デコード/エンコード | 画像・動画・音声 | CPU/CUDA対応。C/C++依存ライブラリ(FFmpeg等)を一括管理 |
| TorchVision | テンソル変換(Transforms) | 画像・動画 | v2 transformsを中心に変換処理へ特化。独自モデル・データセットは整理 |
| TorchAudio | テンソル変換(Transforms) | 音声 | MelSpectrogramなどの音声変換へ注力。肥大化したAPI群をスリム化 |
パイプラインの実装フローもシンプルになります。TorchCodecがファイルやバイト列をPyTorchテンソルにデコードし、TorchVision(v2 transforms)またはTorchAudioがテンソルに対して前処理・データ拡張を適用します。また、生成系モデルの出力テンソルはTorchCodecの各種Encoderによってメディアファイルへ書き出されます。
さらに、3つのライブラリすべてでABI安定化(アプリケーションバイナリインターフェースの互換性を保ちリビルドを不要にする仕組み)が達成されました。これにより、PyTorch本体のバージョンアップごとにライブラリを再ビルドする必要がなくなり、それぞれ独立したリリースサイクルで迅速な機能改善とバグ修正が提供されます。
マルチモーダルAIや生成AIの研究開発を行う日本のエンジニアや研究機関にとって、今回の再編はパイプラインの高速化をもたらす一方で、既存コードの移行対応が必要となります。
torchvision.io など)の完全削除時期や、特定のエッジ環境(JetsonやApple Siliconなど)におけるTorchCodecのビルドサポート状況については、今後の追報ブログで詳細が案内される予定です。PyTorchは、モデル構造やデータセットの提供をHugging Faceなどの外部エコシステムに委ねる一方、フレームワーク本体と直結するコアなテンソル演算やI/O基盤の最適化に開発リソースを集中させる戦略を明確にしています。
今回のTorchCodecへの一本化は、マルチモーダルAI時代における入出力ボトルネックを解消するための必然的な構造改革と言えます。ライブラリ境界が明確になったことで、今後のPyTorchにおける動画・音声生成AIの処理性能はさらに加速するとみられます。
引用元:Ebba Simpson