파인튜닝(Fine-tuning)이란? – LLM 구축 방법

2023/12/14

2023년에는 LLM이 각 업계에서 더욱 중요한 역할을 했으며, 실제로 LLM을 적용하고 비즈니스의 잠재적 이점이 크게 높아졌습니다. 실제로 마이크로소프트, OpenAI, 바이두와 같은 대기업들은 LLM의 개발 및 개선에 적극적으로 참여했습니다. 그러나 대부분의 기업이 자체 파운데이션 모델을 개발하는 것은 재정적으로 어려운 실정이었습니다. 파운데이션 모델을 위한 방대한 양의 데이터와 고성능 컴퓨팅 리소스는 주로 최상위 기업에서만 확보 가능하기 때문이죠.

그렇지만 파운데이션 모델을 직접 개발할 수 없더라도, LLM 활용은 가능합니다. 오픈 소스 파운데이션 모델이 널리 공유되면서 기업들은 이를 기반으로 파인튜닝 기술을 적용하여 대규모 언어 모델을 훈련시키고, 이를 특정 산업이나 고유한 사용 사례에 맞게 애플리케이션을 개발할 수 있게 되었습니다.

이 글에서는 LLM 모델의 정의와 중요성, 활용 방법, 그리고 에펜이 어떻게 대규모 언어 모델을 효과적으로 활용하여 실제 응용 프로그램을 개발하는 데 도움을 줄 수 있는지에 대해 자세히 살펴보겠습니다.


파인튜닝의 정의

파인튜닝은 특정 작업이나 도메인에 높은 적합성을 확보하기 위해, 이미 훈련된 대규모 언어 모델에 특정 데이터셋을 사용하여 추가적인 학습을 수행하는 작업을 말합니다.

파인튜닝의 핵심 아이디어는 머신러닝 모델이 초기 학습에서 사용된 데이터의 논리와 이해력만을 반영할 수 있다는 점에서 비롯됩니다. 이에 따라 모델은 초기 학습 단계에서 다루지 않은 새로운 데이터 샘플을 이해하는 데 어려움을 겪을 수 있으며, 이는 특정 시나리오에서 정확한 답을 생성하는 대규모 모델에서 두드러집니다.

예를 들어, 범용 LLM은 다양한 언어 정보를 포함하고 유창한 대화에 참여할 수 있습니다. 그러나 의료 분야에서는 환자의 질문에 효과적으로 응답할 수 있는 애플리케이션을 구축하기 위해 대규모 언어 모델을 새로운 의료 데이터에 노출시켜야 합니다. 이를테면 “해열제를 감기약과 함께 복용할 수 있나요?”와 같은 의료 질문에 정확한 답을 제공하려면 모델을 파인튜닝하여 해당 도메인의 특정 내용에 적응시켜야 합니다.


파인튜닝하는 방법

파인튜닝은 사전 학습된 모델 전체를 조정한 정도에 따라 Full Fine-tuning과 Repurposing 두 가지 방법으로 분류할 수 있습니다.

Full Fine-tuning

전체 파인튜닝은 모든 모델 매개변수를 포함하여 사전 학습된 모델 전체를 파인튜닝하는 작업을 의미합니다. 이 방법에서는 사전 학습된 모델의 모든 레이어와 매개 변수가 업데이트되고 최적화되어 대상 작업의 요구 사항에 맞게 조정됩니다. 이 방법은 일반적으로 작업과 사전 학습된 모델 사이에 큰 차이가 있거나 작업에서 모델의 유연성과 적응성이 높아야 하는 경우에 적합합니다. 전체 파인튜닝에는 상당한 리소스와 시간이 필요하지만 그만큼 더 나은 성능을 얻을 수 있습니다.

Repurposing

Repurposing은 사전 학습된 모델의 하위 레이어를 그대로 유지하면서 모델의 상위 레이어 또는 선택된 몇 개의 레이어를 파인튜닝하는 것을 의미합니다. 이 방법의 목적은 사전 학습된 모델에 대한 일반적인 지식을 유지하면서 최상위 레이어를 특정 작업에 적용하는 것입니다. 이 방법은 대상 작업과 사전 학습된 모델 사이에 특정 유사성이 있거나 작업 데이터셋이 작은 경우에 적합한 경우가 많습니다. Repurposing은 몇 개의 레이어만 업데이트되므로 Full Fine-tuning에 비해 필요한 리소스와 시간이 적지만 경우에 따라 약간의 성능 저하가 발생할 수 있습니다.

Full Fine-tuning과 Repurposing 간의 선택은 작업의 특성과 사용 가능한 리소스에 따라 달라집니다. 작업과 사전 학습된 모델 사이에 큰 차이가 있거나 높은 적응성이 필요한 경우 Full Fine-tuning이 더 적합합니다. 작업이 사전 학습된 모델과 유사성이 높거나 리소스가 제한적인 경우 Repurposing이 더 나은 선택일 수 있습니다. 실제 적용에서는 최적의 성능을 달성하기 위해 작업 요구 사항 및 실험 결과를 기반으로 적절한 파인튜닝 방법을 선택해야 합니다.


파인튜닝 유형

LLM 파인튜닝은 사용되는 데이터셋 유형에 따라 지도 파인튜닝(Supervised Fine-tuning)과 비지도 파인튜닝(Unsupervised Fine-tuning)의 두 가지 유형으로 분류됩니다.

1.지도 파인튜닝

지도 파인튜닝은 미세 조정 단계에서 레이블이 지정된 학습 데이터셋을 사용하는 프로세스를 의미합니다. 이때 레이블은 파인튜닝 중에 모델에 대한 목표 출력을 제공합니다. 지도 파인튜닝에서는 보통 각 샘플에 관련 레이블이 있는 분류 데이터셋과 같은 작업별 레이블이 지정된 데이터셋이 사용됩니다. 이러한 레이블을 활용하여 파인튜닝 프로세스를 안내하면 모델이 특정 작업에 더 잘 적응할 수 있습니다.

2.비지도 파인튜닝

비지도 파인튜닝은 미세 조정 프로세스 중에 레이블이 지정되지 않은 학습 데이터셋을 사용하는 것을 포함합니다. 이는 모델이 명시적인 목표 출력 없이 입력 데이터 자체에 있는 정보에만 의존할 수 있음을 의미합니다. 이러한 방법은 유용한 기능을 추출하거나 모델의 표현 기능을 향상하는 것을 목표로 데이터의 고유 구조를 활용하거나 데이터를 생성하여 모델을 파인튜닝합니다.


지도 파인튜닝은 일반적으로 레이블이 지정된 작업별 데이터셋에서 수행되므로 모델 성능을 직접 최적화할 수 있습니다. 반면, 비지도 파인튜닝은 더 유용한 특징 표현을 추출하거나 모델의 일반화 기능을 향상하기 위해 라벨링이 지정되지 않은 데이터를 사용하여 특징 학습 및 표현 학습에 더 중점을 둡니다. 이 두 가지 미세 조정 방법은 작업의 특성과 양, 사용 가능한 데이터에 따라 독립적으로 또는 조합하여 사용됩니다.


파인튜닝의 주요 단계

앞서 언급한 것과 같이 LLM의 파인튜닝 방법에는 여러 가지가 있으며, 각 방법마다 미세 조정 프로세스, 접근 방식, 준비 및 주기가 다를 수 있습니다. 그러나 대부분의 파인튜닝 프로세스에는 다음과 같은 주요 단계가 포함되며, 이에 따른 준비가 필요합니다.

1.데이터셋 준비

대상 작업과 관련된 학습 데이터셋을 수집하고 준비합니다. 데이터 세트의 품질과 정확성을 보장하고 필요한 데이터 정리 및 전처리를 수행합니다.

2.사전 학습 및 파운데이션 모델 선택

대상 작업의 성격과 데이터셋의 특성을 기반으로 적합한 사전 학습 모델을 선택합니다.

3.파인튜닝 전략 정의

작업 요구 사항 및 사용 가능한 리소스를 기반으로 적절한 파인튜닝 전략을 선택합니다. 전체 미세 조정을 수행할지 혹은 부분 미세 조정을 수행할지 여부와 파인튜닝 수준 및 범위를 고려합니다.

4.하이퍼파라미터 설정

학습률, 배치 크기, 훈련 에포크 수 등과 같은 파인튜닝 프로세스를 위한 하이퍼파라미터를 결정합니다. 이러한 하이퍼파라미터의 선택은 미세 조정의 성능과 수렴 속도에 상당한 영향을 미칠 수 있습니다.

5.모델 매개변수 초기화

사전 학습된 모델의 가중치를 기반으로 파인튜닝된 모델의 매개변수를 초기화합니다. 완전한 미세 조정을 위해 모든 모델 매개변수가 무작위로 초기화됩니다. 부분 파인튜닝의 경우 최상위 레이어 또는 일부 레이어의 매개변수만 무작위로 초기화됩니다.

6.파인튜닝 학습

준비한 데이터셋과 파인튜닝 전략을 사용하여 모델을 훈련합니다. 학습 과정에서 설정된 하이퍼파라미터와 최적화 알고리즘을 기반으로 모델 매개변수를 점진적으로 조정하여 손실 함수를 최소화합니다.

7.모델 평가 및 튜닝

학습 과정에서 검증 세트를 사용하여 주기적으로 모델을 평가하고 평가 결과에 따라 하이퍼파라미터를 조정하거나 전략을 미세 조정합니다. 이는 모델의 성능과 일반화 능력을 향상하는 데 도움이 됩니다.

8.모델 성능 테스트

미세 조정이 완료된 후 테스트 세트를 사용하여 최종 파인튜닝 모델을 평가하여 성능 지표를 얻습니다. 이는 실제 적용에서 모델의 성능을 평가하는 데 도움이 됩니다.

9.모델 배포 및 적용

파인튜닝된 모델을 실제 응용 프로그램에 배포하고 실제 요구 사항을 충족하기 위해 추가 최적화 및 조정을 수행합니다.

이러한 단계는 LLM을 파인튜닝하기 위한 일반적인 프레임워크를 제공하지만, 특정 단계와 세부 사항은 작업 및 요구 사항에 따라 다를 수 있습니다. 특정 상황에 따라 조정 및 최적화가 이루어질 수 있습니다.


그러나 파인튜닝은 기본 모델을 처음부터 훈련하는 것에 비해 상대적으로 시간을 절약하고 효율적인 방법이지만 상당한 전문 지식, 기술 리소스, 컴퓨팅 성능, 관리 및 개발 비용이 필요합니다. 이를 지원하기 위해 저희 에펜은 LLM을 쉽게 도입할 수 있도록 다양한 맞춤형 서비스와 제품을 제공합니다.


에펜의 LLM 솔루션

1.데이터 클리닝, 데이터셋 및 어노테이션 서비스

AI 데이터 산업의 글로벌 리더로서 26년 이상의 경험을 보유한 에펜은 235개가 넘는 언어와 방언에 대한 심층적인 연구와 광범위한 데이터 경험을 보유하고 있습니다. 특정 사용 사례에 필요한 다국어 데이터, 맞춤형 데이터 수집가공, 여러 수준의 세부 어노테이션을 제공하여 LLM 학습을 위한 데이터 솔루션을 제공합니다.

2.파인튜닝 & RLHF

백만 명 이상의 데이터 작업자를 보유하고 있는 글로벌 크라우드 플랫폼과 숙련된 데이터 전문가가 이끄는 어노테이션 팀을 통해 저희 에펜은 모델 파인튜닝을 위한 광범위한 RLHF(Reinforced Learning from Human Feedback) 솔루션을 제공합니다. 또한 이를 통해 할루시네이션을 최소화할 수 있습니다.

3.LLM 지능형 개발 플랫폼

대규모 언어 모델이 포함된 애플리케이션을 개발하려면 개발 효율성을 높이고 장애물을 줄이는 것을 목표로 파인튜닝을 넘어서는 여러 개발 프로세스가 필요합니다. 이를 효과적으로 진행할 수 있도록 저희 에펜은 LLM 지능형 개발 플랫폼을 개발하여 LLM 프로그램을 신속하게 교육하고 배포할 수 있도록 지원합니다.

4.맞춤형 LLM 응용 서비스

LLM 개발 역량이 부족한 기업을 위해 포괄적인 맞춤형 솔루션을 제공합니다. 데이터 및 알고리즘 팀을 통해 적절한 파운데이션 모델을 선택하고 가장 적합한 데이터를 통해 파인튜닝을 수행하여 요구 사항을 충족하는 LLM 응용 프로그램을 배포할 수 있습니다.


LLM 구축을 계획하고 계신가요? 저희 에펜의 데이터 전문가가 직접 도와드리겠습니다. 지금 바로 상담받아보세요!

LLM 프로젝트 지원이 필요하신가요? 대규모 언어 모델 전문가에게 문의하세요.