介绍 Private Hub:利用机器学习进行构建的新方式
2023 年 6 月更新:Private Hub 现已更名为 Enterprise Hub。
Enterprise Hub 是一种托管解决方案,结合了云托管服务 (SaaS) 和企业安全的最佳特性。它允许客户在各种计算选项上部署特定服务,如推理端点,从云端到本地。它通过 SSO 提供高级用户管理和访问控制。
我们不再提供 Private Hub 的本地部署,因为这项实验已终止。
请联系我们的企业团队,为您的公司找到最佳解决方案。
机器学习正在改变公司构建技术的方式。从为新一代颠覆性产品提供支持,到在我们都使用和喜爱的知名应用程序中实现更智能的功能,机器学习是开发过程的核心。
但每一次技术转型都会带来新的挑战。
大约 90% 的机器学习模型从未投入生产。不熟悉的工具和非标准的工作流程会减缓机器学习开发。模型和数据集未在内部共享,导致工作重复;不同团队之间总是从零开始构建相似的工件。数据科学家难以向业务利益相关者展示他们的技术工作,而后者难以提供精确和及时的反馈。机器学习团队将时间浪费在 Docker/Kubernetes 和优化生产模型上。
考虑到这一点,我们推出了 Private Hub (PH),一种利用机器学习进行构建的新方式。从研究到生产,它提供了一套统一的工具,以安全合规的方式加速机器学习生命周期的每个步骤。PH 将各种机器学习工具整合到一个地方,使机器学习协作更简单、更有趣、更高效。
在本篇博客文章中,我们将深入探讨 Private Hub 是什么、它为什么有用,以及客户如何利用它加速其机器学习路线图。
请继续阅读,或随意跳转到您感兴趣的🌟部分
让我们开始吧!🚀
1. Hugging Face Hub 是什么?
在深入探讨 Private Hub 之前,我们首先了解一下 Hugging Face Hub,它是 PH 的核心部分。
Hugging Face Hub 提供超过 6 万个模型、6 千个数据集和 6 千个机器学习演示应用程序,所有这些都是开源且公开可用的在线平台,人们可以在其中轻松协作并共同构建机器学习。Hub 是一个中心位置,任何人都可以探索、实验、协作并利用机器学习构建技术。
在 Hugging Face Hub 上,您可以创建或发现以下机器学习资产
- 模型:托管 NLP、计算机视觉、语音、时间序列、生物学、强化学习、化学等领域的最新最先进模型。
- 数据集:包含各种领域、模态和语言的数据。
- Spaces:用于直接在浏览器中展示机器学习模型的交互式应用程序。
上传到 Hub 的每个模型、数据集或空间都是一个基于 Git 的仓库,它们是版本控制的地方,可以包含所有文件。您可以使用传统的 Git 命令来拉取、推送、克隆和/或操作文件。您可以查看模型、数据集和空间的提交历史,并查看谁在何时做了什么。
Hugging Face Hub 也是机器学习反馈和开发的中心场所。团队使用拉取请求和讨论来支持对模型、数据集和空间的同行评审,从而改进协作并加速他们的机器学习工作。
Hub 允许用户创建组织,即团队账户,以协作管理模型、数据集和空间。组织的仓库将显示在组织页面上,管理员可以设置角色来控制对这些仓库的访问。组织中的每个成员只要拥有正确的权限,都可以为模型、数据集和空间做出贡献。在 Hugging Face,我们相信拥有正确的协作工具将大大加速机器学习开发!🔥
现在我们已经介绍了基本概念,接下来深入探讨 Hugging Face Hub 上托管的模型、数据集和空间的具体特性。
模型
迁移学习改变了公司处理机器学习问题的方式。传统上,公司需要从头开始训练模型,这需要大量时间、数据和资源。现在,机器学习团队可以使用预训练模型并针对其特定用例进行微调,从而实现快速且经济高效。这极大地加速了获得准确且高性能模型的过程。
在 Hub 上,您可以找到超过 6 万个最先进的开源预训练模型,涵盖 NLP、计算机视觉、语音、时间序列、生物学、强化学习、化学等领域。您可以使用搜索栏或通过任务、库、许可证和其他标签进行筛选,以找到适合您特定用例的模型。
这些模型涵盖 180 种语言,并支持多达 25 个机器学习库(包括 Transformers、Keras、spaCy、Timm 等),因此在模型类型、语言和库方面具有很大的灵活性。
每个模型都有一个模型卡,这是一个简单的 Markdown 文件,包含模型的描述。这包括其预期用途、模型训练所用的数据、代码示例、有关潜在偏差和模型相关潜在风险的信息、度量指标、相关研究论文,等等。模型卡是了解模型的重要方式,同时也有助于识别正确的预训练模型作为机器学习项目的起点。
除了提高模型的发现性和可重用性,模型卡还有助于模型风险管理 (MRM) 过程。机器学习团队通常需要提供有关他们构建的机器学习模型的信息,以便合规团队可以识别、衡量和减轻模型风险。通过模型卡,组织可以设置一个包含所有必需信息的模板,并直接在模型中简化机器学习团队和合规团队之间的 MRM 沟通。
Hub 还提供一个推理小部件,可以直接在浏览器中轻松测试模型!这是了解特定模型是否合适并值得深入研究的好方法。
数据集
数据是构建机器学习模型的关键部分;没有正确的数据,您将无法获得准确的模型。🤗 Hub 托管了超过 6,000 个开源、即用型机器学习模型数据集,并配备了快速、易用且高效的数据操作工具。与模型类似,您可以通过搜索栏或按标签筛选来找到适合您用例的数据集。例如,通过筛选任务“情感分类”,您可以轻松找到 96 个用于情感分析的模型。
与模型类似,上传到 🤗 Hub 的数据集也具有数据集卡片,以帮助用户了解数据集的内容、数据集应如何使用、如何创建以及使用数据集的相关考虑事项。您可以使用数据集查看器轻松查看数据,并快速了解特定数据集是否对您的机器学习项目有用。
Spaces
几个月前,我们在 🤗 Hub 上引入了一个新功能,名为 Spaces。它是一种构建和托管机器学习应用程序的简单方法。Spaces 允许您轻松地向业务利益相关者展示您的机器学习模型,并获得推进机器学习项目所需的反馈。
如果您一直在使用 DALL-E mini 生成有趣的图片,那么您就已经使用了 Spaces。这个空间展示了 DALL-E mini 模型,一个根据文本提示生成图片的机器学习模型。
2. Private Hub 是什么?
Private Hub 允许公司在其私有和合规的环境中使用 Hugging Face 的完整生态系统,以加速其机器学习开发。它将机器学习生命周期各个步骤的机器学习工具集中到一个地方,使机器学习协作更简单、更高效,同时拥有公司安全构建机器学习所需的合规环境。
通过 Private Hub,数据科学家可以无缝地使用 Transformers、Datasets 和其他 开源库,在自己的服务器上私密安全地托管模型、数据集和空间,并通过利用 Hub 功能更快地完成机器学习任务。
- AutoTrain:您可以使用我们的 AutoML 无代码解决方案来训练最先进的模型,这些模型可以在您自己的服务器上自动微调、评估和部署。
- 评估:在 Private Hub 上使用任何指标评估任何数据集上的任何模型,而无需编写一行代码。
- Spaces:轻松托管一个机器学习演示应用程序,向业务利益相关者展示您的机器学习工作,尽早获得反馈并更快地进行构建。
- 推理 API:在 Private Hub 上创建的每个私有模型都通过简单的 API 调用部署到您自己的基础设施中进行推理。
- PR 和讨论:支持对模型、数据集和空间的同行评审,以改善团队间的协作。
从研究到生产,您的数据永不离开您的服务器。Private Hub 在您自己的合规服务器中运行。它提供企业安全功能,如安全扫描、审计追踪、单点登录和访问控制,以确保您的模型和数据安全。
我们提供灵活的选项,用于在您的私有、合规环境中部署您的 Private Hub,包括:
托管式 Private Hub (SaaS):运行在 Hugging Face 拥有的隔离虚拟私有服务器 (VPC) 中。您可以享受完整的 Hugging Face 体验,而无需管理任何基础设施。
云端 Private Hub:运行在客户拥有的 AWS、Azure 或 GCP 云账户中。此部署选项为您提供了对底层云基础设施的完全管理控制,并使您能够实现更强的安全性和合规性。
本地 Private Hub:Hugging Face Hub 在您自己的基础设施上的本地部署。适用于具有严格合规规则和/或不希望或不允许在公共云上运行工作负载的客户。
现在我们已经介绍了 Private Hub 的基本概念,接下来我们将探讨公司如何利用它来加速其机器学习开发。
3. 公司如何利用 Private Hub 加速其机器学习路线图?
🤗 Transformers 是有史以来增长最快的开源项目之一。我们现在提供 25+ 个开源库,超过 10,000 家公司正在使用 Hugging Face 构建基于机器学习的技术。
作为开源人工智能社区的核心,我们与数千个机器学习和数据科学团队进行了交流,这让我们对公司在构建机器学习时面临的最常见问题和挑战有了独特的视角。
通过这些对话,我们发现当前构建机器学习的工作流程存在问题。工作重复、反馈循环差、团队间协作障碍大、非标准流程和工具,以及难以优化生产模型,这些都是常见问题,并阻碍了机器学习开发。
我们构建 Private Hub 就是为了改变这一切。就像 Git 和 GitHub 永远改变了公司构建软件的方式一样,Private Hub 正在改变公司构建机器学习的方式。
在本节中,我们将通过一个演示示例,展示客户如何利用 PH 加速其机器学习生命周期。我们将逐步介绍构建一个机器学习应用程序以自动分析金融分析师🏦报告的过程。
首先,我们将搜索一个与我们用例相关的预训练模型,并针对情感分析在自定义数据集上对其进行微调。接下来,我们将构建一个机器学习 Web 应用程序,向业务利益相关者展示该模型的工作原理。最后,我们将使用推理 API 运行推理,其基础设施能够处理生产级别负载。此机器学习演示应用程序的所有工件都可以在 Hub 上的此组织中找到。
更快地训练出准确的模型
利用 Hub 中的预训练模型
现在,通过迁移学习,您无需从头开始训练模型,而是可以通过为特定用例微调 Hub 上可用的预训练模型,从而以 10 倍的速度⚡️构建更准确的模型。
在我们的演示示例中,为金融分析师构建此机器学习应用程序的要求之一是进行情感分析。业务利益相关者希望在财务文档和分析师报告可用时立即自动了解公司的业绩。
因此,作为创建此机器学习应用程序的第一步,我们深入研究 🤗 Hub 并探索有哪些可用的预训练模型可以进行情感分析的微调。搜索栏和标签将使我们能够非常快速地筛选和发现相关模型。很快,我们找到了 FinBERT,一个基于公司报告、财报电话会议记录和金融分析师报告进行预训练的 BERT 模型。
我们将模型克隆到我们的 Private Hub 中,以便其他队友可以使用。我们还在模型卡中添加了所需信息,以简化与合规团队的模型风险管理流程。
使用自定义数据集微调预训练模型
既然我们有了一个用于金融数据的优秀预训练模型,下一步就是使用我们自己的数据对其进行微调,以进行情感分析!
因此,我们首先将内部团队构建的用于情感分析的自定义数据集上传到我们的 Private Hub。该数据集包含数千条来自英文金融新闻和专有金融数据的手动按情感分类的句子。这些数据包含敏感信息,因此我们的合规团队只允许我们将这些数据上传到我们自己的服务器上。幸运的是,这并不是问题,因为我们在自己的 AWS 实例上运行 Private Hub。
然后,我们使用 AutoTrain 快速地将 FinBert 模型与我们的自定义情感分析数据集进行微调。我们可以直接从 Private Hub 的数据集页面进行此操作。
接下来,我们将模型选择为“手动”,并选择我们的克隆 Finbert 模型作为要用我们的数据集进行微调的模型。
最后,我们选择要使用我们的数据训练的候选模型数量。我们选择 25 个模型,瞧!几分钟后,AutoTrain 自动微调了 25 个 finbert 模型,并提供了所有不同模型的性能指标 🔥🔥🔥。
除了性能指标,我们还可以使用推理小部件直接从浏览器轻松测试微调后的模型,以了解它们的质量。
轻松向相关利益方演示模型
现在我们已经训练了用于分析财务文档的自定义模型,下一步是使用 Spaces 构建一个机器学习演示,以验证我们的 MVP 与业务利益相关者的效果。这个演示应用程序将使用我们的自定义情感分析模型,以及我们为检测财务报告中的前瞻性陈述而微调的第二个 FinBERT 模型。这个交互式演示应用程序将使我们能够更快地获得反馈,更快地迭代,并改进模型,以便我们可以在生产中使用它们。✅
不到 20 分钟,我们就构建了一个交互式演示应用程序,任何业务利益相关者都可以直接从他们的浏览器轻松测试。
如果您查看 app.py 文件,您会发现它非常简单。
仅用 51 行代码就让这个机器学习演示应用程序运行起来了!🤯
扩展推理能力,同时避免 MLOps
到目前为止,我们的业务利益相关者提供了很好的反馈,使我们能够改进这些模型。合规团队通过模型卡提供的信息评估了潜在风险,并批准了我们的项目投入生产。现在,我们准备将这些模型投入使用,并开始大规模分析财务报告!🎉
我们不需要把时间浪费在 Docker/Kubernetes 上,也不需要为运行这些模型设置服务器,更不需要优化生产模型,我们只需要利用推理 API。我们无需担心部署或可伸缩性问题,我们可以通过简单的 API 调用轻松集成我们的自定义模型。
上传到 Hub 和/或使用 AutoTrain 创建的模型会立即部署到生产环境,准备好大规模实时进行推理。而运行推理只需 12 行代码!
要获取用于通过我们的情感分析模型运行推理的代码片段,我们点击“部署”和“加速推理”。
这将显示以下代码,用于向推理 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,我们相信有更好的方式来构建机器学习。这就是我们创建 Private Hub 的原因。我们认为,为机器学习开发的每个步骤提供一套统一的工具以及正确的协作工具,将带来更好的机器学习工作,将更多机器学习解决方案投入生产,并帮助机器学习团队激发创新。
有兴趣了解更多吗?请求演示,了解如何利用 Private Hub 加速组织内的机器学习开发。