Google объявила об открытии кода системы идентификации типов файлов на базе искусственного интеллекта Magika. Она позволяет точно определять в содержимом используемые языки программирования, методы сжатия, установочные пакеты, исполняемый код, виды разметки, форматы звука, видео, документов и изображений.
Инструментарий и готовая модель машинного обучения опубликованы под лицензией Apache 2.0. Установить Magika можно как пакет для Python и JavaScript-библиотеку, способную работать в браузере или в проектах на базе Node.js. Интерфейс командной строки и API поддерживают выполнение операций в пакетном режиме, а также имеются режим рекурсивного сканирования всего содержимого каталога и три режима прогнозирования для настройки устойчивости к ошибкам.
Magika можно установить через менеджер пакетов pypi, просто набрав pip install magika без необходимости использования графического процессора. Также есть экспериментальный пакет npm, если требуется использовать версию TFJS.
Magika применяет методы машинного обучения и обучена с использованием фреймворка Keras на 25 млн примерах файлов. Проект поддерживает распознавание 116 типов данных с точностью не менее 99%. Модель в формате ONNX весит всего 1 МБ. Google внедрила в проект методы глубокого машинного обучения, что позволило на 50% повысить точность определения по сравнению с ранее применявшейся системой на основе заданных правил. Magika способна превзойти другие существующие инструменты примерно на 20% при оценке в тесте 1M files, охватывающем более 100 типов файлов.
В Google система используется для классификации файлов в сервисах Gmail, Drive, Code Insight и Safe Browsing при выполнения проверок безопасности. Компания объявила о будущей интеграции Magika в платформу VirusTotal для первичной фильтрации файлов перед выполнением специфичных анализаторов. Конфигурация Magika в инфраструктуре Google обеспечивает сканирование нескольких миллионов файлов в секунду и нескольких сотен миллиардов файлов в неделю. Время формирования вывода составляет 5-6 мс при тестировании на одном ядре CPU.
Источник: habr.com