Thủ thuật
So sánh các framework tinh chỉnh LLM: Unsloth, Axolotl, TRL và LLaMA-Factory
(giờ Việt Nam)
Tóm tắt AI
Bài viết phân tích sự khác biệt về tốc độ, VRAM và khả năng đa GPU giữa bốn framework tinh chỉnh LLM phổ biến nhất hiện nay, giúp bạn chọn công cụ phù hợp nhất cho dự án của mình.
Bản dịch AI

Hiện nay, có bốn dự án mã nguồn mở đang thống trị lĩnh vực tinh chỉnh (fine-tuning) LLM. Unsloth, Axolotl, TRL và LLaMA-Factory đều bao bọc cùng một nền tảng PyTorch và Hugging Face bên dưới. Sự khác biệt giữa chúng nằm ở cách phân bổ nỗ lực kỹ thuật.
Unsloth viết lại các kernel. Axolotl kết hợp các chiến lược song song hóa. TRL định nghĩa các API huấn luyện mà các dự án khác dựa vào. LLaMA-Factory tối ưu hóa cho sự đa dạng trong phạm vi hỗ trợ mô hình và khả năng vận hành không cần viết mã (zero-code).
Bài so sánh này bao quát ba trục mà các kỹ sư thực sự quan tâm: thông lượng huấn luyện (training throughput), VRAM đỉnh (peak VRAM) và khả năng mở rộng đa GPU (multi-GPU scaling).
Tìm hiểu từng framework
Unsloth: đạt hiệu suất ở cấp độ kernel trên một GPU đơn lẻ
Các kết quả benchmark được công bố của Unsloth cho thấy tốc độ huấn luyện nhanh gấp 2 lần đối với Llama 3.1 8B và Llama 3.3 70B. Thiết lập này sử dụng tập dữ liệu Alpaca, kích thước batch là 2 và tích lũy gradient (gradient accumulation) là 4. QLoRA được chạy ở rank 32 trên tất cả các lớp tuyến tính (linear layers).
Kết quả đối với MoE còn ấn tượng hơn. Unsloth đã tinh chỉnh unsloth/gpt-oss-20b-BF16 trên NVIDIA B200. Kết quả báo cáo đạt 712,33 ms mỗi bước ở ngữ cảnh 8K, so với 5.226,86 ms của Transformers v5. Đó là khoảng cách gấp 7,3 lần. Ở mức 4K, khoảng cách là 4,82 lần và ở mức 1K chỉ là 1,37 lần.
Xu hướng này phụ thuộc vào từng mô hình và tài liệu của Unsloth giới hạn tuyên bố này cho gpt-oss. Tại đó, tốc độ tăng dần theo độ dài chuỗi, nhờ vào Flex Attention và các kernel MoE.
Qwen3-30B-A3B trên B200 lại cho kết quả ngược lại. Tốc độ tăng trưởng được báo cáo giảm từ 1,7 lần ở mức 1K xuống còn 1,1 lần ở mức 16K. Tuy nhiên, khả năng tiết kiệm bộ nhớ lại đi theo hướng ngược lại, tăng từ khoảng 2% lên 15%.
Qwen3-30B-A3B trên H100 đạt tốc độ nhanh gấp 1,77 lần. GLM-4.7-Flash trên RTX PRO 6000 đạt 2,1 lần. Một dự án hợp tác với AMD đã đo lường Llama-3.1-8B LoRA SFT ở mức 2,07 giây/bước. TRL kết hợp với FlashAttention-2 mất 2,87 giây/bước, chênh lệch 1,39 lần với các đường cong mất mát (loss curves) tương đương nhau.
Axolotl: kế thừa kernel, song song hóa tự nhiên
Axolotl đã bổ sung các kernel Triton tùy chỉnh và các hàm autograd cho LoRA vào tháng 2 năm 2025, trong đó ghi nhận rõ ràng Unsloth là nguồn cảm hứng. Các tính năng này có thể được tùy chọn thông qua lora_mlp_kernel, lora_qkv_kernel và lora_o_kernel.
Các ghi chú phát hành gần đây đã bổ sung hỗ trợ SonicMoE LoRA. Nó mang lại tốc độ nhanh gấp 1,45 lần và giảm 30% bộ nhớ so với baseline grouped_mm. Con số này áp dụng cho Qwen3.5-35B-A3B 8-bit LoRA trên một GPU H100 SXM đơn lẻ.
Axolotl cũng tích hợp sẵn FlashAttention 2/3/4, xFormers, Flex Attention, SageAttention, Liger Kernel, Cut Cross Entropy và ScatterMoE.
TRL: baseline mà mọi người dùng để đo lường
TRL thường đóng vai trò là điểm tham chiếu hơn là người chiến thắng về thông lượng thô trên GPU đơn lẻ. Nó bù đắp bằng sự đa dạng của các đòn bẩy bộ nhớ và tốc độ được ghi lại trong tài liệu "Reducing Memory Usage and Speeding Up Training".
Các đòn bẩy đó bao gồm packing, padding-free batching, truncation, Liger Kernel và chế độ ngủ vLLM cho GRPO. TRL cũng có tích hợp chính thức với Unsloth, vì vậy hai framework này không loại trừ lẫn nhau.
LLaMA-Factory: tốc độ thông qua ủy quyền
LLaMA-Factory không tự viết kernel riêng. Nó tận dụng công việc của người khác thông qua các cờ cấu hình (config flags).
Thiết lập use_unsloth: true sẽ kích hoạt bản vá Unsloth. Nhật ký thay đổi của dự án báo cáo tốc độ tương đối đạt 170% từ đường dẫn đó. Việc huấn luyện chuỗi dài của Unsloth được liệt kê ở mức tốc độ 117% và bộ nhớ 50%. Nó cũng hỗ trợ enable_liger_kernel: true và FlashAttention-2 thông qua flash_attn: fa2.
VRAM
Các mức sàn bộ nhớ được báo cáo
Unsloth công bố bảng yêu cầu VRAM được sắp xếp theo số lượng tham số. Nó liệt kê 6 GB cho mô hình 8B trong 4-bit QLoRA và 41 GB cho 70B. LoRA ở mức 16-bit tiêu tốn 22 GB và 164 GB cho cùng các mô hình đó.
Bảng phần cứng trong README của LLaMA-Factory bao phủ cùng phạm vi cho 4-bit QLoRA. Nó liệt kê 6 GB ở mức 7B, 24 GB ở mức 30B và 48 GB ở mức 70B. Tinh chỉnh toàn bộ bf16 cho 70B được liệt kê ở mức 600 GB.
Cả hai bảng đều mô tả các mức tối thiểu. Kích thước batch, độ dài chuỗi và lựa chọn trình tối ưu hóa (optimizer) sẽ làm thay đổi con số thực tế.
Độ dài ngữ cảnh là yếu tố phân biệt rõ rệt hơn
VRAM đỉnh ở một ngữ cảnh cố định không thú vị bằng ngữ cảnh tối đa mà một ngân sách VRAM nhất định cho phép. Các benchmark về độ dài ngữ cảnh của Unsloth cho Llama 3.1 8B QLoRA ở rank 32 và kích thước batch 1 rất đáng chú ý.
Unsloth cho rằng điều này là nhờ thuật toán kiểm tra gradient (gradient checkpointing) kết hợp với Cut Cross Entropy của Apple. Đối với Llama 3.3 70B trên A100 80 GB, nó báo cáo đạt 89.389 token. Baseline FA2 chỉ đạt 6.916.
Câu chuyện bộ nhớ MoE
Huấn luyện MoE là nơi hành vi bộ nhớ thay đổi nhiều nhất trong năm 2026. Unsloth báo cáo việc tinh chỉnh gpt-oss-20b trong phạm vi 12,8 GB, trong khi Qwen3-30B-A3B ở mức 16-bit LoRA cần 63 GB.
Lần chạy gpt-oss trên B200 của nó sử dụng 47,43 GB ở ngữ cảnh 8K, trong khi Transformers v5 sử dụng 73,80 GB. Ở mức 16K, Transformers v5 bị tràn bộ nhớ (out of memory) còn Unsloth chỉ sử dụng 55,13 GB.
Cơ chế ở đây là công thức split-LoRA. PEFT hiện thực hóa LoRA delta trên tất cả các chuyên gia (experts) trước khi thực hiện MoE matmul. Thay vào đó, Unsloth sắp xếp lại các thao tác, về mặt toán học là giống hệt nhau nhưng tránh được việc hiện thực hóa dữ liệu.
Axolotl giải quyết vấn đề tương tự theo cách khác. Việc lượng tử hóa chuyên gia MoE của nó thực hiện lượng tử hóa trọng số chuyên gia trong quá trình tải mô hình, giải phóng ngay lập tức tensor bf16 gốc.
Lý do là một thay đổi trong Transformers v5. Các lớp chuyên gia đã chuyển từ nn.Linear sang các tensor 3D nn.Parameter được hợp nhất. bitsandbytes không còn có thể lượng tử hóa chúng khi tải. Tài liệu của Axolotl báo cáo rằng GLM-4.7-Flash QLoRA giảm từ khoảng 127 GiB xuống còn khoảng 23 GiB bộ nhớ dự trữ với quantize_moe_experts: true.
Đa GPU
Đây là nơi thứ hạng bị đảo ngược. Lợi thế GPU đơn lẻ của Unsloth không còn duy trì được nữa.
Axolotl: ma trận song song hóa sâu nhất
Hướng dẫn đa GPU của Axolotl cung cấp ba chiến lược sharding loại trừ lẫn nhau: DeepSpeed ZeRO từ giai đoạn 1 đến 3, FSDP và DDP. FSDP2 là con đường được khuyến nghị, còn FSDP1 đã bị phản đối (deprecated).
Trên hết, hướng dẫn N-D Parallelism của nó kết hợp song song hóa dữ liệu, tensor, ngữ cảnh và chuyên gia thông qua DeviceMesh của PyTorch. Ma trận hỗ trợ được ghi lại xác nhận các cấu hình FSDP+TP, HSDP+TP, FSDP+CP, FSDP+TP+CP và FSDP+EP.
Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.