Kompania Google prezantoi publikimin e mjetit Magika 1.0, të dizajnuar për të përcaktuar llojin e përmbajtjes në bazë të analizës së të dhënave të pranishme në skedar. Magika mund të përcaktojë me saktësi gjuhët e programimit të përdorura në përmbajtje, metodat e kompresimit, paketat instalues, kodin ekzekutiv, llojet e shënjave, formatet e zërit, videos, dokumenteve dhe imazheve. Mjeti dhe modeli i gatshëm i mësimit të makinerive që lidhen me projektin shpërndahen nën licencën Apache 2.0. Ndërlidhësit janë përgatitur për gjuhët Rust, Python, JavaScript/TypeScript dhe Go.
Ndryshe nga projektet e ngjashme që përcaktojnë MIME-tipe bazuar në përmbajtje, Magika dallohet për përdorimin e metodave të mësimit të makinerive, performancë më të lartë. dhe saktësisë së përcaktimit. Modeli është trajnuar me përdorimin e kornizës Keras me 100 milion shembuj skedarësh (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 madhësi të vetëm disa megabajt. Përdorimi i metodave të mësimit të thellë të makinerive ka lejuar një rritje të saktësisë së përcaktimit me 50% krahasuar me sistemin e mëparshëm të Google që bazohej në rregulla të dhëna manualisht.
NĂ« Google, sistemi pĂ«rdoret pĂ«r klasifikimin e skedarĂ«ve nĂ« shĂ«rbimet Gmail, Drive, Insight tĂ« Kodit dhe Shfletimin e SigurisĂ« gjatĂ« kryerjes sĂ« kontrolleve tĂ« sigurisĂ« dhe pĂ«rputhshmĂ«risĂ« me rregullat e shĂ«rbimeve. ĂshtĂ« siguruar integrimi i Magika nĂ« platformat VirusTotal dhe abuse.ch si njĂ« nyje pĂ«r filtrimin fillestar tĂ« skedarĂ«ve para se tĂ« kryhen analizat specifike. Konfigurimi i zhvilluar 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Ă« daljes Ă«shtĂ« 5 ms gjatĂ« testimit nĂ« njĂ« bĂ«rthamĂ« CPU. Koha e pĂ«rcaktimit pothuajse nuk varet nga madhĂ«sia e skedarit.
Për të përdorur Magika në projektet tuaja, janë përgatitur një utilitare në linjë komande, paketa 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 linjës së komandës dhe API mbështesin ekzekutimin e operacioneve në modin e paketave, pra lejojnë verifikimin e disa skedarëve me një kërkesë. Ka një mod të skanimit rekurziv të të gjithë përmbajtjes së katalogut dhe tri mënyra parashikimi për të konfiguruar qëndrueshmërinë ndaj gabimeve (siguri e lartë, siguri mesatare dhe supozimi më i mirë).
Fillimisht, projekti u zhvillua nĂ« gjuhĂ«n Python, por gjatĂ« pĂ«rgatitjes sĂ« lĂ«shimit 1.0, motori pĂ«r tĂ« identifikuar llojet e pĂ«rmbajtjes u rishkrua nĂ« gjuhĂ«n Rust, çka mundĂ«soi pĂ«rmirĂ«sim mĂ« tĂ« lartĂ« tĂ« performancĂ«s, duke ruajtur njĂ« nivel tĂ« duhur tĂ« sigurisĂ« sĂ« kodit. PĂ«r ekzekutimin e modelit tĂ« mĂ«simit tĂ« makinerisĂ«, Ă«shtĂ« pĂ«rdorur korniza ONNX Runtime, dhe pĂ«r pĂ«rpunimin paralel asinkron tĂ« kĂ«rkesave â biblioteka Tokio. NĂ« MacBook Pro (M4), performanca e motorit lejon pĂ«rpunimin e rreth 1000 skedarĂ«ve nĂ« sekondĂ«.
PĂ«rveç motorit tĂ« ri, nĂ« lĂ«shimin 1.0, theksohen ndryshime si zgjerimi i numrit tĂ« llojeve tĂ« mbĂ«shtetura nga rreth 100 nĂ« 200; shtimi i njĂ« klienti tĂ« ri nĂ« linjĂ« komande, tĂ« shkruar nĂ« Rust; pĂ«rmirĂ«simi i saktĂ«sisĂ« sĂ« identifikimit tĂ« formateve tĂ« tekstit, tĂ« tilla si skedarĂ«t e konfigurimit dhe kodet; ripĂ«rpunimi i moduleve pĂ«r Python dhe TypeScript pĂ«r tĂ« thjeshtuar integrimin e tyre me projekte tĂ« tjera. Mez mbĂ«shtetjes sĂ« llojeve tĂ« reja tĂ« pĂ«rmbajtjes: formate tĂ« pĂ«rdorura nĂ« mĂ«simin e makinerisĂ« dhe AI; gjuhĂ«t e programimit Swift, Kotlin, TypeScript, Dart, Solidity (solidity), Web Assembly dhe Zig; komponentĂ«t e DevOps (Dockerfiles, TOML, HashiCorp, skedarĂ« ndĂ«rtimi Bazel dhe rregullat YARA); DB SQLite; skedarĂ« AutoCAD (dwg, dxf), Adobe Photoshop (psd) dhe fonte (woff, woff2). ĂshtĂ« pĂ«rmirĂ«suar ndarja e kodit nĂ« C++ dhe C, JavaScript dhe TypeScript.
Burimi: opennet.ru
