1B · Interleaved TM-RoPE 3D
1B · Interleaved TM-RoPE 3D (24, 20, 20) & Đồng bộ trục thời gian 12.5 Hz
Đan xen các cặp tần số RoPE theo tỷ lệ (24, 20, 20) cho ba trục Thời gian, Chiều cao và Chiều rộng để đồng bộ hóa âm thanh 12.5 Hz với video và văn bản.
1Định nghĩa
Sau khi bộ mã hóa AuT biến sóng âm thành chuỗi vector, câu hỏi tiếp theo ở giữa Cột 1 là làm sao để mô hình biết một khung âm thanh phát ra đúng vào giây thứ mấy của đoạn video đang chiếu. Qwen3-Omni giải quyết bài toán này bằng cơ chế Interleaved TM-RoPE 3D (Time-aligned Multimodal Rotary Position Embedding) chia 64 cặp góc xoay (128 chiều mỗi head) thành ba nhóm 24, 20 và 20 cặp cho ba trục Thời gian (Temporal), Chiều cao (Height) và Chiều rộng (Width).
Điểm khác biệt cốt lõi của bản Interleaved (interleaved = True) so với cách cắt khối liên tiếp truyền thống là các cặp tần số của ba trục T, H, W được xếp đan xen nhau từ tần số cao đến tần số thấp. Nhờ vậy cả ba trục đều có đủ các bước sóng ngắn (bắt chi tiết cục bộ) lẫn bước sóng dài (bắt khoảng cách xa) trước khi đi vào khối suy luận Thinker MoE.
Ví dụ đời thường: Hãy tưởng tượng một thước phim nhựa có đóng dấu thời gian ở mép trên và tọa độ ô lưới (dòng, cột) ở mép dưới: mỗi khung âm thanh đi kèm chỉ cần nhìn vào con số thời gian (tăng 13 đơn vị mỗi giây, tương ứng ~80 ms một nhịp) là khớp ngay với đúng bức hình xuất hiện tại thời điểm đó. Phép so sánh này dừng lại ở chỗ TM-RoPE mã hóa vị trí bằng phép quay lượng giác trên từng cặp số thực chứ không ghi nhãn văn bản.
2Luồng
Cách đọc hình (Cột 1, khối 1B ở giữa): nhận chuỗi đặc trưng từ 1A đi lên, gán bộ tọa độ 3 trục (Temporal 24, Height 20, Width 20) đan xen ở nhịp 12.5 Hz (80 ms/khung) rồi chuyển lên Thinker MoE ở 2A; xem bước [1B] trong [Bài Lab tổng hợp Qwen3-Omni](/courses/qwen3-omni-speech/qwen3-omni-lab/qwen3-omni-end-to-end-lab/) ở Tab 02.
- 1. Gán chỉ số 3 trục (T, H, W) cho từng phương thức
Token chữ và âm thanh nhận cùng chỉ số (t, t, t); token ảnh/video nhận (t_frame, h_row, w_col).
- 2. Tính góc xoay theo từng trục
Nhân chỉ số vị trí của mỗi trục với dãy tần số nghịch đảo θ_k = 1000000^(-2k/d).
- 3. Đan xen (Interleave) theo mrope_section [24, 20, 20]
Trộn xen kẽ các kênh T, H, W để mọi trục đều phủ đều phổ tần số.
- 4. Xoay vector Q và K trong Thinker & Talker
Áp dụng phép quay phức cos(φ) + i·sin(φ) lên từng cặp chiều của Q và K.
Mã Mermaid
flowchart TD
step1["1. Gán chỉ số 3 trục (T, H, W) cho từng phương thức"]
step2["2. Tính góc xoay theo từng trục"]
step3["3. Đan xen (Interleave) theo mrope_section #91;24, 20, 20#93;"]
step4["4. Xoay vector Q và K trong Thinker #amp; Talker"]
step1 --> step2
step2 --> step3
step3 --> step4 3Giải pháp
Với mỗi cặp chiều thứ k và vị trí (p_T, p_H, p_W), phép quay RoPE biến đổi cặp số (x_{2k}, x_{2k+1}) theo ma trận trực giao 2×2: $$\begin{bmatrix} x'_{2k} \\ x'_{2k+1} \end{bmatrix} = \begin{bmatrix} \cos \theta_k & -\sin \theta_k \\ \sin \theta_k & \cos \theta_k \end{bmatrix} \begin{bmatrix} x_{2k} \\ x_{2k+1} \end{bmatrix}$$ Vì định thức của ma trận quay bằng 1, chuẩn Euclid của vector Q và K được bảo toàn tuyệt đối: ||RoPE(q)||_2 = ||q||_2.
Trong config.json của Qwen3-Omni, mrope_section = [24, 20, 20] có tổng bằng 24 + 20 + 20 = 64 cặp (tức 128 chiều head_dim). Với 20 nhóm đầu tiên (k = 0..19), cứ mỗi bộ 3 cặp liên tiếp sẽ lấy 1 cặp từ trục Temporal, 1 cặp từ trục Height và 1 cặp từ trục Width (20 × 3 = 60 cặp); 4 cặp cuối cùng (60..63) thuộc về phần dư 24 − 20 = 4 của trục Temporal.
Nhờ cả Thinker lẫn Talker đều kế thừa chung lớp Qwen3OmniMoeThinkerTextRotaryEmbedding (với rope_theta = 1.000.000), trục thời gian của âm thanh đầu vào, khung hình video và luồng giọng nói đầu ra luôn khớp trên cùng một hệ quy chiếu. Bạn có thể kiểm chứng tính bảo toàn chuẩn ||RoPE(q)|| = ||q|| ở mục [1B] của Bài Lab tổng hợp Qwen3-Omni.
4Profiling
- Bảo toàn chuẩn Euclid sau phép quay 3D TM-RoPE
Đo hiệu số |‖RoPE(q)‖₂ − ‖q‖₂| trên mọi token và mọi head: kết quả phải dưới 1e-12 (trong lab đạt 0.00e+00).
- Tính bất biến dịch chuyển thời gian (Relative Shift Invariance)
Dịch đồng thời cả vị trí truy vấn p_q và vị trí khóa p_k đi cùng một độ trễ Δt trên trục Temporal: tích vô hướng q_rot · k_rot không đổi.
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ụ
Kiểm tra phân bổ 64 cặp tần số của mrope_section = [24, 20, 20]
Tổng số cặp là 24 (Temporal) + 20 (Height) + 20 (Width) = 64 cặp, nhân 2 số thực mỗi cặp bằng đúng head_dim = 128. Trong lab thu nhỏ với HEAD_DIM = 6 (3 cặp), ba trục (T, H, W) nhận lần lượt 1 cặp mỗi trục để minh họa trực quan phép đan xen.
6Thuật ngữ
- mrope_section = [24, 20, 20]
- Phân bổ 64 cặp góc xoay (head_dim = 128) thành 24 cặp cho trục Temporal, 20 cặp cho Height và 20 cặp cho Width.
- interleaved = True
- Xếp xen kẽ các cặp tần số (T, H, W, T, H, W...) thay vì gom hết T ở đầu rồi mới đến H, W.
- position_id_per_seconds = 13
- Độ phân giải chỉ số vị trí thời gian (~12.5–13 bước mỗi giây, tức ~80 ms mỗi đơn vị vị trí).
Glossary (2)
- TM-RoPE (Time-aligned Multimodal RoPE)
- Mã hóa vị trí xoay 3 trục (Thời gian, Cao, Rộng) căn chỉnh theo thời gian thực cho chuỗi đa phương thức.
- Interleaved Frequency Allocation
- Đan xen các cặp tần số của 3 trục T, H, W thay vì chia thành 3 đoạn tách rời.
