Cùng một tệp dữ liệu, máy trạm gắn card 24 GB VRAM chạy trót lọt còn laptop 8 GB VRAM đã báo tràn bộ nhớ ngay bước nạp trọng số. Chênh lệch đó không nằm ở xung nhịp, mà nằm ở chỗ một phiên huấn luyện AI phải chứa đồng thời trọng số, gradient, trạng thái optimizer và activation trong bộ nhớ đồ họa. QLoRA sinh ra để cắt gọn đúng phần đó và kéo fine-tune model ngôn ngữ về gần tầm máy cá nhân, nên câu hỏi đáng hỏi là mỗi mốc 8, 12, 16 hay 24 GB VRAM thực sự đáp ứng tới đâu theo số đo công bố của Hugging Face.
QLoRA nén trọng số 4-bit, fine-tune model nhẹ đi bao nhiêu
Với full fine-tuning, toàn bộ trọng số gốc đều cập nhật ở bước lan truyền ngược, kéo theo nhu cầu VRAM vượt xa mọi cấu hình di động. Bảng đo trong tài liệu PEFT của Hugging Face ghi rõ với mô hình bigscience/T0_3B: huấn luyện toàn phần cần 47,14 GB VRAM, LoRA hạ xuống 14,4 GB, còn LoRA kèm DeepSpeed offload chỉ còn 9,8 GB VRAM nhưng đổi lại 17,8 GB RAM hệ thống. Ba con số này là cùng một mô hình, chỉ khác cách huấn luyện.

LoRA đóng băng trọng số ban đầu và chỉ chèn cặp ma trận phân rã nhỏ ở từng tầng, nên trạng thái optimizer chỉ còn phải duy trì cho phần adapter. QLoRA đi thêm một bước bằng cách lượng tử hóa chính khối trọng số gốc xuống định dạng 4-bit NormalFloat, kèm lượng tử hóa kép và optimizer phân trang để hấp thụ các đỉnh bộ nhớ. Bài viết bitsandbytes, 4-bit quantization and QLoRA của Hugging Face mô tả nguyên lý này và dẫn lại kết quả của nhóm tác giả QLoRA: một mô hình 65B tham số huấn luyện được trên đúng một GPU 48 GB mà vẫn giữ chất lượng ngang phiên bản 16-bit.
Bảng thử nghiệm trong chính bài viết đó chạy trên GPU T4 16 GB và cho thấy ngưỡng dịch chuyển rất nhanh theo độ dài chuỗi. Llama 7B ở NF4 với chuỗi 512 token, batch 1 và gradient accumulation 4 chạy lọt mà chưa cần kích hoạt gradient checkpointing; nâng chuỗi lên 1.024 token thì phải bật gradient checkpointing mới thoát lỗi tràn bộ nhớ. Llama 13B cũng lọt 16 GB ở chuỗi 512 token nhờ gradient checkpointing, còn ở chuỗi 1.024 token thì cần thêm lượng tử hóa lồng. Cùng một mô hình, chỉ đổi độ dài ngữ cảnh là yêu cầu VRAM đã đổi hẳn nhóm.
VRAM khi huấn luyện AI nặng hơn hẳn khi chạy suy luận
Đây là chỗ nhiều bạn tính nhầm ngay từ đầu. Khi chỉ chạy suy luận, bộ nhớ đồ họa chủ yếu giữ trọng số mô hình cùng bộ đệm KV cho ngữ cảnh đang xử lý. Khi huấn luyện AI, cùng lúc đó GPU còn phải giữ gradient của các tham số đang học, trạng thái optimizer và toàn bộ activation trung gian của mỗi lớp để phục vụ lan truyền ngược. Bốn khối này cộng lại khiến một mô hình vừa vặn lúc chạy hỏi đáp có thể tràn ngay khi bạn kích hoạt phiên fine-tune model, dù dung lượng tệp trọng số không đổi một byte nào.

QLoRA cắt được phần lớn hai khối giữa. Trọng số gốc đóng băng nên không sinh gradient, optimizer chỉ theo dõi vài chục triệu tham số adapter, và bản thân khối trọng số cũng co lại còn 4-bit. Chênh lệch vẫn rất lớn: bài Personal Copilot của Hugging Face ghi nhận huấn luyện toàn phần StarCoder 15,5B chiếm 70 đến 77,6 GB trên mỗi GPU trong cụm tám chiếc A100 80 GB, còn phiên bản QLoRA kèm flash attention v2 và gradient checkpointing chỉ chiếm 26 GB trên một GPU A100 40 GB ở chuỗi 2.048 token.
Vì vậy mình luôn tách bạch hai bài toán khi tư vấn cấu hình. Nếu bạn chỉ cần gọi mô hình có sẵn để hỏi đáp hay tóm tắt tài liệu, ngưỡng phần cứng thấp hơn nhiều và trọng tâm nằm ở độ trễ, mình đã bàn riêng trong bài Thực tế AI chạy local trên Laptop. Còn tự tinh chỉnh một mô hình theo dữ liệu riêng lại là tác vụ tính toán kéo dài, ép GPU duy trì tải cao liên tục và đòi hỏi dung lượng bộ nhớ đồ họa ở tầng hoàn toàn khác.
Mốc 8, 12, 16 và 24 GB VRAM đáp ứng QLoRA tới đâu
Mốc 16 GB là mốc duy nhất có số đo trực tiếp, vì bảng thử nghiệm của Hugging Face chạy đúng trên GPU 16 GB. Ở đó, Llama 7B ở NF4 chuỗi 512 token chạy được mà chưa cần gradient checkpointing, chuỗi 1.024 token thì phải bật; Llama 13B chuỗi 512 token cần gradient checkpointing, chuỗi 1.024 token cần thêm lượng tử hóa lồng. RTX 4090 Laptop và RTX 5080 Laptop đều mang 16 GB, nên đây là mốc bạn có thể đối chiếu thẳng với tài liệu thay vì suy đoán.

Với 24 GB trên RTX 5090 Laptop, bạn có thêm khoảng thở cho batch lớn hơn hoặc chuỗi dài hơn, nhưng vẫn chưa chạm được cấu hình QLoRA của StarCoder 15,5B vốn cần 26 GB theo phép đo của Hugging Face, tức là còn thiếu 2 GB và phải hạ batch hoặc rút chuỗi. Ở chiều ngược lại, 12 GB của RTX 5070 Ti Laptop nằm dưới cả mức 14,4 GB mà LoRA 16-bit cần cho một mô hình 3B, nên QLoRA 4-bit gần như là con đường bắt buộc chứ không còn là tùy chọn.
Còn 8 GB trên RTX 4060 Laptop và RTX 4070 Laptop là mốc mình phải nói thẳng: Hugging Face không công bố cấu hình nào ở mức này, nên mọi con số bạn gặp trên diễn đàn đều là kinh nghiệm cá nhân chứ không phải số đo chính chủ. Đối chiếu ngược từ tài liệu, 8 GB buộc bạn lùi về mô hình nhỏ hơn hẳn nhóm 7B, chuỗi ngắn, batch 1 và bật gradient checkpointing ngay từ đầu. Bài VRAM bao nhiêu là đủ cho laptop gaming cho thấy 8 GB đã tới ngưỡng ngay cả với game.
Vì sao khung huấn luyện AI chỉ gọi tới CUDA chứ không gọi NPU
Chuẩn Copilot+ PC yêu cầu NPU đạt từ 40 TOPS trở lên, con số này được các hãng nhắc rất nhiều nên dễ gây hiểu nhầm. NPU sinh ra để chạy suy luận ở mức điện năng thấp cho những tác vụ nền như xóa phông webcam hay tìm kiếm ngữ nghĩa cục bộ, với đồ thị tính toán cố định. Nó không phơi ra tập lệnh CUDA, không có đường đi cho cấu trúc gradient động, nên các khung huấn luyện AI phổ biến đơn giản là không có backend để gọi tới nó trong bước lan truyền ngược.
Cả hệ sinh thái tinh chỉnh mã nguồn mở, từ PyTorch tới transformers, PEFT và bitsandbytes, đều dựng trên CUDA và nhân Tensor của NVIDIA. Một máy đạt chuẩn Copilot+ PC nhưng chỉ có iGPU vẫn không chạy nổi phiên QLoRA nghiêm túc, còn một laptop gaming gắn GPU rời lại đáp ứng được. Mình đã phân tích khía cạnh chọn máy trong bài Laptop AI/ML cho sinh viên: GPU và RAM là yếu tố cốt lõi, và kết luận ở đó vẫn giữ nguyên khi bước sang tác vụ huấn luyện AI.
Bạn cũng nên phân biệt giữa dịch vụ tinh chỉnh trên đám mây và triển khai cục bộ. Khi bạn tải dữ liệu lên một nền tảng huấn luyện AI của nhà cung cấp, toàn bộ khối lượng tính toán nằm ở cụm máy chủ của họ, laptop chỉ gửi yêu cầu qua trình duyệt và cấu hình máy gần như không liên quan. Tự dựng môi trường fine-tune model trên máy cá nhân thì ngược lại, phần cứng của bạn gánh trọn phép nhân ma trận với cường độ cao suốt nhiều giờ, và mọi giới hạn VRAM đều bộc lộ ngay từ epoch đầu tiên.
Các thế hệ GPU di động đáp ứng huấn luyện cục bộ ra sao
Hai kiến trúc đang song song trên thị trường laptop là Ada Lovelace và Blackwell, khác nhau cả ở loại nhớ lẫn băng thông. Băng thông càng cao thì việc nạp khối tensor vào nhân CUDA càng ít phải chờ, nên mỗi bước huấn luyện AI rút ngắn được phần thời gian chết. Cần lưu ý danh xưng dễ đánh lừa: RTX 4090 Laptop dùng chip AD103 với 16 GB VRAM và băng thông 576 GB/s, hoàn toàn không phải bản để bàn cùng tên vốn có 24 GB trên chip AD102. Chọn máy theo danh xưng rất dễ hụt dung lượng.
| Dòng GPU di động | Kiến trúc & Số nhân CUDA | VRAM & Băng thông | Hiệu năng AI (TOPS) | Điểm Time Spy / Fire Strike |
|---|---|---|---|---|
| GeForce RTX 4060 Laptop | Ada Lovelace (3.072 nhân) | 8 GB GDDR6 (256 GB/s) | 233 TOPS | 10.338 / 26.530 |
| GeForce RTX 4070 Laptop | Ada Lovelace (4.608 nhân) | 8 GB GDDR6 (256 GB/s) | 321 TOPS | 11.959,5 / 30.051 |
| GeForce RTX 4090 Laptop | Ada Lovelace (9.728 nhân) | 16 GB GDDR6 (576 GB/s) | 686 TOPS | 21.251 / 46.191 |
| GeForce RTX 5070 Ti Laptop | Blackwell (5.888 nhân) | 12 GB GDDR7 (672 GB/s) | 992 TOPS | 16.739,5 / 43.722 |
| GeForce RTX 5080 Laptop | Blackwell (8.192 nhân) | 16 GB GDDR7 (896 GB/s) | 1.334 TOPS | 21.624,5 / 48.015,5 |
| GeForce RTX 5090 Laptop | Blackwell (10.496 nhân) | 24 GB GDDR7 (896 GB/s) | 1.824 TOPS | 23.967 / 50.860 |
RAM hệ thống đóng vai trò tuyến sau khi bạn kích hoạt cơ chế chuyển tải sang CPU. Chênh lệch băng thông rất thật: hai kênh DDR5-5600 cho khoảng 89,6 GB/s theo lý thuyết, còn GDDR7 trên RTX 5070 Ti Laptop và RTX 5090 Laptop lần lượt đạt 672 GB/s và 896 GB/s. Con số 9,8 GB VRAM kèm 17,8 GB RAM trong tài liệu PEFT cho thấy đúng bản chất của cơ chế này: bài toán chỉ dịch chỗ chứ không biến mất. Nhét dữ liệu qua PCIe luôn là phương án chống sập, không phải phương án nhanh.
Điểm Time Spy nói được gì về năng lực huấn luyện AI
Time Spy và Fire Strike đo năng lực đồ họa thời gian thực, không đo tốc độ của một vòng lặp lan truyền ngược. Hai bài đo này vẫn hữu ích ở chỗ phản ánh tương quan sức mạnh thô và chất lượng tản nhiệt của từng dòng máy, nhưng chúng không nói gì về việc mô hình có nằm vừa VRAM hay không. RTX 5070 Ti Laptop đạt 16.739,5 điểm Time Spy, thấp hơn RTX 4090 Laptop ở mức 21.251 điểm, trong khi cả hai lại chênh nhau 4 GB bộ nhớ theo hướng ngược với thứ tự điểm số.

Vì vậy thứ tự ưu tiên khi bạn chọn máy cho QLoRA nên là dung lượng VRAM trước, băng thông sau, điểm benchmark đồ họa cuối cùng. Một chiếc máy điểm cao hơn nhưng thiếu 4 GB bộ nhớ vẫn dừng ở lỗi Out of Memory, còn máy điểm thấp hơn mà đủ VRAM thì ít nhất chạy xong được phiên huấn luyện AI, dù chậm hơn. Mình nói thẳng để bạn khỏi kỳ vọng sai: laptop hỗ trợ bạn học và thử nghiệm quy trình fine-tune model, chứ chưa thay được cụm máy chủ chuyên dụng.
Gradient checkpointing và gradient accumulation là hai van xả VRAM
Gradient checkpointing xử lý đúng khối activation. Thay vì giữ lại đầu ra trung gian của mọi lớp cho tới lúc lan truyền ngược, kỹ thuật này chỉ lưu vài điểm mốc rồi tính lại phần còn thiếu khi cần. Bộ nhớ giảm đáng kể, đổi lại mỗi bước huấn luyện AI phải tính thêm một lượt xuôi. Bảng đo của Hugging Face cho thấy đúng vai trò của nó: Llama 7B ở chuỗi 1.024 token chỉ lọt GPU 16 GB khi bật gradient checkpointing, còn chuỗi 512 token thì chưa cần tới phương án này.
Gradient accumulation lại giải quyết batch. Bạn chạy nhiều lượt với batch nhỏ, cộng dồn gradient rồi mới cập nhật trọng số một lần, nhờ đó batch hiệu dụng lớn mà đỉnh VRAM vẫn giữ ở mức của batch nhỏ. Chính cấu hình batch 1 kèm gradient accumulation 4 là thứ mà bảng đo Llama 7B đang dùng. Trên máy 8 GB, hai kỹ thuật này thường là điều kiện cần để phiên fine-tune model khởi động được, chứ chưa phải thứ giúp bạn nhảy lên nhóm mô hình lớn hơn.
Optimizer phân trang của QLoRA đảm nhiệm vai trò khác: hấp thụ các đỉnh bộ nhớ đột biến thay vì hạ nền tiêu thụ. Khi gộp cả ba, thứ tự thử của mình là hạ độ dài chuỗi trước, rồi batch 1 kèm gradient accumulation, rồi bật gradient checkpointing, cuối cùng mới tính tới CPU offload. Càng xuống dưới danh sách thì tốc độ càng suy giảm, nên bạn dừng lại ở nấc đầu tiên chạy được thay vì kích hoạt hết mọi thứ cùng lúc.
Nhiệt độ và nguồn điện trong một phiên huấn luyện AI kéo dài
Huấn luyện AI khác chơi game ở chỗ tải gần như không có khoảng nghỉ. Một trận game vẫn xen kẽ màn chờ và những cảnh nhẹ, còn vòng lặp lan truyền ngược duy trì nhân Tensor bận liên tục từ epoch này sang epoch khác. Khi GPU chạm ngưỡng nhiệt do hãng đặt, xung nhịp tự hạ để bảo vệ linh kiện, và thời gian hoàn tất phiên QLoRA dài ra tương ứng. Ngưỡng cụ thể khác nhau theo từng dòng máy và từng phiên bản BIOS, nên bạn cần tự đo bằng phần mềm giám sát trên chính chiếc máy của mình.
Nguồn điện là biến số còn lại. Rời sạc, hệ thống quản lý năng lượng hạ công suất GPU để giữ pin, nên tốc độ tính toán ma trận suy giảm rõ và một phiên fine-tune model dài gần như chắc chắn hết pin giữa chừng. Mình khuyên bạn luôn cắm đúng bộ sạc theo máy khi chạy tác vụ này, kê cao đáy để lấy gió, và vệ sinh khe tản nhiệt định kỳ. Với máy mỏng nhẹ, hạ giới hạn công suất GPU đôi khi lại cho thời gian hoàn thành ổn định hơn là để máy bốc lên rồi rớt xung.
Câu hỏi thường gặp (FAQ)
Card 8 GB VRAM có tự fine-tune model ngôn ngữ được không?
Được, nhưng ở quy mô nhỏ và với nhiều ràng buộc. Bảng đo của Hugging Face dừng ở GPU 16 GB cho Llama 7B định dạng NF4, còn LoRA cho mô hình 3B đã cần 14,4 GB, nên 8 GB buộc bạn lùi về mô hình nhỏ hơn, chuỗi ngắn và batch bằng 1 kèm gradient checkpointing. Hugging Face không công bố mốc VRAM cho mức 8 GB nên mình không đưa con số cụ thể. Nếu bạn xác định làm việc lâu dài với nhóm 7B trở lên, hãy ưu tiên máy có 12 GB hoặc 16 GB.
Vì sao không lấy RAM hệ thống bù vào chỗ VRAM thiếu?
Cơ chế chuyển tải sang CPU có thật và PEFT hỗ trợ sẵn, nhưng nó đánh đổi tốc độ. Hai kênh DDR5-5600 cho khoảng 89,6 GB/s theo lý thuyết, trong khi GDDR7 trên RTX 5070 Ti Laptop đạt 672 GB/s và RTX 5090 Laptop đạt 896 GB/s. Mỗi lần dữ liệu phải đi qua PCIe là một lần tiến trình tính toán phải chờ. Tài liệu PEFT cũng cho thấy đánh đổi đó rất rõ: VRAM của T0_3B giảm còn 9,8 GB thì RAM hệ thống lại vọt lên 17,8 GB.
Nên chọn LoRA hay QLoRA khi máy chỉ có GPU 12 GB?
QLoRA gần như luôn là phương án hợp lý hơn ở mức bộ nhớ này khi bạn fine-tune model, vì nó nén trọng số gốc xuống 4-bit NormalFloat và nhờ vậy nới rộng khoảng mô hình mà bạn chạm tới được. Nhóm tác giả QLoRA cho biết cách làm này giữ được chất lượng ngang phiên bản 16-bit trên các tác vụ họ đánh giá. LoRA 16-bit chỉ đáng cân nhắc khi mô hình đủ nhỏ để vừa VRAM mà không cần nén, hoặc khi bạn muốn loại bỏ biến số lượng tử hóa lúc so sánh kết quả.
Cần bao nhiêu RAM và ổ cứng cho một môi trường huấn luyện AI?
Mình đề nghị tối thiểu 32 GB RAM DDR5 nếu bạn có ý định dùng tới CPU offload, bởi riêng cấu hình DeepSpeed trong tài liệu PEFT đã lấy 17,8 GB RAM cho một mô hình 3B, chưa tính hệ điều hành và khâu tiền xử lý dữ liệu. Về lưu trữ, một ổ NVMe từ 1 TB là mức dễ thở, vì mỗi bản trọng số gốc thường nặng hàng chục GB và mỗi phiên QLoRA còn sinh thêm nhiều tệp checkpoint. Tốc độ đọc ghi cao cũng rút ngắn thời gian nạp trọng số.





0 phản hồi cho “Fine-tune model bằng QLoRA: Phần cứng laptop đáp ứng tới đâu?”