Fine-tuning: từ dữ liệu thô đến checkpoint tốt nhất

Fine-tuning: từ dữ liệu thô đến checkpoint tốt nhất A data-flow diagram generated by Archify. 01 / Dữ liệu 02 / Biểu diễn 03 / Model 04 / Tối ưu 05 / Đánh giá Train split · văn bản + nhãn · 01 / Dữ liệu · model học từ đây Train split văn bản + nhãn model học từ đây Chia dữ liệu · train / val / test · 01 / Dữ liệu · chống rò rỉ Chia dữ liệu train / val / test chống rò rỉ input_ids + mask · [batch, seq_len] · 02 / Biểu diễn · model chỉ nhận số input_ids + mask [batch, seq_len] model chỉ nhận số Collate + padding · pad trong từng batch · 02 / Biểu diễn · quyết định chi phí Collate + padding pad trong từng batch quyết định chi phí Encoder + head · hidden state → logits · 03 / Model · forward pass Encoder + head hidden state → logits forward pass Chiến lược freeze · head / partial / full · 03 / Model · chọn trước khi train Chiến lược freeze head / partial / full chọn trước khi train Cross-entropy · loss → gradient · 04 / Tối ưu · backward() Cross-entropy loss → gradient backward() AdamW + scheduler · learning rate theo bước · 04 / Tối ưu · optimizer.step() AdamW + scheduler learning rate theo bước optimizer.step() Validation · metric + learning curve · 05 / Đánh giá · không update weights Validation metric + learning curve không update weights Best checkpoint · theo validation metric · 05 / Đánh giá · khác epoch cuối Best checkpoint theo validation metric khác epoch cuối chỉ train được học data tokenize encoding gom thành batch batching forward compute layer nào có gradient cấu hình logits so với nhãn objective gradient backward hết epoch đánh giá lưu khi cải thiện checkpoint Legend primary data policy / PII async batch data store data flow

Vòng trong — mỗi batch

  • • forward → loss → backward → optimizer.step()
  • • scheduler.step() rồi zero_grad() trước batch sau
  • • Đây là vòng lặp chạy hàng nghìn lần mỗi epoch

Vòng ngoài — mỗi lần đánh giá

  • • Validation không cập nhật weights, chỉ đo
  • • Learning curve nói model đang overfit hay underfit
  • • Chỉnh hyperparameter rồi chạy lại toàn bộ vòng trong

Ba quyết định trước dòng code đầu tiên

  • • Chất lượng split quyết định mọi con số phía sau
  • • Chiến lược freeze quyết định memory và nguy cơ overfit
  • • Learning rate quyết định model hội tụ hay phá hỏng pretrained