Xác định số bước cho mỗi lần chạy chương trình đào tạo

Có hai loại khối lượng công việc đào tạo:

  • liên kết điện toán
  • không liên kết điện toán

Quá trình đào tạo giới hạn điện toán bị giới hạn bởi lượng thời gian bạn dành cho việc đào tạo, không phải bởi lượng dữ liệu đào tạo bạn có hoặc một số yếu tố khác. Nói cách khác, thời gian đào tạo "tối ưu" luôn là "miễn là bạn có đủ khả năng". Nếu bạn làm cách nào đó để có thể tập luyện lâu hơn hoặc hiệu quả hơn, thì bài tập huấn luyện sẽ giảm. (Với việc điều chỉnh thích hợp, tổn thất xác thực cũng sẽ giảm.)

Việc tăng tốc độ huấn luyện liên kết điện toán cũng tương đương với việc cải thiện quá trình huấn luyện. Điều đó có nghĩa là chỉ một khối lượng công việc có giới hạn về điện toán không đồng nghĩa với việc đào tạo lâu hơn hay nhanh hơn, đó là cách duy nhất để cải thiện kết quả.

Khi chương trình đào tạo không bị giới hạn trong phạm vi điện toán, bạn có thể đào tạo bao lâu tùy thích. Tuy nhiên, việc huấn luyện một mô hình trong thời gian dài hơn có thể không giúp ích nhiều hay thậm chí là điều chỉnh quá mức. Khi quá trình huấn luyện không được tính toán liên kết:

  • Bạn có thể tập huấn luyện với mức tổn thất đào tạo rất thấp, đến mức quá trình huấn luyện bổ sung có thể giảm nhẹ lượng công việc huấn luyện nhưng không làm giảm đáng kể tổn thất trong quá trình 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 biểu giảm dựa trên tốc độ học, vì chúng có mức độ tương tác đặc biệt mạnh với ngân sách đào tạo. Ngược lại, khi không được đào tạo bài bản về khoá đào tạo có giới hạn liên quan đến điện toán, bạn có thể phải điều chỉnh lịch biểu giảm dựa trên mức độ hoàn thiện.

Bất kể khối lượng công việc cụ thể có ràng buộc được tính toán hay không, các phương thức tăng độ chênh lệch của độ dốc (trên nhiều lô) thường làm chậm tiến trình huấn luyện và do đó, có thể làm tăng số bước huấn luyện cần thiết để đạt được một mức 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 dữ liệu bổ sung.
  • Thêm một số kiểu chính quy (ví dụ: chính quy bỏ học).

Quyết định thời gian huấn luyện khi huấn luyện không bị giới hạn trong điện toán

Mục tiêu của bạn: Đào tạo đủ dài để mô hình đạt được kết quả tốt nhất có thể mà không lãng phí các bước đào tạo.

Mục tiêu chính của bạn là đảm bảo huấn luyện đủ lâu để mô hình có thể đạt được kết quả tốt nhất có thể mà không bỏ phí các bước huấn luyện không cần thiết. Khi nghi ngờ, hãy tập trung vào việc đào tạo lâu hơn. Các chỉ số đánh giá của bạn (ví dụ: độ chính xác, độ chính xác, khả năng truy lại, AUC hoặc F1) không bao giờ được giảm cấp khi đào tạo dài hơn, giả sử bạn sử dụng đúng lựa chọn điểm kiểm tra và bạn kiểm tra đủ điểm.

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 một giá trị đó cho tất cả các phiên bản thử. Từ những lần thử nghiệm này, hãy vẽ biểu đồ các bước đào tạo mà lựa chọn điểm kiểm tra hồi cứu 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 là trong quá trình đào tạo 10% đầu tiên, thì số bước tối đa sẽ là quá cao. Ngoài ra, nếu bước tốt nhất luôn có sẵn trong 25% chương trình đào tạo cuối cùng, thì bạn có thể hưởng lợi từ việc đào tạo lâu hơn và điều chỉnh lịch phân rã. Số bước huấn luyện lý tưởng có thể thay đổi khi cấu trúc hoặc dữ liệu thay đổi (ví dụ: thêm dữ liệu bổ sung). 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 để "phù hợp hoàn hảo" với tập huấn luyện bằng một tốc độ học không đổi.

Bạn có thể giảm max_train_steps nếu quá trình huấn luyện cải thiện theo cách nào đó. Ví dụ: với trình tối ưu hoá được điều chỉnh tốt hơn hoặc lịch trình tốc độ học tập được điều chỉnh tốt hơn.

Thuật toán để lựa chọn đề xuất ban đầu cho max_train_steps bằng cách sử dụng công cụ quét tốc độ học

Bạn có thể chọn một đề xuất 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 bạn có thể không chỉ "hoàn toàn phù hợp" với tập huấn luyện mà còn làm như vậy bằng cách sử dụng lịch trình tốc độ học không đổi.

  1. Nếu hoàn toàn có thể khớp với toàn bộ tập huấn luyện, thì phải có cấu hình (với giá trị nào đó của max_train_steps) hoàn toàn phù hợp với tập huấn luyện. Tìm bất kỳ cấu hình nào như vậy và sử dụng giá trị max_train_steps của cấu hình đó làm điểm xuất phát N.
  2. Quét tốc độ học liên tục (nghĩa là tìm kiếm trong lưới ở tốc độ học) mà không tăng cường dữ liệu và không quy trình trong đó mỗi lượt thử sẽ tập luyện cho N bước. Số bước cần thiết để thử nghiệm nhanh nhất trong quá trình dọn dẹp tốc độ học tập nhằm đạt được hiệu suất đào tạo hoàn hảo chính là dự đoán ban đầu của bạn cho max_train_steps.

LƯU Ý: Không gian tìm kiếm kém có thể khiến bạn tự lừa dối mình. Ví dụ: nếu tất cả các tốc độ học trong một nghiên cứu quá nhỏ, thì bạn có thể kết luận không chính xác rằng cần có một giá trị rất lớn của max_train_steps. Ít nhất, hãy kiểm tra để đảm bảo rằng tốc độ học 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 liên kết với điện toán

Trong một số trường hợp, việc mất khả năng huấn luyện sẽ liên tục được cải thiện vô thời hạn, vì vậy, sự kiên nhẫn và tài nguyên điện toán của bạn sẽ trở thành những yếu tố hạn chế. Nhưng bạn có nên đào tạo miễn là bạn có đủ khả năng không? Không nhất thiết là như vậy. 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 riêng cho "thời lượng tạo" dài nhất cho các mô hình mà bạn hy vọng khởi chạy.
  • Khi thời gian đào tạo để dùng thử đạt đến giới hạn về tính kiên nhẫn, các thử nghiệm điều chỉnh sẽ phù hợp hơn với những ứng viên tiềm năng ra mắt, nhưng bạn có thể hoàn tất ít thử nghiệm hơn.
  • Bạn có thể trả lời nhiều câu hỏi trong khi chỉ tập luyện cho ~10% thời lượng sản xuất. Tuy nhiên, kết luận của bạn tại thời điểm 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ứ chưa nói đến 100%.

Việc điều chỉnh trong nhiều vòng với giới hạn bước huấn luyện tăng dần, cho mỗi người dùng là một phương pháp hợp lý. Bạn có thể chạy bao nhiêu vòng tùy thích, nhưng thường thì 1-3 vòng là cách thiết thực nhất. Về cơ bản, cố gắng hiểu vấn đề nhiều nhất có thể bằng cách sử dụng các bản dùng thử với thời gian phản hồi rất nhanh, đánh đổi những điều sau:

  • Điều chỉnh kỹ lưỡng.
  • Mức độ liên quan đến trận chung kết, lượt chạy dài nhất.

Khi một giới hạn thời gian cho mỗi 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 tinh chỉnh, kiểm tra lại kết luận của bạn từ các lần chạy ngắn hơn nếu cần. Để bắt đầu, bạn nên điều chỉnh hai vòng:

  • Vòng 1: Thời lượng ngắn hơn để tìm mô hình tốt và siêu dữ liệu của trình tối ưu hóa.
  • Vòng 2: Thời gian rất ngắn chạy trên các điểm siêu thông số tốt để nhận mô hình cuối cùng.

Câu hỏi lớn nhất chuyển từ Vòng 1 sang Vòng 2 là:

Cách bạn điều chỉnh lịch biểu giảm dựa trên tốc độ học.

Một sai lầm thường gặp khi điều chỉnh lịch học giữa các vòng là sử dụng tất cả các bước đào tạo bổ sung với tốc độ học quá nhỏ.

Vòng 1: nhiều bài tập huấn luyện ngắn

Tuy nhiên, chúng tôi không thể đảm bảo rằng các siêu thông số hiệu quả trong chương trình đào tạo ngắn, chưa hoàn tất vẫn là lựa chọn phù hợp khi bạn tăng đáng kể thời lượng đào tạo. Tuy nhiên, đối với một số siêu thông số, các lựa chọn tốt thường tương quan đủ để Vòng 1 trở nên hữu ích. Giá trị siêu thông số nào có trong các lần chạy ngắn hơn chuyển thành công cho các lần chạy đào tạo dài hơn? Chúng tôi không biết; chúng tôi cần nghiên cứu thêm. Nhưng dựa vào những gì chúng ta biết cho đến thời điểm này, sau đây là những nghi ngờ về việc giảm khả năng chuyển:

  • Rất có thể chuyển. Bạn có thể giải quyết tình trạng không ổn định trong giai đoạn đầu bằng cách thực hiện một số ít bước đào tạo. Các thông số siêu dữ liệu sau đây có nhiều khả năng chuyển nhất:
    • Thời gian khởi động
    • Khởi chạy
  • Có khả năng chuyển. Thường thì quá trình chuyển đổi mô hình mô hình sẽ mang lại chiến thắng, nhưng nhiều ví dụ có thể xảy ra.
  • Có thể chuyển. Các siêu thông số sau có thể chuyển:
    • Thuật toán tối ưu hóa và siêu thông số sẽ chuyển "một cách lỏng lẻo".
    • Tăng cường dữ liệu.
    • Chuẩn hóa. Nếu không thể phù hợp hoàn hảo với tập huấn luyện, mô hình có thể sẽ ở một chế độ trong đó việc thường xuyên không thể giúp ích nhiều.
  • Có thể sẽ không chuyển được. Lịch sử tốc độ học tập không thể chuyển hoàn hảo. Đào tạo các mô hình ngôn ngữ lớn tối ưu hoá điện toán cho thấy rằng ngay cả các lịch trình phân rã cũng sẽ chuyển các mô hình phân bổ, nhưng nói chung chúng tôi không cho rằng điều này là đúng. Ví dụ: việc điều chỉnh phân rã sqrt trên một số ít các bước đào tạo, sau đó mở rộng sang một số lượng lớn sẽ khiến phần lớn quá trình đào tạo xảy ra ở các bước quá nhỏ. Bạn có thể đã "đủ tốt" với hầu hết lịch biểu trong giới hạn ngân sách đào tạo quá mức, nhưng bạn có thể sẽ thấy những cải thiện đáng kể về hiệu suất nếu được điều chỉnh. Tìm hiểu về Bia có thời gian ngắn trong tính năng Tối ưu hoá siêu dữ liệu

Vòng 2: chạy ít hơn, nhưng thời lượng lâu hơn

Chạy cấu hình hyperparameter tốt nhất trong 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 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 quá trình phân rã từ Vòng 1 và kéo dài khoảng thời gian của hằng số lr ở đầu. Để phân rã cos, hãy giữ cơ sở lr từ Vòng 1 và mở rộng max_train_steps như mô tả trong bài viết Đào tạo mô hình ngôn ngữ lớn tối ưu hoá điện toán.

Các vòng đào tạo bổ sung có thể phù hợp với các nhóm với tất cả những điều sau:

  • Mô hình rất trưởng thành
  • Điều chỉnh kênh
  • Các buổi đào tạo sản xuất rất dài và tốn kém

Tuy nhiên, các lần đào tạo 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 bạn 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 thời gian của việc chạy chương trình đào tạo (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:

  • Ở mỗi vòng, hãy đảm bảo rằng các lựa chọn của bạn sẽ tiếp tục mang lại kết quả tốt một cách có hệ thống.
  • Đưa các ý tưởng mới thông qua một đường dẫn dần dần làm rủi ro bằng cách sử dụng các thử nghiệm chạy ngày càng lâu dài từ Bước i đến Bước i+1.