E · Training Architecture
Local / global attention · lịch layer và ngân sách cache
Thiết kế xếp xen kẽ các lớp attention cửa sổ cục bộ (Sliding Window Attention) với một số lớp attention toàn cục để giới hạn kích thước KV cache trên văn bản dài.
1Định nghĩa
Lịch xếp lớp Local / Global Attention là kỹ thuật kết hợp hai phạm vi đọc ngữ cảnh giữa các lớp của mô hình: ở các lớp cục bộ (local layers), mỗi token chỉ đọc W token liền trước nó qua một cửa sổ trượt (Sliding Window Attention — SWA); cứ sau một vài lớp cục bộ mới đặt một lớp toàn cục (global layer) cho phép đọc toàn bộ chuỗi từ đầu.
Cách tổ chức này mang lại lợi ích trực tiếp cho ngân sách HBM và tốc độ suy luận: với các lớp cục bộ, KV cache chỉ cần giữ tối đa W vị trí gần nhất dưới dạng bộ đệm vòng (ring buffer) thay vì phình to theo tổng độ dài văn bản T, trong khi các lớp toàn cục vẫn đảm bảo thông tin ở đầu tài liệu được truyền tới cuối chuỗi. Để hưởng lợi thực tế, runtime phải hỗ trợ cơ chế thu hồi (evict) các khối KV ngoài cửa sổ W.
Ví dụ đời thường: Lịch xếp lớp Local / Global Attention giống như cách làm việc trong một dự án dài hạn: ở các buổi họp hàng ngày (lớp local dùng cửa sổ trượt SWA), nhóm chỉ cần xem lại ghi chú của 3 ngày gần nhất cho gọn nhẹ; nhưng cứ mỗi cuối tháng (lớp global) cả nhóm lại mở toàn bộ hồ sơ từ ngày khởi công ra rà soát tổng thể để không quên mục tiêu ban đầu.
2Luồng
- Đọc layer_types
Đếm local/global và thông số của từng loại.
- Đặt mask và retention
Giữ đúng vị trí, prefix và window.
- Đo hai pha
Prefill và decode có bottleneck khác nhau.
Mã Mermaid
flowchart TD
step1["Đọc layer_types"]
step2["Đặt mask và retention"]
step3["Đo hai pha"]
step1 --> step2
step2 --> step3 Luồng mô tả cơ chế hoặc quy trình kiểm tra. Các ví dụ số là giả định giáo dục; demo Atlas không chạy kiến trúc production này.
3Giải pháp
Gemma 3 dùng lịch 5:1 và window 1.024; Gemma 4 31B vẫn 5:1 nhưng có heads/dim khác nhau giữa nhánh global và local. K=V chia sẻ biểu diễn key/value trong global attention là lựa chọn bổ sung; không tự suy rằng có thể giảm đúng một nửa mọi cache.
So model với cùng T,W,batch và kernel. MiMo-V2-Flash dùng window 128 trong model card; Trinity dùng window 4.096. Những khác biệt này ảnh hưởng giữ thông tin, không chỉ throughput.
Cache cross-layer sharing phải xác nhận theo variant: Gemma 4 31B có num_kv_shared_layers=0; không gán tính năng của bản nhỏ cho toàn họ.
4Profiling
- Memory slope
Đo bytes/token khi T vượt W; global cache tiếp tục tăng còn local lý tưởng bão hòa.
- Khả năng truy hồi
So câu hỏi cần thông tin xa với câu hỏi cục bộ, giữ các điều kiện inference cố định.
Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.
5Ví dụ
Tính cache giả định
L_local=30,L_global=6,T=8192,W=1024,H_KV=8,d_h=128,b=2: 312 MiB/sequence, thay vì 1.152 MiB nếu cả 36 layer full. Không tính allocator và workspace.
Đọc config thay vì nhãn
Hai model cùng ghi GQA có thể một model full ở mọi layer, model kia xen cửa sổ. Engine và capacity planning cần danh sách layer, không chỉ nhãn GQA.
6Thuật ngữ
- Schedule
- Chuỗi loại layer, ví dụ 5 local : 1 global lặp lại.
- Receptive field
- Tập vị trí có thể ảnh hưởng output qua một hoặc nhiều layer.
Glossary (8)
- Data type
- Kiểu dữ liệu của tensor, quyết định cách biểu diễn số.
- Prefix
- Phần đầu của một chuỗi token; cache reuse cần phần đầu tương thích.
- Cache
- Bộ nhớ giữ kết quả có thể dùng lại; trong attention thường giữ key/value vectors.
- Kernel
- Hàm tính toán chạy trên thiết bị; thường xử lý nhiều phần tử song song.
- Runtime
- Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
- Mask
- Quy tắc vị trí nào được nhìn nhau hoặc được tính vào loss.
- Throughput
- Lượng công việc được xử lý trong một đơn vị thời gian.
- Batch
- Nhóm công việc hoặc mẫu được xử lý trong một lượt tính.