logo

Hugging Face Inference API 指南

Hugging Face 的推理入口现在不该只理解成“一个旧的 Serverless API”。更接近官方当前文档的理解是三条路:

  • Inference Providers
  • Inference Endpoints
  • Local endpoints / 自托管推理服务

这三条路的区别,不是接口名字,而是你要什么控制权、稳定性和成本结构。

1. Inference Providers

官方当前文档主推的是 Inference Providers。它的价值在于,你可以通过统一入口访问多个推理提供商,而不是每接一家都重新学一套 SDK。

获取 API Token

  1. 登录 Hugging Face 账号。
  2. 前往 Settings > Access Tokens
  3. 创建一个带有 read 权限的 token。

Python 调用示例

使用标准的 requests 库或官方的 huggingface_hub 库。

import requests

# 模型地址
API_URL = "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.2"
headers = {"Authorization": "Bearer hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

def query(payload):
	response = requests.post(API_URL, headers=headers, json=payload)
	return response.json()

output = query({
	"inputs": "Can you please explain what is Hugging Face?",
	"parameters": {"max_new_tokens": 100}
})
print(output)

推荐使用官方 SDK

from huggingface_hub import InferenceClient

client = InferenceClient(model="mistralai/Mistral-7B-Instruct-v0.2", token="hf_xxx")

# 文本生成
response = client.text_generation("The capital of France is")
print(response)

# 图像生成 (Text-to-Image)
image = client.text_to_image("An astronaut riding a horse on mars")
image.save("astronaut.png")

2. 向量提取 (RAG 常见入口)

对于构建 RAG (检索增强生成) 系统,这是获取文本向量(Embeddings)最便捷的方式。

client = InferenceClient(model="BAAI/bge-small-zh-v1.5", token="hf_xxx")

embedding = client.feature_extraction("这是一段需要向量化的中文文本")
print(len(embedding)) # 对于 bge-small,维度通常是 512

3. Inference Endpoints (生产级专用端点)

如果你需要更稳定、可控、可隔离的生产部署,就看 Inference Endpoints。这类服务更像正式托管推理,而不是公共共享入口。

主要特点

  • 独享资源:你可以选择专用的 CPU 或 GPU(如 A10G, T4, A100)。
  • 完全控制:支持设置自动休眠、私有连接和安全选项。
  • 自定义框架:支持加载自定义推理代码。
  • 按量计费:根据硬件使用时长按小时计费。

创建流程

  1. 在 Hub 上选择一个模型。
  2. 点击模型页面右上角的 Deploy > Inference Endpoints
  3. 选择云服务商(AWS/Azure)和硬件。
  4. 部署完成后,你将获得一个私有的 URL,调用方式与 Serverless API 基本一致。

4. Local endpoints / 自托管

Hugging Face 官方 InferenceClient 也支持连本地或自托管的 OpenAI-compatible 推理服务,比如 llama.cppvLLMTGI 一类。这对已经有自己推理基础设施的团队很有用,因为客户端心智可以保持一致。

5. 常见问题与局限性

共享推理入口的常见限制

  • 会有速率限制或吞吐波动
  • 冷启动仍可能存在
  • 热门模型和冷门模型的体验差异会比较明显

性能建议

  • Batching:如果可能,将多个输入合并为一个请求以提高效率。
  • Caching:在客户端对常见查询的结果进行缓存。

官方参考

Hugging Face 模型库指南
AI Engineer

Hugging Face 模型库指南

Hugging Face 是最大的 AI 模型社区,提供数万个预训练模型和便捷的部署工具。

Hugging Face 模型库指南Inference API

Hugging Face Inference API 指南

Hugging Face 的推理入口现在不该只理解成“一个旧的 Serverless API”。更接近官方当前文档的理解是三条路:

  • Inference Providers
  • Inference Endpoints
  • Local endpoints / 自托管推理服务

这三条路的区别,不是接口名字,而是你要什么控制权、稳定性和成本结构。

#1. Inference Providers

官方当前文档主推的是 Inference Providers。它的价值在于,你可以通过统一入口访问多个推理提供商,而不是每接一家都重新学一套 SDK。

#获取 API Token

  1. 登录 Hugging Face 账号。
  2. 前往 Settings > Access Tokens
  3. 创建一个带有 read 权限的 token。

#Python 调用示例

使用标准的 requests 库或官方的 huggingface_hub 库。

python
import requests # 模型地址 API_URL = "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.2" headers = {"Authorization": "Bearer hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} def query(payload): response = requests.post(API_URL, headers=headers, json=payload) return response.json() output = query({ "inputs": "Can you please explain what is Hugging Face?", "parameters": {"max_new_tokens": 100} }) print(output)

#推荐使用官方 SDK

python
from huggingface_hub import InferenceClient client = InferenceClient(model="mistralai/Mistral-7B-Instruct-v0.2", token="hf_xxx") # 文本生成 response = client.text_generation("The capital of France is") print(response) # 图像生成 (Text-to-Image) image = client.text_to_image("An astronaut riding a horse on mars") image.save("astronaut.png")

#2. 向量提取 (RAG 常见入口)

对于构建 RAG (检索增强生成) 系统,这是获取文本向量(Embeddings)最便捷的方式。

python
client = InferenceClient(model="BAAI/bge-small-zh-v1.5", token="hf_xxx") embedding = client.feature_extraction("这是一段需要向量化的中文文本") print(len(embedding)) # 对于 bge-small,维度通常是 512

#3. Inference Endpoints (生产级专用端点)

如果你需要更稳定、可控、可隔离的生产部署,就看 Inference Endpoints。这类服务更像正式托管推理,而不是公共共享入口。

#主要特点

  • 独享资源:你可以选择专用的 CPU 或 GPU(如 A10G, T4, A100)。
  • 完全控制:支持设置自动休眠、私有连接和安全选项。
  • 自定义框架:支持加载自定义推理代码。
  • 按量计费:根据硬件使用时长按小时计费。

#创建流程

  1. 在 Hub 上选择一个模型。
  2. 点击模型页面右上角的 Deploy > Inference Endpoints
  3. 选择云服务商(AWS/Azure)和硬件。
  4. 部署完成后,你将获得一个私有的 URL,调用方式与 Serverless API 基本一致。

#4. Local endpoints / 自托管

Hugging Face 官方 InferenceClient 也支持连本地或自托管的 OpenAI-compatible 推理服务,比如 llama.cppvLLMTGI 一类。这对已经有自己推理基础设施的团队很有用,因为客户端心智可以保持一致。

#5. 常见问题与局限性

#共享推理入口的常见限制

  • 会有速率限制或吞吐波动
  • 冷启动仍可能存在
  • 热门模型和冷门模型的体验差异会比较明显

#性能建议

  • Batching:如果可能,将多个输入合并为一个请求以提高效率。
  • Caching:在客户端对常见查询的结果进行缓存。

#官方参考

System Design

系统设计必备:核心概念 + 经典案例

快速掌握取舍与设计套路,备战系统设计面试。

进入 System Design →

相关路线图