为什么是 Spaces,而不是 Colab

Colab 的免费 GPU 是「一次性会话」,用完即走;而 Hugging Face Spaces 是「常驻服务 + 休眠省电」的组合。你可以把任意开源模型(Llama、Qwen、Mistral、Stable Diffusion 等)部署成一个公开 Space,它默认在无人访问时进入休眠,有人调用时自动唤醒。关键在于:Space 的硬件配额是账号级的,而调用入口是公开的。这意味着你可以把 Space 当作一个「按需唤醒的免费推理端点」,而不必自己维护服务器。

2026 年 HF 的免费账号依然提供 CPU Basic 硬件(2 vCPU / 16GB RAM),社区 GPU(如 ZeroGPU、T4 small)对公开 Space 有排队额度。额度数字经常调整,本文不写死,只给方法。

操作步骤

1. 建一个「可被调用」的 Space

  • 登录 huggingface.co,点 New Space。
  • 选择 Gradio 或 Docker SDK,硬件先选 CPU Basic(免费)。
  • 在 app.py 里用 gr.Interface 或 gr.ChatInterface 暴露一个函数,例如:

```python

import gradio as gr

from transformers import pipeline

pipe = pipeline("text-generation", model="Qwen/Qwen2.5-1.5B-Instruct")

def generate(prompt):

return pipe(prompt, max_new_tokens=256)[0]["generated_text"]

gr.Interface(fn=generate, inputs="text", outputs="text").launch()

```

  • 提交后等待 Build 完成。公开 Space 会获得一个 https://<user>-<space>.hf.space 域名。

2. 用 API 方式调用,而不是点网页

Gradio Space 自带 /call 与 /api/predict 端点(取决于 Gradio 版本)。更稳妥的方式是用 gradio_client:

```python

from gradio_client import Client

client = Client("你的用户名/你的space名")

result = client.predict("你好", api_name="/predict")

print(result)

```

这样你就在自己的脚本里「白拿」了一次推理,而 Space 背后消耗的是 HF 分配的免费硬件。

3. 申请社区 GPU(ZeroGPU / T4)

  • 在 Space 设置里把硬件切到 ZeroGPU(如果该 Space 符合条件)。
  • ZeroGPU 采用「按秒排队」模式,免费账号每天有一定时长,具体额度在设置页会显示「约 X 分钟/天」。
  • 如果 ZeroGPU 排队太长,可退而选 T4 small,它同样有免费时长,但通常更短。

4. 把多个 Space 串成「Token 池」

单个 Space 的额度有限,但你可以:

  • 为不同模型各建一个 Space(一个跑对话、一个跑 embedding、一个跑图像)。
  • 写一个路由脚本,按任务类型分发到不同 Space。
  • 用 requests 或 gradio_client 轮询可用 Space,失败则切下一个。

```python

SPACES = ["user/chat-space", "user/embed-space", "user/img-space"]

for s in SPACES:

try:

c = Client(s)

out = c.predict("test", api_name="/predict")

print(s, "OK", out[:50])

break

except Exception as e:

print(s, "failed", e)

```

5. 监控额度与休眠状态

  • Space 页面右上角会显示当前硬件与剩余时长(如有)。
  • 用 HF API 查询 Space 状态:https://huggingface.co/api/spaces/<user>/<space>。
  • 若返回 runtime.stage 为 SLEEPING,说明已休眠,首次调用会触发冷启动,通常需等 10–60 秒。

注意事项

  • 冷启动延迟:休眠 Space 首次唤醒可能超时,脚本里要设 timeout=120 并加重试。
  • 公开可见:公开 Space 的调用记录、输入输出在网页上对所有人可见,不要传敏感数据。
  • 额度不保证:ZeroGPU / T4 的免费时长由 HF 动态调整,可能随时缩短或排队变长。
  • 禁止滥用:用脚本高频刷 Space 可能触发限流甚至封号,建议控制在合理频率(如每分钟几次)。
  • 模型许可:部分模型(如 Llama 系列)需要先在 HF 上接受许可协议,否则 Space 会构建失败。

适用场景

  • 个人开发者做原型验证,不想为偶尔的推理付费。
  • 小团队内部工具,调用量不大但需要稳定入口。
  • 教学 / 演示场景,需要公网可访问的推理端点。

限制

  • 不适合高并发生产环境。
  • 不适合需要私有数据的任务。
  • 免费 GPU 时长有限,重度使用仍需付费或自建。