>  기사  >  기술 주변기기  >  대규모 언어 모델의 효율적인 매개변수 미세 조정--BitFit/Prefix/Prompt 미세 조정 시리즈

대규모 언어 모델의 효율적인 매개변수 미세 조정--BitFit/Prefix/Prompt 미세 조정 시리즈

王林
王林앞으로
2023-10-07 12:13:011423검색

2018년 Google은 BERT를 출시한 후 11개 NLP 작업의 최첨단(Sota) 결과를 단번에 무너뜨려 NLP 세계의 새로운 이정표가 되었습니다. BERT의 구조; 아래 그림은 왼쪽이 BERT 모델 사전 훈련 과정이고, 오른쪽이 특정 작업에 대한 미세 조정 과정입니다. 그중 미세 조정 단계는 텍스트 분류, 품사 태깅, 질문 및 답변 시스템 등과 같은 일부 다운스트림 작업에서 이후에 사용될 때 미세 조정을 위한 것입니다. BERT는 다음에서 미세 조정될 수 있습니다. 구조를 조정하지 않고도 다양한 작업을 수행할 수 있습니다. "사전 학습된 언어 모델 + 다운스트림 작업 미세 조정" 작업 설계를 통해 강력한 모델 효과를 가져왔습니다. 그 이후로 "사전 훈련된 언어 모델 + 다운스트림 작업 미세 조정"은 NLP 분야의 주류 훈련 패러다임이 되었습니다.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列BERT 구조 다이어그램, 왼쪽은 사전 학습 과정, 오른쪽은 특정 작업 미세 조정 과정

그러나 대규모 언어 모델(LLM)의 매개변수 규모가 증가함에 따라 GPT3로 대표되는 소비자급 하드웨어, 완전한 미세 조정이 불가능해집니다. 다음 표는 A100 GPU(80G 비디오 메모리) 및 64GB 이상의 CPU 메모리를 갖춘 하드웨어에서 전체 모델 미세 조정 및 매개변수 효율적 미세 조정의 CPU/GPU 메모리 소비를 보여줍니다. , 모델을 완전히 미세 조정하면 다양성이 손실되고 심각한 망각 문제가 발생합니다. 따라서 모델 미세 조정을 효율적으로 수행하는 방법이 업계 연구의 초점이 되었으며, 이는 효율적인 매개변수 미세 조정 기술의 신속한 개발을 위한 연구 공간도 제공합니다.

효율적인 매개변수 미세 조정이란 소량의 미세 조정을 의미합니다. 또는 추가 모델 매개변수를 사용하고 대부분의 사전 훈련된 모델(LLM) 매개변수를 수정하여 컴퓨팅 및 저장 비용을 크게 줄이는 동시에 전체 매개변수 미세 조정에 필적하는 성능을 달성할 수도 있습니다. 매개변수 효율적인 미세 조정 방법은 경우에 따라 전체 미세 조정보다 훨씬 우수하며 도메인 외부 시나리오에 더 잘 일반화될 수 있습니다. 大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列효율적인 미세 조정 기술은 아래 그림과 같이 대략 매개변수 추가 추가(A), 업데이트할 매개변수 일부 선택(S), 대규모 매개변수화 도입(R)의 세 가지 범주로 나눌 수 있습니다. 추가 매개변수를 추가하는 방법은 크게 어댑터형 방법과 소프트 프롬프트라는 두 가지 하위 범주로 나뉩니다.

일반적인 매개변수 효율적인 미세 조정 기술에는 BitFit, Prefix Tuning, Prompt Tuning, P-Tuning, Adapter Tuning, LoRA 등이 포함됩니다. 다음 장에서는 몇 가지 주류 매개변수 효율적인 미세 조정 방법

공통 매개변수 효율적인 미세 조정 기술 및 방법

BitFit/Prefix/Prompt 미세 조정 시리즈

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列BitFit

비록 각 작업에 대한 전체 미세 조정은 매우 효과적이지만, 사전 훈련된 각 작업에 대해 고유한 대형 모델도 생성하므로 미세 조정 프로세스 중에 어떤 변화가 발생했는지 추론하기 어렵고 배포하기가 어렵습니다. 작업량이 늘어나면 유지 관리가 어려워집니다.

이상적으로는 다음 조건을 충족하는 효율적인 미세 조정 방법을 갖고 싶습니다.

위의 질문은 미세 조정 프로세스가 새로운 역량의 학습과 노출을 통해 학습되는 역량을 어느 정도 안내할 수 있는지에 따라 달라집니다. 사전 훈련된 LM에 그러나 이전의 효율적인 미세 조정 방법인 Adapter-Tuning 및 Diff-Pruning도 위의 요구 사항을 부분적으로 충족할 수 있습니다. 더 작은 매개변수를 사용하는 희박한 미세 조정 방법인 BitFit은 위의 모든 요구 사항을 충족할 수 있습니다.

BitFit은 훈련 중에 편향 매개변수 또는 편향 매개변수의 일부만 업데이트하는 희소 미세 조정 방법입니다. Transformer 모델의 경우 대부분의 변환기-인코더 매개변수가 동결되고 특정 작업의 바이어스 매개변수와 분류 계층 매개변수만 업데이트됩니다. 관련된 편향 매개변수에는 쿼리, 키, 값을 계산하고 Attention 모듈에서 여러 Attention 결과를 병합하는 데 관련된 편향, MLP 계층의 편향, Layernormalization 계층의 편향 매개변수 및 사전 훈련 모델의 편향 매개변수가 포함됩니다. 아래 그림과 같이.

Picture

PLM 모듈은 attention 또는 FFN과 같은 특정 PLM 하위 계층을 나타냅니다. 그림의 주황색 블록은 훈련 가능한 힌트 벡터를 나타내고 파란색 블록은 고정된 사전 훈련된 모델 매개변수를 나타냅니다.

Bert-Base/Bert-Large와 같은 모델에서 편향 매개변수는 모델 전체 매개변수의 0.08%~0.09%만 차지합니다. 그러나 GLUE 데이터 세트를 기반으로 Bert-Large 모델에 대한 BitFit, Adapter 및 Diff-Pruning의 효과를 비교한 결과, 매개변수 수가 훨씬 적을 때 BitFit은 Adapter 및 Diff-Pruning과 동일한 효과를 갖는 것으로 나타났습니다. Adapter 및 Diff-Pruning보다 일부 작업에서는 Adapter 및 Diff-Pruning보다 약간 더 좋습니다.

실험 결과에서 볼 수 있듯이 전체 매개변수 미세 조정에 비해 BitFit 미세 조정은 매우 적은 수의 매개변수만 업데이트하고 여러 데이터 세트에서 좋은 결과를 얻었습니다. 모든 매개변수를 미세 조정하는 것만큼 좋지는 않지만 모든 모델 매개변수를 고정하는 Frozen 방법보다 훨씬 좋습니다. 동시에, BitFit 훈련 전과 후의 매개변수를 비교한 결과, 키 계산과 관련된 편향 매개변수 등 많은 편향 매개변수가 크게 변하지 않은 것으로 나타났습니다. 쿼리를 계산하고 특징 차원을 N에서 4N으로 확대하는 FFN 레이어의 바이어스 매개변수가 가장 눈에 띄는 변화를 갖는 것으로 나타났습니다. 이 두 가지 유형의 바이어스 매개변수를 업데이트하는 것만으로도 좋은 결과를 얻을 수 있습니다. 반대로 어느 하나라도 고정되면 모델의 효과가 크게 떨어지게 됩니다

Prefix Tuning

Prefix Tuning 이전에는 이산 템플릿을 수동으로 디자인하거나 이산 템플릿을 자동으로 검색하는 작업이 주로 이루어졌습니다. 수동으로 디자인한 템플릿의 경우 템플릿의 변경 사항은 모델의 최종 성능에 특히 민감합니다. 단어를 추가하거나 단어를 누락하거나 위치를 변경하면 상대적으로 큰 변화가 발생합니다. 자동화된 검색 템플릿의 경우 비용이 상대적으로 높으며 이전의 개별 토큰 검색 결과가 최적이 아닐 수 있습니다. 또한 기존의 미세 조정 패러다임은 사전 훈련된 모델을 사용하여 다양한 다운스트림 작업을 미세 조정하고 각 작업마다 미세 조정된 모델 가중치를 저장해야 합니다. 한편으로는 전체 모델을 미세 조정하는 데 시간이 오래 걸립니다. 반면에 많은 저장 공간을 차지합니다. 위의 두 가지 사항을 기반으로 Prefix Tuning은 학습 가능한 작업별 접두사를 LM에 추가하여 고정된 사전 학습 LM을 제안합니다. 이를 통해 다양한 작업에 대해 서로 다른 접두사를 저장할 수 있으며 미세 조정 비용이 적습니다. 동시에 이러한 종류의 접두사는 실제로 지속적으로 훈련 가능합니다. 마이크로 가상 토큰(소프트 프롬프트/지속 프롬프트)은 개별 토큰보다 더 잘 최적화되고 더 나은 효과를 갖습니다.

그래서 다시 작성해야 할 것은 다음과 같습니다. 그러면 접두어의 의미는 무엇입니까? 접두사의 역할은 모델이 x와 관련된 정보를 추출하여 y를 더 잘 생성하도록 안내하는 것입니다. 예를 들어 요약 작업을 수행하려는 경우 미세 조정 후 prefix는 현재 수행 중인 작업이 "요약 형식" 작업임을 이해하고 원하는 경우 x에서 핵심 정보를 추출하도록 모델을 안내할 수 있습니다. 감정 분류 작업을 수행하기 위해 접두사는 모델이 x의 감정과 관련된 의미 정보를 추출하도록 안내할 수 있습니다. 이 설명은 엄밀하지는 않지만, prefix의 역할을 대략적으로 이해하실 수 있습니다

Prefix Tuning이란 작업에 관련된 가상 토큰을 Prefix로 구성한 후 토큰을 입력한 후 학습 중에 Prefix 부분의 매개변수만 업데이트하는 것인데, PLM에 있는 동안 다른 매개변수는 고정됩니다. 다양한 모델 구조의 경우 다양한 접두사를 구성해야 합니다.

  • 자동 회귀 아키텍처 모델의 경우: z = [PREFIX; x]를 얻으려면 문장 앞에 접두사를 추가하세요. 컨텍스트(예: GPT3 컨텍스트 학습)
  • 인코더-디코더 아키텍처 모델의 경우: 인코더와 디코더 모두에 접두사가 추가되어 z = [PREFIX x; 입력 부분의 인코딩을 안내하기 위해 Encoder 측에 접두사가 추가되고, 후속 토큰 생성을 안내하기 위해 Decoder 측에 접두사가 추가됩니다.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Pictures

원래 의미를 바꾸지 않고 내용을 다시 작성하고 중국어로 다시 작성합니다. 이전 부분의 미세 조정을 위해 모든 Transformer 매개변수(빨간색 상자)를 업데이트하고 각 작업에 대한 모델의 전체 복사본을 저장해야 합니다. 하단 부분의 접두사 조정은 변환기 매개변수를 동결하고 접두사(빨간색 상자)만 최적화합니다.

이 방법은 프롬프트가 인위적으로 구성된 "명시적" 프롬프트라는 점을 제외하면 실제로 프롬프트 구성과 유사하며 매개변수를 변경할 수 없습니다. 업데이트되었으며 Prefix는 학습할 수 있는 "암시적" 힌트입니다. 동시에 Prefix 매개변수의 직접적인 업데이트로 인해 훈련이 불안정해지고 성능이 저하되는 것을 방지하기 위해 훈련이 완료된 후에는 Prefix 레이어 앞에 MLP 구조를 추가합니다. 또한 Ablation 실험을 통해 임베딩 레이어만 조정하는 것만으로는 표현력이 충분하지 않아 성능이 크게 저하된다는 사실이 입증되었습니다. 따라서 각 레이어에 프롬프트 매개변수를 추가하는 것이 큰 변화입니다.

접두사 조정이 편리해 보이지만 다음과 같은 두 가지 중요한 단점도 있습니다.

Prompt Tuning

대형 모델의 Full Fine-Tuning은 작업별로 모델을 학습하는데, 이는 간접비와 배포 비용이 상대적으로 높습니다. 동시에 개별 프롬프트(프롬프트를 수동으로 디자인하고 모델에 프롬프트를 추가하는 것을 의미) 방법은 상대적으로 비용이 많이 들고 효과도 그리 좋지 않습니다. 프롬프트 튜닝은 프롬프트를 수동으로 디자인하는 대신 업데이트된 매개변수를 역전파하여 학습합니다. 동시에 모델의 원래 가중치를 고정하고 프롬프트 매개변수만 훈련한 후 다중 작업 추론에 동일한 모델을 사용할 수 있습니다.

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列Pictures

모델 튜닝에는 각 작업에 대해 사전 훈련된 전체 모델의 작업별 복사본을 만들어야 하며 추론은 ​​별도의 배치에 있어야 합니다. 프롬프트 튜닝은 각 작업에 대한 작은 작업별 프롬프트만 저장하면 되며 원래의 사전 훈련된 모델을 사용하여 혼합 작업 추론을 가능하게 합니다.

Prompt Tuning은 Prefix Tuning의 단순화된 버전으로 볼 수 있습니다. 각 작업에 대한 자체 프롬프트를 정의한 다음 이를 입력으로 데이터에 연결하지만 프롬프트 토큰만 입력 레이어에 추가하고 MLP를 추가할 필요가 없습니다. 조정을 위해 어려운 훈련 문제를 해결합니다.

사전 학습된 모델의 매개변수 수가 증가할수록 Prompt Tuning 방식이 전체 매개변수 미세 조정 결과에 가까워지는 것을 실험을 통해 알아냈습니다. 동시에 Prompt Tuning은 동일한 작업에 대해 동시에 여러 프롬프트를 일괄적으로 훈련하는 것을 의미하는 Prompt Ensembling을 제안했습니다(즉, 동일한 질문을 여러 가지 다른 방식으로 묻는 것). 예를 들어 모델 통합 비용은 훨씬 적습니다. 또한 Prompt Tuning 문서에서는 Prompt 토큰의 초기화 방법과 길이가 모델 성능에 미치는 영향에 대해서도 논의합니다. Ablation 실험 결과를 통해 Prompt Tuning은 무작위 초기화 및 샘플 어휘를 사용한 초기화보다 클래스 레이블을 사용하여 모델을 초기화하는 것이 더 나은 것으로 나타났습니다. 그러나 모델 매개변수 규모가 증가함에 따라 이러한 격차는 결국 사라질 것입니다. 프롬프트 토큰의 길이가 약 20이면 성능이 이미 좋은 것입니다(20을 초과한 후에는 프롬프트 토큰의 길이를 늘려도 모델 성능이 크게 향상되지 않습니다). 마찬가지로 이 격차도 모델 매개변수의 규모에 따라 감소합니다. 증가합니다(즉, 매우 대규모 모델의 경우 프롬프트 토큰 길이가 매우 짧더라도 성능에 큰 영향을 미치지 않습니다).

위 내용은 대규모 언어 모델의 효율적인 매개변수 미세 조정--BitFit/Prefix/Prompt 미세 조정 시리즈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제