Viết giả thuyết trước khi bắt đầu tính toán
Mô tả hành vi cần cải thiện: phân loại tài liệu của một lĩnh vực, tuân thủ một định dạng trả lời hoặc trích xuất thông tin có cấu trúc. Đồng thời xác định những gì không được suy giảm. Với trích xuất, đó có thể là tính hợp lệ của định dạng và sự hiện diện của các trường bắt buộc; với phân loại, là một chỉ số theo từng danh mục thay vì chỉ một giá trị trung bình chung.
Trước tiên hãy đánh giá mô hình khởi điểm trên một tập tách riêng khỏi tập huấn luyện. Lưu lại kết quả đầu ra và cấu hình của lần đánh giá này. Bạn sẽ có thể so sánh phần thích ứng với một điểm khởi đầu cụ thể và phát hiện cải thiện chỉ giới hạn ở một số ví dụ. Hãy để dành tập kiểm tra cuối cùng: dùng nó liên tục để chọn mọi cấu hình cuối cùng sẽ làm suy yếu giá trị kiểm chứng của nó.
Chuẩn bị dữ liệu và cách phân chia
Hãy quản lý phiên bản cho các ví dụ, quy tắc làm sạch và các phép biến đổi. Tìm các bản trùng lặp giữa tập huấn luyện và tập đánh giá, sau đó kiểm tra một mẫu nhỏ sau khi tiền xử lý đúng như chương trình. Với văn bản, hãy kiểm tra tokenizer, các dấu phân tách, việc cắt bớt và các vị trí mà loss được tính. Với hình ảnh, hãy kiểm tra kích thước và các phép biến đổi áp dụng cho các danh mục.
Ví dụ về chuẩn bị: lấy một vài ví dụ đại diện của mỗi danh mục, hiển thị dạng của chúng sau biến đổi và kiểm tra thủ công nhãn mục tiêu mong đợi. Sau đó chạy một lượt đầy đủ qua vòng lặp huấn luyện và đánh giá. Cách này nhằm tìm lỗi dữ liệu hoặc lỗi kết nối; nó không cho phép kết luận về chất lượng cuối cùng của mô hình.
Chọn các tham số bạn huấn luyện
Fine-tuning toàn phần cập nhật toàn bộ các tham số mà mô hình của bạn dự kiến. Một phương pháp như LoRA giữ nguyên trọng số gốc và học thêm các ma trận bổ sung hạng thấp trong các module được chọn. Lựa chọn này giảm số tham số có thể huấn luyện, nhưng không loại bỏ nhu cầu nạp mô hình gốc và xử lý các activation của nó.
Hãy ghi lại các module được nhắm mục tiêu, các tham số có thể huấn luyện và các lớp bổ sung được lưu nếu có. Với LoRA, hạng là một phần của cấu hình cần so sánh; nó không đủ để dự đoán chất lượng. Hãy kiểm tra ngay từ đầu rằng một bước cập nhật thực sự thay đổi các tham số mong đợi. Khi xuất, adapter phải vẫn gắn với mô hình gốc và đúng phiên bản của nó.
Tính toán kích thước cho một bước huấn luyện hoàn chỉnh
Hãy chạy thử một bước bao gồm tính toán loss, lan truyền ngược và cập nhật optimizer. Một mô hình vừa đủ bộ nhớ khi tải có thể vượt quá dung lượng khả dụng trong bước này. Hãy đo với độ dài đầu vào và microbatch đại diện. Độ chính xác, trạng thái optimizer và các tham số thực sự được huấn luyện đều nằm trong phần ước tính.
Tích lũy gradient cho phép tổ chức một lần cập nhật từ nhiều microbatch; hãy ghi lại số lượng microbatch và cách chuẩn hóa loss. Activation checkpointing đánh đổi một số phép tính bổ sung để giữ lại ít activation hơn. Hãy kiểm tra riêng từng tùy chọn này trước khi kết hợp chúng. Chúng thay đổi diễn biến của thí nghiệm và phải được ghi vào hồ sơ kết quả.
Giữ CUDA, ROCm và chế độ phân tán trong quy trình
Kiểm tra tính tương thích của mô hình, các extension và phương pháp thích ứng với backend đã chọn. Trên NVIDIA, hãy chuẩn bị chuỗi CUDA; trên AMD, chuỗi ROCm. Việc đổi nền tảng đòi hỏi phải thực hiện lại các kiểm tra khởi chạy và chất lượng. Hãy giữ lại đúng các phiên bản thực sự được dùng thay vì giả định rằng một môi trường cùng tên sẽ cho ra cùng một kết quả thực thi.
Với DistributedDataParallel, mỗi tiến trình làm việc với một bản sao của mô hình và các gradient được đồng bộ hóa. Chiến lược này không tự động chia sẻ trọng số giữa bộ nhớ của các GPU; việc phân chia dữ liệu cũng phải được cấu hình. Nếu mục tiêu của bạn là chứa được một trạng thái lớn hơn, hãy xem xét một chiến lược phân tán trạng thái đó và kiểm tra các ràng buộc của nó trước khi tăng số lượng batch.
Tổ chức các biến thể và quyết định cuối cùng
Hãy đặt mã định danh cho mỗi thí nghiệm và chỉ thay đổi một nhóm tham số mà bạn có thể giải thích. Giữ nguyên cùng một quy trình đánh giá giữa các biến thể, với seed, ngân sách huấn luyện và dữ liệu đã dùng. Cũng hãy ghi lại cả những lần chạy thử bị gián đoạn hoặc không hợp lệ: loại bỏ chúng mà không giải thích sẽ khiến việc so sánh khó diễn giải.
Hãy lên kế hoạch thuê 3, 7 hoặc 30 ngày theo các giai đoạn riêng biệt: kiểm tra ban đầu, thí nghiệm, đánh giá, khôi phục và xuất. Giữ một khoảng dự phòng để đọc lại một checkpoint trong một tiến trình mới. Cuối cùng, hãy bàn giao mô hình hoặc adapter, cấu hình của nó, các kết quả so sánh và những hạn chế đã quan sát được. Bạn vẫn tự chủ trong việc chọn các xử lý; Kernodeck không tiến hành kiểm tra nội dung của chúng.