Hub documentation
빠른 시작
빠른 시작
Hugging Face의 CPU와 GPU에서 Python 코드를 실행합니다. 이 가이드에서는 CPU에서 간단한 명령을 실행한 다음, GPU에서 작은 언어 모델로 텍스트를 생성하는 방법을 알아봅니다.
선불 크레딧이 있는 Hugging Face 계정이 필요합니다. 컴퓨트 비용은 Pricing and Billing을 참고하세요.
1. CLI 설정
Hugging Face CLI 설치 후 계정에 로그인합니다:
>>> hf auth login2. 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 페이지에서 다시 Jobs를 찾을 수 있으며, 아래 CLI 명령에 ID를 사용할 수도 있습니다.
Jobs는 어떤 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"])의존성 헤더는 Job에서 torch와 transformers를 설치하도록 uv에 지시합니다. --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이며, 해당 로그에는 생성된 답변이 포함됩니다.
Job이 완료된 후에도 답은 Job의 로그에서 계속 사용할 수 있습니다. 스크립트를 파일 생성하도록 수정할 경우, 해당 결과를 버킷 또는 Hub 저장소에 저장하여 Job이 종료된 후에도 유지되도록 하세요.
직접 스크립트 시도 (선택 사항)
위의 코드를 hello_gpu.py에 복사하고, messages의 프롬프트를 수정한 후 로컬 파일을 실행하세요:
hf jobs uv run --flavor t4-small --timeout 5m hello_gpu.pyCLI는 편집한 스크립트를 자동으로 업로드합니다. 다른 위치에 저장한 경우 hello_gpu.py를 해당 경로로 교체하세요.
다음 단계
이 예제를 기반으로 더 큰 워크로드를 구축해 보세요:
- OCR, 분류 또는 배치 추론으로 데이터셋에 주석을 달기.
- 모델을 학습하거나 파인튜닝한 후 Hub에 저장합니다.
- 데이터셋 또는 버킷을 읽고 처리된 결과를 저장합니다.
- Docker 이미지에서 명령 실행.
- 코딩 에이전트에서 Jobs 사용.