跳到内容

Hugging Face Inference Endpoints

概述

兼容 vLLM 的模型可以在 Hugging Face Inference Endpoints 上部署,既可以从 Hugging Face Hub 开始,也可以直接在 Inference Endpoints 界面操作。这使您能够在完全托管的环境中提供模型服务,利用 GPU 加速、自动扩缩容和监控功能,而无需手动管理基础设施。

有关 vLLM 集成和部署选项的详细信息,请参阅 高级部署详情

部署方法

方法 1:从目录部署

这是在 Hugging Face Inference Endpoints 上使用 vLLM 的最简单方法。您可以在 Inference Endpoints 浏览经过验证和优化的模型目录,以实现性能最大化。

  1. 前往 Endpoints Catalog,在 Inference Server 选项中选择 vLLM。这将显示当前已预配置优化选项的模型列表。

    Endpoints Catalog

  2. 选择所需模型并点击 Create Endpoint

    Create Endpoint

  3. 部署就绪后,即可使用该端点。使用控制台中提供的 URL 更新 DEPLOYMENT_URL,并根据需要添加 /v1 后缀。

    # pip install openai
    from openai import OpenAI
    import os
    
    client = OpenAI(
        base_url=DEPLOYMENT_URL,
        api_key=os.environ["HF_TOKEN"],  # https://hugging-face.cn/settings/tokens
    )
    
    chat_completion = client.chat.completions.create(
        model="HuggingFaceTB/SmolLM3-3B",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "Give me a brief explanation of gravity in simple terms.",
                    }
                ],
            }
        ],
        stream=True,
    )
    
    for message in chat_completion:
        print(message.choices[0].delta.content, end="")
    

注意

该目录提供了针对 vLLM 优化的模型,包括 GPU 设置和推理引擎配置。您可以通过 Inference Endpoints UI 监控端点并更新容器或其配置

方法 2:引导式部署(Transformers 模型)

此方法适用于元数据中带有 transformers 库标签的模型。它允许您直接从 Hub UI 部署模型,无需手动配置。

  1. 导航至 Hugging Face Hub 上的某个模型页面。
    在本示例中,我们将使用 ibm-granite/granite-docling-258M 模型。您可以检查 README 中的前言(front matter),确认该模型是否兼容,其中库标签应为 library: transformers

  2. 找到 Deploy 按钮。对于带有 transformers 标签的模型,该按钮会出现在 模型卡片的右上角。

    Locate deploy button

  3. 点击 Deploy 按钮 > HF Inference Endpoints。您将被带到 Inference Endpoints 界面以配置部署。

    Click deploy button

  4. 选择硬件(本例中选择 AWS > GPU > T4)和容器配置。选择 vLLM 作为容器类型,然后点击 Create Endpoint 完成部署。

    Select Hardware

  5. 使用部署好的端点。使用控制台中提供的 URL 更新 DEPLOYMENT_URL(记得添加所需的 /v1)。随后即可通过程序或 SDK 调用您的端点。

    # pip install openai
    from openai import OpenAI
    import os
    
    client = OpenAI(
        base_url=DEPLOYMENT_URL,
        api_key=os.environ["HF_TOKEN"],  # https://hugging-face.cn/settings/tokens
    )
    
    chat_completion = client.chat.completions.create(
        model="ibm-granite/granite-docling-258M",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": "https://hugging-face.cn/ibm-granite/granite-docling-258M/resolve/main/assets/new_arxiv.png",
                        },
                    },
                    {
                        "type": "text",
                        "text": "Convert this page to docling.",
                    },
                ]
            }
        ],
        stream=True,
    )
    
    for message in chat_completion:
        print(message.choices[0].delta.content, end="")
    

注意

此方法使用默认建议设置。您可能需要根据具体需求调整配置。

方法 3:手动部署(高级模型)

某些模型需要手动部署,因为它们:

  • 使用带有 transformers 标签的自定义代码
  • 无法运行在标准 transformers 上但受 vLLM 支持

这些模型无法使用模型卡片上的 Deploy 按钮进行部署。

在本指南中,我们演示了如何手动部署 rednote-hilab/dots.ocr 模型,这是一个集成了 vLLM 的 OCR 模型(参见 vLLM PR)。

  1. 开始新的部署。前往 Inference Endpoints 并点击 New

    New Endpoint

  2. 在 Hub 中搜索模型。在对话框中,切换到 Hub 并搜索所需模型。

    Select model

  3. 选择基础设施。在配置页面上,从可用选项中选择云服务商和硬件。
    在此演示中,我们选择 AWS 和 L4 GPU。请根据您的硬件需求进行调整。

    Choose Infra

  4. 配置容器。滚动到 Container Configuration 并选择 vLLM 作为容器类型。

    Configure Container

  5. 创建端点。点击 Create Endpoint 以部署模型。

    一旦端点就绪,您可以使用 OpenAI Completion API、cURL 或其他 SDK 进行调用。如有需要,请记得在部署 URL 后添加 /v1

注意

您可以在 Inference Endpoints UI 中调整容器设置(Container URI、容器参数)并点击 Update Endpoint。这将使用更新后的容器配置重新部署端点。若需更改模型本身,则需要创建新端点或使用其他模型进行重新部署。例如,在本演示中,您可能需要将容器 URI 更新为 nightly 镜像 (vllm/vllm-openai:nightly),并在容器参数中添加 --trust-remote-code 标志。

高级部署详情

随着 Transformers 模型后端集成的推出,vLLM 现在为任何兼容 transformers 的模型提供 Day 0 支持。这意味着您可以立即部署此类模型,在无需进行额外后端修改的情况下利用 vLLM 的优化推理。

Hugging Face Inference Endpoints 为通过 vLLM 提供模型服务提供了完全托管的环境。您可以部署模型而无需配置服务器、安装依赖项或管理集群。Endpoints 还支持跨多个云服务商(AWS、Azure、GCP)进行部署,无需单独的账户。

该平台与 Hugging Face Hub 无缝集成,允许您部署任何兼容 vLLM 或 transformers 的模型,跟踪使用情况,并直接更新推理引擎。vLLM 引擎经过预配置,支持优化的推理,并能轻松在不同模型或引擎间切换,而无需修改代码。此设置简化了生产部署:端点可在几分钟内就绪,包含监控和日志功能,让您专注于模型服务而非基础设施维护。

后续步骤