# クイックスタート

Hugging Face の CPU および GPU で Python コードを実行します。このガイドでは、まず CPU でシンプルなコマンドを実行し、その後、GPU で小型の言語モデルを使用してテキストを生成します。

[事前購入クレジット](https://huggingface.co/settings/billing)のある Hugging Face アカウントが必要です。計算コストについては、[料金と請求](./jobs-pricing)を参照してください。

## 1. CLIのセットアップ

[Hugging Face CLIをインストール](https://huggingface.co/docs/huggingface_hub/en/guides/cli#getting-started)し、アカウントにログインします:

```bash
>>> hf auth login
```

## 2. Hello Worldの実行

ターミナルでこのコマンドを実行します:

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

`hf jobs uv run` は、Hugging Face のインフラ上で Python 環境においてコマンドを実行します。デフォルトでは CPU を使用し、Job のログをターミナルにストリーミングします。起動後、以下が表示されます:

```text
Hello from the cloud!
```

CLIは、JobのIDとそのページへのリンクも出力します。リンクを開くと、ブラウザでそのステータスとログを表示できます。Jobは[Jobsページ](https://huggingface.co/settings/jobs)から再度確認するか、以下のCLIコマンドでIDを使用して操作できます。

ジョブは、任意のDockerイメージ内でコマンドを実行することもできます:

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

このガイドの残りの部分では、`hf jobs uv run`を使用します。イメージを使用するタイミングと方法については、[Docker イメージの使用](./jobs-images)を参照してください。

## 3. GPU上でモデルを実行する

この準備済みのスクリプトを実行して、ロボットの名前を生成します。[GitHubで確認](https://github.com/huggingface/hub-docs/blob/main/examples/jobs/hello_gpu.py)するか、以下のコードを読むこともできます。

```bash
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 はモデルをダウンロードし、その回答をログに出力します。例えば:

```text
RoboLearnbot
```

以下が完全なスクリプトです:

```python
# /// 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"])
```

[依存関係ヘッダー](https://docs.astral.sh/uv/guides/scripts/#declaring-script-dependencies)により、uv は Job 内で `torch` と `transformers` をインストールします。依存関係は `--with` でも指定できます。ローカルでは `hf` CLI だけで問題ありません。

スクリプトは、Job の GPU 上で [SmolLM2-360M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM2-360M-Instruct) を実行します。`max_new_tokens` は回答の長さを制限します。

起動時間は、ハードウェアの可用性、依存関係のインストール、モデルのダウンロードによって異なります。

> [!TIP]
> Ctrl+C を押すとログのストリーミングは停止しますが、Job は実行を続けます。Job を停止するには、`hf jobs cancel JOB_ID` を使用し、`JOB_ID` を CLI が出力した ID に置き換えてください。

Pythonから[`huggingface_hub`クライアント](https://huggingface.co/docs/huggingface_hub/guides/jobs)を使用して、同じJobを起動することもできます。

```python
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 を使用して、そのステータスを確認し、ログを再度読み取ります:

```bash
>>> hf jobs inspect JOB_ID
>>> hf jobs logs JOB_ID
```

正常に実行された場合、ステータスは`COMPLETED`となり、ログには生成された回答が含まれます。

ジョブが終了した後も、回答はジョブのログで引き続き利用可能です。スクリプトをファイルの生成に調整する場合は、[その結果をバケットまたは Hub リポジトリに保存](./jobs-manage#persist-your-results)し、ジョブが終了しても残るようにしてください。

## 自分のスクリプトを試す（オプション）

上記のコードを`hello_gpu.py`にコピーし、`messages`のプロンプトを編集して、ローカルファイルを実行します:

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

CLIは編集したスクリプトを自動的にアップロードします。他の場所に保存した場合は、`hello_gpu.py`をそのパスに置き換えてください。

## 次のステップ

この例をベースに、より大きなワークロードで構築します:

- [OCR、分類、またはバッチ推論でデータセットにアノテーションを付与する](./jobs-examples#uv-scripts)。
- [モデルの学習またはファインチューニング](./jobs-training)を行い、Hubに保存します。
- [データセットまたはバケットを読み取り、処理結果を保存します](./jobs-large-datasets)。
- [Dockerイメージ内でコマンドを実行する](./jobs-configuration#docker-jobs)。
- [コーディングエージェントからJobsを使用する](./jobs-examples#coding-agent-skills)。

