Tới nội dung
Cloudj

Ứng dụng GPU

Chạy LLM 70B trên nhiều GPU: tính VRAM và lựa chọn tại châu Âu

Cách tính VRAM để chạy LLM 70B trên nhiều GPU, so sánh 2x 48 GB, một card 80 đến 96 GB và 4x 24 GB, rồi tìm máy phù hợp trên host ở EU.

Cập nhật · 4 phút đọc

Trước khi chạy LLM 70B trên nhiều GPU, hãy làm phép tính bộ nhớ. Mô hình 70 tỷ tham số là ngưỡng mà một card phổ thông không còn đủ, và lựa chọn giữa một GPU lớn hay vài GPU nhỏ trở thành câu hỏi thật. Bài này đi qua cách tính VRAM ở mức tổng quát, so sánh ba cấu hình phổ biến (hai card 48 GB, một card 80 đến 96 GB, bốn card 24 GB), và chỉ cách tìm máy phù hợp trên các host ở EU với mã DE, NL, FR và SE.

Ở Việt Nam, câu hỏi này hay đến từ các nhóm muốn tự host mô hình 70B làm trợ lý nội bộ cho doanh nghiệp thay vì gọi API bên ngoài, hoặc đội làm sản phẩm cho khách châu Âu. Về vị trí ở châu Âu nói chung, hãy bắt đầu với hướng dẫn thuê GPU châu Âu.

Tính VRAM một cách dễ hiểu

Bộ nhớ cho inference gồm hai phần chính.

1. Trọng số. Số tham số nhân số byte cho mỗi tham số:

Độ chính xácByte mỗi tham sốTrọng số 70B, xấp xỉ
16 bit (FP16/BF16)2khoảng 140 GB
8 bit1khoảng 70 GB
4 bitkhoảng 0,5khoảng 35 đến 40 GB

Các định dạng lượng tử hóa có thêm chút phần phụ, nên hãy coi đây là mức sàn chứ không phải con số chính xác.

2. KV cache. Mỗi token trong mỗi cuộc hội thoại đang mở đều lưu key và value cho mọi layer. Với kiến trúc 70B phổ biến dùng grouped-query attention, ước lượng thường gặp ở 16 bit là cỡ một phần ba megabyte cho mỗi token. Nghĩa là một hội thoại 8.000 token cần vài GB cache, và mười hội thoại cùng lúc cần hàng chục GB. Ngữ cảnh dài và nhiều người dùng đồng thời có thể cần lượng bộ nhớ ngang trọng số.

Cộng thêm vài GB cho runtime, CUDA context và activation. Quy tắc thực tế: trọng số + KV cache cho độ dài ngữ cảnh và số người dùng mục tiêu + 10 đến 20 phần trăm dư.

So sánh ba cấu hình

Cấu hìnhTổng VRAM70B 4 bit70B 8 bitGhi chú
2x RTX A6000, mỗi card 48 GB96 GBThoải mái, còn chỗ cho cacheChật; ít cacheCần tensor parallel trên hai card
1x H100 SXM, 80 GB80 GBThoải mái trên một cardKhông còn chỗ cache đáng kểKhông phải chia mô hình; phần mềm đơn giản nhất
1x RTX PRO 6000, 96 GB96 GBRất thoải máiVừa, cache ở mức vừa phảiMột card, nhiều bộ nhớ hơn H100
4x RTX 4090, mỗi card 24 GB96 GBChạy được với tensor parallelChậtTrao đổi giữa các card nhiều hơn; dòng phổ thông

Một card lớn là đơn giản nhất: không chia mô hình, ít thành phần, độ trễ thường ổn định nhất. Hai card 48 GB chia mô hình bằng tensor parallel và cho tổng bộ nhớ tương đương. Bốn card 24 GB đạt cùng tổng bộ nhớ bằng phần cứng phổ thông, đổi lại lưu lượng giữa các GPU nhiều hơn, mà trên card phổ thông thường đi qua PCIe. Phần chi phí này có thể làm giảm thông lượng, nên hãy thử trước khi chốt.

Cấp tài khoản rất quan trọng ở đây. RTX 4090 dùng được với tài khoản mới. RTX A6000, H100 và RTX PRO 6000 là card workstation hoặc data center, cần cấp tài khoản cao hơn; console sẽ báo khi lựa chọn chưa khả dụng.

Để biết khi nào nhiều GPU hơn một, xem bài một GPU hay nhiều GPU. Nếu cần nhiều bộ nhớ hơn nữa trên mỗi card, bài thuê H200 nói về hạng 141 GB.

Tìm máy phù hợp tại châu Âu

Trên Cloudj, số GPU là một phần của mỗi máy: 1x, 2x, 4x hoặc 8x, tất cả GPU nằm trong cùng một máy. Mở trang triển khai với RTX A6000, đặt số GPU là 2x và nhập:

DE, NL, FR, SE

Mỗi dòng ghi quốc gia ở cấp quốc gia, cùng độ tin cậy, thời hạn tối đa và giá băng thông. Máy nhiều GPU ít hơn máy một GPU, và tình trạng thay đổi trong ngày. Nếu không có máy phù hợp:

  1. Thử các cấu hình khác: 1x H100 SXM, 1x RTX PRO 6000, hoặc 4x RTX 4090.
  2. Dùng bộ lọc VRAM tối thiểu thay vì chọn model, rồi xem card nào xuất hiện.
  3. Thêm các mã EU khác hợp với chính sách của bạn.
  4. Với việc chạy nền không có ràng buộc EU, mở ra mọi quốc gia; bài thuê RTX A6000 tại Mỹ nói về cách tìm card này với mã US.

Ổ đĩa cũng quan trọng: trọng số 70B ở 4 bit đã vài chục GB, và bạn có thể giữ nhiều hơn một định dạng. Không thể nới ổ sau khi triển khai, nên hãy chọn dư.

Phục vụ trên hai hoặc bốn GPU

Cài phần mềm phục vụ qua SSH. Với vLLM, chia mô hình trên các GPU trong cùng máy bằng tensor parallel:

pip install vllm
vllm serve <hf-model-id> --tensor-parallel-size 2 --max-model-len 8192 --host 127.0.0.1 --port 8000

Dùng --tensor-parallel-size 4 trên máy 4x. Trong lúc phục vụ với tải sát thực tế, kiểm tra GPU nào cũng giữ một phần mô hình và đang làm việc:

nvidia-smi --query-gpu=index,memory.used,utilization.gpu --format=csv -l 5

Tài liệu vLLM giải thích checkpoint lượng tử hóa và các tham số bộ nhớ như tỉ lệ bộ nhớ GPU được dùng.

Những lưu ý thực tế

  • Giấy phép. Phần lớn mô hình mở 70B có giấy phép kèm điều kiện. Đọc kỹ trước khi dùng thương mại.
  • Sao lưu. Các máy là host độc lập, không có SLA phần cứng, và nếu host mất kết nối thì không tự chuyển máy. Giữ trọng số và cấu hình ở nơi có thể triển khai lại nhanh.
  • Thời hạn của máy. Kiểm tra ngày "available until" trước khi chạy dịch vụ dài.
  • Vị trí dữ liệu. Giới hạn mã EU giúp công việc nằm trên host ở EU, nhưng Cloudj không đưa ra cam kết tuân thủ; hãy tự kiểm tra nghĩa vụ của bạn.
  • Ngân sách. Máy nhiều GPU tiêu số dư nhanh hơn. Nạp đủ tiền bằng chuyển khoản VND và nhớ khoản cọc được giữ khi triển khai.

Câu hỏi thường gặp

Mô hình 70B chạy được trên một card 24 GB không?

Không thực tế. Ngay ở 4 bit, riêng trọng số đã vượt 24 GB. Hãy dùng tổng 96 GB VRAM hoặc một card 80 GB.

Một H100 có tốt hơn hai RTX A6000 không?

Một card đơn giản hơn và không phải chia mô hình. Hai A6000 cho tổng bộ nhớ lớn hơn để làm cache. Hãy thử cả hai với độ dài ngữ cảnh của bạn.

Các GPU trong máy 4x có nằm cùng một máy không?

Có. Mọi GPU của một instance nằm trong cùng một host.

Xem giá ở đâu?

Giá theo thời gian thực trên GPU cloud và từng trang model.

Bước tiếp theo

Tính trọng số cộng cache của bạn, rồi mở trang triển khai với RTX A6000, chọn 2x và DE, NL, FR, SE. So sánh với một H100 hoặc RTX PRO 6000, thử với tải thật, và sao lưu mọi thứ bạn triển khai.

Triển khai máy chủ hoặc mua proxy

Chọn vị trí trong console, xem giá trực tiếp và thanh toán từ số dư tài khoản.