logo

최근 동향

지식 증류 Knowledge Distillation

  • 큰 모델의 지식을 작은 모델에 옮겨 담는 학습 방법
  • 대형 언어 모델은 성능이 좋지만 학습·추론 비용이 높고 배포가 어려움
  • 큰 모델이 만들어낸 출력이나 판단 방식을 활용해 더 작은 모델을 학습시킴
  • 모델 크기 축소, 추론 속도 향상, 서비스 비용 절감, 온디바이스·로컬 환경 배포 가능성 증가, 특정 과업에 특화된 경량 모델 제작에 활용
  • 지도학습은 정답 라벨을 학습하지만, 증류에서는 큰 모델의 출력(예: 확률)을 학습 신호로 사용
  • 작은 모델이 큰 모델의 출력을 완전히 학습하지는 못함

교사 모델의 지식을 학생 모델로 전달하는 지식 증류 구조

KV 캐시

  • 대부분의 LLM은 Transformer 모델 구조를 사용
  • 트랜스포머는 현재 토큰이 앞의 토큰들과 어떤 관계가 있는지 계산하며, 각 토큰은 Key, Value, Query 벡터로 변환됨
  • 매번 전체 문장을 처음부터 다시 계산하면 비효율적이므로 과거 토큰의 Key와 Value를 저장해 두었다가 다음 토큰을 만들 때 재사용
  • 다음 토큰 생성 속도를 높일 수 있음
  • OpenAI API의 경우 일반 입력은 캐시된 입력보다 10배에서 80배 더 높은 요금이 적용될 수 있음
  • KV 캐시는 계산량을 줄이는 대신 메모리를 많이 사용하는 단점이 있음

Mixture-of-Expert

  • 하나의 거대한 모델 전체를 항상 사용하는 대신, 여러 개의 Expert를 만들어 두고 입력에 따라 필요한 Expert만 활성화하는 방식
  • 앞단의 Router가 입력 토큰을 보고 어떤 Expert를 사용할지 결정
  • 모델의 전체 파라미터 수는 크게 늘리면서도 실제 한 번의 추론에서 사용하는 계산량은 제한할 수 있음
  • 장점
    • 모델 용량 확장에 유리
    • 학습 데이터와 과업의 다양성을 처리하기 좋음
    • 같은 계산량 대비 성능을 높일 수 있음
    • 대형 모델을 효율적으로 스케일링하기 좋음
  • 단점
    • 구조가 복잡함
    • Router가 Expert를 잘 배분해야 함
    • 학습도 더 복잡함

라우터가 입력에 따라 필요한 전문가 모델만 활성화하는 MoE 구조

양자화 Quantization

  • LLM은 수십억 개의 파라미터를 가지므로 저장 및 계산 비용이 큼
  • 훈련 후 파라미터를 더 낮은 정밀도로 표현하는 압축 방법
  • 예: 32비트 부동소수점(float32) 대신 8비트 정수(int8)를 사용
  • 모델의 용량을 줄이고 속도를 높일 수 있음
  • 단순한 기기에서도 작동 가능
  • 정밀도를 낮추는 과정에서 오차가 생길 수 있음
  • 종류
    • float16: 변환이 간단하고 용량이 절반으로 감소
    • int8: 변환이 복잡하지만 용량이 1/4로 감소
    • BitNet: 모델 가중치를 -1/+1 두 값 중 하나(1bit), 또는 -1/0/+1 세 값 중 하나(1.58bit)로 표현

LoRA Low-Rank Adaptation

  • 파라미터 로 분리
  • : 사전 학습된 파라미터이며 미세조정에서는 고정
    • 차원
  • : 미세조정할 때 업데이트할 파라미터
    • : 차원이며, 보다 작고 무작위로 초기화
    • : 차원이며, 0으로 초기화(도 0으로 초기화된 것과 같음)
  • 미세 조정 후에는 를 더하면 새로운 를 얻을 수 있음
  • 추론할 때 추가적인 계산이 필요 없음

LoRA에서 고정된 사전 학습 가중치와 저랭크 행렬 A, B를 더하는 구조

QLoRA

  • 양자화(Quantization)와 LoRA를 결합한 방법
  • 트랜스포머를 4비트로 양자화
  • 모델 전체를 튜닝하는 것에 비해 더 적은 VRAM으로 비슷한 성능을 얻는 것을 목표로 함

Full fine-tuning, LoRA, QLoRA의 메모리 사용 구조 비교

QLoRA와 LoRA의 성능 비교 표

가지치기 Pruning

  • 모델 안에서 중요도가 낮은 가중치, 뉴런, 채널, 어텐션 헤드 등을 제거해 모델을 더 작고 빠르게 만드는 압축 기법
  • Lottery Ticket Hypothesis: 큰 신경망 안에 처음부터 잘 학습될 수 있는 작은 부분 네트워크가 숨어 있다는 가설
  • Pruning은 학습 후 불필요한 부분을 제거하는 기법일 뿐 아니라, 큰 모델 안에서 성능 좋은 작은 모델을 찾는 방법일 수도 있음
  • 과정
    • 큰 모델을 학습
    • 중요도가 낮은 파라미터나 구조를 찾음
    • 해당 부분을 제거
    • 미세조정
  • 종류
    • 구조적(structured) 가지치기: 뉴런, 채널, 레이어, 어텐션 헤드처럼 구조 단위로 제거
    • 비구조적(unstructured) 가지치기: 개별 가중치 단위로 제거

가지치기 전후 신경망 연결과 뉴런 제거 예시

Previous
에이전트 기반 시뮬레이션