소식

Nvidia는 가지치기와 증류를 통해 Llama 3.1 8B의 매개변수를 절반으로 줄이고 동일한 크기로 더 나은 성능을 달성합니다.

2024-08-16

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

기계 심장 보고서

편집자: Du Wei, Chen Chen, Zenan

소형 모델의 등장.

지난 달 Meta는 현재까지 Meta의 가장 큰 405B 모델과 각각 700억 개와 80억 개의 매개변수를 가진 두 개의 작은 모델을 포함하는 Llama 3.1 모델 시리즈를 출시했습니다.

Llama 3.1은 오픈 소스의 새로운 시대를 여는 것으로 간주됩니다. 그러나 차세대 모델은 성능이 강력하더라도 배포 시 여전히 많은 양의 컴퓨팅 리소스가 필요합니다.

따라서 업계에서는 다양한 언어 작업에서 충분한 성능을 발휘하고 배포 비용이 매우 저렴한 소규모 언어 모델(SLM)을 개발하는 또 다른 추세가 나타났습니다.

최근 NVIDIA 연구에 따르면 지식 증류와 결합된 구조화된 가중치 가지치기가 처음에는 더 큰 모델에서 더 작은 언어 모델을 점차적으로 얻을 수 있는 것으로 나타났습니다.



Turing Award 수상자이자 Meta의 수석 AI 과학자인 Yann LeCun도 해당 연구에 좋아요를 표시하고 다시 게시했습니다.

NVIDIA 연구팀은 가지치기 및 증류 과정을 거쳐 Llama 3.1 8B를 Llama-3.1-Minitron 4B로 정제하여 오픈 소스로 만들었습니다. 이는 Llama 3.1 오픈 소스 시리즈 중 NVIDIA의 첫 번째 작품입니다.

Llama-3.1-Minitron 4B는 Minitron 4B, Phi-2 2.7B, Gemma2 2.6B 및 Qwen2-1.5B를 포함하여 비슷한 크기의 최첨단 오픈 소스 모델보다 성능이 뛰어납니다.



이 연구와 관련된 논문은 이르면 지난달 발표됐다.



  • 논문 링크: https://www.arxiv.org/pdf/2407.14679
  • 논문 제목: 가지치기 및 지식 증류를 통한 컴팩트 언어 모델

가지치기와 증류

가지치기는 모델을 더 작고 가늘게 만들며, 레이어를 제거하거나(깊이 가지치기) 뉴런과 주의 헤드를 제거하고 채널을 삽입함으로써(폭 가지치기) 달성할 수 있습니다. 가지치기에는 일반적으로 정확성을 복원하기 위한 어느 정도의 재교육이 수반됩니다.

모델 증류는 크고 복잡한 모델(종종 교사 모델이라고 함)의 지식을 더 작고 단순한 학생 모델로 전달하는 기술입니다. 목표는 더 빠르게 실행하고 더 적은 리소스를 소비하면서 원래의 대규모 모델의 예측력을 대부분 유지하는 보다 효율적인 모델을 만드는 것입니다.

두 가지 주요 증류 방법이 있습니다. SDG 미세 조정과 고전 지식 증류입니다. 이 두 가지 증류 방법은 상호보완적입니다. 이 기사에서는 고전 지식 증류 방법에 중점을 둡니다.

NVIDIA는 가지치기와 고전적 지식 증류를 결합하여 대규모 모델을 구축합니다. 아래 그림은 단일 모델의 가지치기 및 증류 프로세스(상단)와 모델 가지치기 및 증류 체인(하단)을 보여줍니다. 구체적인 과정은 다음과 같습니다.

1. NVIDIA는 15B 모델로 시작하여 각 구성 요소(레이어, 뉴런, 헤드 및 임베딩 채널)의 중요성을 평가한 다음 모델을 목표 크기인 8B 모델로 정렬하고 정리합니다.

2. 그런 다음 원래 모델을 교사로, 정리된 모델을 학생으로 사용하여 가벼운 재훈련을 위해 모델 증류를 사용합니다.

3. 훈련 후 작은 모델(8B)을 시작점으로 사용하고 이를 더 작은 4B 모델로 정리하고 증류합니다.



15B 모델의 가지치기 및 증류 과정.

한 가지 주목해야 할 점은 모델을 잘라내기 전에 모델의 어느 부분이 중요한지 이해해야 한다는 것입니다. NVIDIA는 1024개 샘플의 소규모 보정 데이터 세트를 사용하여 모든 관련 차원(깊이, 뉴런, 헤드 및 임베딩 채널)의 정보를 동시에 계산하는 활성화 기반 순수 중요도 평가 전략을 제안하며 순방향 전파만 필요합니다. 이 접근 방식은 기울기 정보에 의존하고 역전파가 필요한 전략보다 더 간단하고 비용 효율적입니다.

가지치기 중에는 지정된 축 또는 축 조합에 대한 가지치기와 중요도 추정을 반복적으로 번갈아 가며 수행합니다. 경험적 연구에 따르면 단일 중요도 추정을 사용하는 것만으로도 충분하며 반복 추정이 추가적인 이점을 가져오지 않는 것으로 나타났습니다.

고전 지식 증류를 이용한 재교육

아래 그림 2는 M층 Teacher 모델(원래 가지치기되지 않은 모델)에서 N 계층 Student 모델(가지치기 모델)을 증류하는 증류 과정을 보여줍니다. Student 모델은 Student 블록 S와 Teacher 블록 T에 매핑된 임베딩 출력 손실, 로짓 손실 및 Transformer 인코더 특정 손실의 조합을 최소화하여 학습됩니다.



그림 2: 증류 훈련 손실.

가지치기 및 증류 모범 사례

압축 언어 모델의 가지치기 및 지식 증류에 대한 광범위한 절제 연구를 기반으로 NVIDIA는 학습 결과를 다음과 같은 구조화된 압축 모범 사례로 요약합니다.

하나는 크기를 조정하는 것입니다.

  • LLM 세트를 훈련하려면 가장 큰 LLM을 먼저 훈련한 다음 반복적으로 잘라내고 증류하여 더 작은 LLM을 얻습니다.
  • 가장 큰 모델을 훈련하기 위해 다단계 훈련 전략을 사용하는 경우 마지막 훈련 단계에서 얻은 모델을 잘라내고 다시 훈련하는 것이 좋습니다.
  • 대상 크기에 가장 가까운 사용 가능한 소스 모델을 정리합니다.

두 번째는 가지치기입니다.

  • 깊이 가지치기보다 너비 가지치기를 우선시합니다. 이는 매개변수 크기가 15B 미만인 모델에 적합합니다.
  • 반복적 중요도 추정으로 얻을 수 있는 이점이 없으므로 단일 중요도 추정을 사용합니다.

세 번째는 재교육이다.

  • 정규 훈련 대신 증류 손실만 사용하여 재훈련합니다.
  • 깊이가 크게 줄어들면 로짓, 중간 상태 및 임베딩 증류를 사용합니다.
  • 깊이가 크게 감소하지 않는 경우 로짓 전용 증류가 사용됩니다.

Llama-3.1-Minitron: 모범 사례를 실천에 옮기기

Meta는 최근 많은 벤치마크에서 폐쇄 소스 모델과 경쟁하는 강력한 Llama 3.1 오픈 소스 모델 제품군을 출시했습니다. Llama 3.1의 매개변수 범위는 거대한 405B에서 70B 및 8B입니다.

Nemotron 증류 경험을 바탕으로 NVIDIA는 Llama 3.1 8B 모델을 더 작고 효율적인 4B 모델로 증류하기 시작했으며 다음과 같은 조치를 취했습니다.

  • 교사의 미세 조정
  • 깊이 전용 가지치기
  • 너비만 가지치기
  • 정확도 벤치마크
  • 성능 벤치마크

교사의 미세 조정

모델 훈련의 기반이 된 원래 데이터 세트의 분포 편향을 수정하기 위해 NVIDIA는 먼저 데이터 세트(94B 토큰)에서 정리되지 않은 8B 모델을 미세 조정했습니다. 실험에 따르면 분포 편향이 수정되지 않으면 교사 모델이 추출 시 데이터세트에 대해 최적이 아닌 지침을 제공하는 것으로 나타났습니다.

깊이 전용 가지치기

NVIDIA는 8B에서 4B로 줄이기 위해 16개 레이어(50%)를 잘라냈습니다. 먼저 모델에서 각 레이어 또는 연속 하위 레이어 그룹을 제거하여 중요성을 평가하고 다운스트림 작업에서 LM 손실의 증가 또는 정확도의 감소를 관찰합니다.

아래 그림 5는 1, 2, 8 또는 16개 레이어를 제거한 후 검증 세트의 LM 손실 값을 보여줍니다. 예를 들어, 레이어 16의 빨간색 플롯은 처음 16개 레이어가 삭제되면 LM 손실이 발생함을 나타냅니다. 레이어 17은 첫 번째 레이어를 유지하고 레이어 2~17을 삭제하면 LM 손실도 발생한다는 의미입니다. Nvidia는 다음과 같이 관찰합니다. 시작 및 종료 레이어가 가장 중요합니다.



그림 5: 중간 레이어의 깊이 전용 가지치기의 중요성.

그러나 NVIDIA는 이러한 LM 손실이 반드시 다운스트림 성능과 직접적인 관련이 있는 것은 아니라는 점을 관찰했습니다.

아래 그림 6은 각 가지치기 모델의 Winogrande 정확도를 보여줍니다. 레이어 31이 두 번째 레이어인 레이어 16~31을 삭제하는 것이 가장 좋음을 보여줍니다. 0.5). Nvidia는 이 통찰력을 채택하고 레이어 16부터 31까지 제거했습니다.



그림 6: 16개 레이어가 제거되었을 때 Winogrande 작업의 정확도.

너비만 가지치기

NVIDIA는 Llama 3.1 8B를 압축하기 위해 너비 축을 따라 임베딩(숨겨진) 및 MLP 중간 치수를 정리합니다. 구체적으로 그들은 앞서 설명한 활성화 기반 전략을 사용하여 각 관심 헤드, 임베딩 채널 및 MLP 숨겨진 차원에 대한 중요도 점수를 계산합니다.

중요도를 평가한 후 NVIDIA는 다음을 선택했습니다.

  • MLP 중간 차원을 14336에서 9216으로 정리합니다.
  • 숨겨진 크기를 4096에서 3072로 정리합니다.
  • 주의 헤드 수와 레이어 수를 다시 훈련합니다.

단일 표본 가지치기 후 너비 가지치기의 LM 손실이 깊이 가지치기의 손실보다 높다는 점은 언급할 가치가 있습니다. 그러나 짧은 재교육 기간 이후 추세는 반전되었습니다.

정확도 벤치마크

NVIDIA는 다음 매개변수를 사용하여 모델을 추출합니다.

  • 최고 학습률 = 1e-4
  • 최소 학습률 = 1e-5
  • 40단계 선형 예열
  • 코사인 붕괴 방식
  • 전역 배치 크기 = 1152

아래 표 1은 여러 도메인에 걸친 벤치마크에서 Llama-3.1-Minitron 4B 모델 변형(너비 가지치기 및 깊이 가지치기)과 원래 Llama 3.1 8B 모델 및 기타 유사한 크기 모델의 성능 비교를 보여줍니다. 전반적으로 NVIDIA는 모범 사례를 따르는 심층 가지치기와 비교하여 넓은 가지치기 전략의 효율성을 다시 한 번 확인했습니다.



표 1: 비슷한 크기의 기본 모델과 Minitron 4B 기본 모델의 정확도 비교.

증류된 모델이 강력한 명령어 모델이 될 수 있는지 검증하기 위해 NVIDIA는 NeMo-Aligner를 사용하여 Llama-3.1-Minitron 4B 모델을 미세 조정했습니다.

그들은 Nemotron-4 340B 교육 데이터를 사용하고 IFEval, MT-Bench, ChatRAG-Bench 및 BFCL(Berkeley Function Calling Leaderboard)에 대한 평가를 수행하여 지침 따르기, 롤플레잉, RAG 및 함수 호출 기능을 테스트했습니다. 마지막으로 Llama-3.1-Minitron 4B 모델이 신뢰할 수 있는 명령 모델이 될 수 있으며 다른 기본 SLM보다 성능이 우수하다는 것이 확인되었습니다.



표 2: 정렬된 Minitron 4B 기본 모델과 유사한 크기의 정렬 모델의 정확도 비교.

성능 벤치마크

NVIDIA는 LLM 추론 최적화를 위한 오픈 소스 툴킷인 NVIDIA TensorRT-LLM을 사용하여 Llama 3.1 8B 및 Llama-3.1-Minitron 4B 모델을 최적화했습니다.

다음 두 그림은 다양한 사용 사례에서 다양한 모델에 대한 FP8 및 FP16 정밀도의 초당 처리량 요청을 보여줍니다. 이는 8B 모델의 경우 배치 크기가 32인 입력 시퀀스 길이/출력 시퀀스 길이(ISL/OSL) 조합으로 표현됩니다. 4B 모델 배치 크기는 NVIDIA H100 80GB GPU에서 더 큰 배치 크기를 허용하는 더 작은 가중치 덕분에 64의 입력 시퀀스 길이/출력 시퀀스 길이(ISL/OSL) 조합입니다.

Llama-3.1-Minitron-4B-Depth-Base 변형은 Llama 3.1 8B보다 평균 처리량이 약 2.7배로 가장 빠르며, Llama-3.1-Minitron-4B-Width-Base 변형은 평균 처리량이 라마 3.1 1.8x 8B에 대해. 또한 FP8에 배포하면 이 세 가지 모델의 성능이 BF16에 비해 약 1.3배 향상됩니다.





그림 8: 조합: BS=32의 Llama 3.1 8B, BS=64의 Llama-3.1-Minitron 4B 모델.

결론적으로

가지치기 및 고전 지식 정제는 더 작은 크기의 LLM을 점진적으로 확보하여 모든 영역에서 처음부터 교육하는 것보다 더 높은 정확도를 달성하는 매우 비용 효율적인 방법입니다. 이는 합성 데이터를 미세 조정하거나 처음부터 사전 학습하는 것보다 더 효율적이고 데이터 효율적인 접근 방식입니다.

Llama-3.1-Minitron 4B는 가장 발전된 오픈 소스 Llama 3.1 시리즈를 사용하려는 NVIDIA의 첫 번째 시도입니다. NVIDIA NeMo와 함께 Llama-3.1에 대한 SDG 미세 조정을 사용하려면 GitHub의 /sdg-law-title-generation 섹션을 참조하세요.

자세한 내용은 다음 리소스를 참조하세요.

  • https://arxiv.org/abs/2407.14679
  • https://github.com/NVlabs/Minitron
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Width-Base
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Depth-Base

https://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/