Token Merging (ToMe) – Gộp Token Để Tăng Tốc Vision Transformer
Token Merging (ToMe) giảm số lượng token bằng cách gộp các token giống nhau.
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: self-attention-mechanism.
Nội dung đề bài
Mục tiêu kiến thức
Token Merging (ToMe) giảm số lượng token bằng cách gộp các token giống nhau.
Bipartite Soft Matching:
- Chia tokens thành 2 set A và B (cách nhau 1 bước).
- Tính cosine similarity giữa mỗi token trong A và B.
- Với mỗi token trong A, tìm token gần nhất trong B (best match).
- Gộp r cặp token có similarity cao nhất.
- Merge: average hai token lại (hoặc weighted average theo importance).
Yêu cầu
def bipartite_soft_matching(
x: torch.Tensor, # [B, N, C]
r: int # số cặp cần gộp
) -> tuple[torch.Tensor, torch.Tensor]:
# Returns (merged_x [B, N-r, C], merge_indices [B, N])
passInput
- Hàm bipartite_soft_matching(x, r): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm bipartite_soft_matching: Trả về kết quả kiểu Any theo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 5000ms.
- Giới hạn bộ nhớ: 512MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
B, N, C = (2, 10, 16)
x = torch.randn(B, N, C)
r = 2
merged, _ = bipartite_soft_matching(x, r)
Output
(Tensor shape: (2, 8, 16), dtype=torch.float32, [[4, 0],
[2, 0]])
Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
x = torch.zeros(1, 4, 8)
x[0, 0] = torch.ones(8)
x[0, 2] = torch.ones(8)
merged, _ = bipartite_soft_matching(x, r=1)
Output
(Tensor shape: (1, 3, 8), dtype=torch.float32, [[0]])
Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
