用通俗易懂的方式讲解大模型:HugggingFace 推理 API、推理端点和推理空间使用详解

接触 AI 的同学肯定对HuggingFace[1]有所耳闻,它凭借一个开源的 Transformers 库迅速在机器学习社区大火,为研究者和开发者提供了大量的预训练模型,成为机器学习界的 GitHub。

在 HuggingFace 上我们不仅可以托管模型,还可以方便地使用各种模型的 API 进行测试和验证,部署属于自己的模型 API 服务,创建自己的模型空间,分享自己的模型。本文将介绍 HuggingFace 的推理 API、推理端点和推理空间的使用方法。

HuggingFace 推理 API

在 HuggingFace 托管的模型中,有些模型托管之后会提供推理 API,如果我们想快速验证模型是否可以满足我们的需求,可以使用这些 API 进行测试,下面以这个模型为例Salesforce/blip-image-captioning-base进行介绍,该模型可以通过图片生成英文描述。

页面小组件

推理 API 有两种使用方式,一种是在模型页面的右侧找到推理 API 的小组件页面,初始界面如下图所示:

图片

我们可以在这个页面中上传图片,然后就可以看到模型进行推理运行,等一会后推理结果就出来了,如下图所示:

图片

推理结果为:“a dog wearing a santa hat and a red scarf”(一只狗戴着圣诞老人的帽子和红色的围巾)

页面小组件的方式是 HuggingFace 自动帮助模型创建的,具体的信息可以参考这里[2]。

代码调用

另外一种方式是通过代码对推理 API 进行调用,在右侧的Deploy菜单中选择Inference API,如下图所示:

图片

打开菜单后可以看到几种代码调用方式,分别有 Python, JavaScript 和 Curl:

图片

这里我们选择 Curl 方式来进行调用,我们可以直接复制界面上的 Curl 命令,注意其中包含了我们的 API token,所以不要随意分享出去,然后在终端上执行命令,就可以看到预测结果了:

$ curl https://api-inference.huggingface.co/models/Salesforce/blip-image-captioning-base \-X POST \--data-binary '@dogs.jpg' \-H "Authorization: Bearer hf_xxxxxxxxxxxxxxxxxxxxxx"# 输出结果
[{"generated_text":"a dog wearing a santa hat and a red scarf"}]%

HuggingFace 推理端点(Endpoint)

推理 API 虽然方便,但推理 API 一般用于测试和验证,由于速率限制,官方不推荐在生产环境中使用,而且也不是所有模型都有提供推理 API。如果想要在生产环境部署一个专属的推理 API 服务,我们可以使用 HuggingFace 的推理端点(Endpoint)。

推理端点的部署也比较简单,首先在Deploy菜单中选择Inference Endpoints,如下图所示:

图片

打开菜单后可以看到新建推理端点的界面,如下图所示:

图片

  1. 首先是服务器的选择,先选择云服务厂商,目前只有 AWS 和 Azure 两种,再选择机器区域节点。

  2. 然后是服务器的配置,HuggingFace 默认会给出模型的最低推理配置,如果我们想要更高的配置,可以点击2中的下拉框进行选择。

  3. 接着是推理端点的安全等级,有 3 种选择,分别是ProtectedPublicPrivaate

  • Pubulic:推理端点运行在公共的 HuggingFace 子网中,互联网上的任何人都可以访问,无需任何认证。

  • Protected:推理端点运行在公共的 HuggingFace 子网,互联网上任何拥有合适 HuggingFace Token 的人都可以访问它。

  • Privacy:推理端点运行在私有的 HuggingFace 子网,不能通过互联网访问,只能通过你的 AWS 或 Azure 账户中的一个私有连接来使用,可以满足最严格的合规要求。

  1. 最后显示的是服务器的价格,按小时算,根据配置的不同,价格也会有所不同。HuggingFace API 是免费的,但 HuggingFace 的推理端点是要收费的,毕竟是自己专属的 API 服务。因为推理端点部署是收费的,所以在部署之前需要在 HuggginFace 中添加付款方法,一般使用国内的 Visa 或 Master 卡就可以了。

信息确认无误后点击Create Endpoint按钮创建推理端点,创建成功后可以进入推理端点的详情页面看到如下信息:

图片

其中Endpoint URL就是部署好的推理端点地址,我们可以跟调用推理 API 一样的方式来使用它,示例代码如下:

$ curl https://your-endpoint-url \-X POST \--data-binary '@dogs.jpg' \-H "Authorization: Bearer hf_xxxxxxxxxxxxxxxxxxxxxx"

HuggingFace 模型空间(Space)

HuggingFace 推理端点是部署 API 服务,但是如果我们想要分享自己的模型,让别人可以直接在浏览器中使用模型的功能,这时候就需要使用 HuggingFace 的模型空间(Space)了。

要部署一个模型空间,首先在模型的Deploy菜单中选择Spaces,如下图所示:

图片

选择菜单后可以看到空间创建的引导界面,如下图所示:

图片

界面中显示了启动模型的 Python 脚本,然后我们点击Create new Space按钮进入空间的创建页面,如下图所示:

图片

在模型创建页面中,我们需要设置以下信息:

  • 首先要指定空间的名称,一般以模型的名称命名。

  • 然后选择空间的 SDK,目前有StreamlitGradioDockerStatic 四种。

  • Streamlit:Streamlit 是一个可以帮助我们快速创建数据应用的 Python 库,可以在浏览器中直接使用模型,它相比Gradio可以支持更加丰富的页面组件,界面也更加美观。

  • Gradio:Gradio 也是一个编写 GUI 界面的 Python 库,相对Streamlit来说,它的 GUI 功能虽然比较少,但它的优势在于简单易用,一般演示的 Demo 用它就足够了。

  • Docker:推理空间也可以使用 Docker 容器进行部署,它内部支持了 10 种模版。

  • Static:静态页面,我理解是包括 Html、Js、Css 等前端资源来作为页面展示。

  • 然后选择空间硬件,HuggingFace 为每个空间提供了一个免费的配置:

    2 核 CPU 16G 内存,用这个配置部署推理空间是免费的,如果你想要更高的配置,也可以选择付费的配置。

图片

  • 最后是安全等级,有PublicPrivate两种,Public 是公开的,任何人都可以访问,但只有你的组织成员可以修改,Private 是私有的,只有你的组织成员可以访问。

设置完后点击Create Space按钮就开始创建推理空间了,创建完成后会自动跳转到空间的页面,如下图所示:

图片

如果推理空间的安全等级设置为 Public,你就可以将空间的 URL 分享给其他人使用了。想查看 HuggingFace 推理空间更多的信息,可以参考这里[3]。

总结

本文介绍了 HuggingFace 的推理 API、推理端点和推理空间的使用方法,推理 API 是免费的,使用 HuggingFace 自建的 API 服务,推理端点是部署自己专属的 API 服务,但需要收取一定的费用。推理空间是部署模型的 Web 页面,可以直接在浏览器中使用模型的功能,可以用于演示和分享模型,有一定的免费额度。

关注我,一起学习各种人工智能和 AIGC 新技术,欢迎交流,如果你有什么想问想说的,欢迎在评论区留言。

参考:

[1]HuggingFace: https://huggingface.co/

[2]这里: https://huggingface.co/docs/hub/models-widgets

[3]这里: https://huggingface.co/docs/hub/spaces

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/823320.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux文件系统结构及相关命令2 什么是Shell? help cd cd的用法 ls 的用法

Shell 是一种用于与操作系统进行交互的命令行解释器。它是用户与操作系统内核之间的接口,接受用户的命令并将其传递给操作系统进行执行。 在大多数的 Unix-like 操作系统(如 Linux 和 macOS)以及类 Unix 系统中,Shell 是默认的命…

关键字:abstract关键字

在 Java 中,abstract是一个关键字,用于修饰类和方法。当一个类被声明为抽象类时,它不能被实例化,只能被其他类继承。同时,抽象类可以包含抽象方法,抽象方法没有方法体,只包含方法的签名&#xf…

HackTheBox - Medium - Linux - Interface

Interface Interface 是一种中等难度的 Linux 机器,具有“DomPDF”API 端点,该端点通过将“CSS”注入处理后的数据而容易受到远程命令执行的影响。“DomPDF”可以被诱骗在其字体缓存中存储带有“PHP”文件扩展名的恶意字体,然后可以通过从其…

刷到 LeetCode 这个评论,被笑到了!

大家好,我是闭着眼睛学算法。 今天早上我在 LeetCode 第 141 号问题 环形链表 的评论区中发现了一个称得上是天秀的解法,简直太骚气了,忍不住分享给大家。 首先给没有见过这道题目的小伙伴补充一下前置知识, 环形链表这道题目讲的…

蓝鹏测控提前祝您2024元旦快乐!心想事成!

元旦快乐 新的一天开启新的一年,新的希望点燃新的激情,新的努力成就新的成功,新的时光记录新的幸福! 2024元旦来了,保定市蓝鹏测控科技有限公司全体员工提前祝您在新的一年里生意兴隆!阖家安康&#xff0…

事实验证文章分类 Papers Category For Fact Checking

事实验证文章分类 Papers Category For Fact Checking By 2023.11 个人根据自己的观点,花了很多时间整理的一些关于事实验证领域证据召回,验证推理过程的文献综合整理分类(不是很严谨)。 引用请注明出处 欢迎从事事实验证Fact…

07-项目打包 React Hooks

项目打包 项目打包是为了把整个项目都打包成最纯粹的js,让浏览器可以直接执行 打包命令已经在package.json里面定义好了 运行命令:npm run build,执行时间取决于第三方插件的数量以及电脑配置 打包完之后再build文件夹下,这个…

Intel FPGA 技术开放日

概要 时间:2023.11.14 全天 ( 9:00 - 16: 20) 地点:北京望京. 凯悦酒店 主题内容:分享交流了Intel FPGA 产品技术优势和落地实践方案。 会议的议程 开场致词: FPGA业务,是几年前intel收购而…

TG7050CKN,TG7050SKN ,TG7050CMN,TG7050SMN

爱普生推出的温补晶振型号:TG7050CKN,TG7050SKN ,TG7050CMN,TG7050SMN频率范围为 10mhz ~ 54mhz 适用于广泛的频率需求。这几款的特点就是耐高温,温度可达105℃高温,而且都是高稳定性温补晶振,&…

【SD】inpaint 模型 - 换脸术 ☑

文生图-局部重绘 涂抹脸部 关键词添加lora&#xff1a; <lora:Naruto_zilaiye:1.5>, 生成图&#xff1a;

工业物联网是智能制造的实现途径

什么是工业物联网技术&#xff1f; 工业物联网 (IIoT) 依靠多种技术来连接工业设备和系统&#xff0c;以便对数据进行收集和分析。通过将计算添加到工业端点&#xff0c;系统可以在边缘处理数据&#xff0c;从而实现近乎实时的分析&#xff0c;并运行类似机器视觉的工作负载。…

C++的面向对象学习(7):面向对象编程的三大特性之:继承

文章目录 前言一、继承&#xff1a;继承的类除了拥有上一级类的共性&#xff0c;也拥有自己的特性。二、继承方式&#xff1a;公有继承&#xff08;public inheritance&#xff09;、私有继承&#xff08;private inheritance&#xff09;和保护继承&#xff08;protected inhe…

二叉树顺序结构与堆的概念及性质(c语言实现堆)

上次介绍了树&#xff0c;二叉树的基本概念结构及性质&#xff1a;二叉树数据结构&#xff1a;深入了解二叉树的概念、特性与结构 今天带来的是&#xff1a;二叉树顺序结构与堆的概念及性质&#xff0c;还会用c语言来实现堆 文章目录 1. 二叉树的顺序结构2.堆的概念和结构3.堆…

独立站与跨境电商:电商生态的双翼

随着电子商务的快速发展&#xff0c;独立站和跨境电商已经成为电商生态中不可或缺的两个重要组成部分。它们各自具有独特的优势和特点&#xff0c;同时也存在着相互依存和相互促进的关系。本文将探讨独立站与跨境电商的优势、相互影响以及未来发展趋势&#xff0c;并通过代码示…

LTSpice仿真场效应管(FET)的方法

刚开始用LTSpice学习电子电路&#xff0c;发现添加 JFET 和 MOSFET 的方法与添加普通原件不一样&#xff0c;需要分两步完成。 第一步&#xff1a;选择元件 njf、pjf、nmos、pmos&#xff0c;分别对应 N Channel 的 JFET 和 P Channel 的 JFET&#xff1b;N Channel 的 MOSFET…

云安全是什么?有什么作用

随着云计算的普及和深入应用&#xff0c;云安全已成为企业和组织面临的重要挑战。云安全旨在保护云计算环境中的数据、应用程序和基础设施免受各种威胁和攻击&#xff0c;确保云计算环境的可用性、机密性和完整性。 云安全包括以下几个关键领域&#xff1a; 一、数据保护 数据…

vue 导出 HTML 结构为 Word 文档(.docx)-支持表格、css样式、图片

在 Web 开发中&#xff0c;有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档&#xff0c;以便更方便地分享和打印。本文将介绍如何使用 html-docx-js 和 file-saver 这两个 JavaScript 库&#xff0c;实现将 HTML 结构导出为 Word 文档的功能。 工具简介 1. html-d…

Redisson依赖冲突记录

前言&#xff1a;项目使用的springboot项目为2.7.X 依赖冲突一&#xff1a;springboot 与 redisson版本冲突 项目中依赖了 Lock4j&#xff0c;此为苞米豆开源的分布式锁组件 <dependency><groupId>com.baomidou</groupId><artifactId>lock4j-redisso…

matplotlib范围曲线简例

想在画&#xff08;平均&#xff09;loss 曲线时顺便表示方差&#xff0c;即每一个 epoch 的平均 loss 用 plot 画曲线&#xff0c;而在曲线周围用一个浅色区域表示方差。效果&#xff1a; 参考 [1-3]&#xff0c;用到 matplotlib.pyplot.fill_between 函数。为显示对浅色区及…

Git基础学习_p1

文章目录 一、前言二、Git手册学习2.1 Git介绍&前置知识2.2 Git教程2.2.1 导入新项目2.2.2 做更改2.2.3 Git追踪内容而非文件2.2.4 查看项目历史2.2.5 管理分支&#x1f53a;2.2.6 用Git来协同工作2.2.7 查看历史 三、结尾 一、前言 Git相信大部分从事软件工作的人都听说过…