OpenArchLabOpen Architecture — From Models to Systems

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.

LESSON ID arch-diffusion GROUP Bản đồ nền tảng LLM
Mục lục bài học

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

Sơ đồ luồng (3 bước)
  1. Encode prefix đã chốt

    Tạo causal memory cho denoiser.

  2. Denoise canvas

    Lặp các bước sửa với attention hai chiều trong block.

  3. 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.

7Bài liên quan

8Nguồn