# Triển khai nhanh LLaMA-Factory

## Tổng quan
LLaMA-Factory là một khung tinh chỉnh mô hình lớn toàn diện mã nguồn mở bao gồm các giai đoạn tiền huấn luyện, tinh chỉnh theo chỉ dẫn và RLHF (Học tăng cường từ phản hồi của con người). Nó có các ưu điểm như hiệu quả cao, dễ sử dụng và khả năng mở rộng, đồng thời được trang bị LLaMA Board, một giao diện tinh chỉnh web trực quan một cửa không cần mã lệnh. Nó cũng bao gồm các phương pháp huấn luyện khác nhau như tiền huấn luyện, tinh chỉnh có giám sát và RLHF, hỗ trợ tái tạo quy trình huấn luyện ChatGPT 0-1, có các lời nhắc tham số phong phú bằng tiếng Trung và tiếng Anh, giám sát trạng thái thời gian thực, quản lý điểm dừng mô hình ngắn gọn, và hỗ trợ kết nối lại và làm mới web.

## Triển khai nhanh
Đăng nhập vào bảng điều khiển VNPT Cloud (https://services.cloud.vnpt.vn/uhost/uhost/create ). Chọn "Loại GPU" và "Card đồ họa hiệu suất cao giá tốt 6" cho loại máy chủ, và tùy chỉnh các chi tiết như số lượng CPU và GPU theo nhu cầu. </br>

Cấu hình tối thiểu được đề xuất: CPU 16 lõi, RAM 64G, 1 GPU. </br>

Chọn "Thị trường Image" cho image, tìm kiếm "LLaMA-Factory" cho tên image, và chọn image này để tạo GPU Host. </br>

Sau khi tạo thành công GPU Host, hãy đăng nhập vào GPU Host. </br>
</br>

## Thực hành vận hành
Truy cập http://ip:7860 qua trình duyệt của bạn. Vui lòng thay thế IP bằng IP ngoại vi của Host, và kiểm tra các quy tắc bảo mật trong bảng điều khiển nếu bạn không thể truy cập.
### 1. Tải thiết bị

  Lưu ý: Các mô hình ở mục 1 và 2 phải tương ứng một-một. Đường dẫn ở mục 2 là đường dẫn của mô hình đã tải xuống trên máy ảo cục bộ.
### 2. Vận hành
<!-- image-todo --></br>

![img](https://cdn.udelivrs.com/2025/04/9eedb7cad40babb28ee42d6e8c94ce52_1744855475569.png)


### 3. Tham số huấn luyện
<!-- image-todo --></br>

Sau khi huấn luyện bằng giao diện người dùng web, bạn có thể nhấp vào Làm mới Adapters để tải lại các trọng số LoRA cục bộ và chỉ định các trọng số LoRA đã được huấn luyện thông qua đường dẫn adapter.

Khi các trọng số được chọn, quá trình huấn luyện sẽ tiếp tục từ các trọng số LoRA đã được huấn luyện.

Sau khi chọn các trọng số, các cuộc hội thoại sẽ được thực hiện với mô hình LoRA đã được huấn luyện.

Lưu ý: Do các quy tắc đường dẫn của giao diện người dùng web, nó chỉ có thể nhận dạng các trọng số LoRA được huấn luyện bằng giao diện người dùng web và không thể xác định các trọng số được huấn luyện qua dòng lệnh.
<!-- image-todo --></br>
Bit lượng tử hóa cần được đặt thành 4, nếu không, bộ nhớ video 24G của mô hình được đề xuất hiện tại sẽ bị eo hẹp.

Mẫu lời nhắc được liên kết với mô hình tương ứng. Vì nó sẽ tự động được đưa ra sau khi chọn tên mô hình ở trên, nên không cần phải điều chỉnh.
<!-- image-todo --></br>
Chọn tập dữ liệu huấn luyện ở vị trí trong hình, và nhấp vào **Xem trước tập dữ liệu** để xem trước dữ liệu huấn luyện.

Nếu bạn cần thêm một tập dữ liệu tùy chỉnh, vui lòng tham khảo /home/ubuntu/LLaMA-Factory/data/README.md
<!-- image-todo --></br>
**Tốc độ học** nằm trong khoảng từ 1e-5 đến 5e-4 (không thay đổi trình tối ưu hóa). Điều này hơi bí ẩn, bạn có thể thử một vài tốc độ học khi muốn nâng cao điểm số.

**Epochs** có thể được điều chỉnh theo biểu đồ loss. Đối với các tập dữ liệu nhỏ hơn 10.000 mẫu, hãy bắt đầu với epochs=3 và tăng lên nếu đường cong không phẳng ở cuối. Đối với các tập dữ liệu trên 60.000 văn bản (trung bình ≥20 ký tự mỗi văn bản), hãy đặt epochs trong khoảng 1-3.

Giá trị được đề xuất cho **Chuẩn gradient tối đa** là từ 1-10.

**Số mẫu tối đa** dùng để giới hạn việc sử dụng một vài mục đầu tiên của tập dữ liệu. Sử dụng toàn bộ tập dữ liệu để huấn luyện; đặt thành 10 trong quá trình thử nghiệm để giảm thời gian xác thực.
<!-- image-todo --></br>
**Độ dài cắt bỏ** xác định độ dài tối đa để cắt ngắn các câu huấn luyện. Các câu dài hơn đòi hỏi nhiều bộ nhớ GPU hơn; nếu bộ nhớ không đủ, hãy xem xét giảm giá trị này xuống 512 hoặc thậm chí 256. Tham số này nên được đặt theo yêu cầu về độ dài chuỗi của tác vụ tinh chỉnh của bạn. Lưu ý rằng sau khi tinh chỉnh, hiệu suất của mô hình có thể giảm trên các câu dài hơn độ dài cắt bỏ đã chỉ định.

**Kích thước lô** ảnh hưởng đến chất lượng, tốc độ huấn luyện và việc sử dụng bộ nhớ GPU. Để có chất lượng huấn luyện tối ưu, tích của Kích thước lô * Số bước tích lũy gradient thường nên nằm trong khoảng từ 16 đến 64, đây là kích thước lô hiệu quả. Kích thước lô lớn hơn (ví dụ: lên đến 4090 đối với các GPU hiện đại) có thể tăng tốc độ huấn luyện nhưng làm tăng mức tiêu thụ bộ nhớ. Theo kinh nghiệm, kích thước lô là 4 thường là giới hạn trên cho các thiết lập bị hạn chế về bộ nhớ; hãy giảm giá trị này nếu gặp lỗi hết bộ nhớ.

Đối với các chuỗi cực dài (ví dụ: 2048 token), hãy sử dụng Kích thước lô=1 với Tích lũy Gradient=16. Tích lũy gradient không ảnh hưởng trực tiếp đến việc sử dụng bộ nhớ nhưng làm tăng kích thước lô hiệu quả, do đó ảnh hưởng đến sự ổn định và hội tụ của quá trình huấn luyện.
<!-- image-todo --></br>

**Số bước lưu** xác định tần suất lưu điểm kiểm tra mô hình trong quá trình huấn luyện, cho phép khôi phục sau các gián đoạn không mong muốn. Tổng số bước huấn luyện được tính bằng epochs × tổng_số_mẫu ÷ kích_thước_lô ÷ tích_lũy_gradient, cũng được hiển thị trong thanh tiến trình huấn luyện. Mỗi điểm kiểm tra lưu toàn bộ trọng số mô hình, thường chiếm hàng chục gigabyte (GB) dung lượng lưu trữ.

Khuyến nghị: Đặt Số bước lưu thành 1000+ để tránh làm cạn kiệt dung lượng đĩa nhanh chóng. Sau khi huấn luyện hoàn tất, các điểm kiểm tra có thể được xóa khỏi thư mục: /home/ubuntu/LLaMA-Factory/saves/ChineseLLaMA2-13B-Chat/lora/...
<!-- image-todo --></br>
Lệnh Xem trước tạo ra một lệnh tương đương để chạy trong terminal. Thư mục đầu ra chỉ định nơi lưu kết quả huấn luyện và các điểm kiểm tra. Sau khi định cấu hình tất cả các tham số, hãy nhấp vào Bắt đầu để bắt đầu huấn luyện trực tiếp. Ngoài ra, bạn có thể sao chép lệnh đã tạo và thực thi nó trong môi trường Conda llama_factory dưới thư mục /home/ubuntu/LLaMA-Factory.