Google har publicerat Magika 1.0, ett verktyg för att bestÀmma typ av innehÄll i filer

Google har lanserat verktyget Magika 1.0, som Àr avsett för att identifiera innehÄllstypen baserat pÄ analys av data i filen. Magika kan exakt identifiera programmeringssprÄk, komprimeringsmetoder, installationspaket, körbar kod, olika typer av markup, ljud-, video-, dokument- och bildformat som anvÀnds i innehÄllet. Det relaterade verktyget och den fÀrdiga maskininlÀrningsmodellen distribueras under Apache 2.0-licensen. Bindningar har förberetts för sprÄken Rust, Python, JavaScript/TypeScript och Go.

Till skillnad frÄn liknande projekt som bestÀmmer MIME-typ utifrÄn innehÄllet, skiljer sig Magika genom anvÀndning av maskininlÀrningsmetoder, hög prestanda och noggrannhet i identifieringen. Modellen har trÀnats med hjÀlp av Keras-ramverket pÄ 100 miljoner filexempel (datasetets storlek Àr över 3 TB) och stöder igenkÀnning av 200 datatyper med en noggrannhet pÄ minst 99 %. Modellen Àr sammansatt i ONNX-format och har en storlek pÄ bara nÄgra megabyte. AnvÀndningen av metoder för djup maskininlÀrning har möjliggjort en 50 % ökning av noggrannheten i identifieringen jÀmfört med det tidigare systemet som Google anvÀnde, baserat pÄ manuellt angivna regler.

I Google anvÀnds systemet för filklassificering i tjÀnster som Gmail, Drive, Code Insight och Safe Browsing vid sÀkerhets- och efterlevnadskontroller. Integration av Magika Àr sÀkerstÀlld i plattformarna VirusTotal och abuse.ch som ett led för primÀr filtrering av filer innan specifika analyser utförs. Den distribuerade konfigurationen av Magika inom Googles infrastruktur möjliggör skanning av flera miljoner filer per sekund och flera hundra miljarder filer per vecka. Efter att modellen har laddats tar det 5 ms att generera ett resultat vid testning pÄ en CPU-kÀrna. Tiden för identifiering pÄverkas nÀstan inte av filstorleken.

För att anvÀnda Magika i sina projekt har verktyg för kommandoraden, paket för Python, Rust och Go samt ett JavaScript-bibliotek som kan fungera i webblÀsaren eller i Node.js-projekt förberetts. KommandoradsgrÀnssnittet och API:et stöder körning av operationer i batchlÀge, dvs. de tillÄter att kontrollera flera filer per begÀran. Det finns ett lÀge för rekursiv skanning av hela katalogens innehÄll och tre prognoslÀgen för att anpassa felresistens (hög sÀkerhet, medel sÀkerhet och bÀsta gissning).

Projektet utvecklades ursprungligen pÄ Python, men inför version 1.0 skrevs motoren för att identifiera innehÄllstyper om pÄ Rust, vilket gjorde det möjligt att uppnÄ högre prestanda och upprÀtthÄlla en lÀmplig nivÄ av kodsÀkerhet. För att köra maskininlÀrningsmodellen anvÀnds ramverket ONNX Runtime och för parallell asynkron bearbetning av begÀrningar anvÀnds biblioteket Tokio. PÄ MacBook Pro (M4) gör motorens prestanda att den kan bearbeta cirka 1000 filer per sekund.

Förutom den nya motorn noterades i release 1.0 en ökning av antalet stödda typer frÄn cirka 100 till 200; tillÀgg av en ny klient för kommandoraden skriven i Rust; ökad noggrannhet i identifiering av textformat, sÄsom konfigurationsfiler och kod; omarbetning av moduler för Python och TypeScript för att förenkla deras integration med andra projekt. Bland de nya stödda innehÄllstyperna finns: format som anvÀnds i maskininlÀrning och AI; programmeringssprÄk som Swift, Kotlin, TypeScript, Dart, Solidity (solidity), Web Assembly och Zig; DevOps-komponenter (Dockerfiles, TOML, HashiCorp, build-filer Bazel och YARA-regler); SQLite-databaser; AutoCAD-filer (dwg, dxf), Adobe Photoshop (psd) och teckensnitt (woff, woff2). Koden har förbÀttrats för att separera C++ och C, JavaScript och TypeScript.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster