1MB的神奇AI,检测百万文件,99%的准确率!
在Web开发中,上传文件至服务器前的文件类型检测至关重要。这一步骤不仅能够确保服务器和用户的安全,拦截可能的恶意文件,还能保证上传的文件完整且符合预期,提高数据的合规性。同时,通过及时给予用户反馈和指导,也能提升用户体验,避免不必要的困惑。
之前阿宝哥有介绍过 “JavaScript 如何检测文件的类型?”,现在我们已经进入 AI 时代,要与时俱进。接下来,阿宝哥将介绍如何利用谷歌开源的 Magika[1] 工具,实现精准的文件类型检测。
图片
Magika 简介
Magika 是一款新颖的人工智能文件分类检测工具,依靠最新的深度学习技术提供精确的检测。它采用了高度优化的定制Keras模型,该模型仅重约1MB,即使在单CPU上运行,也能在几毫秒内实现精确的文件识别。
在对超过100万个文件和超过100种内容类型(涵盖二进制制和文本文件格式)的评估中,Magika 实现了99%以上的精确度和召回率。Magika 被大规模使用,通过将 Gmail、云端硬盘和安全浏览文件路径到适当的安全和内容策略扫描仪,来保障 Google 用户的安全。
Magika 的特点
- 支持检测 100 多种文件类型。
- 支持 Python 命令行、Python API 和实验性 TFJS 版本等多种使用方式。
- 模型加载后(这是一次性开销),每个文件的推理时间约为 5 毫秒。
- 接近恒定的推理时间,与文件大小无关。Magika 仅使用文件字节的有限子集。
- 支持批处理:支持同时向命令行和 API 发送多个文件,Magika 将使用批处理来加快推理时间。
- 在包含 100 多种内容类型的超过 2500 万个文件的数据集上进行了训练。
- 经过大规模评估,Magika 的平均精确度和召回率达到 99% 以上,优于现有方法。
- Magika 使用每个内容类型的阈值系统来确定是否“信任”模型的预测,或者是否返回通用标签,例如“通用文本文档”或“未知二进制数据”。
- 支持三种不同的预测模式,调整对错误的容忍度:高置信度、中等置信度和最佳猜测。
Magika 的性能
图片
性能方面,Magika 凭借其 AI 模型和大型训练数据集,在包含 100 多种文件类型的 1M 文件基准测试上进行评估时,其性能比其他现有工具高出约 20%。按文件类型细分,我们发现文本文件的性能提升更大,包括其它工具可能难以处理的代 码文件和配置文件。
图片
Magika 在线示例
Magika 支持浏览器和 Node.js 环境,你可以通过访问 Web Demo[2] 网站来体验它的功能。
图片
Magika 快速上手
安装 magika
npm install magikaorpnpm add magika
浏览器中使用 magika
import { Magika } from "magika";const file = new File(["# Hello I am a markdown file"], "hello.md");const fileBytes = new Uint8Array(await file.arrayBuffer());const magika = new Magika();await magika.load();const prediction = await magika.identifyBytes(fileBytes);console.log(prediction);
Node.js 中使用 magika
import { readFile } from "fs/promises";import { MagikaNode as Magika } from "magika";const data = await readFile("some file");const magika = new Magika();await magika.load();const prediction = await magika.identifyBytes(data);console.log(prediction);
有关 Magika 的相关内容就介绍到这里,如果你想进一步了解 Magika,可以继续阅读 Magika: AI powered fast and efficient file type identification[3] 这篇文章。
参考资料
[1]Magika: https://github.com/google/magika
[2]Web Demo: https://google.github.io/magika/
[3]Magika: AI powered fast and efficient file type identification: https://opensource.googleblog.com/2024/02/magika-ai-powered-fast-and-efficient-file-type-identification.html
以上是1MB的神奇AI,检测百万文件,99%的准确率!的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

CentOS 关机命令为 shutdown,语法为 shutdown [选项] 时间 [信息]。选项包括:-h 立即停止系统;-P 关机后关电源;-r 重新启动;-t 等待时间。时间可指定为立即 (now)、分钟数 ( minutes) 或特定时间 (hh:mm)。可添加信息在系统消息中显示。

在CentOS上对Zookeeper进行性能调优,可以从多个方面入手,包括硬件配置、操作系统优化、配置参数调整以及监控与维护等。以下是一些具体的调优方法:硬件配置建议使用SSD硬盘:由于Zookeeper的数据写入磁盘,强烈建议使用SSD以提高I/O性能。足够的内存:为Zookeeper分配足够的内存资源,避免频繁的磁盘读写。多核CPU:使用多核CPU,确保Zookeeper可以并行处理请

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

在CentOS系统上启用PyTorchGPU加速,需要安装CUDA、cuDNN以及PyTorch的GPU版本。以下步骤将引导您完成这一过程:CUDA和cuDNN安装确定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA显卡支持的CUDA版本。例如,您的MX450显卡可能支持CUDA11.1或更高版本。下载并安装CUDAToolkit:访问NVIDIACUDAToolkit官网,根据您显卡支持的最高CUDA版本下载并安装相应的版本。安装cuDNN库:前

CentOS系统下GitLab的备份与恢复策略为了保障数据安全和可恢复性,CentOS上的GitLab提供了多种备份方法。本文将详细介绍几种常见的备份方法、配置参数以及恢复流程,帮助您建立完善的GitLab备份与恢复策略。一、手动备份利用gitlab-rakegitlab:backup:create命令即可执行手动备份。此命令会备份GitLab仓库、数据库、用户、用户组、密钥和权限等关键信息。默认备份文件存储于/var/opt/gitlab/backups目录,您可通过修改/etc/gitlab

检查CentOS系统中HDFS配置的完整指南本文将指导您如何有效地检查CentOS系统上HDFS的配置和运行状态。以下步骤将帮助您全面了解HDFS的设置和运行情况。验证Hadoop环境变量:首先,确认Hadoop环境变量已正确设置。在终端执行以下命令,验证Hadoop是否已正确安装并配置:hadoopversion检查HDFS配置文件:HDFS的核心配置文件位于/etc/hadoop/conf/目录下,其中core-site.xml和hdfs-site.xml至关重要。使用

CentOS 安装 Nginx 需要遵循以下步骤:安装依赖包,如开发工具、pcre-devel 和 openssl-devel。下载 Nginx 源码包,解压后编译安装,并指定安装路径为 /usr/local/nginx。创建 Nginx 用户和用户组,并设置权限。修改配置文件 nginx.conf,配置监听端口和域名/IP 地址。启动 Nginx 服务。需要注意常见的错误,如依赖问题、端口冲突和配置文件错误。性能优化需要根据具体情况调整,如开启缓存和调整 worker 进程数量。
