wasting compute on semantically empty tokens.Unpadding avoids this inefficiency by removingpadding tokens, concatenating all sequencesfrom a minibatch into a single sequence, andprocessing it as a batch of one. Prior unpaddingimplementations unpad and repad sequencesinternally for different model layers, wastingcompute and memory bandwidth. We use FlashAttention’s variable length attention and RoPEimplementations, allowing jagged attention masksand RoPE applications on one unpadded sequence.ModernBERT unpads inputs before the tokenembedding layer and optionally repads modeloutputs leading to a 10-to-20 percent performanceimprovement over other unpadding methods.
Unpadding: Mô hình ModernBERT đi theo phương pháp của mô hình MosaicBERT và GTE trong việc triển khai unpadding cho cả huấn luyện và infer. Các mô hình encoder thường thêm token pad để đồng bộ chiều dài của các đầu vào, dẫn đến việc lãng phí tài nguyên để tính các token rỗng. Việc unpadding tránh được việc này bằng cách loại bỏ các token này, nối các chuỗi trong 1 batch thành 1 chuỗi duy nhất, sau đó cho xử lý như với batch_size = 1. Các cài đặt unpadding ban đầu loại bỏ và thêm pad lại cho các chuỗi ở từng layer, dẫn đến lãng phí thông lượng. Flash attention với độ dài có thể biến đổi và RoPE được sử dụng. cho phép attention mask có răng cưa và RoPE cho 1 chuỗi unpad đơn lẻ. ModernBERT unpad các đầu vào trước khi cho vào lớp embedding và có thể repad sau khi nhận được đầu ra