Có hai loại khối lượng công việc huấn luyện:
- compute-bound
- không bị giới hạn về khả năng tính toán
Hoạt động huấn luyện dựa trên tính toán bị giới hạn bởi thời gian bạn có thể dành cho việc huấn luyện, chứ không phải bởi lượng dữ liệu huấn luyện bạn có hoặc một số yếu tố khác. Nói cách khác, thời gian huấn luyện "tối ưu" luôn là "miễn là bạn có thể chi trả". Nếu bạn có thể huấn luyện lâu hơn hoặc hiệu quả hơn, thì tổn thất huấn luyện sẽ giảm. (Nếu được điều chỉnh đúng cách, tổn thất xác thực cũng sẽ giảm.)
Tăng tốc quá trình huấn luyện dựa trên điện toán tương đương với việc cải thiện quá trình huấn luyện. Tuy nhiên, chỉ vì một khối lượng công việc bị giới hạn về tính toán không có nghĩa là việc huấn luyện lâu hơn hoặc nhanh hơn là cách duy nhất để cải thiện kết quả.
Khi quá trình huấn luyện không bị giới hạn về khả năng tính toán, bạn có thể huấn luyện bao lâu tuỳ thích. Tuy nhiên, việc huấn luyện mô hình lâu hơn có thể không giúp ích nhiều hoặc thậm chí có thể gây ra hiện tượng quá khớp. Khi quá trình huấn luyện không bị giới hạn về khả năng tính toán:
- Bạn có thể huấn luyện để giảm tổn thất huấn luyện xuống mức rất thấp, đến mức việc huấn luyện bổ sung có thể giảm nhẹ tổn thất huấn luyện nhưng không giảm đáng kể tổn thất xác thực.
- Bạn có thể điều chỉnh dễ dàng hơn, đặc biệt là khi điều chỉnh lịch trình giảm tốc độ học, vì chúng có tương tác đặc biệt mạnh mẽ với ngân sách huấn luyện. Ngược lại, việc giảm tổn thất khi huấn luyện trên quá trình huấn luyện bị giới hạn về tính toán có thể yêu cầu một lịch trình giảm tốc độ học được điều chỉnh hoàn hảo.
Bất kể một khối lượng công việc nhất định có bị giới hạn về tính toán hay không, các phương pháp làm tăng phương sai của các độ dốc (trên các lô) thường làm chậm tiến trình huấn luyện, do đó có thể làm tăng số lượng các bước huấn luyện cần thiết để đạt được một mức tổn thất xác thực cụ thể. Bất kỳ yếu tố nào sau đây đều có thể gây ra phương sai độ dốc cao:
- Sử dụng kích thước lô nhỏ hơn.
- Thêm tính năng tăng cường dữ liệu.
- Thêm một số loại điều chuẩn (ví dụ: điều chuẩn loại bỏ).
Quyết định thời gian huấn luyện khi quá trình huấn luyện không bị giới hạn về khả năng tính toán
Mục tiêu: Huấn luyện đủ lâu để mô hình đạt được kết quả tốt nhất có thể mà không lãng phí các bước huấn luyện.
Mục tiêu chính của bạn là đảm bảo bạn huấn luyện đủ lâu để mô hình đạt được kết quả tốt nhất có thể mà không lãng phí các bước huấn luyện không cần thiết. Nếu không chắc chắn, hãy tập luyện lâu hơn. Các chỉ số đánh giá (ví dụ: độ chính xác, khả năng thu hồi, AUC hoặc F1) không bao giờ được giảm khi huấn luyện lâu hơn, giả sử bạn sử dụng đúng cách lựa chọn điểm kiểm tra hồi cứu và bạn kiểm tra đủ thường xuyên.
Không bao giờ điều chỉnh số max_train_steps
trong một nghiên cứu. Thay vào đó, hãy chọn một giá trị và sử dụng cùng giá trị đó cho tất cả các thử nghiệm. Từ những thử nghiệm này, hãy vẽ biểu đồ bước huấn luyện mà lựa chọn điểm kiểm tra hồi tưởng tìm thấy để tinh chỉnh lựa chọn max_train_steps
.
Ví dụ: nếu bước tốt nhất luôn diễn ra trong 10% đầu tiên của quá trình huấn luyện, thì số bước tối đa là quá cao.
Ngoài ra, nếu bước tốt nhất luôn nằm trong 25% cuối cùng của quá trình huấn luyện, bạn có thể hưởng lợi từ việc huấn luyện lâu hơn và điều chỉnh lại lịch trình suy giảm.
Số lượng bước huấn luyện lý tưởng có thể thay đổi khi kiến trúc hoặc dữ liệu thay đổi (ví dụ: thêm tính năng tăng cường dữ liệu).
Phần tiếp theo mô tả cách chọn giá trị đề xuất ban đầu cho max_train_steps
dựa trên số bước cần thiết để "hoàn toàn phù hợp" với tập huấn luyện bằng cách sử dụng tốc độ học tập không đổi.
Có thể giảm max_train_steps
nếu quy trình huấn luyện được cải thiện theo cách nào đó; ví dụ: với một trình tối ưu hoá được điều chỉnh tốt hơn hoặc một lịch biểu tốc độ học tập được điều chỉnh tốt hơn.
Thuật toán chọn đề xuất ban đầu cho max_train_steps bằng cách sử dụng tốc độ học tập
Bạn có thể chọn một ứng cử viên ban đầu cho max_train_steps
bằng thuật toán quét tốc độ học. Thuật toán sau đây giả định rằng không chỉ có thể điều chỉnh "hoàn hảo" tập huấn luyện mà còn có thể thực hiện việc này bằng cách sử dụng lịch trình tốc độ học tập không đổi.
- Nếu có thể hoàn toàn phù hợp với toàn bộ tập huấn luyện, thì phải có một cấu hình (với một số giá trị
max_train_steps
) hoàn toàn phù hợp với tập huấn luyện. Tìm mọi cấu hình như vậy và sử dụng giá trịmax_train_steps
của cấu hình đó làm điểm bắt đầuN
. - Chạy một lượt quét tốc độ học tập liên tục (tức là tìm kiếm theo lưới tốc độ học tập) mà không cần tăng cường dữ liệu và không cần điều chỉnh, trong đó mỗi thử nghiệm huấn luyện trong
N
bước. Số bước cần thiết cho thử nghiệm nhanh nhất trong quá trình quét tốc độ học để đạt được hiệu suất huấn luyện hoàn hảo phải là phỏng đoán ban đầu của bạn chomax_train_steps
.
LƯU Ý: Không gian tìm kiếm không phù hợp có thể dẫn đến việc tự lừa dối bản thân.
Ví dụ: nếu tất cả tốc độ học trong một nghiên cứu đều quá nhỏ, thì bạn có thể kết luận sai rằng cần có một giá trị max_train_steps
rất lớn.
Tối thiểu, hãy kiểm tra để đảm bảo rằng tốc độ học tập tối ưu trong nghiên cứu không nằm ở ranh giới của không gian tìm kiếm.
Quyết định thời gian huấn luyện khi quá trình huấn luyện bị giới hạn về khả năng tính toán
Trong một số trường hợp, tổn thất khi huấn luyện sẽ tiếp tục cải thiện vô thời hạn, vì vậy, sự kiên nhẫn và tài nguyên tính toán của bạn sẽ trở thành các yếu tố hạn chế. Nhưng bạn có nên tập luyện càng lâu càng tốt không? Không nhất thiết. Hãy cân nhắc thực hiện những bước sau:
- Bạn có thể điều chỉnh hiệu quả hơn bằng cách chạy nhiều thử nghiệm ngắn hơn, dành các lượt chạy "thời lượng sản xuất" dài nhất cho những mô hình mà bạn muốn ra mắt.
- Khi thời gian huấn luyện cho các thử nghiệm gần đến giới hạn kiên nhẫn của bạn, việc điều chỉnh các thử nghiệm sẽ trở nên phù hợp hơn đối với các ứng viên tiềm năng ra mắt của bạn, nhưng bạn có thể hoàn thành ít thử nghiệm hơn.
- Bạn có thể trả lời nhiều câu hỏi trong khi chỉ huấn luyện khoảng 10% thời lượng sản xuất. Tuy nhiên, kết luận của bạn tại giới hạn thời gian này có thể không áp dụng cho các thử nghiệm ở 20% thời lượng sản xuất, chứ đừng nói đến 100%.
Điều chỉnh trong nhiều vòng với giới hạn số bước huấn luyện tăng dần cho mỗi thử nghiệm là một cách tiếp cận hợp lý. Bạn có thể chạy bao nhiêu vòng tuỳ ý, nhưng thường thì 1-3 vòng là thiết thực nhất. Về cơ bản, hãy cố gắng tìm hiểu vấn đề càng nhiều càng tốt bằng cách thử nghiệm với thời gian phản hồi rất nhanh, đánh đổi những yếu tố sau:
- Mức độ kỹ lưỡng của quá trình điều chỉnh.
- Mức độ liên quan đến các lần chạy cuối cùng và dài nhất.
Sau khi một giới hạn thời gian nhất định cho mỗi lần thử nghiệm tạo ra thông tin chi tiết hữu ích, hãy tăng thời gian huấn luyện và tiếp tục điều chỉnh, đồng thời kiểm tra kỹ lưỡng các kết luận của bạn từ các lần chạy ngắn hơn khi cần. Để bắt đầu, bạn nên thực hiện 2 vòng điều chỉnh:
- Vòng 1: Chạy trong thời gian ngắn hơn để tìm ra các siêu tham số mô hình và trình tối ưu hoá phù hợp.
- Vòng 2: Rất ít lượt chạy có thời lượng dài trên các điểm siêu tham số tốt để nhận được mô hình cuối cùng.
Câu hỏi lớn nhất từ Vòng 1 đến Vòng 2 là:
Làm cách nào để điều chỉnh lịch giảm tốc độ học.
Một sai lầm thường gặp khi điều chỉnh lịch trình tốc độ học giữa các vòng là sử dụng tất cả các bước huấn luyện bổ sung với tốc độ học quá nhỏ.
Vòng 1: nhiều lượt chạy huấn luyện ngắn
Rất tiếc, không có gì đảm bảo rằng các siêu tham số tốt được tìm thấy trong quá trình huấn luyện ngắn, chưa hoàn chỉnh vẫn là lựa chọn tốt khi bạn tăng đáng kể thời gian huấn luyện. Tuy nhiên, đối với một số siêu tham số, các lựa chọn phù hợp thường có mối tương quan đủ để Vòng 1 trở nên hữu ích. Những giá trị siêu tham số nào được tìm thấy trong các lần chạy ngắn hơn sẽ chuyển thành công sang các lần chạy huấn luyện dài hơn? Chúng tôi không biết; chúng tôi cần nghiên cứu thêm. Tuy nhiên, dựa trên những gì chúng tôi biết cho đến nay, sau đây là những nghi ngờ của chúng tôi theo thứ tự giảm dần về khả năng chuyển:
- Rất có khả năng chuyển. Bạn có thể giải quyết tình trạng không ổn định trong quá trình huấn luyện ban đầu ở vòng điều chỉnh đầu tiên bằng cách sử dụng ít bước huấn luyện hơn.
Các siêu tham số sau đây có khả năng được chuyển cao nhất:
- Thời gian khởi động
- Khởi chạy
- Có khả năng chuyển. Một chiến thắng đáng kể trong cấu trúc mô hình thường sẽ chuyển giao, nhưng có thể có nhiều ví dụ phản chứng.
- Có thể chuyển. Các siêu tham số sau có thể được chuyển:
- Thuật toán tối ưu hoá và siêu tham số sẽ được chuyển "lỏng lẻo".
- Tăng cường dữ liệu.
- Điều hoà. Nếu không thể hoàn toàn phù hợp với tập huấn luyện, thì mô hình có thể ở trong một chế độ mà việc điều chỉnh khó có thể giúp ích nhiều.
- Ít có khả năng chuyển. Lịch trình tốc độ học tập khó có thể chuyển hoàn toàn. Đào tạo Mô hình ngôn ngữ lớn tối ưu về điện toán cho thấy ngay cả lịch trình suy giảm cũng chuyển, nhưng chúng tôi không tin rằng điều này đúng nói chung. Ví dụ: việc điều chỉnh mức giảm sqrt trên một số ít bước huấn luyện rồi mở rộng sang một số lượng lớn sẽ khiến phần lớn quá trình huấn luyện diễn ra ở các bước quá nhỏ. Bạn có thể đạt được "đủ tốt" với hầu hết các lịch trình trong giới hạn ngân sách huấn luyện cực lớn, nhưng bạn có thể nhận thấy hiệu suất được cải thiện đáng kể nếu lịch trình đó được điều chỉnh. Understanding Short-Horizon Bias in Stochastic Meta-Optimization (Tìm hiểu về độ lệch ngắn hạn trong quá trình tối ưu hoá meta ngẫu nhiên) mô tả những nguy cơ khi cố gắng chọn tốc độ học tập một cách thiển cận.
Vòng 2: ít lần chạy hơn nhưng thời lượng dài hơn
Chạy cấu hình siêu tham số tốt nhất từ Vòng 1.
Suy đoán: 🤖 Sử dụng các bước bổ sung để kéo dài thời gian huấn luyện với tốc độ học tập cao. Ví dụ: nếu bạn đang sử dụng lịch biểu tuyến tính, hãy giữ nguyên độ dài của độ trễ từ Vòng 1 và kéo dài khoảng thời gian lr
không đổi ở phần đầu. Đối với độ trễ cosine, hãy giữ cơ sở lr
từ Vòng 1 và mở rộng max_train_steps
như mô tả trong Đào tạo các mô hình ngôn ngữ lớn có khả năng tính toán tối ưu.
Các nhóm có tất cả những đặc điểm sau đây có thể cần thêm các vòng đào tạo:
- Mô hình rất trưởng thành
- Điều chỉnh quy trình
- Các lượt huấn luyện sản xuất rất dài và tốn kém
Tuy nhiên, các lần huấn luyện bổ sung thường không hiệu quả.
Chúng tôi đã mô tả cách chuyển từ Vòng 1 sang Vòng 2. Nếu không quan tâm đến thời gian phân tích và nếu việc sử dụng hiệu quả tài nguyên điện toán là mối quan tâm hàng đầu của bạn, thì bạn nên tăng theo cấp số nhân thời lượng của các lần chạy huấn luyện (và do đó, thời gian từ đầu đến cuối để hoàn thành một nghiên cứu) qua nhiều vòng điều chỉnh khác nhau:
- Ở mỗi vòng, hãy đảm bảo một cách có hệ thống rằng các lựa chọn của bạn vẫn mang lại kết quả tốt.
- Đưa các ý tưởng mới vào một quy trình từng bước giảm thiểu rủi ro bằng cách sử dụng các thử nghiệm ngày càng kéo dài từ Bước i đến Bước i+1.