11 月 7 日消息,当地时间周四,谷歌宣布推出 Magika 1.0,这是该公司基于人工智能的文件类型检测系统的首个稳定版本,采用 Rust 语言进行重构以提升速度和内存安全性。

据谷歌介绍,自去年初开放源代码以来,Magika 已被广泛应用于开源社区,每月下载量超过 100 万次。此次更新带来了全新的架构、性能提升以及对更多文件类型的支持。

如前所述,Magika 1.0 最大的变化就在于其核心引擎已完全采用 Rust 重写,以实现更高的性能和内存安全性。

另外,新版 Magika 还提供原生的 Rust 命令行工具,可在单核下每秒识别数百个文件,并能在多核 CPU 上扩展至每秒数千个。

据介绍,该系统使用 ONNX Runtime 进行模型推理,并借助 Tokio 框架实现异步并行处理。谷歌公布的测试数据显示,在 MacBook Pro(M4)上,Magika 每秒可处理约 1,000 个文件。

在文件类型支持方面,Magika 1.0 的检测能力扩展至 200 多种文件格式,是初始版本的两倍。此次新增类别包括:

数据科学与机器学习:支持 Jupyter Notebooks(ipynb)、Numpy(npy, npz)、PyTorch(pytorch)、ONNX(onnx)、Apache Parquet(parquet)及 HDF5(h5)等文件;

现代编程与网页开发:新增 Swift、Kotlin、TypeScript、Dart、Solidity、WebAssembly(wasm)及 Zig;

DevOps 与配置文件:支持 Dockerfile、TOML、HashiCorp HCL、Bazel 构建文件及 YARA 规则等;

数据库与图形格式:新增 SQLite、AutoCAD(dwg, dxf)、Photoshop(psd)以及现代网页字体(woff, woff2)等。

Magika 1.0 还提升了区分相似格式的能力,例如可分别识别 JSONL 与 JSON、TSV 与 CSV、Apple 二进制 plist 与 XML plist,以及区分 C 与 C++、JavaScript 与 TypeScript 等语言文件。

在技术实现上,团队面临两大挑战:训练数据规模庞大与部分文件类型样本稀缺。未压缩的数据集超过 3TB,为此谷歌采用自研的 SedPack 数据集库,通过流式加载与解压技术实现高效训练。同时,针对样本不足的文件类型,研究团队使用生成式 AI 工具 Gemini 创建高质量的合成训练数据,将现有代码和结构化文件转换为其他格式,以增强模型的泛化能力。

新版 Magika 还同步更新了 Python 与 TypeScript 模块,简化了开发者在各语言中的集成过程。用户可通过简单命令在 Linux、macOS 或 Windows 上安装原生客户端,也可通过 pipx install magika 安装 Python 包使用 Rust 版命令行工具。

谷歌表示,Magika 的未来发展将持续聚焦于性能优化与文件类型扩展。团队鼓励开发者社区参与贡献,包括测试、功能请求及代码提交。