Padding, packing và biên document trong một sequence

Padding, packing và biên document trong một sequence An architecture diagram generated by Archify. Doc A và Doc B · 4 token và 3 token · Architecture component Doc A và Doc B 4 token và 3 token Pad từng document · [A A A EOS PAD PAD PAD] · Architecture component Pad từng document [A A A EOS PAD PAD PAD] Vị trí PAD · GPU vẫn tính, không học gì · Architecture component Vị trí PAD GPU vẫn tính, không học gì Ghép rồi cắt cố định · [A A A EOS B B EOS C] · Architecture component · utilization cao hơn Ghép rồi cắt cố định [A A A EOS B B EOS C] utilization cao hơn Fixed-length sequence · một sample, nhiều document · Architecture component Fixed-length sequence một sample, nhiều document Attention xuyên biên · B1 nhìn thấy A1 A2 A3 · Hai lựa chọn khi một sequence chứa nhiều document Attention xuyên biên B1 nhìn thấy A1 A2 A3 Mask theo biên document · mỗi block chỉ nhìn trong nó · Hai lựa chọn khi một sequence chứa nhiều document Mask theo biên document mỗi block chỉ nhìn trong nó pad cho đủ độ dài phần trống còn lại nối liền nhau cắt theo độ dài để attention chạy suốt chặn tại biên Hai lựa chọn khi một sequence chứa nhiều document Legend Backend Database Security Message bus External

Vì sao pretraining không pad từng document

  • • Mỗi vị trí PAD vẫn tốn phép tính nhưng không mang nội dung
  • • Ghép document rồi cắt theo độ dài cố định thì gần như không phí
  • • Trong SFT, sequence packing là kỹ thuật gần giống nhưng không đồng nhất

Một sequence không đồng nghĩa một document

  • • Document dài bị chia qua nhiều training sequence
  • • Một sequence có thể chứa đuôi document này và đầu document kia
  • • Vị trí EOS đánh dấu biên, nhưng không tự động chặn attention

Boundary token và boundary mask là hai chuyện

  • • EOS là một token thật, có thể trở thành target để model dự đoán
  • • Mask biên là quyết định riêng của recipe, không phải hệ quả của EOS
  • • Llama 3 công bố train trên sequence 8.192 token có mask theo biên