Google переписала свой инструмент определения типов файлов на Rust и выпустила стабильную версию Magika 1.0

Разработчики из Google переписали свой открытый инструмент определения типов файлов на Rust и выпустили первую мажорную и стабильную версию проекта Magika 1.0 (доступно веб-демо решения и документация). Исходный код Magika опубликован на GitHub под лицензией Apache License 2.0.

По заверению Google, Magika 1.0 стала работать быстрее после перехода на Rust. Проект был запущен в прошлом году как система на основе ИИ для идентификации типов файлов на основе содержимого, а не только имён файлов. С тех пор Magika незаметно стал популярным в сообществе открытого исходного кода, собрав более миллиона загрузок в месяц.

Новая Magika поддерживает более 200 типов файлов (предыдущая поддерживала 100 типов). Расширенная поддержка означает, что Magika может различать форматы файлов, которые на первый взгляд выглядят похожими. Если вы когда-либо работали с JSONL и JSON, TSV и CSV, C и C++ или JavaScript и TypeScript, вы знаете, как они могут сливаться воедино. Команда Magika утверждает, что проект может правильно различать типы файлов, даже если содержимое файла короткое.

Что особенно выделяется, так это то, как Google обучала ИИ-модель для Magika. В набор данных проекта вошла база примерно до 3 ТБ кода и примеров файлов. Чтобы обрабатывать это в масштабе, Google использовала свою систему наборов данных SedPack, которая потоково передаёт и распаковывает обучающие данные на лету, чтобы избежать узких мест ввода-вывода. В ��омпании также использовали свою ИИ-модель Gemini для генерации синтетических обучающих данных там, где реальных образцов было слишком мало. Другими словами, разработчики Google заставили ИИ преобразовывать код из одного языка в другой, чтобы Magika могла изучить различия. Немного иронично, что ИИ обучает ИИ, чтобы ИИ мог более точно идентифицировать контент, сгенерированный ИИ. Это, по сути, состояние отрасли в 2025 году.

Другое важное изменение — это внутренняя архитектура. Magika полностью переписана на Rust. Новый движок создан для скорости и безопасности памяти, что имеет смысл, учитывая, что инструменты сканирования файлов часто используются в рабочих процессах безопасности, где надёжность имеет значение. Google заявляет, что новый нативный инструмент командной строки может сканировать около тысячи файлов в секунду на MacBook Pro на базе M4 на одном ядре. Благодаря большему количеству ядер, масштабирование происходит легко. Magika использует ONNX Runtime для выполнения инференса и асинхронную среду выполнения Tokio, чтобы всё работало без блокировок.

Magika — это не просто бинарный файл на Rust, выложенный на GitHub. Команда также обновила привязки для Python и TypeScript. Это означает, что как разработчики, предпочитающие скрипты, так и разработчики, создающие полноценные приложения, смогут легко интегрировать Magika в существующие инструменты. Если вы хотите попробовать, установка на Linux и macOS осуществляется без проблем с помощью одной команды curl. Пользователи Windows могут использовать команду PowerShell. А если вы используете pipx, вы можете установить клиент на Rust непосредственно из пакета Python.

Этот релиз также является интересным показателем того, куда Google направляет свои усилия в 2025 году. Rust, ONNX и реальные улучшения инструментов для разработчиков — это не самые эффектные вещи, но именно они нужны разработчикам. Это также говорит о том, что Google видит будущее, где идентификация типов файлов должна быть умнее, чем простое определение MIME-типов. Учитывая, сколько экосистем машинного обучения, веб-разработки и программирования постоянно изобретают новые форматы, это кажется необходимым.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии