Page 1 of 1

处理图像数据 ARCH 目前提供 16 个由网络档案库生成的“可供研究”数据

Posted: Sat Jul 05, 2025 6:09 am
by shukla552
这些数据集包括但不限于:包含从某个档案库中的网页提取的所有文本的数据集、链接图(显示网站如何链接到其他网站)以及命名实体(例如,提及人物和地点)。其中一个数据集以 CSV 文件的形式提供,其中包含该档案库中网页图片的信息,包括图片的收集时间、图片的上次修改时间、图片的 URL 以及文件名。

ARCH 界面截图,展示了数据集的预览。此预览包含下载链接和“在 Colab 中打开”按钮。
ARCH 界面截图,展示了数据集的预览。此预览包含下载链接和“在 Colab 中打开”按钮。

处理此类藏品时,我们面临的挑战之一是,如何才能在更大规模上理解其中蕴含的内容——浏览数千幅图像将极具挑战性。我们利用一些工具来帮助我们更好地理解大规模藏品,从而应对这一挑战。

构建用户界面
Gradio是一个由 Hugging Face 支持的开源库,它可以帮助创建用 海外数据 户界面,使其他人能够与机器学习系统的各个方面(包括数据集和模型)进行交互。我将 Gradio 与Spaces 结合使用,在几分钟内就将一个应用程序公开发布,而无需设置和管理服务器或托管服务。有关使用 Spaces 的更多信息,请参阅文档。下面,我将展示一些示例,说明如何使用 Gradio 作为界面,将机器学习工具应用于 ARCH 生成的数据。

探索图像
我使用 Gradio 的随机图像选项卡来开始评估数据集中的图像。查看随机图像网格可以更好地了解数据集中包含哪些类型的图像。这让我们开始了解该集合中包含哪些内容(例如,艺术品、物品、人物等)。

随机图库的屏幕截图,显示了来自数据集的图像网格。
随机图库的屏幕截图,显示了来自数据集的图像网格。

介绍图像搜索模型
查看馆藏的快照,可以让我们开始探索馆藏中包含哪些类型的图像。我们可以通过实现图像搜索来增强我们的方法。

我们可以采用多种方法来搜索图片。如果图片周围有文字,我们可以用它来代替图片中可能包含的内容。例如,我们可以假设,如果图片旁边的文字包含“一张我的雪狗的照片”,那么图片中就包含一张狗的照片。这种方法有局限性——文字可能缺失、不相关,或者只能捕捉到图片中一小部分内容。“一张我的雪狗的照片”这个文字并不能告诉我们图片中是什么品种的狗,或者照片中是否包含其他内容。

利用嵌入模型提供了另一条前进的道路。嵌入本质上是接受输入(例如文本或图像),然后返回一串数字。例如,文本提示:“一张狗的图像”,将通过嵌入模型传递,该模型将文本“翻译”成数字矩阵(本质上是数字网格)。这些数字的特殊之处在于它们应该捕捉一些关于输入的语义信息;狗图片的嵌入应该以某种方式捕捉图像中有狗的事实。由于这些嵌入由数字组成,我们还可以比较一个嵌入与另一个嵌入,看看它们彼此之间的接近程度。我们期望相似图像的嵌入彼此更接近,而相似度较低的图像的嵌入彼此更远。无需过多探讨其工作原理,值得一提的是,这些嵌入不仅代表图像的一个方面(即其包含的主要对象),还代表其他组成部分,例如其美学风格。您可以在这篇文章中找到关于其工作原理的更详细的解释。

在 Hugging Face Hub 上寻找合适的图像搜索模型
要为数据集创建图像搜索系统,我们需要一个用于创建嵌入的模型。幸运的是,Hugging Face Hub 可以轻松找到用于此目的的模型。

Hub 有各种模型支持构建图像搜索系统。

Hugging Face Hub 的屏幕截图,显示了托管模型的列表。
Hugging Face Hub 显示托管模型列表。

所有模型都有各自的优缺点。例如,有些模型会更大。这可以提高模型的准确性,但也会使模型更难在标准计算机硬件上运行。

Hugging Face Hub 提供了一个“推理小部件”,允许以交互方式探索模型,了解其输出结果。这对于快速了解模型是否有用非常有用。

一张模型小部件的屏幕截图,展示了一只狗和一只猫正在弹吉他的图片。该小部件将“正在演奏音乐”标签分配到最高置信度。
一张模型小部件的屏幕截图,展示了一只狗和一只猫正在弹吉他的图片。该小部件将“正在演奏音乐”标签分配到最高置信度。

对于我们的用例,我们需要一个模型,它允许我们将输入文本(例如“一张狗的图像”)嵌入到模型中,并将其与数据集中所有图像的嵌入进行比较,以找出最接近的匹配项。我们使用了Hugging Face Hub 上托管的CLIP模型的一个变体: clip-ViT-B-16。这使我们能够将文本和图像都转换为嵌入,并返回与文本提示最匹配的图像。

搜索标签的屏幕截图,显示在文本框中搜索“风景照片”,以及搜索结果的图像网格。其中包括两张包含树木的图像和包含天空和云彩的图像。
搜索标签的屏幕截图,显示在文本框中搜索“风景照片”,并显示搜索结果的图像网格。其中包括两张包含树木的图像和一张包含天空和云彩的图像。

虽然搜索实现并不完美,但它确实为我们提供了一个额外的入口,让我们能够访问大量难以手动探索的数据。我们可以扩展此接口,以支持图像相似性功能。这对于在更广泛的收藏中识别特定艺术家的作品可能很有用。

图像分类
虽然图像搜索可以帮助我们找到图像,但如果我们想要描述图片库中的所有图像,那么它的作用就没那么大了。为此,我们需要一个略有不同的机器学习任务——图像分类。图像分类模型会根据一系列可能的标签,将图像分类。

我们可以在 Hugging Face Hub 上找到图像分类模型。Gradio 演示应用程序中的“图像分类模型测试器”选项卡允许我们根据数据集测试 Hub 上托管的 3,000 多个图像分类模型中的大多数模型。

这可以让我们感受到一些不同的事情:

模型的标签与我们的数据匹配程度如何?用于对狗品种进行分类的模型可能对我们没有太大帮助!
它为我们提供了一种快速检查模型在使用我们的数据时可能出现的错误的方法来。
它促使我们思考哪些类别对我们的图像有意义。
Gradio 应用程序中图像分类选项卡的屏幕截图,其中显示了计算机视觉模型分配的图像最常预测标签的条形图。
Gradio 应用程序中图像分类选项卡的屏幕截图,其中显示了计算机视觉模型分配的图像最常预测标签的条形图。

我们可能会找到一个已经能很好地处理我们的数据集的模型——如果没有,我们可能不得不考虑训练一个模型。

训练你自己的计算机视觉模型
Gradio 演示的最后一个选项卡允许您将图像数据集导出为 Label Studio 可加载的格式。Label Studio 是一款开源工具,用于注释数据以准备执行机器学习任务。在 Label Studio 中,我们可以定义要应用于数据集的标签。例如,我们可能想从该集合中提取特定类型的图像。我们可以使用 Label Studio 使用这些标签创建带注释的数据集版本。这需要我们使用正确的标签为数据集中的图像分配标签。虽然这个过程可能需要一些时间,但它是进一步探索数据集并确保标签有意义的有效方法。

有了带标签的数据集,我们需要某种方法来训练模型。为此,我们可以使用AutoTrain 工具。此工具允许您在不编写任何代码的情况下训练机器学习模型。使用这种方法,我们可以创建一个基于我们感兴趣的标签的数据集进行训练的模型。本文无法涵盖 AutoTrain 的所有功能,但本文提供了一个实用的概述,帮助您了解其工作原理。

后续步骤
如简介中所述,您可以自行探索ARCH 图像数据集浏览器演示。如果您了解一些 Python 知识,还可以复制该空间并调整或更改其当前支持的功能,以便探索数据集。

互联网档案馆 (Internet Archive) 和 Hugging Face 计划在今年晚些时候组织一场实践黑客马拉松,重点关注如何使用 Hugging Face 生态系统中的开源机器学习工具来处理网络档案。活动内容包括构建网络档案数据集接口、协作注释以及训练机器学习模型。如果您有兴趣参与,请填写此表格告知我们。