Hub documentation

快速入门

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

快速入门

在 Hugging Face 的 CPU 和 GPU 上运行您的 Python 代码。在本指南中,您将在 CPU 上运行一条简单命令,然后在 GPU 上使用小型语言模型生成文本。

您需要一个拥有预付费额度的 Hugging Face 账户。有关计算成本,请参阅定价与计费。

1. 设置 CLI

安装 Hugging Face CLI,然后登录您的账户:

>>> hf auth login

2. 运行 Hello World

在终端中运行此命令:

>>> hf jobs uv run python -c 'print("Hello from the cloud!")'

hf jobs uv run 在 Hugging Face 基础设施上的 Python 环境中运行命令。它默认使用 CPU,并将 Job 的日志流式传输到您的终端。启动后,您会看到:

Hello from the cloud!

CLI 还会打印您的 Job ID 及其页面的链接。在浏览器中打开该链接即可查看其状态和日志。您可以在 Jobs 页面 上再次找到您的 Job,或者使用以下 CLI 命令配合该 ID 进行操作。

任务也可以在任意 Docker 镜像中运行命令:

>>> hf jobs run ubuntu echo 'Hello from the cloud!'

本指南的其余部分使用 hf jobs uv run。有关何时以及如何使用镜像,请参阅 使用 Docker 镜像。

3. 在 GPU 上运行模型

运行此准备好的脚本以生成机器人名称。您可以在 GitHub 上查看或阅读以下代码。

hf jobs uv run \
    --flavor t4-small \
    --timeout 5m \
    https://raw.githubusercontent.com/huggingface/hub-docs/main/examples/jobs/hello_gpu.py
  • --flavor t4-small 选择配备 NVIDIA T4 GPU 的机器。
  • --timeout 5m 为 Job 设置了五分钟的限制。

该 Job 会下载模型并在日志中打印其回答。例如:

RoboLearnbot

以下是完整脚本:

# /// script
# dependencies = ["torch", "transformers"]
# ///

from transformers import pipeline

generator = pipeline(
    "text-generation",
    model="HuggingFaceTB/SmolLM2-360M-Instruct",
    dtype="float16",
)
messages = [{
    "role": "user",
    "content": "Suggest a name for a robot that helps people learn Python. Answer with only the name.",
}]
outputs = generator(messages, max_new_tokens=48, do_sample=False, return_full_text=False)
print(outputs[0]["generated_text"])

依赖项头部会指示 uv 在 Job 中安装 torch 和 transformers。你也可以使用 --with 来指定依赖项。本地只需要 hf CLI。

该脚本在 Job 的 GPU 上运行 SmolLM2-360M-Instruct。max_new_tokens 用于限制回答的长度。

启动时间会因硬件可用性、依赖项安装和模型下载而有所不同。

按下 Ctrl+C 可停止流式日志输出,但任务仍会继续运行。若要停止任务,请使用 hf jobs cancel JOB_ID,并将 JOB_ID 替换为 CLI 打印的 ID。

您也可以通过 huggingface_hub 客户端 从 Python 启动相同的 Job:

from huggingface_hub import run_uv_job

job = run_uv_job(
    "https://raw.githubusercontent.com/huggingface/hub-docs/main/examples/jobs/hello_gpu.py",
    flavor="t4-small",
    timeout="5m",
)
print(job.url)

4. 检查你的结果

使用 GPU 作业的 ID 再次检查其状态并读取其日志:

>>> hf jobs inspect JOB_ID
>>> hf jobs logs JOB_ID

运行成功时,其状态为 COMPLETED,并且日志中包含生成的答案。

任务结束后,答案仍可在该任务的日志中查看。当您修改脚本以生成文件时,请将结果保存到存储桶或 Hub 仓库中,以便在任务结束后保留这些文件。

尝试运行你自己的脚本(可选)

将上述代码复制到 hello_gpu.py 中,编辑 messages 中的提示词,然后运行你的本地文件:

hf jobs uv run --flavor t4-small --timeout 5m hello_gpu.py

CLI 会自动上传您编辑后的脚本。如果您将其保存在其他位置,请将 hello_gpu.py 替换为其路径。

后续步骤

在此示例的基础上,使用更大的工作负载进行构建:

Update on GitHub