분류 전체보기 73

Quantization 1 : 개요

Quantization이란?숫자의 정밀도를 낮추는 최적화 및 경량화 기법이다. 이때 정밀도란?무리수가 있을 때 그 무리수를 얼마나 정확하게 표현할지 예를 들어 π를 표현할 때 정밀도가 높으면 : 3.141592정밀도가 낮으면 : 3.14 낮은 정밀도의 특징계산 속도 향상오차 발생메모리 사용량 감소 Quantization의 목표높은 정밀도로 표현된 것들을 낮은 정밀도로 바꾸되, 오차를 최소화하는 방법을 찾는 것이다. Quantization의 개요높은 정밀도의 값을 적절한 정밀도 값에 맵핑하는 함수가 필요하다.이를 Quantization Mapping라고 한다. Quantization의 에러가 커질수록 성능 저하이유 :(1) 누적 오차 :작은 오차들이 층을 거치면서 누적되고 증폭(2) 비활성화 :ReLU함수..

KD 4 : Imitation Learning

내부에 접근할 수 없지만 블랙 박스 모델의 성능이 아주 좋은 경우가 있다.이들의 지식을 활용할 수 없을까?    Imitation Learning(모방 학습)이란다른 에이전트, 교사 모델의 행동을 관찰해서 자신의 정책으로(답변 방식) 학습하는 기계 학습 방법이다.ex: 교사 (Chat GPT), 자신 (SLM = Smal language model), 행동 (Chat GPT의 응답, 우리가 증류하려는 지식의 종류 ) 출력 결과 외에는 우리가 얻을 수 있는 정보가 없어서 이렇게 활용한다.  NLP 분야에서 관련 연구를 많이 하고 있다.예를 들면 '과일에 대해 알려줘!' 라고 교사 모델에 입력하면 알고 있는 지식이 많다보니 다양하고 많은 정보를 알려준다. 하지만 조금 작은 모델들은 간소한 정보만 알려준다.우..

KD 3 : Feature - based KD

Feature - based KD 는 내부에 대한 접근이 모두 가능한, 화이트 박스 모델에 대해서만 사용 가능하다. 교사 모델의 레이어 Feature를 사용한다.중간 결과 혹은 과정이라고도 해석할 수 있다.(Representation) 즉, Feature - based는 중간에 있는 Feature들을 우리가 전달해서 학습하는 것이다.  교사 모델의 중간 레이어 Feature f_t (d_t 차원)학생 모델의 중간 레이어 Feature f_s (d_s 차원)두 Feature는 차원이 다를 수 있기 때문에 학생 모델에 regressor layer R을 주게 된다. 이 R을 통해서 f_s가 f_t 와 비슷한 형태가 되도록 맞춰주는 역할을 한다.R : d_s -> d_t (작은 차원을 큰 차원으로 바꿔주는 모듈..

KD 2 : Logit based KD

Logit based KD를 비유적으로 말하자면 교사가 학생에게 풀이방법을 알려주는데, 각 선택지가 어느정도 가능성을 갖고 있는지도 같이 알려준다고 생각하면 된다. 예를 들어 어떤 5지선다 객관식 문제의 정답은 1번이지만 2~5번 선택지의 정답일 확률도 함께 알려주는 것이다.  즉, 교사 모델의 Logit 값을 지식으로 활용하는 방법이다.그럼 Logit이란?넓은 의미 : 확률 분포가 아직 정규화가 되지 않은 상태좁은 의미 : Softmax 함수를 씌우게 되면 나오는 확률분포  사용할 교사 모델의 지식Logit으로 계산된 클래스 확률값이다.클래스 간 유사도라던지, 혹은 교사 모델이 한 생각들이 간접적으로 녹아있다.교사 모델은 데이터를 학습하면서 그 유사도를 자연스럽게 파악할 수 있기 때문이다. 예를 들어 ..

KD 1 : 지식 증류의 개념

다른 모델로부터 지식을 추출해서 전달하는 지식 증류 기법에 대해 알아보자.  정의고성능을 보이는 교사 모델에게 지식을 전달받아서 학생 모델을 학습시키는 기법이다. 학생 모델 : 교사 모델보다 상대적으로 작고, 성능이 떨어진다.교사 모델 : 학생 모델보다 상대적으로 크고, 성능이 잘 나온다.우리는 두 모델의 장점을 전부 갖고 싶다.따라서 학생 모델에게 지식을 전달해서 작은 모델이지만 성능은 우수한 결과를 얻을 것이다.  분류우리가 학생 모델에게 전달해주고 싶은 지식에 따라 종류가 나뉜다. Response - based입력을 줬을 때, 교사 모델이 갖고 있는 Response들(Logit, Output)을 지식으로 활용하는 것Logit - based :  Teacher의 Logit 을 사용 Output - b..

Pruning 3 : 적용사례 (CNN, BERT)

CNN과 BERT에서 어떻게 pruning하는지 알아보자.Pruning in CNN CNNCNN 모델은 CNN과 FC 부분으로 나뉜다.FC : 대부분의 파라미터가 존재(공간)CNN : 연산 속도 좌우(시간)따라서 공간과 시간 효율을 모두 챙기려면 두 부분 모두 pruning이 필요하다. CNN FiltersCNN은 이미지에 적용할 적절한 Filter 를 학습한다.이때 Filter란 이미지 단위다. (코, 입, 얼굴 모양, 등) Filter 는 한 장에 행렬 1개라고 보면 된다.앞단의 레이어의 경우 디테일한 Feature를 찾고, 뒤쪽 레이어는 전체적인 구조를 파악하는 경향이 있다.  Filter Pruning중요도가 작은 Filter를 제거하는 것이 CNN의 pruning이다.Stuctured한 방법이며..

Pruning 사전 지식

실습에 들어가기 전 사전 지식을 정리해두자. Matrix Sparsity 희소행렬 : 행렬의 대부분의 요소가 0인 행렬Sparsity = 전체 중 0의 비율 (Density = 1 - Sparsity ) 121500120Dense 행렬Sparsity  = 3 / 9 = 33.33%Dense  = 6 / 9 = 66.67% 100000100Sparsity  행렬Sparsity  = 7 / 9 = 77.78%Dense  = 6 / 9 = 22.22%   위와 같은 행렬에 대해 말한 이유는 Unstructured pruning은 Structured pruning과는 다르게 파라미터 값을 0으로 바꾸는 방식이다.여전히 0을 저장하고 있고(공간 절감 X), 0을 곱하고 있기(시간 절감 X) 때문에 이 방식으로는 ..

Pruning 예시 ( IMP 동작 방식 )

IMP (Iterative Magnitude Pruning)(1) 정의가장 기본적인 Pruning 방법이다.Structured : Unstructured Pruning 기법의 일종Scoring : 파라미터별로 절댓값을 중요도로 측정하고 Global Pruning을 한다.Scheduling : Recursive 방식을 활용한다.Initialization : Rewind 방식을 활용한다.  (2) 순서1) 초기 모델을 학습2) 절댓값이 작은 파라미터를 전역에서 제거3) 랜덤으로 파라미터 초기화하고 원래 데이터로 Fine - Tuning 진행4) 여러번 반복해서 최종적인 결과를 얻는다.

Pruning 2 : Taxonomy

Pruning 방법의 분류 - 4가지 관점 Structure- Pruning을 어떤 단위로 할 지- Pruning을 간선 하나 단위로 없앨지 아니면, 뉴런단위, 혹은 레이어 단위로 없앨지 Scoring- 어떤 파라미터를 선정할지 Scheduling- Pruning을 한 다음에 Fine - Tuning 을 언제 얼마나 할 것인지에 대한 구분 Initialization- 재학습 및 Fine - Tuning 을 할 때 파라미터 초기화를 어떻게 할지   1. Structure  Unstructure Pruning개별 파라미터 단위로 없애는 것(0으로 바꿔줌으로써 없앤 것으로 간주)모델 구조 변경이 없다. Structure Pruning 레이어 단위나 채널 단위처럼 특정 구조를 통째로 없애는 것(레이어 자체가 사..

Pruning 1 : 소개

1. Pruning 이란?이전 글에서 Pruning 이란 가지치기라고 했었다.Pruning 을 할 주체, 모델이 있을텐데, 우리는 주로 신경망 모델을 사용할거다.이 신경망 모델에서 노드나 커넥션( 다르게 표현하면 노드와 시냅스) 를 제거하여 모델의 크기와 계산 비용을 줄일 것이다. 우리는 단위는 노드나 뉴런이라는 큰 단위를 없앨 수 있고, 혹은 노드끼리 연결되는 간선(시냅스) 하나하나를 없애서 우리가 원하는 모델의 크기 줄이기가 가능하다.  Pruning 을 하는 방법은 다음과 같다. (1) 완전한 초기 모델의 파라미터 중 제거 가능한 파라미터를 판별한다. (2) 해당 파라미터들을 기존에 있던 값들을 0으로 대체함으로써 제거한다. (3) 많은 정보가 없어진 새로운 모델이 있을건데, 초기 모델과 비교하면 ..