Google esitles Magika 1.0 tööriista, mis on mĂ”eldud sisu tĂŒĂŒbi mÀÀramiseks failide andmete analĂŒĂŒsi pĂ”hjal. Magika suudab tĂ€pselt tuvastada failis kasutatavad programmeerimiskeeled, kompressioonimeetodid, installipaketid, tĂ€itmisfaile, mĂ€rgistusviise, heliformaadid, videod, dokumendid ja pildid. Projekti raames töötati vĂ€lja tööriistad ja valmis masinĂ”ppe mudel, mis on litsentseeritud Apache 2.0 alusel. Raamistikke on valmistatud keeltele Rust, Python, JavaScript/TypeScript ja Go.
Erinevalt sarnastest projektidest, mis mÀÀravad MIME-tĂŒĂŒbi sisu pĂ”hjal, kasutab Magika masinĂ”ppemeetodeid, kĂ”rge jĂ”udlusega ja mÀÀramise tĂ€psust. Mudel on koolitatud Keras platvormil 100 miljoni failinĂ€ite pĂ”hjal (andmestiku kogusuurus ĂŒle 3 TB) ning toetab tuvastamist 200 andmetaipaga, sĂ€ilitades vĂ€hemalt 99% tĂ€psuse. Mudel on kokku pandud ONNX formaadis ja selle suurus on vaid paar megabaiti. SĂŒgava masinĂ”ppe meetodite rakendamine vĂ”imaldas 50% vĂ”rra suurendada mÀÀramise tĂ€psust vĂ”rreldes Google'i varasema kĂ€sitsi mÀÀratud reeglitel baseeruva sĂŒsteemiga.
Google'is kasutatakse sĂŒsteemi failide klassifitseerimiseks Gmaili, Drive'i, Code Insight'i ja Safe Browsing teenustes turvakontrollide ja teenuste reeglite jĂ€rgimise tagamiseks. Magika integreeritakse VirusTotal ja abuse.ch platvormidesse esmase failifiltreerimise lingina enne spetsiifiliste analĂŒsaatorite töötlust. Google'i infrastruktuuris rakendatud Magika konfigureerimine vĂ”imaldab skaneerida mitut miljonit faili sekundis ja sadu miljardeid faile nĂ€dalas. PĂ€rast mudeli laadimist on vĂ€ljundi genereerimiseks vajalik aeg 5 ms, kui testimine toimub ĂŒhes CPU tuumas. MÀÀramise aeg ei sĂ”ltu peaaegu faili suurusest.
Magika kasutamiseks oma projektides on ette valmistatud kĂ€surea tööriist, paketid Pythonile, Rustile ja Go-le, samuti JavaScripti teek, mis suudab töötada brauseris vĂ”i Node.js-pĂ”histes projektides. KĂ€surea liides ja API toetavad toimingute lĂ€biviimist rĂŒhmitatud viisil ehk vĂ”imaldavad kontrollida mitu faili ĂŒhe pĂ€ringu jooksul. On olemas rekursiivse skaneerimise reĆŸiim kogu katalooge sisu jaoks ja kolm prognoosimisreĆŸiimi, et kohandada veaotsingu vastupidavust (kĂ”rge kindlus, keskmine kindlus ja parim oletus).
Alguses arenes projekt Pythonis, kuid versiooni 1.0 ettevalmistamisel kirjutati sisu tĂŒĂŒbi mÀÀramise mootor ĂŒmber Rusti keeles, mis vĂ”imaldas saavutada kĂ”rgemat jĂ”udlust, sĂ€ilitades samas koodi vajaliku kaitsetaseme. MasinĂ”ppe mudeli tĂ€itmiseks kasutatakse raamistikku ONNX Runtime, ning pĂ€ringute paralleelseks ja asĂŒnkroonseks töötlemiseks kasutatakse Tokio teeki. MacBook Pro (M4) peal suudab mootor töödelda umbes 1000 faili sekundis.
Lisaks uuele mootorile on versioonis 1.0 muutunud toetatavate tĂŒĂŒpide arv umbes 100-lt 200-le; lisatud on uus kĂ€surea klient, mis on kirjutatud Rustis; tĂ”hustatud on tekstivormingute mÀÀramise tĂ€psust, nagu konfiguratsioonifailid ja kood; Pythonile ja TypeScriptille on ĂŒmber kujundatud moodulid, et lihtsustada nende integreerimist teiste projektidega. Uute toetatud sisu tĂŒĂŒpide seas on: masinĂ”ppes ja AI-s kasutatavad formaadid; programmeerimiskeeled Swift, Kotlin, TypeScript, Dart, Solidity (solidity), Web Assembly ja Zig; DevOpsi komponendid (Dockerfiles, TOML, HashiCorp, Bazel ehitusfailid ja YARA reeglid); SQLite andmebaasid; AutoCADi failid (dwg, dxf), Adobe Photoshopi (psd) ja fondid (woff, woff2). Parandatud on koodi eraldust C++ ja C, JavaScripti ja TypeScripti vahel.
Allikas: opennet.ru
