학습 워크로드에는 두 가지 유형이 있습니다.
- 컴퓨팅 바인딩
- 컴퓨팅 제약적 아님
컴퓨팅 결합 학습은 보유한 학습 데이터의 양이나 기타 요인이 아닌 학습에 소비할 수 있는 시간으로 제한됩니다. 즉, '최적'의 학습 시간은 항상 '감당할 수 있는 기간'입니다. 학습 시간을 더 길거나 더 효율적으로 조정할 수 있다면 학습 손실이 줄어들 것입니다. (적절한 조정을 사용하면 유효성 검사 손실도 줄어들게 됩니다.)
컴퓨팅 바인딩 학습 속도를 높이는 것은 학습 개선과 동일합니다. 즉, 워크로드가 컴퓨팅 제한된다고 해서 더 오래 또는 빠르게 학습하는 것이 결과를 개선할 수 있는 유일한 방법은 아닙니다.
학습이 컴퓨팅에 종속되지 않으면 원하는 기간 동안 학습할 수 있습니다. 하지만 모델을 더 오래 학습시키는 것이 도움이 되지 않거나 과적합을 유발할 수도 있습니다. 학습이 컴퓨팅 제약적이 아닌 경우:
- 학습 손실이 매우 적은 상태에서 학습을 수행하면 추가 학습으로 인해 학습 손실이 약간 감소하지만 검증 손실은 유의미하게 줄어들지 않습니다.
- 특히 학습률 붕괴 일정을 조정할 때는 학습 예산과 특히 강한 상호작용이 있기 때문에 더 쉽게 조정할 수 있습니다. 반면 컴퓨팅 바인딩 학습에서 학습 손실이 낮으면 완벽에 맞게 조정된 학습률 붕괴 일정이 필요할 수 있습니다.
주어진 워크로드가 컴퓨팅 제약적인지 여부에 관계없이 배치에서 경사의 분산을 늘리는 메서드는 일반적으로 학습 진행 속도를 늦추므로 특정 검증 손실에 도달하는 데 필요한 학습 단계 수를 늘릴 수 있습니다. 다음 중 하나라도 해당하면 경사 편차가 클 수 있습니다.
- 더 작은 배치 크기 사용
- 데이터 증강을 추가합니다.
- 일부 유형의 정규화 추가 (예: 드롭아웃 정규화)
학습이 컴퓨팅 제약이 없는 경우 학습 시간 결정
목표: 모델이 학습 단계를 낭비하지 않고 최상의 결과를 얻을 수 있을 만큼 충분히 학습합니다.
주요 목표는 불필요한 학습 단계를 낭비하지 않고 모델이 최상의 결과를 얻을 수 있을 만큼 충분히 학습하는 것입니다. 확실하지 않은 경우 학습에 더 오래 집중합니다. 소급 체크포인트 선택을 적절하게 사용하고 체크포인트를 충분히 자주 사용한다고 가정할 때 학습 시간이 길면 평가 측정항목 (예: 정밀도, 재현율, AUC, F1)이 저하되지 않습니다.
연구에서 max_train_steps
수를 조정해서는 안 됩니다. 대신 값을 선택하고 모든 시도에 동일한 값을 사용하세요. 이러한 시도에서 소급 체크포인트 선택이 찾은 학습 단계를 표시하여 max_train_steps
선택을 구체화합니다.
예를 들어 최적의 단계가 학습의 첫 10% 동안 항상이라면 최대 걸음 수는 너무 높습니다.
또는 최선의 단계가 학습의 마지막 25% 에 꾸준히 있는 경우 더 오래 학습하고 붕괴 일정을 재조정하는 것이 좋습니다.
이상적인 학습 단계 수는 아키텍처 또는 데이터 변경 (예: 데이터 증강 추가) 시 변경될 수 있습니다.
다음 섹션에서는 일정한 학습률을 사용하여 학습 세트에 '완벽하게 맞추기' 위한 단계 수에 따라 max_train_steps
의 초기 후보 값을 선택하는 방법을 설명합니다.
예를 들어 옵티마이저를 더 잘 조정하거나 학습률을 더 세밀하게 조정하면 학습 프로세스가 개선되는 경우 max_train_steps
를 줄일 수 있습니다.
학습률 스위프를 사용하여 max_train_steps의 초기 후보를 선택하는 알고리즘
학습률 스위프 알고리즘을 사용하여 max_train_steps
의 초기 후보를 선택할 수 있습니다. 다음 알고리즘은 학습 세트에 '완전히' 맞을 뿐만 아니라 일정한 학습률 일정을 사용하는 것이 가능하다고 가정합니다.
- 학습 세트 전체를 완벽하게 맞출 수 있는 경우 학습 세트에 완전히 적합한 구성 (일부 값
max_train_steps
)이 있어야 합니다. 이러한 구성을 찾고max_train_steps
값을 시작점N
으로 사용하세요. - 데이터 증강 및 각 시도가
N
단계 동안 학습하는 정규화 없이 지속적인 학습률 스위핑 (즉, 그리드 검색 학습률)을 실행합니다. 완벽한 학습 성능을 얻기 위해 학습률 스위프에서 가장 빠른 시도에 필요한 단계 수는max_train_steps
에 대한 초기 추측이어야 합니다.
참고: 잘못된 검색 공간은 자기 속임수로 이어질 수 있습니다.
예를 들어 학습의 모든 학습률이 너무 작으면 max_train_steps
의 매우 큰 값이 필요하다고 잘못 결론을 내릴 수 있습니다.
최소한 학습에서 최적의 학습률이 검색 공간의 경계에 있지 않은지 확인합니다.
학습이 컴퓨팅 제약적인 경우 학습 시간 결정
경우에 따라 학습 손실이 무기한으로 개선되는 동안 인내와 컴퓨팅 리소스가 제한 요소가 됩니다. 하지만 감당할 수 있는 만큼 교육해야 할까요? 꼭 그런 것은 아닙니다. 다음 사항에 유의하세요.
- 실행하려는 모델에 대해 더 긴 '프로덕션 길이' 실행을 예약하여 더 짧은 수의 실험을 실행하면 더 효과적으로 조정할 수 있습니다.
- 무료 체험판의 학습 시간이 대기 시간에 가까워지면 잠재적 출시 후보와 실험 조정의 관련성이 높아지지만 완료할 수 있는 실험의 수는 줄어듭니다.
- 프로덕션 길이의 최대 10% 동안만 학습하면서 많은 질문에 답할 수 있습니다. 그러나 이 한도에서 얻은 결론이 100% 가 아니라 프로덕션 길이의 20%인 실험에는 적용되지 않을 수 있습니다.
시도당 학습 단계 한도를 늘리면서 여러 라운드 동안 미세 조정하는 것이 현명한 방법입니다. 원하는 만큼 라운드를 실행할 수 있지만 일반적으로 가장 실용적인 1~3라운드가 있습니다. 즉, 처리 시간을 단축하고 다음을 타협해 시도하면서 가능한 한 문제를 최대한 파악하려고 합니다.
- 철저한 조정.
- 가장 긴 최종 실행과의 관련성입니다.
지정된 무료 체험 시간 제한으로 유용한 통계가 생성되면 학습 시간을 늘리고 계속 조정하여 필요한 단기 실행의 결론을 다시 확인하세요. 처음에는 다음 두 가지로 조정하는 것이 좋습니다.
- 1단계: 적절한 모델 및 옵티마이저 초매개변수를 찾기 위해 실행 시간이 더 짧습니다.
- 2단계: 최종 모델을 가져오기 위해 양호한 초매개변수 지점에서 장시간 실행되는 경우가 거의 없습니다.
1차 심사에서 2차 심사까지의 가장 큰 문제는 다음과 같습니다.
학습률 붕괴 일정을 어떻게 조정하나요?
라운드 간에 학습률 일정을 조정할 때 일반적인 함정은 학습률이 너무 낮은 모든 추가 학습 단계를 사용하는 것입니다.
1단계: 짧은 교육이 여러 번 진행됨
안타깝게도 학습 시간이 많이 길어졌을 때 짧고 불완전한 학습에서 발견된 좋은 초매개변수는 좋은 선택이 아닐 수 있습니다. 하지만 일부 초매개변수의 경우 1라운드가 유용하도록 충분한 상관관계가 있는 경우가 많습니다. 짧은 실행에서 발견된 초매개변수 값은 더 긴 학습 실행으로 성공적으로 전송되나요? 알 수 없습니다. 더 조사해야 합니다. 그러나 지금까지 파악된 내용에 따르면 환승할 가능성이 줄어들었다고 의심됩니다.
- 이전 가능성 높음 조기 학습 불안정은 더 적은 수의 학습 단계를 사용하여 1차 조정 단계에서 해결할 수 있습니다.
다음 초매개변수는 전송될 가능성이 높습니다.
- 워밍업 길이
- 초기화
- 전송될 가능성이 높습니다. 일반적으로 모델 아키텍처에서 극적인 이득을 취하지만 대수적으로 반격할 수 있습니다.
- 트랜스퍼될 수 있습니다. 다음 초매개변수는 전송될 수 있습니다.
- 최적화 알고리즘과 초매개변수는 '느슨하게' 전송됩니다.
- 데이터 증강.
- 정규화. 학습 세트에 완벽하게 맞출 수 없다면 모델이 정규화로 인해 큰 도움이 되지 않을 정치에 해당할 수 있습니다.
- 이전할 가능성 낮음 학습률 일정은 완벽하게 이전되지 않습니다. 컴퓨팅 최적 대규모 언어 모델 학습에 따르면 붕괴 일정 전송도 전송된다는 사실을 알지만 일반적으로 그렇다고 생각하지는 않습니다. 예를 들어 sqrt 값을 적은 수의 학습 단계에서 감쇠했다가 큰 값으로 확장하는 경우, 대부분의 학습이 지나치게 작은 단계로 진행됩니다. 극단적인 학습 예산 한도 내에서 대부분의 일정을 '충분히 잘' 수행할 수 있지만 미세 조정할 경우 성능이 눈에 띄게 향상될 수 있습니다. 확률적 메타 최적화에서 단방향-수평적 편향 이해하기에서는 학습률을 거짓으로 선택하려고 할 때의 위험을 설명합니다.
2단계: 실행 횟수는 적지만 재생 시간 연장
1단계에서 최적의 초매개변수 구성을 실행합니다.
예측: 🇦 추가 단계를 사용하여 높은 학습률로 학습 기간을
늘릴 수 있습니다. 예를 들어 선형 일정을 사용하는 경우 1라운드의 붕괴 길이를 고정된 상태로 유지하고 시작 부분에서 상수 lr
의 기간을 늘립니다. 코사인 붕괴의 경우, 1라운드의 기본 lr
를 유지하고 컴퓨팅 최적 대형 언어 모델 학습에 설명된 대로 max_train_steps
를 확장합니다.
다음 교육 과정이 모두 진행된 팀은 추가 교육 라운드가 적합할 수 있습니다.
- 매우 성숙한 모델링
- 파이프라인 조정
- 매우 길고 비용이 많이 드는 프로덕션 학습 실행
하지만 추가 학습 실행은 비생산적인 경우가 많습니다.
1단계에서 2단계로 이전하는 방법에 대해서는 이미 설명했습니다. 분석 시간에 관심이 없고 컴퓨팅 리소스를 효율적으로 사용하는 것이 중요한 문제라면 다양한 조정 단계에서 학습 실행 시간 (따라서 연구를 완료하는 엔드 투 엔드 시간)을 기하급수적으로 늘리는 것이 좋습니다.
- 각 라운드에서 선택의 결과가 계속 좋은지 체계적으로 확인합니다.
- 단계 i부터 단계 i+1까지 장기간 실행되는 점진적인 실험을 통해 점진적으로 아이디어를 잃는 파이프라인을 통해 새로운 아이디어를 제시합니다.