소식

70배의 궁극의 압축!대형 모델에 체크포인트가 아무리 많아도 걱정할 필요가 없습니다.

2024-08-05

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

AIxiv 칼럼은 Machine Heart가 학술 및 기술 콘텐츠를 게재하는 칼럼입니다. 지난 몇 년 동안 Heart of the Machine AIxiv 칼럼은 전 세계 주요 대학 및 기업의 최고 연구실을 대상으로 2,000개 이상의 보고서를 접수하여 학술 교류 및 보급을 효과적으로 촉진했습니다. 공유하고 싶은 훌륭한 작품이 있다면 자유롭게 기여하거나 보고를 위해 연락주시기 바랍니다. 제출 이메일: [email protected] [email protected]

본 논문의 저자는 모두 Huawei Noah Laboratory 출신입니다. 첫 번째 저자는 Li Wenshuo이고 교신 저자는 Wang Yunhe 및 Chen Xinghao입니다. 최근 몇 년간 관련 팀은 ICML, CVPR, NeurIPS, ICCV, ECCV 등 주요 학회에서 다수의 대표 작품을 발표했으며 효율적인 대형 언어 모델, 시각적 모델 등의 분야에서 풍부한 성과를 거두었습니다. 유명 대학과 과학 연구 기관의 협력이 광범위합니다.

현재 AI 업계와 학계에서 당연한 '교통의 왕'인 대형 모델은 연구 및 훈련에 자원을 투자하기 위해 수많은 학자와 기업을 끌어 모았습니다. 규모가 커지면서 시스템 및 엔지니어링 문제는 대규모 모델 훈련에서 피할 수 없는 문제가 되었습니다. 예를 들어, Llama3.1을 54일간 훈련하는 동안 시스템은 466번, 평균 2.78시간마다 한 번씩 충돌했습니다!



그런 다음 자주 저장소 검사점이 필요합니다. 하지만 체크포인트를 저장하는 것 자체가 큰 프로젝트이기도 합니다.



Meta는 빈번한 시스템 오류에 대처하기 위해 스토리지 체크포인트 시간을 단축하고 스토리지 빈도를 높이기 위해 많은 노력을 기울였습니다. 하지만 빈번한 스토리지는 많은 스토리지 리소스 오버헤드를 의미하기도 합니다. 이 문제를 해결하기 위해 훈련 클러스터에는 240PB SSD가 장착되어 있습니다.

Huawei Noah의 ExCP 방식은 스토리지로 인해 발생하는 막대한 오버헤드를 처리하기 위해 모델을 70번 무손실로 압축하여 학습 중 스토리지 오버헤드를 크게 줄일 수 있는 극한 압축 체크포인트 기술을 제안했습니다.





코드는 이제 오픈 소스이며 Apache 2.0 프레임워크에서 릴리스되었습니다. 문제의 일부 파트너는 결과를 성공적으로 재현했습니다.



  • 기사 주소: https://arxiv.org/abs/2406.11257
  • 창고 주소: https://github.com/Gaffey/ExCP

이 방법은 또한 매우 혁신적입니다. 하나는 시계열에 대한 정보의 희소성을 통해 더 높은 가지치기 비율을 달성하기 위해 훈련에서 체크포인트의 잔여 정보를 사용하는 것입니다. 전체적으로 높은 압축률을 달성하기 위해 압축을 위해 가중치가 결합됩니다.



구체적인 방법

1. 체크포인트 잔차

훈련 과정에서 현재 매개변수는 이전 체크포인트에 저장된 가중치와 연속 반복의 그래디언트 업데이트의 합으로 간주될 수 있습니다. 이 부분은 상대적으로 희박하고 정보가 적으므로 압축이 더 좋습니다. 비율을 얻을 수 있다. 반대로 옵티마이저에 저장된 모멘텀은 기울기의 첫 번째와 두 번째 모멘트의 슬라이딩 평균이며, 첫 번째 모멘트의 경우 슬라이딩 평균의 기본 매개변수는 0.9이며, 반복 후 범위는 0.9입니다. 마지막 체크포인트에 저장된 내용과 큰 상관관계가 없기 때문에 옵티마이저는 잔차가 아닌 자신의 값을 직접 압축합니다.압축할 최종 체크포인트는 다음과 같이 표현됩니다.



2. 체중 최적화 운동량 관절 압축

모델 압축과 관련된 기존 작업은 일반적으로 모델의 추론 성능이나 모델의 최종 저장 체크포인트 크기에만 초점을 맞추며, 전체 훈련 과정에서 모델의 저장 공간 오버헤드에는 관심을 두지 않습니다. 따라서 기존 작업에서는 Adam과 같은 일반적인 옵티마이저가 실제로 가중치 수의 두 배에 해당하는 모멘텀을 저장한다는 점을 무시하고 가중치만 압축합니다. 한편으로 이 작업은 두 가지를 함께 압축하여 전체 압축 비율을 크게 향상시키는 한편, 가중치와 최적화 모멘텀 간의 상관 관계를 사용하여 서로의 압축 비율을 더욱 향상시킵니다.

가중치 가지치기: 가지치기의 가중치는 잔차값이므로 옵티마이저 모멘텀의 2차 모멘트는 지난 기간 동안의 가중치 잔차값의 변화폭을 대략적으로 나타낼 수 있으므로 옵티마이저 모멘텀의 2차 모멘트는 다양한 레이어의 가지치기 비율을 결정하는 지표로 사용할 수 있습니다.가지치기 전략은 다음 공식으로 표시됩니다.



공식에서 W와 는 각각 무게와 2차 모멘트를 나타냅니다.



옵티마이저 운동량 가지치기: 운동량 가지치기의 경우 1차 모멘트를 지표로 사용하여 가지치기를 수행할 수 있습니다. 논문에 수렴에 대한 간략한 증거가 있습니다.동시에, 포지션의 가중치가 가지치기 되었다면 해당 포지션의 옵티마이저 모멘텀도 동시에 처리되어야 하므로 가지치기 전략은 다음 수식과 같습니다.



공식에서 는 1차 모멘트를 나타냅니다.

3. 전반적인 압축 과정

전체적인 압축 과정은 알고리즘 1과 같다. 가중치 잔여 계산/결합 압축/불균일 양자화/부호화 압축의 단계를 순차적으로 수행하여 최종 압축 결과를 얻는다.



체크포인트의 전체 파일을 복구하는 과정은 알고리즘 2와 같다. 압축 해제 후, 비균일 양자화 후 저장된 코드북과 첨자에서 부동 소수점 결과를 먼저 복구한 후 기준선 가중치(이전 검사)와 비교한다. 포인트의 원래 가중치 또는 복구된 재구성 가중치)를 함께 추가하여 체크포인트의 전체 파일을 얻습니다. 전체 학습 과정에서 체크포인트 파일을 복원하는 과정은 알고리즘 3과 같다. 학습이 완료된 후 각 체크포인트에 저장된 초기화 가중치의 랜덤 시드와 압축 결과만 저장한 후 체크포인트를 복원한다. 전체를 얻기 위한 시퀀스 훈련/테스트 등을 재개하기 위해 하나 이상의 체크포인트를 선택할 수 있는 체크포인트 시퀀스입니다.

실험 결과

이 기사에서는 대규모 언어 모델을 평가할 뿐만 아니라 이 방법을 사용하면 ViT-L32와 같은 대규모 시각적 모델에서도 좋은 결과를 얻을 수 있습니다.



또한 잔존 가지치기 방법을 사용하면 가지치기로 인한 손실이 크게 줄어드는 것을 절제 실험에서도 확인할 수 있습니다.



이 기사에서는 압축 전후의 대규모 언어 모델에 대한 질문 및 답변의 예도 제공합니다. 압축 자체가 모델의 질문 및 답변 기능에 손상을 주지 않음을 알 수 있습니다.