운동하는 공대생

[논문] Compressing Large Language Models by Joint Sparsification and Quantization 본문

논문

[논문] Compressing Large Language Models by Joint Sparsification and Quantization

운동하는 공대생 2024. 11. 7. 16:28
728x90
반응형

1. Intro

요즘 모델들을 압축하기 위해서 많은 방식을 사용을 하지만 이런 방식들은 compression ratio가 커지면 정확도가 떨어지는 문제가 발생한다.

그래서 LLM performance는 유지하면서 높은 압축을 하는 방법이 없을까? 라는 질문에서 시작

본 논문에서는 sparsification과 quantization을 같이 고려한다. 이 두가지 방법을 사용하는 첫 논문이라고 이야기를 한다.

두가지를 동시에 사용이 가능한 이유는 크게 2가지 중요한 이유가 있는데 첫번째는 두가지는 반대되는 성향을 가진다. Sparsification은 그 파라미터의 가장 절댓값이 큰값으로 표현되며 양자화는 작은 range로 양자화 되려고 한다.

즉 작은 값을 유지하면 QUANTIZATION에는 좋아도 sparsification에 좋지 않다. 그래서 이런 밸런스를 맞춰야 한다.

논문에서는 그래서 Salience with Activation Range(SAR)을 새롭게 추가했다.

문제

  1. sparsification은 small activation ranges 를 설정하여서 quantization freiendly하게 바꾼다.

SAR는 회소화 과정에서 제거된 가중치 이후의 활성화 범위를 추가로 고려하여 압축

  1. outliers의 문제는 검색 기반의 activation editor를 활용하여 필요 없는 outliers를 자동으로 삭제한다.

activation이 나와서 sparsity를 하기 전에 이상치를 바로 제거 annealing 알고리즘 사용

2. Related Work

기존의 compression 방식은 비율이 높아지면 무너지는 경향이 있다.

Sparification 과 quantization에는 동시에 작업을 하기 위해서는 tradeoff가 존재를 하지만 이런건 이전 과제에서 다루더라도 outlier에 대한 처리는 하지 않는다.

3. Methodology

3.1 overview

먼저 LLM 모델을 가지고 activation의 outliers를 제거한다. 그리고 Salience with Activation Range(SAR) 을 통해서 layer별로 weight와 activation을 sparsify와 quantize를 고려하여 압축한다.

순서

activation에서 useless outliers를 제거 → SAR(salience with activation range)로 sparsify측정 → 양자화 진행

3.2 Salience with Activation Range

앞에서 말한 것 처럼 sparsification 은 큰 absolute 값을 가지려 하고 quantization은 그런 값들에 방해를 받는다. 그래서 희소화 중 양자화를 고려한다.

Salience with activation outlier

이렇게 채널별로 각 weight와 중요도를 측정하기 위해서 이렇게 사용한다.

여기까지 하면 양자화는 고려하지 않는다. 이런건 outliear는 더 정보를 담는다고 여겨진다.

여기서 아래의 식은 W의 각 요소를 하나씩 0으로 만들어 보조 행렬을 생성하고, 같은 채널에 있는 y 값—즉, 0으로 만들었던 동일 채널의 y 값—을 가져와 최댓값과 최솟값의 차이로 범위를 나타낸다.

중요도를 측정하는 방식으로 특정 weight를 0 으로 만들어서 나오는 acitvation의 matrix에서 영향을 주는 output activation column에서 max - min을 해서 auxiliary salience를 구한다. 그리고 절대값과 이전 activation column의 norm값을 곱한값을 더해주면서 sparsification metric 구성

3.3 Search-based Activation Editor

무작정 삭제를 하는게 아니라 일정 수준을 유지하면서 성능이 떨어지지 않는 선에서 삭제해야함

그래서 Search -based activation editor (SAE) 사용한다.

Activation editing

먼저 활성화 벡터인 F 를 사용하여서 큰값 과 작은 값을 일정 r 값을 통해서 bound를 설정하고 그거보다 크거나 작으면 LB,HB로 치환하는 방식으로 설정한다.

Activation encoding

R={r1,r2 ….. rn} 까지 총 n 개의 선택지를 주고 여기서 한개를 선택하여서 L 개의 layer중 한개의 layer가 이것을 선택하는 느낌으로 V=[v1,v2,,,,vL] 즉 v1은 R 중 하나를 선택한 것이다.

Simulated annealing search

아까 설명처럼 V 를 랜덤하게 초기화 하고 compress한 다음 성능을 측정하는 시나리오를 알고리즘으로 구현한다. 그래서 여러번 반복하여 최적은 V를 찾는다.

1. Intro

요즘 모델들을 압축하기 위해서 많은 방식을 사용을 하지만 이런 방식들은 compression ratio가 커지면 정확도가 떨어지는 문제가 발생한다.

그래서 LLM performance는 유지하면서 높은 압축을 하는 방법이 없을까? 라는 질문에서 시작

본 논문에서는 sparsification과 quantization을 같이 고려한다. 이 두가지 방법을 사용하는 첫 논문이라고 이야기를 한다.

두가지를 동시에 사용이 가능한 이유는 크게 2가지 중요한 이유가 있는데 첫번째는 두가지는 반대되는 성향을 가진다. Sparsification은 그 파라미터의 가장 절댓값이 큰값으로 표현되며 양자화는 작은 range로 양자화 되려고 한다.

즉 작은 값을 유지하면 QUANTIZATION에는 좋아도 sparsification에 좋지 않다. 그래서 이런 밸런스를 맞춰야 한다.

논문에서는 그래서 Salience with Activation Range(SAR)을 새롭게 추가했다.

문제

  1. sparsification은 small activation ranges 를 설정하여서 quantization freiendly하게 바꾼다.

SAR는 회소화 과정에서 제거된 가중치 이후의 활성화 범위를 추가로 고려하여 압축

  1. outliers의 문제는 검색 기반의 activation editor를 활용하여 필요 없는 outliers를 자동으로 삭제한다.

activation이 나와서 sparsity를 하기 전에 이상치를 바로 제거 annealing 알고리즘 사용

2. Related Work

기존의 compression 방식은 비율이 높아지면 무너지는 경향이 있다.

Sparification 과 quantization에는 동시에 작업을 하기 위해서는 tradeoff가 존재를 하지만 이런건 이전 과제에서 다루더라도 outlier에 대한 처리는 하지 않는다.

3. Methodology

3.1 overview

먼저 LLM 모델을 가지고 activation의 outliers를 제거한다. 그리고 Salience with Activation Range(SAR) 을 통해서 layer별로 weight와 activation을 sparsify와 quantize를 고려하여 압축한다.

순서

activation에서 useless outliers를 제거 → SAR(salience with activation range)로 sparsify측정 → 양자화 진행

3.2 Salience with Activation Range

앞에서 말한 것 처럼 sparsification 은 큰 absolute 값을 가지려 하고 quantization은 그런 값들에 방해를 받는다. 그래서 희소화 중 양자화를 고려한다.

Salience with activation outlier

이렇게 채널별로 각 weight와 중요도를 측정하기 위해서 이렇게 사용한다.

여기까지 하면 양자화는 고려하지 않는다. 이런건 outliear는 더 정보를 담는다고 여겨진다.

여기서 아래의 식은 W의 각 요소를 하나씩 0으로 만들어 보조 행렬을 생성하고, 같은 채널에 있는 y 값—즉, 0으로 만들었던 동일 채널의 y 값—을 가져와 최댓값과 최솟값의 차이로 범위를 나타낸다.

중요도를 측정하는 방식으로 특정 weight를 0 으로 만들어서 나오는 acitvation의 matrix에서 영향을 주는 output activation column에서 max - min을 해서 auxiliary salience를 구한다. 그리고 절대값과 이전 activation column의 norm값을 곱한값을 더해주면서 sparsification metric 구성

3.3 Search-based Activation Editor

무작정 삭제를 하는게 아니라 일정 수준을 유지하면서 성능이 떨어지지 않는 선에서 삭제해야함

그래서 Search -based activation editor (SAE) 사용한다.

Activation editing

먼저 활성화 벡터인 F 를 사용하여서 큰값 과 작은 값을 일정 r 값을 통해서 bound를 설정하고 그거보다 크거나 작으면 LB,HB로 치환하는 방식으로 설정한다.

Activation encoding

R={r1,r2 ….. rn} 까지 총 n 개의 선택지를 주고 여기서 한개를 선택하여서 L 개의 layer중 한개의 layer가 이것을 선택하는 느낌으로 V=[v1,v2,,,,vL] 즉 v1은 R 중 하나를 선택한 것이다.

Simulated annealing search

아까 설명처럼 V 를 랜덤하게 초기화 하고 compress한 다음 성능을 측정하는 시나리오를 알고리즘으로 구현한다. 그래서 여러번 반복하여 최적은 V를 찾는다.

1. Intro

요즘 모델들을 압축하기 위해서 많은 방식을 사용을 하지만 이런 방식들은 compression ratio가 커지면 정확도가 떨어지는 문제가 발생한다.

그래서 LLM performance는 유지하면서 높은 압축을 하는 방법이 없을까? 라는 질문에서 시작

본 논문에서는 sparsification과 quantization을 같이 고려한다. 이 두가지 방법을 사용하는 첫 논문이라고 이야기를 한다.

두가지를 동시에 사용이 가능한 이유는 크게 2가지 중요한 이유가 있는데 첫번째는 두가지는 반대되는 성향을 가진다. Sparsification은 그 파라미터의 가장 절댓값이 큰값으로 표현되며 양자화는 작은 range로 양자화 되려고 한다.

즉 작은 값을 유지하면 QUANTIZATION에는 좋아도 sparsification에 좋지 않다. 그래서 이런 밸런스를 맞춰야 한다.

논문에서는 그래서 Salience with Activation Range(SAR)을 새롭게 추가했다.

문제

  1. sparsification은 small activation ranges 를 설정하여서 quantization freiendly하게 바꾼다.

SAR는 회소화 과정에서 제거된 가중치 이후의 활성화 범위를 추가로 고려하여 압축

  1. outliers의 문제는 검색 기반의 activation editor를 활용하여 필요 없는 outliers를 자동으로 삭제한다.

activation이 나와서 sparsity를 하기 전에 이상치를 바로 제거 annealing 알고리즘 사용

2. Related Work

기존의 compression 방식은 비율이 높아지면 무너지는 경향이 있다.

Sparification 과 quantization에는 동시에 작업을 하기 위해서는 tradeoff가 존재를 하지만 이런건 이전 과제에서 다루더라도 outlier에 대한 처리는 하지 않는다.

3. Methodology

3.1 overview

먼저 LLM 모델을 가지고 activation의 outliers를 제거한다. 그리고 Salience with Activation Range(SAR) 을 통해서 layer별로 weight와 activation을 sparsify와 quantize를 고려하여 압축한다.

순서

activation에서 useless outliers를 제거 → SAR(salience with activation range)로 sparsify측정 → 양자화 진행

3.2 Salience with Activation Range

앞에서 말한 것 처럼 sparsification 은 큰 absolute 값을 가지려 하고 quantization은 그런 값들에 방해를 받는다. 그래서 희소화 중 양자화를 고려한다.

Salience with activation outlier

이렇게 채널별로 각 weight와 중요도를 측정하기 위해서 이렇게 사용한다.

여기까지 하면 양자화는 고려하지 않는다. 이런건 outliear는 더 정보를 담는다고 여겨진다.

여기서 아래의 식은 W의 각 요소를 하나씩 0으로 만들어 보조 행렬을 생성하고, 같은 채널에 있는 y 값—즉, 0으로 만들었던 동일 채널의 y 값—을 가져와 최댓값과 최솟값의 차이로 범위를 나타낸다.

중요도를 측정하는 방식으로 특정 weight를 0 으로 만들어서 나오는 acitvation의 matrix에서 영향을 주는 output activation column에서 max - min을 해서 auxiliary salience를 구한다. 그리고 절대값과 이전 activation column의 norm값을 곱한값을 더해주면서 sparsification metric 구성

3.3 Search-based Activation Editor

무작정 삭제를 하는게 아니라 일정 수준을 유지하면서 성능이 떨어지지 않는 선에서 삭제해야함

그래서 Search -based activation editor (SAE) 사용한다.

Activation editing

먼저 활성화 벡터인 F 를 사용하여서 큰값 과 작은 값을 일정 r 값을 통해서 bound를 설정하고 그거보다 크거나 작으면 LB,HB로 치환하는 방식으로 설정한다.

Activation encoding

R={r1,r2 ….. rn} 까지 총 n 개의 선택지를 주고 여기서 한개를 선택하여서 L 개의 layer중 한개의 layer가 이것을 선택하는 느낌으로 V=[v1,v2,,,,vL] 즉 v1은 R 중 하나를 선택한 것이다.

Simulated annealing search

아까 설명처럼 V 를 랜덤하게 초기화 하고 compress한 다음 성능을 측정하는 시나리오를 알고리즘으로 구현한다. 그래서 여러번 반복하여 최적은 V를 찾는다.

1. Intro

요즘 모델들을 압축하기 위해서 많은 방식을 사용을 하지만 이런 방식들은 compression ratio가 커지면 정확도가 떨어지는 문제가 발생한다.

그래서 LLM performance는 유지하면서 높은 압축을 하는 방법이 없을까? 라는 질문에서 시작

본 논문에서는 sparsification과 quantization을 같이 고려한다. 이 두가지 방법을 사용하는 첫 논문이라고 이야기를 한다.

두가지를 동시에 사용이 가능한 이유는 크게 2가지 중요한 이유가 있는데 첫번째는 두가지는 반대되는 성향을 가진다. Sparsification은 그 파라미터의 가장 절댓값이 큰값으로 표현되며 양자화는 작은 range로 양자화 되려고 한다.

즉 작은 값을 유지하면 QUANTIZATION에는 좋아도 sparsification에 좋지 않다. 그래서 이런 밸런스를 맞춰야 한다.

논문에서는 그래서 Salience with Activation Range(SAR)을 새롭게 추가했다.

문제

  1. sparsification은 small activation ranges 를 설정하여서 quantization freiendly하게 바꾼다.

SAR는 회소화 과정에서 제거된 가중치 이후의 활성화 범위를 추가로 고려하여 압축

  1. outliers의 문제는 검색 기반의 activation editor를 활용하여 필요 없는 outliers를 자동으로 삭제한다.

activation이 나와서 sparsity를 하기 전에 이상치를 바로 제거 annealing 알고리즘 사용

2. Related Work

기존의 compression 방식은 비율이 높아지면 무너지는 경향이 있다.

Sparification 과 quantization에는 동시에 작업을 하기 위해서는 tradeoff가 존재를 하지만 이런건 이전 과제에서 다루더라도 outlier에 대한 처리는 하지 않는다.

3. Methodology

3.1 overview

먼저 LLM 모델을 가지고 activation의 outliers를 제거한다. 그리고 Salience with Activation Range(SAR) 을 통해서 layer별로 weight와 activation을 sparsify와 quantize를 고려하여 압축한다.

순서

activation에서 useless outliers를 제거 → SAR(salience with activation range)로 sparsify측정 → 양자화 진행

3.2 Salience with Activation Range

앞에서 말한 것 처럼 sparsification 은 큰 absolute 값을 가지려 하고 quantization은 그런 값들에 방해를 받는다. 그래서 희소화 중 양자화를 고려한다.

Salience with activation outlier

이렇게 채널별로 각 weight와 중요도를 측정하기 위해서 이렇게 사용한다.

여기까지 하면 양자화는 고려하지 않는다. 이런건 outliear는 더 정보를 담는다고 여겨진다.

여기서 아래의 식은 W의 각 요소를 하나씩 0으로 만들어 보조 행렬을 생성하고, 같은 채널에 있는 y 값—즉, 0으로 만들었던 동일 채널의 y 값—을 가져와 최댓값과 최솟값의 차이로 범위를 나타낸다.

중요도를 측정하는 방식으로 특정 weight를 0 으로 만들어서 나오는 acitvation의 matrix에서 영향을 주는 output activation column에서 max - min을 해서 auxiliary salience를 구한다. 그리고 절대값과 이전 activation column의 norm값을 곱한값을 더해주면서 sparsification metric 구성

3.3 Search-based Activation Editor

무작정 삭제를 하는게 아니라 일정 수준을 유지하면서 성능이 떨어지지 않는 선에서 삭제해야함

그래서 Search -based activation editor (SAE) 사용한다.

Activation editing

먼저 활성화 벡터인 F 를 사용하여서 큰값 과 작은 값을 일정 r 값을 통해서 bound를 설정하고 그거보다 크거나 작으면 LB,HB로 치환하는 방식으로 설정한다.

Activation encoding

R={r1,r2 ….. rn} 까지 총 n 개의 선택지를 주고 여기서 한개를 선택하여서 L 개의 layer중 한개의 layer가 이것을 선택하는 느낌으로 V=[v1,v2,,,,vL] 즉 v1은 R 중 하나를 선택한 것이다.

Simulated annealing search

아까 설명처럼 V 를 랜덤하게 초기화 하고 compress한 다음 성능을 측정하는 시나리오를 알고리즘으로 구현한다. 그래서 여러번 반복하여 최적은 V를 찾는다.

1. Intro

요즘 모델들을 압축하기 위해서 많은 방식을 사용을 하지만 이런 방식들은 compression ratio가 커지면 정확도가 떨어지는 문제가 발생한다.

그래서 LLM performance는 유지하면서 높은 압축을 하는 방법이 없을까? 라는 질문에서 시작

본 논문에서는 sparsification과 quantization을 같이 고려한다. 이 두가지 방법을 사용하는 첫 논문이라고 이야기를 한다.

두가지를 동시에 사용이 가능한 이유는 크게 2가지 중요한 이유가 있는데 첫번째는 두가지는 반대되는 성향을 가진다. Sparsification은 그 파라미터의 가장 절댓값이 큰값으로 표현되며 양자화는 작은 range로 양자화 되려고 한다.

즉 작은 값을 유지하면 QUANTIZATION에는 좋아도 sparsification에 좋지 않다. 그래서 이런 밸런스를 맞춰야 한다.

논문에서는 그래서 Salience with Activation Range(SAR)을 새롭게 추가했다.

문제

  1. sparsification은 small activation ranges 를 설정하여서 quantization freiendly하게 바꾼다.

SAR는 회소화 과정에서 제거된 가중치 이후의 활성화 범위를 추가로 고려하여 압축

  1. outliers의 문제는 검색 기반의 activation editor를 활용하여 필요 없는 outliers를 자동으로 삭제한다.

activation이 나와서 sparsity를 하기 전에 이상치를 바로 제거 annealing 알고리즘 사용

2. Related Work

기존의 compression 방식은 비율이 높아지면 무너지는 경향이 있다.

Sparification 과 quantization에는 동시에 작업을 하기 위해서는 tradeoff가 존재를 하지만 이런건 이전 과제에서 다루더라도 outlier에 대한 처리는 하지 않는다.

3. Methodology

3.1 overview

먼저 LLM 모델을 가지고 activation의 outliers를 제거한다. 그리고 Salience with Activation Range(SAR) 을 통해서 layer별로 weight와 activation을 sparsify와 quantize를 고려하여 압축한다.

순서

activation에서 useless outliers를 제거 → SAR(salience with activation range)로 sparsify측정 → 양자화 진행

3.2 Salience with Activation Range

앞에서 말한 것 처럼 sparsification 은 큰 absolute 값을 가지려 하고 quantization은 그런 값들에 방해를 받는다. 그래서 희소화 중 양자화를 고려한다.

Salience with activation outlier

이렇게 채널별로 각 weight와 중요도를 측정하기 위해서 이렇게 사용한다.

여기까지 하면 양자화는 고려하지 않는다. 이런건 outliear는 더 정보를 담는다고 여겨진다.

여기서 아래의 식은 W의 각 요소를 하나씩 0으로 만들어 보조 행렬을 생성하고, 같은 채널에 있는 y 값—즉, 0으로 만들었던 동일 채널의 y 값—을 가져와 최댓값과 최솟값의 차이로 범위를 나타낸다.

중요도를 측정하는 방식으로 특정 weight를 0 으로 만들어서 나오는 acitvation의 matrix에서 영향을 주는 output activation column에서 max - min을 해서 auxiliary salience를 구한다. 그리고 절대값과 이전 activation column의 norm값을 곱한값을 더해주면서 sparsification metric 구성

3.3 Search-based Activation Editor

무작정 삭제를 하는게 아니라 일정 수준을 유지하면서 성능이 떨어지지 않는 선에서 삭제해야함

그래서 Search -based activation editor (SAE) 사용한다.

Activation editing

먼저 활성화 벡터인 F 를 사용하여서 큰값 과 작은 값을 일정 r 값을 통해서 bound를 설정하고 그거보다 크거나 작으면 LB,HB로 치환하는 방식으로 설정한다.

Activation encoding

R={r1,r2 ….. rn} 까지 총 n 개의 선택지를 주고 여기서 한개를 선택하여서 L 개의 layer중 한개의 layer가 이것을 선택하는 느낌으로 V=[v1,v2,,,,vL] 즉 v1은 R 중 하나를 선택한 것이다.

Simulated annealing search

아까 설명처럼 V 를 랜덤하게 초기화 하고 compress한 다음 성능을 측정하는 시나리오를 알고리즘으로 구현한다. 그래서 여러번 반복하여 최적은 V를 찾는다.

728x90
반응형
Comments