Gần đây tôi đã thử tiến hành fine-tuning SFT và LoRA với các mô hình nhỏ Gemma 3 cho miền gợi ý phim. Trong quá trình thử nghiệm, tôi cảm nhận được một vài giới hạn về khả năng tiếp thu kiến thức của các mô hình nhỏ (SLM), nên đăng câu hỏi này.
[Thử nghiệm]
- Mô hình sử dụng: gemma-3-270m-it, gemma-3-1b-it
- Phương pháp huấn luyện: LoRA và SFT
- Kết quả thử nghiệm: mô hình 1B có thể suy luận ở một mức độ nhất định dựa trên tri thức sẵn có, nhưng với mô hình 270M, tôi có cảm giác rằng do giới hạn về số lượng tham số nên bản thân “dung lượng chứa” để tiếp nhận kiến thức miền mới đã không đủ.
Toàn bộ quá trình tuning tôi đã ghi lại qua nhiều bài viết trên blog bên dưới.
https://seungsang.tistory.com/entry/…
[Vấn đề đang gặp phải]
- Giới hạn dung lượng của LoRA: vì tham số được huấn luyện chỉ chiếm khoảng 1% toàn bộ mô hình, nên nó có giới hạn trong việc bơm kiến thức (Knowledge Injection) vượt ra ngoài mức thích nghi tác vụ đơn thuần (Task Adaptation).
- Băn khoăn về full fine-tuning: nếu cập nhật toàn bộ trọng số của mô hình thì sẽ có lợi cho việc bơm kiến thức, nhưng tôi nghĩ rằng năng lực suy luận (Reasoning) mang tính tổng quát vốn có sẽ bị mất đi. Dù muốn trộn thêm dữ liệu replay để ngăn điều này, nhưng dữ liệu huấn luyện của base model lại không được công khai nên rất khó thực hiện.
Trong trường hợp phim ảnh, tôi nghĩ fine-tuning khả thi vì mô hình vốn đã có sẵn kiến thức.
Nhưng nếu tôi muốn dựa trên một miền cụ thể thì nên làm thế nào?
Khi muốn chuyên biệt hóa một mô hình nhỏ cho một miền nhất định, chiến lược nào có thể giúp vượt qua giới hạn dung lượng tham số và bơm kiến thức miền một cách hiệu quả?
Rất mong nhận được nhiều lời khuyên. Nếu có thể chia sẻ các kinh nghiệm đa dạng như CPT (Continue Pre-training) thì tôi sẽ rất cảm kích.
5 bình luận
Tôi cũng từng fine-tuning với bản 7B mà không được, suýt phát điên luôn. Tự nhiên PTSD lại trỗi dậy.
Bây giờ bạn vẫn đang làm chứ?
Nếu được, bạn có thể chia sẻ những điều bạn cảm nhận được khi làm và vài mẹo nhỏ không?
LoRA và fine-tuning không phù hợp để bơm tri thức. LoRA và fine-tuning tối ưu hơn cho việc hiệu chỉnh phong cách/giọng điệu đầu ra. Nếu bạn đưa thông tin liên quan đến tri thức vào prompt đầu vào theo dạng RAG, sau đó đánh giá khả năng recall/độ chính xác của dữ liệu đầu ra rồi mới tiến hành LoRA/fine-tuning, thì sẽ hiệu quả hơn nhiều.
Tôi cũng muốn thêm một phiếu ủng hộ cho việc tận dụng RAG.
Cảm ơn bạn đã trả lời.
Nếu là RAG thì mình cũng đang hơi băn khoăn về cách lấy dữ liệu liên quan đến domain cho phù hợp.
Không biết có cần huấn luyện chính mô hình embedding hay không...
Mình muốn giảm cả số token của mô hình nhỏ nên đã muốn nội tại hóa kiến thức, nhưng có vẻ với LoRA thì cũng có giới hạn.
Mình sẽ suy nghĩ thêm về những điều bạn đã nói. Cảm ơn bạn.