구글이 딥러닝으로 학습해 파일 포맷을 빠르고 정확하게 검출하는 툴인 Magika를 발표했습니다. 오픈 소스 라이센스 아파치 2.0을 준수하며 깃허브에서 다운받을 수 있습니다.
평균 정밀도 99% 이상, CPU 1개로 실행해도 1초당 120종 이상, 수백만 파일의 포맷을 판별해 냅니다. 실행 시간은 몇 ms 수준이며 코어 모델의 용량은 1MB가 채 안 됩니다.
리눅스에는 libmagic이라는 파일 유틸리티가 기본적으로 탑재되어 오랫동안 파일 형식을구분하는 표준처럼 쓰였습니다. 하지만 수동으로 작성한 리스트에 따라서 분류해 왔지요. 이 규칙을 만드는데 시간이 오래 걸리고 어렵고 에러도 자주 발생합니다. 그래서 구글은 Keras를 사용해 설계/훈련하고, Onnx 추론 엔진으로 속도를 높였습니다.
웹 데모 외에도 파이썬 패키지 관리에서 pip install magika 명령으로 설치할 수 있습니다.