Hub documentation

Sử dụng GPU Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Sử dụng GPU Spaces

Bạn có thể nâng cấp Space của mình để sử dụng bộ tăng tốc GPU bằng cách nhấn nút Cài đặt trên thanh điều hướng phía trên của Space. Bạn thậm chí có thể yêu cầu nâng cấp miễn phí nếu đang xây dựng một demo thú vị cho dự án phụ!

Về lâu dài, chúng tôi cũng muốn hỗ trợ các phần cứng không phải GPU, chẳng hạn như HPU, IPU hoặc TPU. Nếu bạn có một phần cứng AI cụ thể mà bạn muốn chạy, vui lòng cho chúng tôi biết (trang web tại huggingface.co).

Ngay khi Space của bạn chạy trên GPU, bạn có thể xem phần cứng mà nó đang chạy trực tiếp từ huy hiệu này:

Thông số phần cứng

Trong các bảng dưới đây, bạn có thể xem thông số kỹ thuật (Specs) cho các tùy chọn nâng cấp khác nhau.

CPU

Cấu hình phần cứngCPUBộ nhớBộ nhớ GPUĐĩaGiá theo giờ
CPU cơ bản2 vCPU16 GB-50 GBMiễn phí!
Nâng cấp CPU8 vCPU32 GB-50 GB$0.03

CPU Basic không có chi phí theo giờ, nhưng việc tạo một Space mới chạy trên compute (Gradio hoặc Docker) yêu cầu gói trả phí. Các Space tĩnh miễn phí cho tất cả mọi người. Xem Tổng quan về Spaces để biết thêm chi tiết.

GPU

Cấu hình phần cứngCPUBộ nhớBộ nhớ GPUĐĩaGiá theo giờ
Nvidia T4 - nhỏ4 vCPU15 GB16 GB50 GB$0.40
Nvidia T4 - trung bình8 vCPU30 GB16 GB100 GB$0.60
1x Nvidia L48 vCPU30 GB24 GB400 GB$0.80
4x Nvidia L448 vCPU186 GB96 GB3200 GB$3.80
1x Nvidia L40S8 vCPU62 GB48 GB380 GB$1.80
4x Nvidia L40S48 vCPU382 GB192 GB3200 GB$8.30
8x Nvidia L40S192 vCPU1534 GB384 GB6500 GB$23.50
1x Nvidia RTX PRO 600023 vCPU256 GB96 GB475 GB$2.75
2x Nvidia RTX PRO 600046 vCPU512 GB192 GB950 GB$5.50
4x Nvidia RTX PRO 600092 vCPU1024 GB384 GB1900 GB$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 GB768 GB3800 GB$22.00
Nvidia A10G - nhỏ4 vCPU15 GB24 GB110 GB$1.00
Nvidia A10G - lớn12 vCPU46 GB24 GB200 GB$1.50
2x Nvidia A10G - lớn24 vCPU92 GB48 GB1000 GB$3.00
4x Nvidia A10G - lớn48 vCPU184 GB96 GB2000 GB$5.00
Nvidia A100 - lớn12 vCPU142 GB80 GB1000 GB$2.50
Nvidia H100 (đã loại bỏ vào tháng 12 năm 2025)
8x Nvidia H100 (đã loại bỏ vào tháng 12 năm 2025)
4x Nvidia A10048 vCPU568 GB320 GB4000 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB8000 GB$20.00

Cấu hình phần cứng bằng lập trình

Bạn có thể cấu hình phần cứng Space của mình bằng cách lập trình thông qua huggingface_hub. Điều này cho phép một loạt các trường hợp sử dụng mà bạn cần phân bổ GPU một cách động. Xem hướng dẫn này để biết thêm chi tiết.

Yêu cầu cụ thể của framework

Hầu hết các Space sẽ chạy ngay sau khi nâng cấp GPU, nhưng đôi khi bạn sẽ cần cài đặt các phiên bản CUDA của các framework machine learning mà bạn đang sử dụng. Vui lòng làm theo hướng dẫn này để đảm bảo Space của bạn tận dụng được phần cứng đã được cải thiện.

PyTorch

Bạn cần cài đặt phiên bản PyTorch tương thích với trình điều khiển CUDA tích hợp. Thêm hai dòng sau vào tệp requirements.txt của bạn nên sẽ hoạt động:

--extra-index-url https://download.pytorch.org/whl/cu113
torch

Bạn có thể kiểm tra xem cài đặt có thành công hay không bằng cách chạy mã sau trong app.py của bạn và xem kết quả trong nhật ký Space của bạn:

import torch
print(f"Is CUDA available: {torch.cuda.is_available()}")
# True
print(f"CUDA device: {torch.cuda.get_device_name(torch.cuda.current_device())}")
# Tesla T4

Nhiều framework tự động sử dụng GPU nếu có sẵn. Điều này đúng với các Pipelines trong 🤗 transformers, fastai và nhiều framework khác. Trong các trường hợp khác, hoặc nếu bạn sử dụng PyTorch trực tiếp, bạn có thể cần di chuyển mô hình và dữ liệu của mình sang GPU để đảm bảo việc tính toán được thực hiện trên bộ tăng tốc thay vì trên CPU. Bạn có thể sử dụng cú pháp .to() của PyTorch, ví dụ:

model = load_pytorch_model()
model = model.to("cuda")

JAX

Nếu bạn sử dụng JAX, bạn cần chỉ định URL chứa các gói tương thích với CUDA. Vui lòng thêm các dòng sau vào tệp requirements.txt của bạn:

-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlib

Sau đó, bạn có thể xác minh cài đặt bằng cách in kết quả từ đoạn mã sau và kiểm tra nó trong nhật ký Space của bạn.

import jax

print(f"JAX devices: {jax.devices()}")
# JAX devices: [StreamExecutorGpuDevice(id=0, process_index=0)]
print(f"JAX device type: {jax.devices()[0].device_kind}")
# JAX device type: Tesla T4

TensorFlow

Cài đặt tensorflow mặc định nên nhận diện được thiết bị CUDA. Chỉ cần thêm tensorflow vào tệp requirements.txt của bạn và sử dụng đoạn mã sau trong app.py để kiểm tra trong nhật ký Space của bạn.

import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Hóa đơn

Việc tính phí trên Spaces dựa trên mức sử dụng phần cứng và được tính theo từng phút: bạn sẽ bị tính phí cho mỗi phút Space chạy trên phần cứng được yêu cầu, bất kể Space có được sử dụng hay không.

Trong vòng đời của một Space, bạn chỉ bị tính phí khi Space đang ở trạng thái Starting hoặc Running. Điều này có nghĩa là không phát sinh chi phí trong quá trình build.

Nếu một Space đang chạy bắt đầu gặp lỗi, nó sẽ được tự động tạm dừng và việc tính phí sẽ dừng lại.

Spaces chạy trên phần cứng miễn phí sẽ tự động bị tạm dừng nếu không được sử dụng trong một khoảng thời gian dài (ví dụ: hai ngày). Các Spaces nâng cấp sẽ chạy liên tục theo mặc định, ngay cả khi không có hoạt động sử dụng. Bạn có thể thay đổi hành vi này bằng cách cài đặt “thời gian ngủ” tùy chỉnh trong cài đặt của Space. Để ngừng tính phí cho Space của bạn, bạn có thể chuyển Hardware sang CPU basic hoặc tạm dừng nó.

Thông tin bổ sung về hóa đơn có thể được tìm thấy trong mục riêng của toàn bộ Hub.

Cấp vốn GPU cho Cộng đồng

Bạn có một Space tuyệt vời nhưng cần hỗ trợ chi phí nâng cấp phần cứng GPU? Chúng tôi rất sẵn lòng giúp đỡ những người có Space mang tính đổi mới, vì vậy hãy thoải mái nộp đơn xin tài trợ GPU từ cộng đồng và xem liệu Space của bạn có được chọn hay không! Bạn có thể tìm thấy đơn đăng ký này trong cài đặt repo phần cứng của Space, ở góc dưới bên trái, dưới mục “sleep time settings”:

Community GPU Grant

Đặt thời gian ngủ tùy chỉnh

Nếu Space của bạn chạy trên phần cứng mặc định cpu-basic, nó sẽ ngủ nếu không hoạt động quá một khoảng thời gian nhất định (hiện tại là 48 giờ). Bất kỳ ai truy cập Space của bạn sẽ tự động khởi động lại nó.

Nếu bạn muốn Space của mình không bao giờ bị vô hiệu hóa hoặc muốn đặt thời gian ngủ tùy chỉnh, bạn cần nâng cấp lên phần cứng trả phí.

Mặc định, một Space đã nâng cấp sẽ không bao giờ ngủ. Tuy nhiên, bạn có thể sử dụng cài đặt này để Space đã nâng cấp của bạn chuyển sang trạng thái nhàn rỗi (giai đoạn stopped) khi không được sử dụng 😴. Bạn sẽ không bị tính phí cho phần cứng đã nâng cấp trong khi nó đang ngủ. Space sẽ “thức dậy” hoặc được khởi động lại khi nhận được một khách truy cập mới.

Giao diện sau sẽ có sẵn trong cài đặt phần cứng Spaces của bạn:

Các tùy chọn sau có sẵn:

Các bản sao

Bạn có thể mở rộng Space theo chiều ngang bằng cách yêu cầu nhiều bản sao (replicas). Điều này phân phối lưu lượng truy cập qua nhiều phiên bản của Space để cải thiện khả năng sẵn sàng và thông lượng. Bạn có thể đặt số lượng bản sao qua API:

POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json

{
  "replicas": 2
}

Replicas chỉ có sẵn cho phần cứng nâng cấp (trả phí). Mỗi replica được tính phí độc lập.

Truyền trực tiếp Nhật ký, Sự kiện và Chỉ số

Bạn có thể phát trực tiếp (stream) các nhật ký thời gian thực, sự kiện trạng thái và chỉ số từ Space của bạn qua SSE (Server-Sent Events):

  • Nhật ký xây dựng hoặc chạy: GET /api/spaces/{namespace}/{repo}/logs/{build|run}
  • Sự kiện trạng thái: GET /api/spaces/{namespace}/{repo}/events
  • Chỉ số: GET /api/spaces/{namespace}/{repo}/metrics

Các điểm cuối này yêu cầu xác thực và trả về dữ liệu bằng giao thức SSE.

Điểm cuối nhật ký chấp nhận một tham số truy vấn tùy chọn tail (số nguyên không âm) để giới hạn phản hồi lại N dòng nhật ký cuối cùng:

GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100

Tạm dừng một Space

Bạn có thể pause một Space từ cài đặt kho. Một Space ở trạng thái “paused” có nghĩa là Space đang tạm dừng và sẽ không sử dụng tài nguyên cho đến khi được khởi động lại thủ công. Bất kỳ ai có quyền ghi vào Space đều có thể tạm dừng hoặc khởi động lại nó. Thời gian tạm dừng không bị tính phí.

Update on GitHub