介绍私有中心:一种新的用于构建机器学习的方式

私有中心是构建机器学习的一种新方法

机器学习正在改变公司构建技术的方式。从为新一代颠覆性产品提供动力,到在我们所使用和喜爱的知名应用程序中实现更智能的功能,机器学习是开发过程的核心。

但是,每一次技术转变都带来新的挑战。

大约有90%的机器学习模型从未投入生产。不熟悉的工具和非标准的工作流程会减慢机器学习的开发速度。由于模型和数据集在内部不共享,努力会重复进行,团队之间经常从头开始构建类似的成果。数据科学家很难向业务利益相关者展示他们的技术工作,后者很难分享精确和及时的反馈。机器学习团队会在Docker/Kubernetes和优化生产模型上浪费时间。

基于这一点,我们推出了Private Hub(PH),这是一种新的构建机器学习的方式。从研究到生产,它提供了一套统一的工具,以安全合规的方式加速机器学习生命周期的每个步骤。PH将各种机器学习工具集合到一个地方,使机器学习的协作变得更简单、更有趣和更高效。

在这篇博文中,我们将深入探讨什么是Private Hub,为什么它有用,以及客户如何通过它加速他们的机器学习路线图。

阅读下文,或随意跳到您感兴趣的部分:

  1. 什么是Hugging Face Hub?
  2. 什么是Private Hub?
  3. 公司如何利用Private Hub加速他们的机器学习路线图?

让我们开始吧!🚀

1. 什么是Hugging Face Hub?

在深入了解Private Hub之前,让我们先来看看Hugging Face Hub,它是PH的核心部分。

Hugging Face Hub提供了超过60,000个模型、6,000个数据集和6,000个机器学习演示应用程序,全部都是开源的,公开可用,是一个在线平台,人们可以在这里轻松协作和共同构建机器学习。Hub作为一个中心,任何人都可以在其中探索、实验、协作和利用机器学习构建技术。

在Hugging Face Hub上,您可以创建或发现以下机器学习资源:

  • 模型:托管最新的自然语言处理、计算机视觉、语音、时间序列、生物学、强化学习、化学等领域的最先进模型。
  • 数据集:提供各种不同领域、模态和语言的数据。
  • 空间:交互式应用程序,可以直接在浏览器中展示机器学习模型。

Hub上上传的每个模型、数据集或空间都是基于Git的存储库,这些存储库是版本控制的位置,可以包含所有文件。您可以使用传统的git命令来拉取、推送、克隆和/或操作文件。您可以查看模型、数据集和空间的提交历史记录,了解是谁在何时做了什么。

模型的提交历史记录

Hugging Face Hub还是机器学习中反馈和开发的中心。团队使用拉取请求和讨论来支持对模型、数据集和空间的同行评审,改善协作,加速他们的机器学习工作。

模型的拉取请求和讨论

Hub允许用户创建组织,即团队账户,用于协作管理模型、数据集和空间。组织的存储库将显示在组织的页面上,管理员可以设置角色以控制对这些存储库的访问权限。组织的每个成员都可以在具备正确权限的情况下对模型、数据集和空间做出贡献。在Hugging Face,我们相信拥有正确的协作工具可以极大地加速机器学习的开发!🔥

BigScience在Hub中的组织

现在我们已经了解了基础知识,让我们深入了解托管在Hugging Face Hub上的模型、数据集和空间的具体特点。

模型

迁移学习改变了公司解决机器学习问题的方式。传统上,公司需要从头开始训练模型,这需要大量的时间、数据和资源。现在,机器学习团队可以使用预训练模型,并以快速和具有成本效益的方式对其进行微调,以适应自己的用例。这大大加快了获得准确和高性能模型的过程。

在Hub上,您可以找到60,000多个最先进的开源预训练模型,涵盖自然语言处理、计算机视觉、语音、时间序列、生物学、强化学习、化学等领域。您可以使用搜索栏或按任务、库、许可证和其他标签进行筛选,找到适合您特定用例的模型:

在Hub上有60,000多个可用模型

这些模型涵盖180种语言,并支持多达25种机器学习库(包括Transformers、Keras、spaCy、Timm等),因此在模型类型、语言和库方面具有很大的灵活性。

每个模型都有一个模型卡片,这是一个简单的markdown文件,描述了模型本身。其中包括模型的用途、模型训练所使用的数据、代码示例、与模型相关的潜在偏见和潜在风险的信息、度量指标、相关研究论文等等。模型卡片是了解模型内容的好方法,也有助于确定合适的预训练模型作为您的机器学习项目的起点:

模型卡片

除了改善模型的可发现性和可重用性,模型卡片还可以简化模型风险管理(MRM)过程。机器学习团队通常需要提供有关他们构建的机器学习模型的信息,以便合规团队可以识别、衡量和减轻模型风险。通过模型卡片,组织可以设置一个包含所有必要信息的模板,并在模型中直接简化ML和合规团队之间的MRM对话。

Hub还提供了一个推断小部件,可以轻松从浏览器中测试模型!这是一种非常好的方式,可以让您对某个特定模型是否适合以及是否值得深入了解有一个感觉:

推断小部件

数据集

数据是构建机器学习模型的关键部分;没有正确的数据,您将无法获得准确的模型。🤗 Hub上托管了超过6,000个开源、即用型的ML模型数据集,配备了快速、易于使用和高效的数据操作工具。与模型类似,您可以通过使用搜索栏或按标签进行过滤,找到适合您用例的正确数据集。例如,您可以通过按照任务“情感分类”进行过滤,轻松找到96个情感分析模型:

可用于情感分类的数据集

与模型类似,上传到🤗 Hub上的数据集也有数据集卡片,帮助用户了解数据集的内容、数据集的使用方式、数据集的创建方式以及使用数据集时需要考虑的相关事项。您可以使用数据集查看器轻松查看数据,并快速了解某个特定数据集是否对您的机器学习项目有用:

Super Glue数据集预览

空间

几个月前,我们在🤗 Hub上引入了一个名为Spaces的新功能。这是一种简单的构建和托管机器学习应用的方式。Spaces允许您轻松向业务利益相关者展示您的ML模型,并获得您在ML项目中所需的反馈。

如果您一直在使用DALL-E mini生成有趣的图像,那么您已经使用过Spaces了。这个空间展示了DALL-E mini模型,这是一个基于文本提示生成图像的机器学习模型:

DALL-E mini的空间

2. 什么是私有Hub?

私有Hub允许公司在自己的私有和合规环境中使用Hugging Face的完整生态系统,加速他们的机器学习开发。它将用于ML生命周期的各个步骤的ML工具集中在一个地方,使ML协作更简单、更高效,并提供公司构建ML所需的合规环境:

私有Hub

通过私有Hub,数据科学家可以无缝地在自己的服务器上与Transformers、数据集和其他开源库一起工作,私密而安全地托管模型、数据集和空间,并通过利用Hub的功能更快地完成机器学习任务:

  • AutoTrain:您可以使用我们的AutoML无代码解决方案,在自己的服务器上自动训练、微调、评估和部署最先进的模型。
  • Evaluate:在私有Hub上无需编写任何代码,评估任何模型在任何数据集上的性能指标。
  • Spaces:轻松托管一个ML演示应用程序,向业务利益相关者展示您的ML工作,早期获得反馈并更快地构建项目。
  • Inference API:通过简单的API调用,在您自己的基础设施中部署私有Hub上创建的每个私有模型。
  • PR和讨论:支持模型、数据集和空间的同行评审,以改善团队之间的协作。

从研究到生产,您的数据永远不会离开您的服务器。私有Hub在您自己的合规服务器中运行。它提供企业级安全功能,如安全扫描、审计轨迹、SSO和访问控制,以保护您的模型和数据的安全性。

我们为您在私有、合规环境中部署私有 Hub 提供灵活的选项,包括:

  • 托管私有 Hub (SaaS):在 Hugging Face 拥有的隔离虚拟私有服务器 (VPC) 上运行。您可以在自己的私有 Hub 上享受完整的 Hugging Face 体验,无需管理任何基础设施。

  • 云上私有 Hub:在 AWS、Azure 或 GCP 上的云账户上运行,由客户拥有。此部署选项使您完全控制底层云基础设施,并能实现更强的安全性和合规性。

  • 本地私有 Hub:在您自己的基础设施上部署 Hugging Face Hub。适用于有严格合规规定和/或不希望或不允许在公共云上运行的工作负载的客户。

现在我们已经介绍了私有 Hub 的基础知识,让我们来看看公司如何利用它加速他们的机器学习开发。

3. 公司如何利用私有 Hub 加速他们的机器学习路线图?

🤗 Transformers 是有史以来增长最快的开源项目之一。我们现在提供了 25+ 个开源库,超过 10,000 家公司正在使用 Hugging Face 构建具备机器学习能力的技术。

作为开源 AI 社区的核心,我们与机器学习和数据科学团队进行了数千次的交流,使我们对公司在构建机器学习时面临的最常见问题和挑战有了独特的视角。

通过这些交流,我们发现当前构建机器学习的工作流程存在问题。重复努力、反馈环路不畅、团队间协作摩擦大、非标准化的流程和工具、以及难以将模型优化用于生产环境都是常见问题,这些都拖慢了机器学习的开发速度。

我们构建了私有 Hub 来改变这一切。就像 Git 和 GitHub 永远改变了公司构建软件的方式一样,私有 Hub 改变了公司构建机器学习的方式:

使用私有 Hub 之前和之后

在本节中,我们将通过一个演示示例介绍客户如何利用私有 Hub 加速他们的机器学习生命周期。我们将逐步介绍构建一个自动分析金融分析师报告的机器学习应用程序的过程。

首先,我们将搜索与我们的用例相关的预训练模型,并在自定义数据集上进行微调以进行情感分析。接下来,我们将构建一个机器学习 Web 应用程序,展示这个模型如何工作给业务利益相关者。最后,我们将使用推理 API 在能够处理生产级负载的基础设施上运行推理。此机器学习演示应用程序的所有文件都可以在该 Hub 上的组织中找到。

更快地训练准确的模型

利用 Hub 上的预训练模型

与其从头开始训练模型,现在可以利用 Hub 上可用的预训练模型进行迁移学习,以更快地构建准确的模型⚡️。

对于我们的演示示例,构建此针对金融分析师的机器学习应用程序的要求之一是进行情感分析。业务利益相关者希望在金融文件和分析师报告可用时自动了解公司的表现。

因此,在创建此机器学习应用程序的第一步中,我们进入 🤗 Hub,并探索可用的预训练模型,以便为情感分析进行微调。搜索栏和标签将帮助我们快速筛选和发现相关模型。很快,我们发现了 FinBERT,这是一个在企业报告、盈利电话会议记录和金融分析师报告上进行预训练的 BERT 模型:

Finbert 模型

我们将该模型克隆到我们自己的私有 Hub,以便其他团队成员可以使用。我们还向模型卡片添加了必要的信息,以便与合规团队协调模型风险管理流程。

使用自定义数据集进行预训练模型的微调

现在,我们有了一个适用于金融数据的优秀预训练模型,下一步是使用我们自己的数据进行情感分析的微调!

因此,我们首先将一个由团队内部构建的用于情感分析的自定义数据集上传到我们的私有 Hub。这个数据集包含了数千个英文金融新闻句子和我们团队根据其情感进行手动分类的专有金融数据。由于这些数据包含敏感信息,我们的合规团队只允许我们将这些数据上传到我们自己的服务器上。幸运的是,由于我们在自己的 AWS 实例上运行私有 Hub,这并不是问题。

然后,我们使用AutoTrain快速微调FinBert模型,使用我们自定义的情感分析数据集。我们可以直接从我们的私人Hub上的数据集页面上进行操作:

使用AutoTrain微调预训练模型

接下来,我们选择“手动”作为模型选择,并选择我们克隆的Finbert模型作为要使用我们的数据集进行微调的模型:

使用AutoTrain创建新项目

最后,我们选择要使用我们的数据训练的候选模型数量。我们选择了25个模型,然后等待片刻!几分钟后,AutoTrain就会自动使用我们自己的情感分析数据对25个finbert模型进行微调,并显示所有不同模型的性能指标🔥🔥🔥

使用AutoTrain微调的25个模型

除了性能指标,我们还可以使用推理小部件轻松测试微调的模型,以便了解它们的好坏:

使用推理小部件测试微调的模型

轻松向相关利益相关者演示模型

现在,我们已经训练好了用于分析金融文件的自定义模型,作为下一步,我们希望使用Spaces构建一个机器学习演示来验证我们的MVP与业务利益相关者。这个演示应用程序将使用我们的自定义情感分析模型,以及我们为检测财务报告中的前瞻性陈述进行微调的第二个FinBERT模型。这个互动演示应用程序将使我们能够更早地获得反馈,更快地迭代,并改进模型,以便我们可以将其用于生产中✅

不到20分钟的时间,我们就能构建一个互动演示应用程序,任何业务利益相关者都可以轻松地从他们的浏览器中进行测试:

我们金融演示应用程序的空间

如果你看一下app.py文件,你会发现它非常简单:

我们机器学习演示应用程序的代码

只需要51行代码,我们就能让这个机器学习演示应用程序运行起来!🤯

在避免MLOps的情况下扩展推理

到目前为止,我们的业务利益相关者提供了很好的反馈,使我们能够改进这些模型。合规团队通过模型卡和提供的信息评估了潜在风险,并批准了我们的项目进行生产。现在,我们准备投入这些模型的使用,并开始大规模分析财务报告!🎉

我们不需要花时间在Docker/Kubernetes上,为运行这些模型设置服务器,或者为生产优化模型。我们所需要做的就是利用推理API。我们不需要担心部署或可扩展性问题,我们可以通过简单的API调用轻松集成我们的自定义模型。

上传到Hub和/或使用AutoTrain创建的模型将立即部署到生产环境中,可以立即以规模和实时方式进行推理。而运行推理只需要12行代码!

要获取使用我们的情感分析模型进行推理的代码段,我们点击“部署”和“加速推理”:

利用推理API对我们的自定义模型进行推理

这将显示给我们以下代码,用于向推理API发出HTTP请求并使用我们的自定义模型开始分析数据:

import requests

API_URL = "https://api-inference.huggingface.co/models/FinanceInc/auditor_sentiment_finetuned"
headers = {"Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()
    
output = query({
    "inputs": "Operating profit jumped to EUR 47 million from EUR 6.6 million",
})

只需要12行代码,我们就可以在一个能够处理生产级负载并实时扩展的基础设施中进行推理运行🚀。很酷,对吧?

最后的话

机器学习正在成为构建技术的默认方式,这主要归功于开放源代码和开放科学。

但是构建机器学习仍然很困难。许多机器学习项目是匆忙进行的,从未投入生产。非标准的工作流程使机器学习开发变得缓慢。机器学习团队因为重复工作、团队之间的低合作和碎片化的机器学习工具生态系统而感到沮丧。

在Hugging Face,我们相信有一种更好的构建机器学习的方法。这就是为什么我们创建了私人Hub。我们认为为机器学习开发的每个步骤提供统一的工具,并提供合适的协作工具,将会促进更好的机器学习工作,将更多的机器学习解决方案投入生产,并帮助机器学习团队激发创新。

有兴趣了解更多吗?请请求一次演示,看看如何利用私有 Hub 在您的组织中加速机器学习的开发。