efficient methods for natural language processing: a survey

2022/08/31

 

1. abstract

 

제한된 자원을 대부분 활용하는 것이 NLP 분야를 발전시키지만, 자원에 대해서는 여전히 보수적이다.

 

그러한 자원은 data, time, storage, energy가 있다.

 

최근 NLP 연구는 거대함(scaling)으로부터 흥미로운 결과들을 낳고 있지만, 그렇게 해서 개선된 결과를 낳는다는 것은 또한 자원 소비도 증가한다는 의미다.

 

그러한 관계가 적은 자원으로 비슷한 결과를 내는 efficient method에 대한 연구에 동기 부여를 했다.

 

이 조사는 NLP에서의 효율성에 대한 방법을 발견하고, 이 분야에서 새로운 연구자들을 안내하며 새로운 방법의 발견에 영감을 주고자 한다.

 

공부용으로 아주 적절할듯

 

2. introduction

 

점점 커지는 deep learning model을 training하는 것은 과거 수십년간 이어져 오는 하나의 트렌드이다.

 

 

model parameter의 꾸준한 증가는 SOTA 성능을 낳고, 그러한 연구 방향을 제시하였지만 또한 문제가 되기도 한다.

 

첫번째로는 그러한 모델은 제한된 접근만 가능하고 그래서 누구나 사용하기 어렵거나 심지어 여전히 운영하는데 상당한 양의 계산 자원이 요구된다는 점이다.

 

두번째로는 그들은 지속가능하지 않고, training과 inference에 상당한 양의 자원을 필요로 한다.

 

세번째로는 model들이 이용가능한 hardware에 의해 model size가 제한되기 때문에 무한히 커질수는 없다는 점이다.

 

이러한 제한을 벗어나기 위해 efficiency를 개선하는데 집중하는 방법들이 점점 인기있어지고 있다.

 

2-1)definition

 

efficiency는 efficient system은 자원낭비 없이 output을 만들어 내기 때문에 보통 system에 들어가는 자원과 그것의 output사이의 관계로 언급된다. 

 

특히 NLP 분야에서는 우리는 efficiency를 model의 자원과 그것이 생산하는 결과의 관계로 고려한다.

 

(1)Equation

 

$$Cost(R) \propto E \cdot D \cdot H$$

 

방정식 (1)은 AI model의 training cost가 특정한 결과 R을 만들어 낼때, 3가지 요인에 비례한다는 뜻이다.

 

첫번째는 하나의 사례((E)xample)에 수행되는 model cost이고

 

두번째는 training Dataset(D)이고 

 

세번째는 (H)yperparameter tuning이나 model selection을 위해 요구되는 training의 수이다.

 

Cost함수는 계산비용, 시간비용, 환경비용같은 다차원에 의해 계산된다.

 

계산,시간,환경비용들은 다양한 방식으로 계산될 수 있다.

 

예를 들어 computational cost(계산비용)은 the total number of floating point operation(FLOPs)나 모델의 parameter 수로 구할 수 있다.

 

단일한 cost indicator를 사용하는 것은 오해를 불러일으킬 수 있어서 이 논문에서는 다방면에서 효율적인 NLP 연구들을 모으고 통합할 것이며, 어떤 차원들이 어떠한 케이스에서 사용하면 이점이 있을 수 있는지 논의한다.

 

2-2) scope of this survey

 

우리의 목표는 NLP에 집중하여 효율서을 개선하는데 목표를 둔 다양한 방법들에 대한 소개이다.

 

그래서 우리는 다음 그림같은 전통적인 NLP 모델 파이프라인을 따랐고 각 단계에서 현존하는 효율적인 방법들을 제시한다.

 

 

NLP 연구자들을 위한 효율성의 실용적인 가이드를 제공하기 위해 우리는 독자들을 두 그룹으로 나누어 다루고자 한다.

 

첫번째는 제한된 자원을 가지는 모든 NLP 분야의 연구자들이다. 

 

자원의 제한에 부딪히는 독자들은 위 NLP 파이프라인의 어떤 측면으로 바로 점프할 수 있다.

 

예를 들어 주된 제한이 inference time이라면, section 6에 그에 대한 대부분을 소개한다.

 

두번째는 NLP에서 효율적인 방법의 SOTA를 개선하는데 관심있는 연구자들이다.

 

여기 연구들은 새로운 연구방향을 위한 기회를 찾는것으로 다뤄질 수도 있다.

 

독자들을 안내하기 위해 우리는 효율적인 NLP 방법들의 패러다임을 그림 3에서 제시하였다.

 

 

 

게다가 hardware를 선택하는 것이 모델의 효율성에 큰 영향을 미칠 수 있지만 대부분의 NLP 연구자들은 hardware에 관한 결정을 직접적으로 컨트롤하지 못하고 대부분의 hardware 최적화는 모든 파이프라인 단계에서 적절하게 사용될 수 있다.

 

우리는 그래서 우리 논문을 알고리즘적 접근에 집중하였지만 section 7에서는 hardware에 관해서 적절한 지시사항을 제시하였다.

 

마지막으로 우리는 efficiency를 어떻게 계산할 수 있고, 무슨 요인이 평가하는 동안 고려해야하며 어떻게 적절한 모델을 선택할 수 있을지 논의하였다.

 

3. data

 

efficiency를 증가시키는 한가지 방법은 더 적은 training sample을 사용하거나, 이용가능한 것들을 더 잘 이용하는 것이다.

 

이 조사에서 우리는 label이 정확하다고 가정하고 training data를 감소시키는 것에 초점을 맞춘다.

 

3.1 Filtering

 

최근 연구에서 data quality를 개선하는 것이 성능을 상당히 증가시킬 수 있으면서 data 양을 증가시키는 것과 비교해서 training cost를 감소시킬 수 있다는 것을 보여준다.

 

예를 들어 2020 Mishra and Sachdeva (https://aclanthology.org/2020.sustainlp-1.23/) 에서 SNLI data의 2%를 사용하여 전체 데이터를 사용하는 것에 비교할만한 성능을 달성하였다.

 

2022 Lee et al.(https://aclanthology.org/2022.naacl-main.319/)에서 pretraining 동안에 duplicate를 제거하는 것이 이미 상당히 training efficiency를 증가시키면서 비슷하거나 더 나은 model 성능을 보여준다.

 

비슷한 트렌드가 deduplication step을 가지는 OPT같은 최근 모델에서 발견된다

 

마지막으로 다양한 논문에서 개별 인스턴스가 얼마나 모델 성능에 기여하는지에 대해 더 잘 이해하는 것에 초점을 맞추고 있다. (https://aclanthology.org/2020.emnlp-main.746/)

 

3.2 curriculum learning

 

curriculum learning은 이용가능한 training 인스턴스의 좋은 순서를 발견하여 데이터 효율성을 증가시키는 것에 초점을 맞춘다. 

 

비슷한 경향이 transformer model을 위한 2020 Dodge et al(https://arxiv.org/abs/2002.06305)에서도 발견된다.

 

3-2-1) Heuristic approaches

 

많은 접근법들이 인스턴스의 어려움을 heuristic하게 추정하여 쉬운 인스턴스 우선 순서를 추정하게 된다.

 

transformer를 위해 2019 Platanios et al(https://aclanthology.org/N19-1119/)에서 모델의 경쟁력을 고려하는 것은 성능을 개선할 수 있고 기계독해에서 training time을 감소시킬 수 있다고 발견했다.

 

비슷한 결과가 자연어 이해(https://aclanthology.org/2020.acl-main.542/)와 question answering(https://aclanthology.org/P19-1486/) 에서 발견된다.

 

language modeling에서 Press et al. (https://aclanthology.org/2021.acl-long.427/)은 짧은 문장에 대한 초기 training이 상당히 training time을 감소시키면서 모델 성능을 유지시킬 수 있다고 말한다.

 

Agrawal et al.(https://aclanthology.org/2021.sustainlp-1.15/)에서는 복잡도에 기반하여 training instance를 나눠서 조사하였고 적은 training step으로 비교할만한 성능을 얻었다.

 

3-2-2) self paced learning

 

문장 길이나 단어의 레어도를 고려한 heuristic을 사용하는 것 대신에 self paced learning은 model training을 위해 유용한 인스턴스를 adaptive하게 선택한다

 

self-paced learning은 기계독해에서 model과 데이터 불확실성을 사용하여 성공적으로 적용되고 있다 (2020 Wan et al. https://aclanthology.org/2020.emnlp-main.80/, 2020 Zhou et al. https://aclanthology.org/2020.acl-main.620/)

 

knowledge distillation을 이용한 dialog generation에도 효과적이었다.

 

2021 Zhan et al(Meta-curriculum learning for domain adaptation in neural machine translation.)에서는 심지어 다른 도메인으로 적용시키기 위한 메타 커리큘럼을 학습시키는 것을 제안했다.

 

3.3 Active learning

 

데이터 효율성은 training을 하기 전에 model training에 도움되는 instance를 선택적으로 annotating하여 training하면 개선될 수 있다고 한다.

 

핵심 과제는 실제 label을 알지 않고도 도움이 될 수 있는지 이다.

 

현존하는 접근은 모델의 불확실성이나 잠재하는 인스턴스 representation을 이용하는 것이다.

 

불확실성 기반의 접근은 가장 높은 불확실성을 가지는 instance가 대부분의 정보를 제공하고 좋은 불확실성 추정에 집중한다.

 

representation 기반의 접근은 선택된 instance의 다양성을 최대화하는 것에 집중한다.

 

다양한 논문들이 NLP에서 active learning의 가능성을 보여주고 있다고 할지라도 다른 task나 모델에 적용할 수 있는 일반성에는 여전히 의문으로 남아 있다.

 

다른 이슈로는 불확실성 기반의 접근에 악영향을 미치는 데이터에서의 outlier이다.

 

그리고 annotation 비용으로 인한 annotation 어려움의 잠재적인 증가이다.

 

3.4 Prompting

 

GPT-3같은 모델에서 인간 상호작용에 영감을 받아

 

prompting이라는 것은 model에게 textual input으로 prediction task를 알려주면서 모델에게 수행하라고 요구하는 작업이다.

 

(T5같이 <sentence completion>he is _. 이런식으로 던져주고 빈칸을 채우게 만드는) 

 

마지막 예측은 language model의 output으로부터 추론된다?

 

일반적으로 prompt는 token, span, sentence-level 완성을 위한 template이나 접두사에 자동으로 혹은 수동으로 채우면서 만들어질 수 있다??

 

이것은 prompting이 question answering, summarization, machine translation같은 대부분의 NLP task에서 적용할 만하다는 것이다.

 

training이나 finetuning이 필요하지 않기 때문에 NLP task의 unsupervised 방식으로 효율적인 하나의 대안이다?

 

4. model design

 

design 부분에서 더 효율적인 모델을 만들려고 architecture를 바꾸거나, main model의 흐름을 가속화 시키는 새로운 모듈을 붙이는 방식으로 연구가 활발하게 진행되고 있다.

 

여기서 우리는 transformer에서 만들어진 현재 발전된 부분들의 개요를 설명하고자 한다. 예를 들어 architecture를 조정하거나 외부 자원을 조합하는 것이다.

 

4.1 sparse activations

 

Derczynski(Power consumption variation over activation functions, 2020)가 보였듯이 activation function의 선택이 실행시간에서 magnitude 차이의 순서를 결정할 수 있다.

 

sparse activation에 영향을 주면서 추론 속도를 가속화시키기 위해 Fedus et al.(Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity,2022) 에서 제안한 Switch Transformer에서 제안한 specialist('expert')에 계산을 전념하도록 바꾼 방법이 있다.

 

이러한 접근법은 mixture of expert architecture에 기반하였고, 충분한 메모리 bandwidth를 가진 1조개의 parameter까지 크기를 늘렸고, expert의 수가 증가함에 따라 종종 bottleneck 현상이 일어난다.

 

sparse activation의 다른 예시는 adaptively sparse transformer model(2019)로 attention head의 dense softmax activation을 sparse entmax activation으로 대체하여 데이터에서 자동으로 각 head의 sparsity의 경향을 최적으로 학습하게 한다.

 

이것에 기반하여 만든 Sparsefinder은 더 효율적인 attention mechanism으로 계산하기 전에 entmax attention의 sparsity pattern을 확인하고자 한다.

 

4.2 parameter efficiency

 

몇가지 논문이 parameter의 수를 줄이는 것을 조사했다.

 

예를 들어, universal transformer와 ALBERT같은 model layer 사이에 weight를 공유하는 것

 

Perceiver은 비슷한 접근법을 제안했지만, inner layer 안에 원래 input을 삽입했다.

 

ALBERT는 게다가 행렬 분해를 사용하여 모델 parameter의 대부분을 사용하는 embedding layer의 크기를 줄였다. 

 

마지막으로 Subformer은 transformer의 weight sharing을 하는 방법을 조사하였고 model의 중간 layer를 공유하는 것이 다른 대안들보다 낫다는 것을 보여주었다.

 

4.3 attention in transformers

 

transformer의 attention 메커니즘의 한계는 sequence 길이의 제곱에 의존한다는 것이고, 그래서 여러 변형들이 긴 범위의 sequence의 효율적인 attention에 집중했다.

 

현존하는 전략으로

 

transformer-XL에서 사용하는, 여러 segment를 연결시키기 위한 반복 처리같이 이미 처리된 segment를 잘 활용하는 것

 

Compressive transformer같이 더 긴 범위의 메모리를 압축시키기 위해 network를 학습하는 것

 

global과 local attention을 따로 모델링하는 것

 

∞-former같이 연속 시간 신호같은 긴 sequence를 모델링하는 것이 있다.

 

다른 범주의 연구로, 고정된 attention pattern을 사용하는 Long-former, Sparse Transformer, BigBird가 있고

 

클러스터에 token을 그룹화하여 attention sparsity pattern을 학습하는 Reformer, SMYRF, Routing Transformer이 있다.

 

몇가지 전략들은 low rank approximation을 query-key matrix에 적용하여 kernel trick을 반대로 적용함으로써 linear runtime이 걸리도록 attention 메커니즘을 변형한 Linear Transformer, Performer, RFA가 있다.

 

마지막으로 S4는 transformer의 최근 대안으로, 상태공간 표현을 이산화(discretization of state space representation)시키고, 상태 행렬을 매개변수화(parameterization of the state matrix)시켜 매우 긴 input에 대해 더 좋은 결과를 달성하였다.

 

4.4 retrieval-augmented models

 

text generation의 유망한 연구방향은 retrieval 메커니즘과 parametric model을 결합시켜 반매개변수화 모델(semi-parametric model)을 유도했다.

 

추론 시간에, 모델은 데이터베이스로부터 token, phrase, sentence를 가져와서 확률분포 추론, gating 메커니즘, attention 등을 통해 사용한다.

 

이것은 전형적으로 데이터베이스 목록 수와 모델 사이즈를 교환하는 것에 이른다.

 

예를 들어, RETRO는 2조개의 token 데이터베이스로부터 토큰 단위를 retrieve하여 GPT-3, Jurassic-1과 Gopher보다 25배나 더 적은 parameter를 가지고도 이들의 성능에 맞출정도를 달성했다.

 

이런 모델들은 또한 좋은 일반화능력을 가졌다. 

 

도메인에 특화된 데이터베이스에서 데이터를 가져와서 모델은 학습동안에 보지 않더라도, 각 도메인에 fine-tuning을 하지 않더라도 도메인에 적용시킬 수 있게 된다.

 

명시적인 메모리를 가지는 것이 retrieval-augmented model이 즉시 적응하도록 도와준다..

 

예를 들어 데이터베이스에 수정된 예시를 더한 것이 fine-tuning을 하는 것보다 전체 번역 시간을 줄이는 동안에 더 나은 번역을 보여주었다.

 

그러나 단점으로 retrieval-augmented model은 일반적으로 느리다. 

 

왜냐하면 그들은 inference 동안에 retrieval을 수행해야할 필요가 있어서 그렇다.

 

최근 몇가지 연구들이 이런 이슈를 완화시키기 위해 몇가지 전략들을 제안했는데 데이터베이스를 pruning하거나, 

 

더 작은 input에 의존하는 데이터베이스를 가지거나, representation 차원을 줄이거나, information을 캐싱하거나, 

 

retrieval step을 줄이는 방법이 있다.

 

5. Pre-training

 

NLP 모델을 개발할때, pretraining하는 것은 공통적인 단계이다.

 

전형적으로 masked prediction (BERT), language modeling(GPT)같은 대용량의 text data의 self supervision training의 형태를 나타낸다.

 

pretrain된 모델은 특정 task를 위해 다음에 finetuning된다. 

 

성능을 개선하는 것 이외에도 pretraining step은 효율성을 상당히 개선한다.

 

예를 들어 pretraining이 downstream task에 대해 수렴 속도를 상당히 개선한다는 것을 보여준 논문이 있다.

 

 

위 그림은 과거 몇년간 꾸준히 모델의 크기가 증가해왔고 모델이 매우 커지면 나타나는 능력을 보여주었다.

 

그러나 이렇게 점점 커지는 모델을 pretraining하는 것 조차도 계산량이 상당하고 그런 비용을 줄이는 것이 중요한 도전과제이다.

 

5.1 dynamic masking

 

목적 task를 선택하는 것은 downstream task에 적용할 pretrain 모델의 성공을 결정할 수 있다.

 

self supervised learning의 task는 대용량의 unlabel된 데이터로 모델을 pretraining하는 것의 핵심 요소이다.

 

task가 decoder를 사용하냐, encoder를 사용하냐, 둘 다 사용하냐에 따라 어떤 task를 사용할지 다르다.

 

5.1.1 decoder only

 

decoder만 사용한 전통적인 목표함수는 GPT와 PaLM이 있고, 전체 단어에 대한 cross-entropy-loss를 사용하여 앞에 단어가 주어지면, 다음 단어를 맞추는 전통적인 language modeling이다.

 

5.1.2 encoder only

 

encoder만 사용한 모델을 pretraining하는 공통적인 방법은 BERT에 의해 제안되었고, 2가지 목적 task를 사용한다.

 

(1) masked language model(MLM)

 

text input을 랜덤하게 masking시키고, 그것을 맞추는 작업이다.

 

(2) next sentence prediction(NSP)

 

training data에서 2개의 random한 sentence가 연속적으로 나타나는지 아닌지 예측하는 문제

 

이용가능한 데이터를 더 잘 사용하기 위해 다양한 논문에서 BERT에서 사용된 static masking과는 다른 masking 전략을  조사했다.

 

예를 들어 training하는 동안에 동적으로 token을 마스킹하는 것, 

 

- 예를 들면 training전에 한번에 masking하는 대신에, 각  training 스텝에서 토큰의 15%를 랜덤하게 마스킹하는 것 - 이 효율성을 상당히 개선시킬 수 있다고 한다.

 

게다가 그들은 모델의 성능 향상을 위해 pretraining에서 NSP를 수행하지 않을 수도 있다고 한다.

 

다른 논문은 특정한 토큰에 masking하는 것(목적어나 내용어?)이 더 높은 성능을 보여주고 이용가능한 데이터를 더 효율적으로 사용한다고 한다.

 

ELECTRA아 DeBERTa는 input의 token을 대체하는 작은 생성모델을 사용하여 self supervised learning을 하는, replaced token detection(RTD)을 실험했다.

 

둘다 RTD가 BERT에 비해 더 빠르고, 더 나은 성능을 보여주었다.

 

5.1.3 encoder-decoder

 

T5와 BART에서 제안된 다른 접근법은 encoder-decoder language model을 pretraining하기 위해 sequence-to-sequence의 잡음제거(denoising) task를 사용하였고 

 

decoder가 단일 토큰보다는 masking된 위치의 토큰 범위를 예측하도록 만들어주었다.

 

6. fine-tuning

 

fine-tuning이란, pretrain된 model을 새로운 downstream task에 적용하는 단계를 말한다.

 

일반적으로 fine-tuning은 downstream task 데이터에 대한 gradient 기반의 training을 말한다.

 

이 조사에서는 fine-tuning에 대한 일반적인 의미를 사용했고 그에 따라 pretrain된 모델을 downstream task에 적용할 때 사용하는 어떠한 방법이든 포함시켰다.

 

6.1 parameter-efficient fine-tuning

 

gradient 기반의 fine-tuning은 전형적으로 downstream task 데이터에 대한 모델의 parameter를 모두 학습하는 것을 포함한다.

 

이는 pretrain된 모델이 새로운 task에 fine-tuning된다는 의미로, 전체적으로 새로운 모델 parameter set이 만들어진다는 의미다.

 

모델이 많은 task에 fine-tuning된다면, 저장 요건이 부담될 수 있다.

 

ELMo는 원래 pretrain된 모델을 downstream task에 적용할때, 새로운 classification layer를 training하고, 나머지 parameter set을 fixed시켰다.

 

이러한 접근은 전체 모델을 training하는 것보다도 더 적은 parameter를 업데이트하지만 나쁜 성능을 보여주어서 잘 쓰지 않게 되었다.

 

그래??? 나 맨날 이렇게 한것 같은데 아닌가

 

대안법으로 parameter-efficient fine-tuning(PEFT)이 있다.

 

model을 새로운 task에 적용시키는 것을 목표로하는데, 오직 상대적으로 적은 수의 parameter를 업데이트하거나 더한다.

 

Adapters는 pretrain된 모델에 새로운 학습 가능한 dense layer를 주입하였고, NLP 모델들에 제안된 첫 PEFT 방법이다.

 

Adapters는 최근 low-rank matrix의 kronecker product로 만들어진 adapter parameter matrix를 구성하는 Compacter 방법에 의해 개선되었다.

 

새로운 layer를 더하는 것의 대안으로 parameter-efficiency는 학습된 벡터들의 concatenation, multiplication, addition을 통한 변형된 activation으로 직접 만들어질 수 있다.

 

새로운 parameter를 추가하거나 모델의 계산 그래프(computational graph)를 바꾸는것 보다도 sparse나 low-rank update를 통해 더 싸게 저장하거나 원래 모델을 업데이트 하는 것이 가능하다.

 

마지막으로 저차원의 부공간(low-dimensional subspace)에서 최적화가 수행될 수 있는데, 이러한 부공간에서 업데이트를 저장하는 것은 PEFT 방법으로 볼 수 있다.

 

PEFT의 SOTA방법은 성능을 희생시키지 않고, 오히려 극히 일부의 케이스는 성능을 개선시키면서도 전체 모델을 fine-tuning하는 것보다 약 4배나 훨씬 더 적은 parameter를 업데이트하거나 추가한다.

 

6.2 multi task and zero shot learning

 

전통적인 transfer learning은 fine tuning을 포함하지만, pretrain 모델을 흥미있는 downstream task에 적용하는 것은 다른 패러다임을 가진다.

 

multi task learning은 단일 모델을 train하여 다양한 범위의 task를 수행하는 것을 목표로 한다.

 

전형적으로 이것은 관심있는 모든 task로부터 얻은 데이터를 모델에 명시적으로 학습시키는 것으로 할 수 있다.

 

multi task model이 이미 주어진 downstream task에 학습되었다면, fine-tuning이 더 이상 필요없다.

 

최신 논문은 추가적으로 multi task model이 fine tuning에 대해 잘 수행된다고 증명했다.

 

특정 케이스에서 multi task model은 fine-tuning없이도 새로운 task에 적용될 수 있다.

 

이런 능력은 "zero shot generalization"이라고 부른다.

 

unsupervised 목적 task로 training된 language 모델이 다양한 범위의 task를 잘 수행할 수 있다고 증명한 사람들이 있다.

 

추후에 multitask learning은 zero shot generalization 능력도 있다고 증명한 사람들이 있다.

 

zero shot generalization은 fine tuning을 완전히 피하지만, 이는 대용량의 계산이 많은 모델에 증명되었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

요약?

 

1.데이터 질이 모델 성능에 상당부분 기여한다(data quality)

 

일반적으로 데이터를 무작위로 학습시키는데, curriculum learning이라고 인간이 쉬운 부분부터 학습하여 점차 어려운 것을 학습하듯이,

 

2. 쉬운 데이터(짧은 문장.. 등등)를 먼저 학습시켜나가면 training time을 감소시키면서 높은 성능을 기대할 수 있다(curriculum learning)

 

3. model training에 도움되는 instance를 선택적으로 골라 training하면 효과적(active learning)

 

4. prompting으로 input에 수행할 task를 같이 제시하면 효과적일 수 있다

 

5. activation function의 선택이 중요할 수 있다 >> switchtransformer(mixture of expert에 기반), sparsefinder, sparse entmax activation

 

6. 모델의 layer들이 weight를 공유하도록 설계하는 것이 parameter를 줄이는데 도움을 준다

 

7. attention의 시간 복잡도를 줄이기 위한 여러 방법들 - low rank approximation,..., global과 local을 따로 modeling한다는 것...

 

8. retrieval-augmented model - 데이터베이스에서 retrieval해서 데이터를 가져오면 성능에 도움이 될 수 있지만, retrieval 시간이 포함되어 일반적으로 느리다

 

9. pretraining이 성능 뿐만 아니라 수렴속도도 상당히 개선시켜주지만, 모델의 크기가 점점 커지면서 pretraining하는 것 조차도 어렵다

 

10. pretraining도 전략이 필요하다. 예를 들어 훈련 전에 한번에 masking하고 훈련하는 것이 아니라, 훈련 스텝마다 15%씩 랜덤하게 masking하여 훈련하는 것이 효과적일 수 있다

 

11. parameter-efficiency finetuning(PEFT) - 단순히 새로운 layer를 추가해서 이 부분만 학습하고 나머지는 fixed하는 것은 비효율적, 학습된 벡터들로 만든 activation이나, Adapters, Compactor,...

 

 

 

 

 

https://paperswithcode.com/paper/efficient-methods-for-natural-language

 

Papers with Code - Efficient Methods for Natural Language Processing: A Survey

No code available yet.

paperswithcode.com

 

 

TAGS.

Comments