E · Training Architecture
Text diffusion · canvas, denoising và causal memory
Kiến trúc sinh văn bản bằng quá trình khử nhiễu lặp trên một khung token cố định (Text Diffusion / DiffusionGemma) thay vì chỉ nhích từng token từ trái sang phải.
1Định nghĩa
Text Diffusion là hướng tiếp cận sinh văn bản khác hẳn vòng lặp tự hồi quy từng token của Decoder-only: mô hình khởi tạo một khung nháp (canvas) gồm nhiều vị trí token đang bị nhiễu hoặc che khuất, sau đó chạy một số vòng lặp khử nhiễu (denoising steps) với Attention hai chiều để tinh chỉnh đồng thời toàn bộ các vị trí trong khung cho tới khi hội tụ thành đoạn văn hoàn chỉnh.
Trong các thiết kế lai thực tế như DiffusionGemma (semi-autoregressive block diffusion), văn bản dài được sinh theo từng khối (ví dụ mỗi khung 256 token): phần văn bản đã chốt ở các khối trước được mã hóa một chiều và giữ trong KV cache, còn khối hiện tại được khử nhiễu song song hai chiều. Cách làm này cho phép mỗi lượt chạy mô hình cập nhật nhiều vị trí cùng lúc, đánh đổi giữa số vòng lặp khử nhiễu và chất lượng câu chữ.
Ví dụ đời thường: Text Diffusion giống như cách một họa sĩ vẽ tranh hoặc người giải ô chữ: thay vì viết liền mạch từng chữ một từ góc trái trên xuống góc phải dưới (như mô hình tự hồi quy), họa sĩ phác thảo mờ toàn bộ bức khung trước rồi qua từng lượt cọ lại chỉnh sửa và làm rõ nét đồng thời nhiều chi tiết trên khung tranh cho tới khi bức hình hoàn chỉnh.
2Luồng
- Encode prefix đã chốt
Tạo causal memory cho denoiser.
- Denoise canvas
Lặp các bước sửa với attention hai chiều trong block.
- Commit và encode canvas
Nối memory rồi sinh block tiếp theo.
Mã Mermaid
flowchart TD
step1["Encode prefix đã chốt"]
step2["Denoise canvas"]
step3["Commit và encode canvas"]
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
Đo time-to-first-visible text và time-to-first-committed text riêng; UI có thể hiện bản nháp rồi sửa. Throughput phải đếm final tokens, không đếm mỗi lần dự đoán canvas.
Benchmark ở cùng output length, prompt length, batch và quality; nhiều token mỗi vòng không đảm bảo nhanh hơn nếu nhiều vòng hoặc kernel kém.
Memory gồm prefix cache và canvas/workspace; không suy diffusion không cần cache. Experimental model không tự là drop-in replacement cho autoregressive engine.
4Profiling
- Latency/quality curve
Vary denoising steps và canvas settings được hỗ trợ; đo final task quality + end-to-end time.
- Committed throughput
Đếm token output cuối và số vòng sửa; báo hardware, dtype, batch và streaming policy.
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ụ
256 token qua nhiều vòng
Canvas 256 chạy 8 vòng có nhiều prediction hơn 256 token cuối. Không báo 2048 predictions là 2048 output tokens.
Mask theo hai vùng
Prefix đã chốt có causal encoding; các vị trí trong canvas được nhìn nhau để sửa. Cần attention mask đúng hai chế độ, không lấy mask decoder của demo áp nguyên.
6Thuật ngữ
- Canvas
- Block token đang được sửa, cần phân biệt với committed prefix.
- Denoising steps
- Số vòng sửa canvas; tác động latency/quality khác số output token.
Glossary (6)
- Data type
- Kiểu dữ liệu của tensor, quyết định cách biểu diễn số.
- 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.
- 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.