Lựa chọn Optimizer phù hợp (phần 2)

CongDC
2 min readJun 24, 2024

--

Tiếp nối phần 1, trong phần này sẽ giới thiệu về các thuật toán nâng cấp hơn, có thể tự học learning rate mà không phải điều chỉnh bằng tay

D-Adaptation

Đây là cách tối ưu mới đến từ đến từ Meta AI (xem thêm bài báo tại đây, là một trong những bài báo đạt ICML Outstanding Paper Awards 2023), cho phép tự động thay đổi tốc độ học bằng cách giảm convex Lipschitz functions .

Cụ thể thì D-Adaptation tự động xác định learning rate tối ưu dựa trên khoảng cách tới nghiệm của bài toán, thường được ký hiệu là D=∥x0−x∗∥ , với x0​ là điểm khởi đầu và x∗ là nghiệm của hàm mục tiêu f. Hiểu cơ bản thì là gần đến nơi thì learning rate thấp xuống, ở xa thì learning rate cao để bước tới nhanh hơn.

Mã giả thuật toán D-Adaptation

D-Adaptation có thể áp dụng kết hợp với SGD và Adam. Nó có thể không giải quyết được trọn vẹn các vấn đề với các thuật toán tối ưu trước đây nhưng nó mang lại hiệu suất tương đương với việc bạn dành ra vài ngày để chọn một learning rate hợp lý (xem thêm cuộc thảo luận này)

Prodigy

Là phiên bản nâng cấp tiếp theo từ D-adaptation, cải thiện công thức tính toán cho phép ước lượng learning rate một cách chính xác hơn, mang lại convergence rate cho learning rate tốt hơn (tốt hơn như nào thì mình chưa biết, mọi người đọc thêm tại đây nhé, khi nào biết mình sẽ quay lại giải thích sau :v )

So sánh chất lương khi áp dụng Prodigy so với D-Adaptation

Nhìn vào bảng kết quả trên có thể thấy Prodigy cho tốc độ hội tụ tốt hơn hẳn D-Adaptation. Trong thực tế Prodigy cũng được nhiều người đánh giá là phù hợp nhất với SDXL, LyCORIS và LoRA thông thường khi training task text2image.

Một ví dụ về sử dụng Prodigy thay cho AdamW

Tổng kết

Sắp tới sẽ còn nhiều thuật toán thú vị hơn ra mắt, mình sẽ cập nhập thêm tại bài viết này hoặc series bài viết này, mọi người cùng chờ đón nhé ❤

--

--