Googleは、AIを用いることでファイルの種類を高速かつ正確に判別できるツール「Magika」をオープンソースで公開したと発表しました。
Magikaは、あるファイルの中味が何なのか、記述されたプログラミング言語の種類、動画や画像、音声などのフォーマットの種類、ExcelやWord、PDFなどのオフィス系ソフトウェアの種類、OSの実行形式バイナリなどの種類を瞬時に判別してくれます。
下記はコマンドラインとしてMagikaを実行した例で、フォルダ内のファイルの種類を出力しています。
特別に最適化された1MBのモデルでを用いて推論を実行
Magikaはファイルの判別に、Kerasを用いて特別に最適化されたディープラーニングによる、わずか1MBのモデルを用いていると説明されています。
このモデルは推論エンジンのOnnx上で実行されています。実行速度はGPUを用いずCPU上で処理されたとしても数ミリ秒程度。
GoogleはこのMagikaを100以上のファイルタイプを網羅する1Mファイルベンチマークで評価し、他の既存ツールより高い精度で判別を実行し、なおかつ他を約20%上回る高速度を実現したことも発表しています。
なぜファイルの中味を見て判別する必要があるのか?
一般にファイルの種類は拡張子によって示されますが、現実にはファイルの拡張子がつねに正しいとは限らないため、ファイルの内容を見て種類を判別する処理はさまざまなソフトウェアの内部で行われています。
例えば、コードエディタにおいてシンタックスハイライトの設定を行うためにプログラミング言語の種類を判別することや、業務アプリケーションが特定の種類のファイル以外は読み込まないような判別をすることなどが挙げられます。
特に重要とされているのはセキュリティの分野です。拡張子を偽ってユーザーにファイルを開かせようとするマルウェアに対処するために、拡張子ではなくファイルの内容から種類を適切に判断し、ファイルの種類に合わせて用意されたスキャナーによる安全性評価は欠かせません。
GoogleはMagikaをGmailやGoogle Driveなどの何百万ものファイル処理にすでに活用しており、これまで同社が利用していたルールによるファイル判別と比べて50%の精度向上を実現でき、より精度の高いスキャンが可能になったと説明しています。
この記事は新野淳一氏が運営するメディア「Publickey」が2024年2月19日に掲載した『Google、AIでファイルの種類を高速正確に判別できる「Magika」をオープンソースで公開』を、テクノエッジ編集部が編集・転載したものです。