OpenArchLabOpen Architecture — From Models to Systems

TI · Kiến trúc huấn luyện sinh ảnh

EMA và checkpoint: chọn trọng số để đánh giá và lưu

Làm trơn trọng số bằng EMA, đánh giá trên cặp kiểm định cố định và lưu đúng trạng thái để suy luận hoặc tiếp tục huấn luyện.

LESSON ID ti-ema-checkpoint GROUP Kiến trúc huấn luyện
Mục lục bài học

1Định nghĩa

EMA (exponential moving average, trung bình trượt mũ) là bản trọng số phụ cập nhật chậm theo trọng số đang học để giảm dao động giữa các bước. Checkpoint là bản lưu trạng thái cần thiết để nạp lại một mô hình; nó có thể lưu trọng số trực tiếp, EMA hoặc cả hai.

Sau AdamW, cập nhật theta_ema = d·theta_ema + (1−d)·theta với d là hệ số giữ quá khứ. Đánh giá dùng một bản trọng số cố định và các cặp ảnh–nhiễu–thời gian giữ nguyên; sampling nạp bản đã chọn, không cập nhật EMA theo từng bước Euler.

Ví dụ đời thường: Nhiệt độ trung bình nhiều lần đọc thường ổn định hơn một lần đọc đơn lẻ. EMA tương tự nhưng áp vào các con số trọng số, không phải gộp nhiều bức ảnh; đường trung bình có thể phản ứng chậm khi chế độ học đổi.

2Luồng

Mã 3D, 5A khớp sơ đồ Tab 01. Giai đoạn 6 khớp Tab 02; ánh xạ không có nghĩa mọi kỹ thuật của ô đều được triển khai trong lab.

Sơ đồ kiến trúc huấn luyện · 24 ô (1A → 5D)

Kiến trúc huấn luyện LLM · Ánh xạ với Bài Lab tổng hợp

Bắt đầu 1A → 1B, tách ảnh sang 1C và chữ sang 1D. Cột 2 tạo trạng thái nhiễu, điều kiện và target để 2D dự đoán; 3A → 3D chấm và sửa trọng số. next batch lặp về dữ liệu, load weights xuống 5A → 5D để sampling không gradient. Cột 4 là các lựa chọn, không phải chuỗi bước bắt buộc. Liên kết Lab trong pop-over nêu phần thực thi và phần chỉ giải thích.

Sơ đồ huấn luyện sinh ảnh gồm 24 ô từ 1A đến 5D
3D3 · Học và lưu
trọng số trượt · đánh giá · lưu trạng thái

3D · EMA và checkpoint

Theo dõi một bản trọng số làm trơn và lưu hợp đồng đủ dùng lại mô hình.

Nhận gì
Trọng số sau 3C, EMA cũ, cấu hình và tập kiểm định cố định ảnh–nhiễu–t.
Làm gì, vì sao
Cập nhật EMA=d·EMA+(1−d)·trọng số và so raw/EMA; chọn bản lưu kèm cấu hình encoder, latent và target.
Ra gì
next batch quay về cột 1; load weights đi xuống 5A để suy luận không gradient.
Ví dụ, cách đọc ô
Lab raw MSE 0,239795, EMA 0,238390; copy EMA trong RAM rồi nạp lại cho lệch 0.
Lưu ý
EMA không luôn tốt hơn; lab không ghi file checkpoint hoặc mô phỏng resume optimizer/RNG đầy đủ.
Sơ đồ luồng (3 bước)
  1. Nhận đầu vào

    EMA (exponential moving average, trung bình trượt mũ) là bản trọng số phụ cập nhật chậm theo trọng số đang học để giảm dao động giữa các bước.

  2. Biến đổi và nối hệ thống

    Đọc ô 3D, 5A và các bước giải thích bên dưới.

  3. Đối chiếu thực hành

    Giai đoạn 6 của lab; xem bảng ánh xạ để phân biệt thực thi với phần chỉ giải thích.

Mã Mermaid
flowchart TD
  step1["Nhận đầu vào"]
  step2["Biến đổi và nối hệ thống"]
  step3["Đối chiếu thực hành"]
  step1 --> step2
  step2 --> step3

3Giải pháp

Vị trí trên sơ đồ: 3D, 5A. Tiền đề: biết tensor/attention từ LLM Foundations và loss, gradient, AdamW từ LLM Training (Text); phần dưới nhắc lại kiến thức cần dùng tại chỗ.

Nhắc lại hai loại ngẫu nhiên

Batch mới khác ảnh có thể làm loss đổi; ngay trên cùng ảnh, nhiễu e và t mới cũng làm loss đổi. Giữ ba thành phần ảnh/e/t cố định khi kiểm tra trước/sau; tách tập ảnh kiểm định với ảnh huấn luyện. Lab sinh mẫu mới nhưng chỉ cùng hai cấu trúc hình học, nên chưa kiểm tra tổng quát hóa sang cảnh mới.

EMA không phải optimizer

Bản EMA không nhận gradient và không quyết định bước AdamW. Hệ số d gần 1 giữ lịch sử lâu hơn nhưng có thể chậm thích nghi; d nhỏ theo trọng số hiện tại sát hơn. Hãy so cả raw weights và EMA trên cùng prompt/seed trước khi chọn bản phục vụ, thay vì mặc định EMA luôn tốt.

Hai mục đích lưu khác nhau

Suy luận cần trọng số được chọn, kiến trúc denoiser, mục tiêu ε/v/u, lịch thời gian, scale/shift latent, VAE, tokenizer/text encoder và biểu diễn null tương thích. Tiếp tục học còn cần m,v, bộ đếm optimizer, lịch learning rate, RNG và vị trí đọc dữ liệu. Thiếu chúng có thể vẫn chạy nhưng không tái tạo cùng quỹ đạo.

Giai đoạn 6 của Bài Lab tổng hợp cho raw MSE 0,239795 và EMA 0,238390 với d=0,98; copy trong RAM rồi nạp lại lệch 0. Đây là phép kiểm tra weights-only nhỏ, không có file checkpoint hoặc cơ chế resume đầy đủ. Từ 3D, next batch quay lại vòng học còn load weights đi vào 5A.

4Profiling

  • Đánh giá ít nhiễu đo

    Dùng cùng validation triples và báo raw/EMA song song; đừng chọn checkpoint chỉ theo một minibatch. Ở bài toán thật, thêm prompt/seed đa dạng cùng đánh giá ảnh để kiểm tra tín hiệu loss có tương quan với chất lượng không.

  • Nạp lại đúng hợp đồng

    So đầu ra trước/sau serialize trên cùng input và cùng RNG, kiểm tra cấu hình đi kèm. Nếu cần resume, so vài bước cập nhật liên tiếp với chạy liền; lab chỉ kiểm tra copy trọng số trong RAM.

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 tay EMA

Minh họa: EMA cũ 2, trọng số mới 4 và d=0,9 cho EMA mới 2,2. Hỏi nó có phải trung bình hai ảnh sinh ra không? Không, đây là một tọa độ trọng số; ảnh chỉ được sinh sau khi nạp cả mạng.

Đọc minibatch khác kiểm định

Trace lab ở bước 900 có loss 0,220923, bước 1800 là 0,242463, nhưng chưa chứng tỏ mô hình xấu đi vì hai batch khác nhau. Tự kiểm tra bằng cùng tập cố định: MSE cuối 0,239795 so với ban đầu 2,098029.

6Thuật ngữ

EMA decay
Hệ số d giữ lại phần trọng số EMA cũ ở mỗi lần cập nhật.
Validation triples
Các bộ ảnh sạch, nhiễu và thời gian cố định dùng để so loss công bằng.
Glossary (1)
Giới hạn của mô hình thu nhỏ
Số lab chỉ thuộc dữ liệu hình học và cấu hình đã nêu; không suy ra chất lượng ảnh tự nhiên hoặc hiệu năng GPU.

7Bài liên quan

8Nguồn