Kompania Google prezantoi lansimin e mjetit Magika 1.0, i destinuar për përcaktimin e llojit të përmbajtjes në bazë të analizës së të dhënave të pranishme në skedarin. Magika mund të përcaktojë saktë gjuhët e programimit, metodat e kompresimit, paketat instalimi, kodin ekzekutues, llojet e markup-it, formatet e zërit, video, dokumenteve dhe imazheve që përdoren në përmbajtje. Mjetet e lidhura me projektin dhe modeli i gatshëm i mësimit të makinerive shpërndahen nën licencën Apache 2.0. Ndërfaqet janë përgatitur për gjuhët Rust, Python, JavaScript/TypeScript dhe Go.
Nga projektet e ngjashme që përcaktojnë MIME-tipi në bazë të përmbajtjes, Magika dallon për aplikimin e metodave të mësimit të makinerive, performancë më e lartë dhe saktësisë së përcaktimit. Modeli është trajnuar duke përdorur kornizën Keras mbi 100 milion shembuj skedujsh ( Madhësia e grupit të të dhënave është më shumë se 3 TB) dhe mbështet njohjen e 200 llojeve të të dhënave me saktësi jo më pak se 99%. Modeli është kompozuar në formatin ONNX dhe ka një madhësi prej disa megabajtësh. Përdorimi i metodave të thella të mësimit të makinerive ka lejuar rritjen e saktësisë së përcaktimit me 50% krahasuar me sistemin e mëparshëm të Google, i bazuar në rregulla të dhëna manualisht.
Në Google, sistemi përdoret për të klasifikuar skedarët në shërbimet Gmail, Drive, Code Insight dhe Safe Browsing gjatë kontrollit të sigurisë dhe përputhshmërisë me rregullat e shërbimeve. Integrare Magika është siguruar në platformat VirusTotal dhe abuse.ch si një lidhje për filtrimin për përzgjedhjen e skedarëve para se të kryhen analizat specifike. Konfigurimi i Magika i vendosur në infrastrukturën e Google siguron skanimin e disa milion skedarëve në sekondë dhe disa qindra miliard skedarëve në javë. Pas ngarkimit të modelit, koha e formimit të rezultatit është 5 ms gjatë testimit në një bërthamë CPU. Koha e identifikimit pothuajse nuk varet nga madhësia e skedarit.
Për të integruar Magika në projektet tuaja, janë përgatitur një mjet komandash, pako për Python, Rust dhe Go, si dhe një bibliotekë JavaScript që mund të funksionojë në shfletues ose në projekte të bazuara në Node.js. Ndërfaqja e komandës dhe API mbështesin ekzekutimin e operacioneve në modin e paketës, dmth. lejojnë të kontrolloni disa skedarë me një kërkesë. Ka një mod aktiv skanimi tërë përmbajtjes së dosjes dhe tri modet parashikuese për të përshtatur qëndrueshmërinë ndaj gabimeve (besim i lartë, besim mesatar dhe supozim optimal).
Fillimisht, projekti zhvillohej nĂ« gjuhĂ«n Python, por gjatĂ« pĂ«rgatitjes sĂ« versionit 1.0, motorin pĂ«r pĂ«rcaktimin e llojeve tĂ« pĂ«rmbajtjes e shkruajti nga e para nĂ« gjuhĂ«n Rust, çka lejojti arritjen e njĂ« performance mĂ« tĂ« lartĂ«, duke ruajtur njĂ« nivel tĂ« duhur tĂ« sigurisĂ« sĂ« kodit. PĂ«r tĂ« ekzekutuar modelin e mĂ«simit tĂ« makinerisĂ«, Ă«shtĂ« pĂ«rdorur kuadri ONNX Runtime, dhe pĂ«r pĂ«rpunimin e kĂ«rkesave nĂ« mĂ«nyrĂ« asinkrone paralele â biblioteka Tokio. NĂ« MacBook Pro (M4), performanca e motorit lejon pĂ«rpunimin e rreth 1000 skedarĂ«ve nĂ« sekondĂ«.
PĂ«rveç motorit tĂ« ri, ndryshimet nĂ« versionin 1.0 pĂ«rfshijnĂ« zgjerimin e numrit tĂ« formateve tĂ« mbĂ«shtetura nga rreth 100 nĂ« 200; shtimin e njĂ« klienti tĂ« ri pĂ«r komandat, i shkruar nĂ« Rust; rritjen e saktĂ«sisĂ« nĂ« identifikimin e formateve tĂ« tekstit, si skedarĂ«t e konfigurimit dhe kodin; ristrukturimin e moduleve pĂ«r Python dhe TypeScript pĂ«r tĂ« lehtĂ«suar integrimin e tyre me projekte tĂ« tjera. Mes formateve tĂ« reja tĂ« mbĂ«shtetura pĂ«r pĂ«rmbajtjen: formate qĂ« pĂ«rdoren nĂ« mĂ«simin e makinĂ« dhe AI; gjuhĂ«t e programimit Swift, Kotlin, TypeScript, Dart, Solidity (solidity), Web Assembly dhe Zig; pĂ«rbĂ«rĂ«sit DevOps (Dockerfiles, TOML, HashiCorp, skedarĂ«t e ndĂ«rtimit Bazel dhe rregullat YARA); bazat e tĂ« dhĂ«nave SQLite; skedarĂ«t AutoCAD (dwg, dxf), Adobe Photoshop (psd) dhe fontet (woff, woff2). ĂshtĂ« pĂ«rmirĂ«suar ndarja e kodit nĂ« C++ dhe C, JavaScript dhe TypeScript.
Burimi: opennet.ru
