每天,开发人员和组织都在使用 Hugging Face 平台上托管的模型,将想法变成概念验证(proof-of-concept)的 demo,再将 demo 变成生产级的应用。

  • Transformer 模型已成为广泛的机器学习(ML)应用的流行模型结构,包括自然语言处理、计算机视觉、语音等;
  • 扩散模型(Diffusers)也已成为 text-to-image、image-to-image 类生成模型的流行模型结构;
  • 其他模型结构在其他任务中也很受欢迎,而我们在 Hugging Face Hub 上提供了这些模型结构的所有信息。

在 Hugging Face,我们致力于在保障质量的前提下,尽可能简化 ML 的相关开发和运营。让开发者在一个 ML 项目的整个生命周期中,可以丝滑地测试和部署最新模型。并保持最极致的优化性价比,所以我们要感谢英特尔的朋友,他们向我们赞助了免费的基于 CPU 的推理解决方案,这不仅是我们的合作关系中的另一个重要步骤,而且是我们的用户社区的一个「福利」,大家现在可以零成本享受英特尔 Xeon Ice Lake 模型结构带来的速度提升。

现在,让我们介绍一下你可以选择的 “Hugging Face” 的推理相关解决方案:

推理组件(免费)

在 HuggingFace Hub,我最喜欢的功能之一是推理组件,轻轻点击一下位于模型页面上的推理组件,便可以自动上传样本数据并使用模型进行预测。

比如这里有一个句子相似性的例子,我们采用了 sentence-transformers/all-MiniLM-L6-v2 模型:

如果想快速了解一个模型的作用、它的输出,以及它在你数据集的几个样本上的表现,这是一个非常好的方法。当收到 request 时,模型会免费从我们的服务器上自动加载,结束后自动释放,这个过程中无需任何代码。

推理 API(免费版)

推理 API 是为推理组件提供动力的引擎。
通过一个简单的 HTTP 请求,你可以加载 hub 上的任何模型,并在几秒钟内用它预测你的数据,只需要你提供模型的 URL 和一个有效的 hub token。
下面的例子中,我们用一行代码加载 xlm-roberta-base 模型 并进行数据预测的案例:

curl https://api-inference.huggingface.co/models/xlm-roberta-base \
-X POST \
-d '{"inputs": "The answer to the universe is <mask>."}' \
-H "Authorization: Bearer HF_TOKEN"

推理 API 是建立预测服务的最简单方法,你可以在开发和测试期间实时地在应用程序中调用,不需要一个定制的 API ,也不需要一个模型服务器。你也可以立即从一个模型切换到另一个,并在你的应用程序中比较它们的性能。
但由于速率限制,我们不建议在实际生产中使用推理API,你应该考虑 推理 Endpoints。

使用 推理 Endpoints 进行生产

一旦你对你的 ML 模型的性能感到满意,就该把它部署到生产中了。但问题是:离开沙盒,安全、扩展、监控等等都变成了问题,所以我们建立了推理 Endpoints 来解决些挑战。

只需点击几下,推理 Endpoints 就可以让你将 Hub 上的任何模型部署在安全和可扩展的基础设施上,将它托管在你选择的地区的 AWS 或 Azure 云服务器上。 CPU 和 GPU 托管,内置自动扩展等其他设置,使我们拥有更好的性价比,定价低至0.06美元每小时。

推理 Endpoints 支持三个安全级别:

  • Pubulic:Endpoints 运行在公共的 Hugging Face 子网中,互联网上的任何人都可以访问,无需任何认证。
  • Protected:Endpoints 运行在公共的 Hugging Face 子网,互联网上任何拥有合适 Hugging Face Token 的人都可以访问它。
  • Privacy:Endpoints 运行在私有的 Hugging Face 子网,不能通过互联网访问,只能通过你的 AWS 或 Azure 账户中的一个私有连接来使用,可以满足最严格的合规要求。

要了解更多关于 推理 Endpoints 的信息,请阅读本教程和文档。

  • 教程:
    https://huggingface.co/blog/inference-endpoints
  • 文档: https://huggingface.co/docs/inference-endpoints/

推理 Spaces

最后,如果你期待部署模型用于生产,推理 Spaces 是另一个很好的选项,你可以将你的模型部署在一个简单的 UI 框架(例如Gradio)之上进行 推理 ,而且我们还支持硬件的升级,比如让你采用更先进的英特尔 CPU 和英伟达 GPU ,没有比这更好的方式来展示你的模型 demo 了!

要了解更多关于 Spaces 的信息,请浏览文档,或者在我们的论坛上浏览帖子或提出问题。

上手尝试

登录到 Hugging Face Hub,浏览我们的模型,一旦找到一个你喜欢的,你可以直接在页面上尝试推理 小组件。点击 “Deploy” 按钮,你可以拿到自动生成的代码,然后将模型部署在免费的推理 API 上进行评估,以及一个直接链接,你可以将模型部署到生产中的推理 Endpoints 或 Spaces。

快试一试,让我们知道你的想法,我们很期待在 Hugging Face 论坛上看到你的反馈。

谢谢你的阅读!

正文部分译者:

丁继峥 Johnson,微信号:ZJUer_0817 拾象 DAO 成员,浙江大学机器人工程专业,主要关注 AI 模型与交互的前沿进展,专用机器人的产业落地,通用机器人的无限可能。

博客原网址:https://huggingface.co/blog/inference-update

Hugging Face - 推理(Inference)解决方案的更多相关文章

  1. 使用TensorRT集成推理inference

    使用TensorRT集成推理inference 使用TensorRT集成进行推理测试. 使用ResNet50模型对每个GPU进行推理,并对其它模型进行性能比较,最后与其它服务器进行比较测试. ResN ...

  2. MLPerf Inference 0.7应用

    MLPerf Inference 0.7应用 三个趋势继续推动着人工智能推理市场的训练和推理:不断增长的数据集,日益复杂和多样化的网络,以及实时人工智能服务. MLPerf 推断 0 . 7 是行业标 ...

  3. What are definitions of ​Model, Inference and Algorithm and its associations ?

    1.拿初中的二元一次方程来说明: 1.1)说model就好比一元二次方程,它是个方程模型: 1.2)再说inference是求解该方程的某种方法--加减消元法(重在推理): 1.3)最后说algori ...

  4. AI应用开发实战 - 手写识别应用入门

    AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...

  5. 从锅炉工到AI专家(11)(END)

    语音识别 TensorFlow 1.x中提供了一个语音识别的例子speech_commands,用于识别常用的命令词汇,实现对设备的语音控制.speech_commands是一个很成熟的语音识别原型, ...

  6. 10分钟内基于gpu的目标检测

    10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...

  7. Jena语义Web开发101

    2015/05/28更新 代码在 https://github.com/zhoujiagen/semanticWebTutorialUsingJena 前言 该手册参考和扩展“Hebeler J, F ...

  8. 学习笔记TF060:图像语音结合,看图说话

    斯坦福大学人工智能实验室李飞飞教授,实现人工智能3要素:语法(syntax).语义(semantics).推理(inference).语言.视觉.通过语法(语言语法解析.视觉三维结构解析)和语义(语言 ...

  9. 【深度学习】深入理解Batch Normalization批标准化

    这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出. Batch Normaliz ...

  10. 【中文版 | 论文原文】BERT:语言理解的深度双向变换器预训练

    BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding 谷歌AI语言组论文<BERT:语言 ...

随机推荐

  1. SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能

      uni-app自带uni.request用于网络请求,因为我们需要自定义拦截器等功能,也是为了和我们后台管理保持统一,这里我们使用比较流行且功能更强大的axios来实现网络请求.   Axios ...

  2. 十四、资源控制器之RS

    RC (ReplicationController )主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数 .即如果有容器异常退出,会自动创建新的 Pod 来替代:而如果异常多出来的容器也 ...

  3. 京东云开发者|ElasticSearch降本增效常见的方法

    Elasticsearch在db_ranking 的排名又(双叒叕)上升了一位,如图1-1所示;由此可见es在存储领域已经蔚然成风且占有非常重要的地位. 随着Elasticsearch越来越受欢迎,企 ...

  4. 【第5篇】AI语音简介

    1.3  AI语音简介 AI语音既人工智能语音技术,以语音识别技术为开端,实现人机语言的通信,包括语音识别技术(ASR).自然语言处理技术(NLP)和语音合成技术(TTS).通俗点说就是通过语音这个媒 ...

  5. 论文笔记 - SIMILAR: Submodular Information Measures Based Active Learning In Realistic Scenarios

    motivation Active Learning 存在的重要问题:现实数据极度不平衡,有许多类别很少见(rare),又有很多类别是冗余的(redundancy),又有些数据是 OOD 的(out- ...

  6. 2022-11-16 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  7. 8、将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数。如果s1 = s2,输出零。如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是比较两字符串相应字符的ascii码的差值。

    /* 将两个字符串s1,s2进行比较,如果s1>s2,则输出一个正数.如果s1 = s2,输出零.如果s1 < s2, 输出一个负数,不用strcmp函数,输出的正数或者负数的绝对值应该是 ...

  8. jsp 页面返回、本页面刷新

    返回上一页面: window.history.go(-1);  //返回上一页window.history.back();  //返回上一页 返回上一页面并对上一页面刷新: history.go(-1 ...

  9. day26-过滤器Filter

    Filter过滤器 1.Filter过滤器说明 为什么需要过滤器? 先来看一个例子: 我们在登录网站页面时,需要先进行登录验证. 用户访问的正常的流程应该是: 用户先通过登录页面进行验证,然后才可以访 ...

  10. node学习01

    1.前言 Node.js 是一个开源和跨平台的 JavaScript 运行时环境 Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核). 这使得 N ...