作者:互联网 时间: 2026-07-23 17:37:36
要是你在 Hugging Face Hub 打开某个模型仓库,忽然看到文件名旁边飘着个红色 Unsafe 标签,先别急着下载。这时候别光盯着那个红标签看,得重点看这几样:仓库的整体警告、被标记的具体文件名、用了哪些扫描器,还有每个扫描器给出的检测结果。公开仓库不用登录就能查这些信息;要是私有仓库的话,还是得有读取权限才行。
Hub 会给仓库里的每个文件都做扫描,而且每次有新提交都会重新触发扫描。要是页面上没看到 Safe 或者 Unsafe 标记,也不能直接就觉得是安全的:官方说明里提了,这种情况可能是正在扫描、在排队等着扫,或者扫描出了错,有时候结果得等个几分钟才出来。咱们这里用官方文档里的公开测试仓库做演示,全程只看页面,绝对不下载或者运行里面的测试文件。
入口位置:打开你要查的目标模型仓库,在仓库名称下面找到 Files and versions 标签。电脑端网页里,它和 Model card、Community 是在同一排的。
主要动作:进到文件页面后,先看分支选择和文件表格的上方有没有红色警告,再快速扫一遍每个文件名右边的状态标。咱们用的这个测试仓库显示“4 个文件被扫描为不安全”,表格里既能看到 Safe 也能看到 Unsafe 的文件。
成功标志:页面能正常显示文件树,而且每个扫完的文件旁边都标了 Safe 或者 Unsafe。仓库级的红条意思是至少有一个文件被判定为不安全,可不是登录失败或者下载提示哈。
失败处理:要是只看到 Model card 页面,没出现文件表格,先检查是不是点错标签了;要是私有仓库跳转到登录页或者显示没权限,得先拿到仓库的读取权限才行。文件旁边暂时没显示状态的话,等几分钟再刷新,千万别把没显示状态当成“已通过”。

这张图重点看俩地方就行:上方的红条会告诉你整个仓库有多少个不安全文件,下面的文件表格则把结论对应到了每个具体文件上。红条用来快速判断“这个仓库要不要先停下来仔细查”,表格则用来搞清楚“到底是哪几个文件有问题”。
入口位置:还是在 Files and versions 页面,仓库级警告的右边有个 Show files 按钮。
主要动作:点一下 Show files,警告区域就会向下展开,把这次被判定为不安全的所有文件名都集中列出来。咱们这个测试页面里列出的是 model_broken_X.pkl、danger.dat、build_pickles.py 和 eicar_test_file 这几个。
成功标志:按钮文字变成了 Hide files,红色区域里也出现了完整的文件清单。清单里的文件名能直接和下面的文件表格对应上,省得文件多的时候你得一行行找红标签。
失败处理:要是没看到 Show files 按钮,先确认下仓库是不是真的显示了不安全文件的数量。如果警告条消失了,但某个文件旁边还是标着 Unsafe,那就以文件行和文件详情页的结果为准;要是页面状态刚有变化,就重新加载一下当前分支再核对。

展开后的清单只是帮你快速定位有问题的文件,不会告诉你为啥被标成不安全。看到文件名之后还得点进单文件的详情页,因为不同扫描器的适用范围不一样,给出的检测结论也可能不同。
入口位置:在不安全文件清单或者文件表格里,点一下标着 Unsafe 的文件就行。咱们这里以 eicar_test_file 这个文件为例,进到文件页后,红色的 Unsafe 标签在文件操作栏的右边。
主要动作:点一下那个 Unsafe 标签,就能打开 File Security Scans 面板。得一行行看每个扫描器的名称和对应结果,别光看顶部的颜色就下结论。咱们这个例子里,ClamAV 那一行标了 Unsafe,详情里写的是检测到 Eicar-Signature。
成功标志:面板里能同时看到文件名、各个扫描器的名称和具体检测结果。如果出现了检测签名,只要把扫描器名称和签名内容记下来就行;千万别点 Raw,也别把文件下载到自己电脑上复现。
失败处理:要是点了标签后面板没弹出来,先确认你点的是文件操作栏里的状态标签,不是文件内容本身。要是状态标签还没显示出来,就回到文件列表等扫描完成;要是一直没结果,仓库所有者就得检查下最近的提交和扫描是不是报错了。

这张图里真正能当判断依据的是 ClamAV、Unsafe 状态和 Detected malware signatures 这三部分。就算仓库名里带测试相关的字样,也不能代替扫描结果;不管是做教程还是审核记录,都得引用当前面板显示的结论。
入口位置:回到文件表格,选一个标着 Safe 标签的文件。咱们这里打开 pytorch_model.bin 这个文件,再点一下操作栏里的 Safe。
主要动作:同样展开 File Security Scans 面板,对比一下每一行的状态。当前页面里,VirusTotal、Protect AI、ClamAV 和 HF Picklescan 都显示 No issue,JFrog 则显示 not a model。
成功标志:你能分清 No issue 和 not a model 的区别。前者是说这个扫描器没查出问题,后者只是说明这个文件不在该扫描器的适用范围内,既不能当成“发现恶意软件”,也不能当成“扫描通过”。文件顶部的 Safe 标签,只代表当前这个修订版本在页面显示的这些扫描里的状态,每次有新提交之后都得重新看结果。
失败处理:要是某个扫描器没显示 No issue,别自己瞎补结论;页面上写啥就记啥。如果文件行标着 Safe,但详情面板还没加载完,就重新打开状态面板,确认下文件名和当前分支没看错。

Safe 和 Unsafe 的面板结构是一样的,差别就在每个扫描器的结果上。这么对照着看能避免两个常见的误判:一是把单个扫描器的“不适用”当成有危险,二是把文件列表里暂时没标签的状态当成安全。
普通访问者看到 Unsafe 标签后,应该立刻停止下载和运行这个文件,优先换用来源明确、状态正常的仓库或者文件。要是你是仓库所有者,就得删掉可疑文件然后提交变更;官方说明里提到,把不安全文件删掉之后,等下一轮扫描完成,仓库就会重新显示为安全状态。
要是没看到状态标签,先等几分钟再刷新当前分支的页面,因为扫描可能还在跑或者在排队。尤其是刚推送了新提交的时候,一定要多留点时间。要是等了很久状态还是没出来,别用旧截图代替当前结果,也别把“没看到红标”就写成“已经安全”。