프롬프트 엔지니어링

LLM 세부 튜닝 이해: 대형 언어 모델을 고유한 요구 사항에 맞추는 방법

mm
Unite.AI를 Google의 선호 소스에 추가
LLM Fine tuning representation - Midjourney

2023년 9월 현재, 대형 언어 모델(Large Language Models, LLM)의 풍경은 여전히 Alpaca, Falcon, Llama 2, GPT-4 등 다양한 모델의 등장으로 발전을 계속하고 있습니다.

이러한 LLM의 잠재력을 활용하는 중요한 측면은 세부 튜닝 과정에 있습니다. 이 과정은 사전 훈련된 모델을 특정 작업에 맞게 맞추는 전략으로, 이러한 모델이 실제로 개인화된 요구 사항에 맞게 맞출 수 있는 솔루션을 제공합니다.

그러나 모든 세부 튜닝 방법은 동일하지 않습니다. 예를 들어, GPT-4의 세부 튜닝 기능에 접근하는 것은 상대적으로 더 비싼 유료 구독이 필요합니다. 반면에, 오픈 소스 도메인은 이러한 대형 언어 모델의 힘을 활용하기 위한 더 접근하기 쉬운 경로를 제공하는 대안을 제공하고 있습니다. 이러한 오픈 소스 옵션은 고급 AI 기술에 대한 접근성을 민주화하여 빠르게 발전하는 AI 풍경에서 혁신과 포용성을 촉진합니다.

LLM 세부 튜닝이 중요한 이유

LLM 세부 튜닝은 기술적인 향상 이상의 중요한 측면입니다. 이는 모델 개발의 중요한 측면으로, 모델을 특정 작업에 맞게 맞추는 것을 가능하게 합니다. 세부 튜닝은 사전 훈련된 모델을 특정 데이터셋에 맞게 맞추어, 모델의 성능을 향상시키고 특정 작업에 대한 적용을 더 타겟팅할 수 있게 합니다. 이는 LLM이 새로운 데이터에 적응하는 능력의 특징을 보여주며, 이는 AI 응용 프로그램에 대한 관심이 증가하는 상황에서 필수적입니다.

대형 언어 모델을 세부 튜닝하면 많은 기회가 열립니다. 이는 감성 분석부터 의학 문헌 리뷰까지 다양한 작업에서 모델을 특화시킬 수 있게 합니다. 모델을 특정 작업에 맞게 맞추면 모델의 효율성과 정확성을 향상시킬 수 있습니다. 또한, 이는 시스템 자원을 더 경제적으로 사용할 수 있게 합니다. 세부 튜닝은 모델을 처음부터 훈련하는 것보다 더 적은 계산 능력이 필요하기 때문입니다.

이 가이드에서 우리는 LLM 세부 튜닝의 세부 사항에 대해 논의할 것입니다. 이는 최신 발전과 최고의 관행에 기반한 종합적인 개요를 제공할 것입니다.

지시 기반 세부 튜닝

생성 AI 라이프사이클에서 세부 튜닝 단계는 지시 입력과 출력 및 단계별推論의 예시와 함께 특징지어집니다. 이 접근 방식은 모델이 관련성과 정확성뿐만 아니라 지시에 따라 정밀하게 맞춰진 응답을 생성하도록 합니다. 이는 사전 훈련된 모델이 다양한 작업과 사용 사례를 해결하도록 개인화된 데이터셋을 사용하여 기능을 향상시키는 단계입니다.

생성 AI 라이프사이클 - 세부 튜닝, 프롬프트 엔지니어링 및 RLHF

생성 AI 라이프사이클 – 세부 튜닝

단일 작업 세부 튜닝

단일 작업 세부 튜닝은 모델을 특정 작업, 즉 요약과 같은 작업에 전문적으로 만드는 것을 목표로 합니다. 이 접근 방식은 대규모 문서 또는 대화 스레드, 법적 문서 및 고객 지원 티켓과 같은 워크플로를 최적화하는 데 특히 유용합니다. 놀랍게도, 이 세부 튜닝은 상대적으로 작은 예시 집합, 즉 500에서 1000개와 같은 예시 집합으로도 상당한 성능 향상을 달성할 수 있습니다. 이는 사전 훈련 단계에서 사용되는 수십억 개의 토큰과 대조됩니다.

단일 작업 세부 튜닝 예시

단일 작업 세부 튜닝 예시

 

LLM 세부 튜닝의 기초: 트랜스포머 아키텍처 및 그 이상

LLM 세부 튜닝을 이해하는 여정은 LLM을 구성하는 기본 요소에 대한 이해에서 시작됩니다. 이러한 모델의 핵심에는 트랜스포머 아키텍처가 있습니다. 이는 자기 주의 메커니즘을 사용하여 단어의 문장 내 위치보다 단어 간의 관계를 더 중요하게 여기는 신경망입니다. 이 혁신적인 접근 방식은 입력 토큰 간의 먼 관계를 더 깊이 이해할 수 있게 합니다.

트랜스포머를 탐색하면서, 우리는 여러 단계의 프로세스를遇遇합니다. 이는 입력을 토큰화하고 입력과 그 위치를 나타내는 임베딩 벡터를 생성하는 인코더 단계에서 시작됩니다. 이후 단계에서는 쿼리, 값, 키와 같은 행렬을 사용하여 계산을 수행하여 자기 주의 점수를 결정합니다. 이는 문장의 다른 부분과 토큰에 대한 주의를 결정합니다.

트랜스포머 아키텍처

트랜스포머 아키텍처

세부 튜닝은 LLM 개발의 중요한 단계입니다. 이는 더 바람직한 출력을 달성하기 위해 미세한 조정을 포함하는 프로세스입니다. 이 단계는 필수적이지만, 많은 매개변수를 처리하는 계산 및 저장 요구와 같은 도전을 제기합니다. 매개변수 효율적인 세부 튜닝(PEFT) 방법은 매개변수의 수를 줄이는 기술을 제공하여 훈련 프로세스를 단순화합니다.

LLM 사전 훈련: 강력한 기초를 마련하다

LLM 개발의 초기 단계에서, 사전 훈련이 중심이 됩니다. 이는 과대 매개변수화된 트랜스포머를 사용하여 대규모 비지도 코퍼스에서 자연어를 모델링하는 것을 포함합니다. 여기서의 목표는 나중에 특정 다운스트림 작업을 위한 사전 훈련된 모델을 미세 조정할 수 있는 기반을 생성하는 것입니다.

사전 훈련, 세부 튜닝

사전 훈련, 세부 튜닝

이 영역에서 주목할 만한 추세는 사전 훈련된 LLM의 규모가 매개변수의 수로 측정하여 증가하는 것입니다. 경험적 데이터는 일관되게 더 큰 모델과 더 많은 데이터가 거의 항상 더 나은 성능을 제공함을 보여줍니다. 예를 들어, 175억 매개변수를 가진 GPT-3는 높은 품질의 자연어 생성과 다양한 제로샷 작업을 수행하는 능력의 벤치마크를 설정했습니다.

세부 튜닝: 모델 적응의 경로

사전 훈련 이후, LLM은 특정 작업에 맞게 세부 튜닝을 거칩니다. 사전 훈련된 LLM에서 컨텍스트 학습이 보여준 약속의 성과에도 불구하고, 세부 튜닝은 작업별 설정에서 더 나은 성능을 제공합니다. 그러나 전체 매개변수 세부 튜닝의 일반적인 접근 방식은 대규모 모델을 다루는 경우 계산 및 메모리 요구와 같은 도전을 제기합니다.

10억 매개변수를 가진 대규모 언어 모델의 경우, GPU RAM을 효율적으로 관리하는 것이 중요합니다. 32비트 정밀도로 표현된 단일 모델 매개변수는 4바이트의 공간을 필요로 하며, 1억 매개변수 모델을 로드하기 위해 4GB의 GPU RAM이 필요합니다. 실제 훈련 프로세스는 최적화 상태와 기울기와 같은 다양한 구성 요소를 수용하기 위해 더 많은 메모리를 필요로 하며, 이러한 모델의 경우 80GB의 GPU RAM이 필요할 수 있습니다.

GPU RAM의 제한을 극복하기 위해 양자화가 사용됩니다. 이는 모델 매개변수의 정밀도를 줄이는 기술로, 메모리 요구 사항을 줄입니다. 예를 들어, 32비트에서 16비트로 정밀도를 변경하면 모델 및 훈련을 로드하는 데 필요한 메모리를 절반으로 줄일 수 있습니다. 이후에 우리는 QLoRA에 대해 더 자세히 배울 것입니다. QLoRA는 세부 튜닝을 위한 양자화 개념을 사용합니다.

LLM GPU 메모리 요구 사항: 매개변수 수 및 정밀도

LLM GPU 메모리 요구 사항: 매개변수 수 및 정밀도

 

PEFT 방법의 카테고리 탐색

대규모 언어 모델을 완전히 세부 튜닝하는 과정에서, 모델의 trọng량과 다른 중요한 요소들을 효율적으로 처리할 수 있는 계산 설정이 필요합니다. 이러한 요소에는 최적화 상태, 기울기, 전방 활성화 및 훈련 절차의 다양한 단계에서 일시적인 메모리가 포함됩니다.

적립 방법

이 유형의 튜닝은 사전 훈련된 모델에 추가 매개변수 또는 레이어를 추가하여, 새로 추가된 매개변수만을 훈련하는 것을 포함합니다. 이러한 방법은 매개변수 수를 증가시키지만, 훈련 시간과 공간 효율성을 향상시킵니다. 적립 방법은 하위 카테고리로 나뉩니다:

  • 어댑터: 트랜스포머 하위 레이어 후에 작은 완전 연결 네트워크를 통합하는 것을 포함하며, 주목할 만한 예로는 AdaMix, KronA 및 Compactor가 있습니다.
  • 소프트 프롬프트: 모델의 입력 임베딩의 일부를 경사 하강법을 통해 세부 튜닝하는 것을 포함하며, IPT, 프롬프트 튜닝 및 WARP가 주목할 만한 예입니다.
  • 기타 적립 접근 방식: LeTS, AttentionFusion 및 Ladder-Side Tuning과 같은 기술을 포함합니다.

선택적 방법

선택적 PEFT는 레이어 유형 및 내부 모델 구조에 따라 제한된 수의 상위 레이어를 세부 튜닝하는 것을 포함합니다. 이 카테고리에는 BitFitLN 튜닝과 같은 방법이 포함되며, 이는 모델 편향 또는 특정 행과 같은 특정 요소를 튜닝하는 것을 포함합니다.

재매개변수화 기반 방법

이러한 방법은 매개변수의 수를 줄이기 위해 저위 매개변수화를 사용합니다. 가장 유명한 것은 저위 적응, 즉 LoRA입니다. 이 방법은 저위 행렬 분해를 사용하여 가중치 업데이트를 매개변수화하여 저위 하위 공간에서 효율적인 세부 튜닝을 제공합니다.

1) LoRA (저위 적응)

LoRA는 2021년 Edward J. Hu와 다른 연구자들에 의해 도입된 획기적인 PEFT 기술입니다. 이는 재매개변수화 카테고리에 속하며, LLM의 원래 가중치를 동결하고 트랜스포머 아키텍처의 각 레이어에 새로운 훈련 가능한 저위 행렬을 통합합니다. 이 접근 방식은 훈련 가능한 매개변수의 수를 줄이고 훈련 시간과 계산 자원을 감소시킵니다. 이는 전체 세부 튜닝보다 더 효율적인 대안을 제공합니다.

LoRA의 메커니즘을 이해하려면, 트랜스포머 아키텍처에서 입력 프롬프트가 토큰화되고 임베딩 벡터로 변환되는 것을 다시 살펴보아야 합니다. 이러한 벡터는 인코더 및/또는 디코더 세그먼트를 통해 전달되며, 여기서 자기 주의 및 피드 포워드 네트워크와 같은 사전 훈련된 가중치를遇遇합니다.

LoRA는 특이 값 분해(SVD) 개념을 사용합니다. 본质적으로, SVD는 행렬을 세 개의 별개 행렬로 분해합니다. 하나의 행렬은 대각선 행렬로, 특이 값을 포함합니다. 이러한 특이 값은 행렬의 차원에서 중요성을 측정하는 데 중요하며, 더 큰 값은 더 높은 중요성을, 더 작은 값은 더 낮은 중요성을 나타냅니다.

m × n 직사각형 행렬 A의 특이 값 분해(SVD)

m × n 행렬의 특이 값 분해(SVD)

이 접근 방식은 LoRA가 데이터의 본질적인 특성을 유지하면서 차원성을 최적화하는 것을 가능하게 합니다.

LoRA는 이 프로세스에 개입하여, 모든 원래 모델 매개변수를 동결하고 원래 가중치와 함께 훈련 가능한 저위 행렬의 쌍을 도입합니다. 이러한 작은 행렬, A와 B로 표시됨,는 지도 학습을 통해 훈련됩니다.

이 전략의 핵심 요소는 ‘r’로 표시되는 랭크 매개변수입니다. ‘r’의 신중한 선택은 인상적인 결과를 제공할 수 있으며, 더 작은 값으로도 저위 행렬을 생성하여 훈련할 매개변수의 수를 줄일 수 있습니다. 이 접근 방식은 HuggingFace Transformers와 같은 오픈 소스 라이브러리를 사용하여 다양한 작업에 대한 LoRA 세부 튜닝을 효율적으로 구현할 수 있습니다.

2) QLoRA: LoRA의 효율성을 높이다

LoRA의 기반을 확장하여, QLoRA는 메모리 요구 사항을 더욱 줄입니다. 2023년 Tim Dettmers와 다른 연구자들에 의해 도입되었습니다. 이는 저위 적응과 양자화를 결합하여 4비트 양자화 형식인 NormalFloat 또는 nf4를 사용합니다. 양자화는 본질적으로 높은 정보 표현에서 낮은 정보 표현으로의 전환 프로세스입니다. 이 접근 방식은 16비트 세부 튜닝 방법의 효율성을 유지하면서, 4비트로 양자화된 가중치를 사용하여 계산이 필요한 경우 16비트로 양자화된 가중치를 사용합니다.

세부 튜닝 방법 비교: QLoRA는 LoRA를 4비트 정밀도 양자화 및 페이지 최적화와 함께 향상시킵니다.

세부 튜닝 방법 비교: QLoRA는 LoRA를 4비트 정밀도 양자화 및 페이지 최적화와 함께 향상시킵니다.

QLoRA는 NumericFloat4(nf4)를 사용하며, 트랜스포머 아키텍처의 모든 레이어를 대상으로 하며, 이중 양자화를 통해 세부 튜닝에 필요한 메모리 공간을 더욱 축소합니다. 이는 이미 양자화된 상수를 양자화함으로써, 페이지 최적화와 통합 메모리 관리를 통해 일반적인 기울기 체크포인트 메모리 스파이크를 피하는 전략입니다.

Guanaco는 QLoRA로 튜닝된 앙상블로, 오픈 소스 챗봇 솔루션에서 벤치마크를 설정합니다. 시스템적 인간 평가 및 자동 평가를 통해 검증된 그 성능은 이 분야에서 효율성과 우수성을 강조합니다.

Guanaco의 65B 및 33B 버전은 수정된 OASST1 데이터셋을 사용하여 세부 튜닝되었습니다. 이는 ChatGPT 및 GPT-4와 같은 유명한 모델에 대하여 강력한 경쟁자로 부상합니다.

인간 피드백을 통한 강화 학습을 사용한 세부 튜닝

인간 피드백을 통한 강화 학습(Reinforcement Learning from Human Feedback, RLHF)은 사전 훈련된 언어 모델을 인간의 가치와 더 일치시키기 위해 세부 튜닝하는 데 사용됩니다. 이 개념은 2017년 Open AI에 의해 도입되어 문서 요약과 InstructGPT 개발의 기초를 마련했습니다.

RLHF의 핵심에는 강화 학습 패러다임이 있습니다. 이는 에이전트가 환경에서 행동을 수행하고 보상을 받으며 학습하는 유형의 기계 학습 기술입니다. 이는 행동과 피드백의 연속적인 루프로, 에이전트는 보상을 최대화하는 선택을 करन도록 동기부여 받습니다.

이것을 언어 모델에 적용하면, 에이전트는 모델 자체이며, 특정 문맥 창에서 작동하며, 상태(현재 문맥 창의 토큰)에 따라 결정합니다. “작업 공간”은 모델이 선택할 수 있는 모든 잠재적 토큰을 포함합니다. 목표는 인간의 선호도와 가장 일치하는 토큰을 선택하는 것입니다.

RLHF 프로세스는 인간 피드백을 광범위하게 사용하여 보상 모델을 훈련합니다. 이 모델은 사전 훈련된 모델을 세부 튜닝하는 동안 인간의 가치와 더 일치하는 출력을 생성하도록 모델을 안내하는 데 중요한 역할을 합니다. 이는 동적이고 반복적인 프로세스로, 모델은 “롤아웃” 시퀀스를 통해 학습합니다. 이는 언어 생성의 contexto에서 상태와 행동의 시퀀스를 나타내는 용어입니다.

RLHF의 주목할 만한 잠재력 중 하나는 개인화된 AI 어시스턴트를 조성하는 능력입니다. 이는 사용자의 선호도, 유머 감각 또는 일상 루틴과 같은 사용자와의 резонанс에 맞게 조정할 수 있습니다. 이는 기술적으로 능숙하지만 인간의 의사소통의 미묘한 점을 이해하고 반응할 수 있는 감성 지능을 갖춘 AI 시스템을 생성할 수 있는 길을 열어줍니다.

그러나, RLHF가 완벽한 해결책이 아니라는 점을 인식하는 것이 중요합니다. 모델은 여전히 바람직하지 않은 출력을 생성할 수 있으며, 이는 종종 모델이 훈련된 광범위하고 종종 규제되지 않은 데이터의 편향을 반영합니다.

결론

세부 튜닝 프로세스는, Alpaca, Falcon 및 GPT-4와 같은 LLM의 잠재력을 완전히 활용하는 데 중요한 단계입니다. 이는 더 정교하고 집중적인 솔루션을 제공하며, 다양한 작업에 대한 맞춤형 솔루션을 제공합니다.

우리는 단일 작업 세부 튜닝, 즉 모델을 특정 작업에 전문적으로 만드는 것을 목표로 하는 접근 방식을 보았습니다. 또한, 매개변수 효율적인 세부 튜닝(PEFT) 방법, 즉 LoRA 및 QLoRA와 같은 기술을 살펴보았습니다. 이러한 기술은 훈련 프로세스를 더 효율적이고 비용 효율적으로 만듭니다.

또한, 인간 피드백을 통한 강화 학습(RLHF)의 도입은 인간의 가치와 더 일치하는 AI 시스템을 생성하는 데 중요한 단계입니다. 이는 사용자의 선호도와 일치하는 개인화된 솔루션을 제공하는 AI 어시스턴트를 만들 수 있는 길을 열어줍니다.

기업, 기업 및 개인이 이러한 세부 튜닝된 LLM을 자신의 운영에 통합함에 따라, 그들은 본질적으로 인간의 맥락을 이해하고 적응하는 파트너인 AI를 환영하는 미래를 맞이하게 됩니다. 이는 혁신적이고 개인화된 솔루션을 제공하는 미래입니다.

지난 5년 동안私は Machine Learning과 Deep Learning의 매혹적인 세계에 몰두해 왔습니다.私の熱情と専門知識は私を50以上의多様한 소프트웨어 엔지니어링 프로젝트에 기여하게 했으며, 특히 AI/ML에 중점을 두었습니다.私の継続的な 호기심은 또한私를自然어 처리로 끌어들였습니다.私は이 분야를さらに 탐구하기를熱望합니다.