minitron: 15B -> 8B -> 4B 더 작고 효율적으로 정제한 모델 (feat. NVIDIA)\

minitron 모델 소개

대형 언어 모델(LLM)은 자연어 처리와 이해에서 중요한 역할을 하고 있지만, 배포하는 데 많은 자원이 필요합니다. 이에 따라 비용 효율적인 소형 언어 모델(SLM, Small Language Model)이 주목받고 있습니다. NVIDIA 연구원들은 구조적 가중치 프루닝과 지식 증류를 결합한 방법이 LLM을 효과적으로 소형화하는 전략임을 보여주었습니다.

NVIDIA는 최근 Llama-3.1 8B 모델을 4B 모델로 줄이는 과정에서 구조적 가중치 가지치기(Structured Weight Pruning)와 지식 증류(KD, Knowledge Distillation)를 활용했습니다. 이 방법은 학습 효율성을 높이고 컴퓨팅 비용을 절감하며, 성능은 유지하면서도 모델 크기를 줄일 수 있는 혁신적인 접근법으로 평가받고 있습니다.

프루닝(Pruning) 은 모델을 작게 만드는 과정으로, 레이어를 제거하는 "깊이 프루닝(Depth Pruning)"과 뉴런, 어텐션 헤드, 임베딩 채널을 제거하는 "너비 프루닝(Width Pruning)"이 있습니다. 이러한 가지치기 작업 후에는 정확도를 회복하기 위한 재학습이 필요합니다.

모델 디스틸레이션(Model Distillation) 은 큰 모델(선생님 모델)에서 작은 모델(학생 모델)로 지식을 전이하는 기법입니다. 이 방법은 모델의 예측 성능을 유지하면서도 더 작고 효율적인 모델을 만들기 위해 사용됩니다.

이러한 과정을 통해 NVIDIA Nemotron 시리즈15B 모델을 사용하여 NVIDIA Minitron 8B 모델4B 모델을 제작 및 공개하였습니다.

minitron의 가지치기 및 증류 절차

minitron의 가지치기 및 증류 절차

먼저, 다음의 단계들을 통해 가지치기(pruning)와 증류(distillation)를 실행합니다:

  1. 15B 모델에서 시작하여 각 구성 요소의 중요도를 평가하고 8B 모델로 축소합니다.

  2. 원본 모델을 Teacher Model로 사용하여 프루닝된 모델을 경량화된 재학습을 수행합니다.

  3. 이후, 소형화된 8B 모델을 기반으로 4B 모델로 추가로 축소합니다.


minitron의 가지치기 및 증류 후 추가 학습 진행

이렇게 모델 크기를 줄인 뒤, 다음의 과정을 거쳐 최적화를 진행합니다:

  • 크기 조정: 가장 큰 모델을 먼저 훈련한 후, 프루닝과 증류를 통해 작은 모델로 축소합니다.

  • 프루닝: 깊이보다는 너비를 우선적으로 프루닝하며, 단일 중요도 추정이 효과적입니다.

  • 재학습: 기존 훈련 대신 디스틸레이션 손실만을 사용하여 재학습합니다.

Llama-3.1-Minitron 4B 모델 구축

Llama 3.1 8B 모델을 4B 모델로 축소하기 위해 다음 과정을 거쳤습니다:

  • Teacher Model 파인튜닝: 데이터셋의 분포 변화를 교정하기 위해 원본 8B 모델을 추가로 파인튜닝했습니다.

  • 깊이 프루닝: 8B에서 4B로 축소하기 위해 50% 레이어를 제거했습니다. 실험 결과, 시작과 끝 부분의 레이어가 가장 중요하다는 것을 발견했습니다.

  • 너비 프루닝: 어텐션 헤드와 임베딩 채널의 중요도를 평가하여 프루닝을 수행했습니다. 너비 프루닝 후 경량화된 재학습을 거쳤습니다.

이러한 과정을 거쳐 생성한 Llama-3.1-Minitron 4B 모델은 여러 도메인의 벤치마크에서 원본 Llama 3.1 8B 모델과 유사한 성능을 보여줍니다. 또한 NVIDIA TensorRT-LLM을 사용한 최적화로 Llama-3.1-Minitron-4B-Depth-Base 모델이 Llama 3.1 8B 모델보다 약 2.7배 높은 처리량을 기록했습니다.

성능 비교 (Throughput)

다음은 Llama 3.1 8B와 Llama-3.1-Minitron 4B 모델을 LLM 추론 도구인 TensorRT-LLM을 사용하여 성능(throughput)을 비교한 결과입니다:

프루닝과 고전적 지식 증류는 LLM을 점진적으로 소형화하는 데 있어 매우 비용 효율적인 방법입니다. 이 방법은 모든 도메인에서 훈련된 모델보다 우수한 정확도를 달성하며, 데이터 효율성 면에서도 효과적입니다. Llama-3.1-Minitron 4B 모델은 이 접근 방식을 통해 개발된 첫 번째 사례로, 차후 NVIDIA NeMo에서의 사용이 기대됩니다.

:postbox: minitron 블로그 글

:scroll: minitron 논문

:github: minitron GitHub 저장소

:hugs: minitron 모델 저장소

Llama-3.1-Minitron-4B-Width-Base

Llama-3.1-Minitron-4B-Depth-Base




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: