Hugging Face Spaces 介绍与使用指南

Hugging Face Spaces 是一个 免费且开箱即用AI 应用托管平台,可以直接部署 机器学习模型、数据分析工具、Web 应用,支持 Gradio、Streamlit、Docker、FastAPI 等框架。

1. Hugging Face Spaces 的优势

零成本部署:免费托管 ML 应用,无需配置服务器
支持多个框架:Gradio、Streamlit、Docker、FastAPI、Flask 等
易于分享:可以生成一个在线 URL,方便演示和协作
与 Hugging Face 生态兼容:可直接加载 transformers 模型和 datasets 数据集
GPU/CPU 选择:免费提供 CPU,付费可用 T4/A10G GPU 加速

2. 如何创建 Hugging Face Space

(1)注册 Hugging Face 账号

👉 访问 Hugging Face 官网 并注册账号。

(2)进入 Spaces

👉 访问 Hugging Face Spaces,点击 "Create a new Space"

(3)填写 Space 详情

  • Space Name:应用的名称

  • Visibility:选择 Public(公开)Private(私有)

  • SDK:选择 Gradio / Streamlit / Docker / Static(一般推荐 Gradio)

  • Hardware:选择 CPU / GPU(免费版支持 CPU,付费可用 GPU)

  • 点击 "Create Space" 创建应用

3. 使用 Gradio 部署 AI 应用

Gradio 是一个 轻量级 Python Web UI 框架,适用于 ML/DL 模型的可视化,Hugging Face 默认支持 Gradio。

(1)安装 Gradio

pip install gradio

(2)创建 app.py

app.py 中编写 Gradio 应用:

import gradio as gr
from transformers import pipeline# 加载 Hugging Face 预训练模型(情感分析)
classifier = pipeline("sentiment-analysis")# 定义 Gradio 预测函数
def predict_sentiment(text):result = classifier(text)return result[0]["label"]# 创建 Gradio 界面
iface = gr.Interface(fn=predict_sentiment, inputs="text", outputs="text",title="情感分析应用",description="输入一段文本,分析其情感(积极/消极)。"
)# 启动应用
iface.launch()

(3)提交代码

在 Space 根目录下创建 requirements.txt,写入:

gradio
transformers

 然后,使用 Git 提交代码:

git add .
git commit -m "Initial commit"
git push

几分钟后,Hugging Face Spaces 会自动运行应用,并生成一个 在线 URL

4. 使用 Streamlit 部署 AI 应用

Streamlit 适用于 数据可视化和交互式 AI 应用

(1)安装 Streamlit

pip install streamlit

 (2)创建 app.py

import streamlit as st
from transformers import pipelinest.title("情感分析应用")
st.write("输入一段文本,分析其情感(积极/消极)。")# 加载模型
classifier = pipeline("sentiment-analysis")# 用户输入
text = st.text_area("输入文本:")# 预测
if st.button("分析"):result = classifier(text)st.write(f"情感分类:{result[0]['label']}")

(3)提交代码

requirements.txt 添加:

streamlit
transformers

然后推送代码:

git add .
git commit -m "Add Streamlit app"
git push

几分钟后,应用即可在线运行!

5. 使用 Docker 部署自定义应用

如果需要 自定义环境,可以使用 Docker

(1)创建 Dockerfile

FROM python:3.8WORKDIR /app
COPY requirements.txt /app/
RUN pip install -r requirements.txtCOPY app.py /app/
CMD ["python", "app.py"]

(2)提交 Docker 应用

Dockerfileapp.pyrequirements.txt 推送到 Space,即可自动部署。

6. 在 Hugging Face Spaces 启用 GPU

  • 默认 CPU 免费

  • GPU 需要 付费订阅 Pro/Enterprise

  • GPU 选项:

    • T4(16GB)👉 适合中等模型,如 BERT

    • A10G(24GB)👉 适合大型模型,如 LLaMA

    • A100(80GB)👉 适合超大模型,如 GPT-3.5

使用 GPU 方法:app.py 里将模型加载到 GPU:

import torch
from transformers import AutoModelForSequenceClassificationmodel = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased").to("cuda")

7. 常见问题

Q1: 为什么应用没有启动?

✅ 检查 requirements.txt 是否正确
✅ 确保 app.py 代码无误
✅ Space 部署时 会自动安装依赖,可能需要几分钟

Q2: 如何访问 API?

部署后,可以用 requests 访问:

import requestsurl = "https://your-space-name.hf.space/run"
data = {"text": "I love Hugging Face!"}
response = requests.post(url, json=data)
print(response.json())

Q3: 如何私有化 Space?

创建 Space 时选择 "Private",只有授权用户可以访问。

总结

✔ Hugging Face Spaces 提供 免费 的 AI 应用托管
✔ 支持 Gradio / Streamlit / Docker,适用于不同应用场景
✔ 通过 git push 自动部署,几分钟即可生成 Web 应用
免费 CPU,付费 GPU(T4/A10G/A100),可运行大模型

🚀 Hugging Face Spaces 让 AI 应用部署更简单,适合企业和个人开发者快速上线 AI 解决方案!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32实现智能温控系统(暖手宝):PID 算法 + DS18B20+OLED 显示,[学习 PID 优质项目]

一、项目概述 本文基于 STM32F103C8T6 单片机,设计了一个高精度温度控制系统。通过 DS18B20 采集温度,采用位置型 PID 算法控制 PWM 输出驱动 MOS 管加热Pi膜,配合 OLED 实时显示温度数据。系统可稳定将 PI 膜加热至 40℃,适用于…

[深度学习]图像分类项目-食物分类

图像分类项目-食物分类(监督学习和半监督学习) 文章目录 图像分类项目-食物分类(监督学习和半监督学习)项目介绍数据处理设定随机种子读取文件内容图像增广定义Dataset类 模型定义迁移学习 定义超参Adam和AdamW 训练过程半监督学习定义Dataset类模型定义定义超参训练过程 项目介…

C++初阶入门基础二——类和对象(中)

1类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重…

基于SSM框架的线上甜品销售系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此网上销售信息的…

3.25学习总结java 接口+内部类

JDK8以后新增的方法 可以将接口中静态方法和抽象方法中重复的部分抽离出来,作为私有方法,用去private修饰,此方法只为接口提供服务,不需要外界访问。 接口的应用 接口代表规则,是行为的抽象,想让哪个类拥有…

Linux--环境变量

ok,今天我们来学习Linux中的环境变量、地址空间、虚拟内存 环境变量 基本概念 环境变量(environmentvariables)⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数如:我们在编写C/C代码的时候,在链接的时候,从来不知道我…

Java 集合 List、Set、Map 区别与应用

一、核心特性对比 二、底层实现与典型差异 ‌List‌ ‌ArrayList‌:动态数组结构,随机访问快(O(1)),中间插入/删除效率低(O(n))‌‌LinkedList‌:双向链表结构,头尾操作…

基于 arco 的 React 和 Vue 设计系统

arco 是字节跳动出品的企业级设计系统,支持React 和 Vue。 安装模板工具 npm i -g arco-cli创建项目目录 cd someDir arco init hello-arco-pro? 请选择你希望使用的技术栈React❯ Vue? 请选择一个分类业务组件组件库Lerna Menorepo 项目❯ Arco Pro 项目看到以…

JVM-GC(G1)实践—GC异常定位、参数调整、GC更换

前言 如SpringBoot官方介绍所说的那样,从SpringBoot3.x开始支持的最低JDK版本为:JDK17(官方推荐使用BellSoft Liberica JDK),其对应的GC为G1。 本文笔者从应用实践的角度出发,记录一些关于GC的一些实践总…

吾爱出品,文件分类助手,高效管理您的 PC 资源库

在日常使用电脑的过程中,文件杂乱无章常常让人感到困扰。无论是桌面堆积如山的快捷方式,还是硬盘中混乱的音频、视频、文档等资源,都急需一种高效的整理方法。文件分类助手应运而生,它是一款文件管理工具,能够快速、智…

修改Flutter工程中Android项目minSdkVersion配置

Flutter项目开发过程中,根据模板自动生成.android项目,其中app>build.gradle中minSdkVersion的值是19,但是依赖了一个三方库,它的Android sdk 最小版本只支持到21,运行报错如下: 我们可以手动修改.andro…

如何设计一个订单号生成服务?应该考虑那些问题?

如何设计一个订单号生成服务?应该考虑那些问题? description: 在高并发的电商系统中,生成全局唯一的订单编号是关键。本文探讨了几种常见的订单编号生成方法,包括UUID、数据库自增、雪花算法和基于Redis的分布式组件,并…

Java学习总结-Stream流

啥是Stream流? 用于操作集合或数组的数据。他就像把数据化为成一条河流,我们可以对这条流操作,例如过滤。 获取Stream流 Stream流的常用方法: Stream流的终结方法: 收集Stream流

《TypeScript 面试八股:高频考点与核心知识点详解》

“你好啊!能把那天没唱的歌再唱给我听吗? ” 前言 因为主包还是主要学习js,ts浅浅的学习了一下,在简历中我也只会写了解,所以我写一些比较基础的八股,如果是想要更深入的八股的话还是建议找别人的。 Ts基…

热门面试题第14天|Leetcode 513找树左下角的值 112 113 路径总和 105 106 从中序与后序遍历序列构造二叉树 (及其扩展形式)以一敌二

找树左下角的值 本题递归偏难,反而迭代简单属于模板题, 两种方法掌握一下 题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 我们来分析一下题目&#…

Qt窗口控件之浮动窗口QDockWidget

浮动窗口QDockWidget QDockWidget 用于表示 Qt 中的浮动窗口,浮动窗口与工具栏类似,可以停靠在主窗口的上下左右位置,也可以单独拖出来作浮动窗口。 1. QDockWidget方法 方法说明setWidget(QWiget*)用于使浮动窗口能够被添加控件。setAllo…

Web前端之JavaScript的DOM操作冷门API

MENU 前言1、Element.checkVisibility()2、TreeWalker3、Node.compareDocumentPosition()4、scrollIntoViewIfNeeded()5、insertAdjacentElement()6、Range.surroundContents()7、Node.isEqualNode()8、document.createExpression()小结 前言 作为前端开发者,我们每…

【Linux-驱动开发-系统调用流程】

Linux-驱动开发-系统调用流程 ■ Linux-系统调用流程■ Linux-file_operations 结构体 ■ Linux-系统调用流程 ■ Linux-file_operations 结构体 在 Linux 内核文件 include/linux/fs.h 中有个叫做 file_operations 的结构体,此结构体就是 Linux 内核驱动操作函数集…

ToolsSet之:ASCII字符表和国际标准代码表

ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用,应用基本功能介绍可以查看以下文章: Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Other菜单下的ASCII Table是一个ASCII…

C语言判断闰年相关问题

一、简单闰年问题引入 写一个判断年份是否为闰年的程序? 运行结果: 二、闰年问题进阶 使用switch语句根据用户输入的年份和月份,判断该月份有多少天? 第一种写法(判断年份写在switch的case的里面): 运行结果: 第二种解法(先判断闰年): 运行结果: 三、补充 switch中的ca…