Hugging Face Generative AI Services (HUGS) 文档

在 HUGS 上运行推理

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

在 HUGS 上运行推理

如前所述,HUGS 基于文本生成推理 (TGI);这意味着在已部署的 HUGS 容器上运行推理与 TGI 完全相同。有关更多信息,请参阅文本生成推理文档,了解如何使用 TGI

在下面显示的推理示例中,主机假定为 localhost,这在使用 Kubernetes 进行端口转发部署 HUGS 或在当前实例上使用 docker run 部署 HUGS 时是这种情况。 如果您已使用特定 IP、主机和/或 SSL (HTTPS) 下的 Ingress 在 Kubernetes 上部署了 HUGS,请注意您应该使用您的主机或 IP 更新下面的 localhost 引用。

消息 API

消息 API 是一个 OpenAI 兼容的端点,位于 /v1/chat/completions 下,遵循 OpenAI OpenAPI 规范。 OpenAI 兼容意味着推理不仅可以使用 cURL 运行,还可以使用 Python 中的 huggingface_hub.InferenceClientopenai.OpenAI SDK,以及任何编程语言中的任何其他 OpenAI 兼容的 SDK。

cURL

使用 cURL 非常简单,易于安装和使用。

curl http://localhost:8080/v1/chat/completions \
    -X POST \
    -d '{"model":"tgi","messages":[{"role":"user","content":"What is Deep Learning?"}],"temperature":0.7,"top_p":0.95,"max_tokens":128}}' \
    -H 'Content-Type: application/json'

Python

如前所述,您可以选择使用 huggingface_hub Python SDK (推荐) 中的 huggingface_hub.InferenceClientopenai Python SDK 或任何具有 OpenAI 兼容接口的 SDK,这些 SDK 可以使用消息 API。

huggingface_hub

您可以通过 pip 安装它,命令为 pip install --upgrade --quiet huggingface_hub,然后运行以下代码片段来模拟上面的 cURL 命令,即向消息 API 发送请求

from huggingface_hub import InferenceClient

client = InferenceClient(base_url="http://localhost:8080", api_key="-")

chat_completion = client.chat.completions.create(
    messages=[
        {"role":"user","content":"What is Deep Learning?"},
    ],
    temperature=0.7,
    top_p=0.95,
    max_tokens=128,
)

阅读更多关于 huggingface_hub.InferenceClient.chat_completion 方法的信息。

openai

或者,您也可以通过 openai 使用消息 API;您可以通过 pip 安装它,命令为 pip install --upgrade openai,然后运行:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1/", api_key="-")

chat_completion = client.chat.completions.create(
    model="tgi",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is Deep Learning?"},
    ],
    temperature=0.7,
    top_p=0.95,
    max_tokens=128,
)

其他端点

除了上面提到的端点外,TGI 还附带了 TGI OpenAPI 规范中定义的其他端点,这些端点不仅可以用于推理,还可以用于分词、指标或有关已部署模型的信息。

< > 在 GitHub 上更新