Hugging Face 简介#

什么是 Hugging Face?#

Hugging Face 是人工智能开源社区中的一家重要企业。其官网提供了数据集、模型和“空间(Spaces)”等资源,并开发了多个核心库(主要包括 transformersdiffusersdatasets)。

为什么使用 Hugging Face? Hugging Face 提供了简化的方式来访问最先进的复杂模型,让用户能够快速高效地使用这些模型。此外,用户还可以通过网站上的“空间(Spaces)”类别测试模型,并下载社区提供的数据集。在某种程度上,它是深度学习领域的“GitHub”。

本课程将学习哪些内容?#

本课程的理论内容较少,但将带您探索高性能模型,并了解深度学习的最新能力。课程内容参考了 Hugging Face 官网 的资源,以及 deeplearning.ai 上的免费课程 “Open Source Models with Hugging Face”。建议您查阅该课程,其中涵盖了计算机视觉、音频和自然语言处理(NLP)等多个应用领域。

课程大纲:

  • 介绍部分:介绍 Hugging Face 官网 及其三大核心板块:模型(Models)数据集(Datasets)空间(Spaces)

  • 后续三个笔记本:专注于 transformers 库的使用:

    1. 第一个笔记本介绍 视觉模型

    2. 第二个笔记本介绍 自然语言处理(NLP)

    3. 第三个笔记本介绍 音频模型

  • 扩散模型笔记本:介绍 diffusers 库,用于使用扩散模型(如 Stable Diffusion)生成图像。

  • 最后一个笔记本:介绍 Gradio 库,用于快速创建模型演示的交互界面。

Hugging Face 官网#

空间(Spaces)#

空间(Spaces) 是最直观且易于上手的板块,汇集了各种模型的演示示例。

以下是其首页截图:

Spaces

演示示例(Spaces)按用途和热度分类,您也可以使用“搜索空间(Search spaces)”功能查找特定模型进行测试。 建议您定期浏览不同的空间,以便及时了解深度学习领域的最新动态。

如果您自行训练了一个模型,可以通过“创建新空间(Create New Space)”工具免费分享。这需要掌握 Gradio 库的基础知识,我们将在本课程的最后一个笔记本中介绍。

模型(Models)#

有时,您想测试的模型在“空间(Spaces)”中没有提供,或者您希望在自己的代码中使用。此时,需要前往网站的 模型(Models) 板块。 该板块汇集了大量开源模型。

以下是其页面截图:

Models

该页面包含丰富的信息。您可以通过“按名称筛选(Filter by name)”搜索特定模型, 也可以使用左侧的筛选器按类别查找模型。

例如,假设我想寻找一个“零样本目标检测(zero-shot object detection)”模型,该模型能够基于 提示(prompt) 在图像中检测任意对象。

什么是提示(Prompt)? 提示(Prompt)是指导模型执行任务的输入。在自然语言处理(NLP)中,提示通常是用户输入的文本。提示也可以是图像上的坐标(用于分割任务)、图像或视频。大多数情况下,提示指的是为模型输入添加的文本。 例如,在“零样本目标检测”中,如果我想在图像中检测香蕉,模型的输入将是图像和文本 “banana”

为了找到合适的模型,我使用左侧筛选器选择“零样本目标检测(zero-shot object detection)”类别,并查看推荐的模型列表。

Zero-shot

我选择了“IDEA-Research/grounding-dino-tiny”模型,进入其详情页面:

Model Card

模型卡片(Model Card) 提供了模型的详细说明(如工作原理、功能等)。 要获取直接在 Python 中使用该模型的代码(通过 transformersdiffusers 库,取决于模型类型),可点击“使用该模型(Use this model)”按钮。

以下是该模型对应的示例代码:

Code

在后续的笔记本中,我们将学习如何使用该代码完成具体任务。

数据集(Datasets)#

如果您希望训练自己的模型,则需要数据集。您可以选择自行创建,也可以使用 Hugging Face 上提供的众多开源数据集。

数据集(Datasets) 页面的布局与 模型(Models) 页面类似,同样支持筛选和搜索功能:

Datasets

选择某个数据集后,将进入其详情页面:

Dataset Page

与模型类似,数据集卡片(Dataset Card) 可查看数据集的内容和说明。要直接在 Python 中使用该数据集,可点击“在 Datasets 库中使用(Use in Datasets library)”获取对应的 Python 代码。

其他板块#

该网站的功能远不止于此,但本介绍并非全面概述。建议您自行探索网站,发现感兴趣的内容。 在后续的笔记本中,我们将概述 Hugging Face 支持的模型类型,并介绍如何在 Python 中使用它们。