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とそのページへのリンクも出力します。リンクを開くと、ブラウザでそのステータスとログを確認できます。JobはJobsページから再度確認するか、以下の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 に5分間の制限を設定します。

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 を押すとログのストリーミングは停止しますが、Job は実行を続けます。Job を停止するには、hf jobs cancel JOB_ID を使用し、JOB_ID を CLI が出力した ID に置き換えてください。

Pythonからhuggingface_hubクライアントを使用して、同じ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 Job の 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