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 的未來發展將持續聚焦于性能優化與文件類型擴展。團隊鼓勵開發者社區參與貢獻,包括測試、功能請求及代碼提交。