Mục lục bài
Driver, CUDA Toolkit và wheel PyTorch khác nhau thế nào
Lưu ý: Dòng "CUDA Version" trong nvidia-smi là bản CUDA cao nhất driver hỗ trợ, không phải bản đã cài.
Các bước thực hiện
Tiến độ chỉ lưu trên trình duyệt này.
Bước 1: Tạo môi trường bằng uv (khuyến nghị)
Bash uv tải được cả trình thông dịch Python, cài gói nhanh và tương thích lệnh
pipquauv pip.Bước 2: Hoặc dùng conda (Miniforge)
Bash Cảnh báo: PyTorch đã ngừng phát hành gói qua kênh conda riêng. Trong môi trường conda, cài PyTorch bằng pip theo lệnh ở bước kế tiếp.
Bước 3: Cài PyTorch đúng bản CUDA
Mở trang "Get Started" của PyTorch, chọn Linux → Pip → bản CUDA, rồi chép lệnh. Ví dụ với wheel CUDA 12.8:
Bash Mẹo: Chỉ số
cu128là ví dụ. Chọn bản mà driver của bạn hỗ trợ và mà PyTorch đang phát hành — danh sách thay đổi theo từng phiên bản PyTorch.Bước 4: Kiểm tra PyTorch nhận GPU
check_gpu.py Bash Bước 5: Cài thư viện huấn luyện LLM
Bash python -m bitsandbytesin thông tin chẩn đoán, giúp phát hiện sớm việc thư viện không tìm thấy CUDA.Bước 6: Cài flash-attention (tuỳ chọn)
FlashAttention-2 yêu cầu GPU đời mới được liệt kê trong README của dự án. Nếu không có wheel dựng sẵn khớp phiên bản, pip sẽ biên dịch từ mã nguồn — cần CUDA Toolkit và mất khá lâu.
Bash Lưu ý: Không cài được flash-attn vẫn huấn luyện được: dùng
attn_implementation="sdpa"(attention tích hợp sẵn trong PyTorch).Bước 7: Ghim phiên bản để tái lập
Bash - Ghi kèm phiên bản driver (
nvidia-smi) và hệ điều hành vào README dự án. - Không nâng
torch,transformers,trl,peftlẻ tẻ giữa chừng một đợt huấn luyện. - Với dự án dài hạn, cân nhắc đóng gói thành image Docker (xem bài Docker & GPU).
- Ghi kèm phiên bản driver (
Kiểm tra thành công
Thành công khi dòng đầu in True, bản CUDA runtime không phải None, và các thư viện import không lỗi.
Lỗi thường gặp & cách sửa
torch.cuda.is_available() trả về False
Nguyên nhân thường gặp: Cài nhầm wheel CPU (torch.version.cuda = None), driver quá cũ, hoặc biến CUDA_VISIBLE_DEVICES đang ẩn GPU.
Nếu torch.version.cuda là None: gỡ torch và cài lại với --index-url bản CUDA.
The NVIDIA driver on your system is too old
Nguyên nhân thường gặp: Wheel PyTorch dùng CUDA runtime mới hơn khả năng driver.
Cài wheel PyTorch với bản CUDA thấp hơn, hoặc nâng driver.
flash_attn: undefined symbol khi import
Nguyên nhân thường gặp: flash-attn được biên dịch với một bản torch khác bản đang cài.
Biên dịch flash-attn làm máy treo hoặc bị kill
Nguyên nhân thường gặp: Biên dịch song song quá nhiều job, cạn RAM.
Giảm MAX_JOBS (ví dụ 2), đóng tiến trình khác, hoặc dùng image NGC có sẵn thư viện đã biên dịch.
Bước tiếp theo
Dùng môi trường vừa dựng để fine-tune mô hình tiếng Việt.
Nguồn chính chủ
Lệnh, tên gói và tham số thay đổi theo phiên bản. Trước khi chạy trên máy thật, hãy kiểm tra phiên bản mới nhất tại trang chính chủ:
- PyTorch — Get Started
- uv — Documentation
- Miniforge (conda-forge)
- FlashAttention — GitHub
- bitsandbytes — Hugging Face docs
Giới hạn của bài
- Chỉ số wheel
cu128và bản Python 3.12 là ví dụ; tổ hợp được hỗ trợ thay đổi theo từng bản phát hành. - Bài không đề cập GPU AMD (ROCm) hay Apple Silicon.
Kỹ sư HQG khảo sát, lên cấu hình, lắp đặt và bàn giao hạ tầng AI chạy được thật.