Catastrophic forgetting là khi fine-tune trên tác vụ mới, model quên mất năng lực chung đã học lúc pre-training. Fine-tune trên hỏi đáp y khoa xong thì trả lời y khoa tốt lên, nhưng viết code kém đi, suy luận yếu đi, và thường mất luôn cả giọng trợ lý lẫn khả năng từ chối yêu cầu độc hại.
Nguyên nhân: gradient của tác vụ mới đẩy trọng số lệch khỏi vùng mà pre-training đã tìm được. Loss trên tác vụ mới giảm đẹp, còn năng lực cũ bị ghi đè ở các layer dùng chung — nên nhìn vào loss lúc train sẽ không thấy gì bất thường.
Triệu chứng: điểm trên các benchmark chung tụt; model chỉ còn giỏi đúng tác vụ vừa train; giọng thô hơn và không còn từ chối như trước.
Cách phòng, xếp theo hiệu quả trên công bỏ ra:
- PEFT (LoRA/QLoRA) — đóng băng trọng số gốc, chỉ train một bộ adapter nhỏ. Cách đơn giản và hiệu quả nhất: năng lực gốc gần như không đụng tới, và giữ adapter tách rời còn cho phép bật tắt hoặc đổi adapter theo tác vụ. Đây nên là lựa chọn mặc định.
- Trộn lại dữ liệu cũ (rehearsal) — pha dữ liệu instruction đa dụng vào tập fine-tune, tỉ lệ thường dùng khoảng 70% dữ liệu tác vụ mới và 30% dữ liệu chung. Rẻ, dễ làm, và bù đúng vào chỗ bị quên.
- Learning rate thấp, ít epoch — train càng mạnh càng quên nhiều. Một tới ba epoch thường là đủ; theo dõi tập dev và dừng sớm.
- Đóng băng các layer dưới — layer dưới giữ đặc trưng chung, layer trên mới mang tính tác vụ. Chỉ mở phần trên là giảm được nhiều mất mát.
- Phạt độ lệch so với model gốc (thêm số hạng KL vào loss) khi cần chặt hơn, hoặc train nhiều tác vụ cùng lúc thay vì nối tiếp.
Việc bắt buộc: đo trên benchmark đa lĩnh vực trước và sau khi fine-tune, không chỉ đo trên tập test của tác vụ mới. Nhìn mỗi điểm tác vụ mới thì bao giờ cũng thấy tiến bộ — đúng lúc model đang mất những thứ khác. Nhớ kiểm cả phần alignment: model còn từ chối yêu cầu độc hại và giữ được giọng không.
Quy tắc kinh nghiệm: fine-tune model đa dụng thì mặc định dùng PEFT + rehearsal. Chỉ full fine-tune khi có đủ hạ tầng và chấp nhận đánh đổi mất một phần năng lực chung.