이 보고서는 대규모 언어 모델(LLM)의 사전 학습과 파인튜닝의 차이점을 분석하고, 각각의 접근법이 AI 개발 및 적용에 미치는 영향을 설명합니다. 사전 학습(Pre-training)은 모델이 방대한 양의 데이터를 통해 기본적인 언어의 구조와 패턴을 학습하는 과정으로, OpenAI의 ChatGPT와 같은 모델에 활용됩니다. 반면, 파인튜닝(Fine-tuning)은 이미 사전 학습된 모델을 특정 도메인이나 작업에 맞춰 추가 학습시키는 방식으로, 의료나 커머스 등 특화된 분야에 최적화된 성능을 제공합니다. 보고서에서는 또한 파인튜닝의 다양한 유형과 기술, 예를 들어 Full Fine-tuning, LoRA, QLoRA, Instruction Tuning 및 프롬프트 엔지니어링(Prompt Engineering)을 포함한 다양한 접근법을 다룹니다. 삼성SDS, 업스테이지, OpenAI 등 실제 사례를 통해 이러한 기술들이 어떻게 적용되는지 설명합니다.
사전 학습(Pre-training)은 대규모 언어 모델(LLM)이 초기 학습 과정에서 방대한 양의 데이터를 사용하여 텍스트 간의 관계와 패턴을 학습하는 과정입니다. 이를 통해 모델은 문맥을 파악하고 다음 단어를 예측하는 능력을 가지게 됩니다. 예를 들어, OpenAI의 ChatGPT는 사전 학습을 통해 다양한 텍스트 데이터를 기반으로 문맥을 이해하고 적절히 응답할 수 있는 능력을 갖추게 됩니다. 사전 학습은 비지도 학습(Unsupervised Learning)의 형태로 이루어지며, 레이블이 없는 데이터를 사용하여 모델을 학습시킵니다.
파인튜닝(Fine-tuning)은 이미 사전 학습된 LLM을 특정 작업이나 도메인에 맞춰 추가적으로 학습시키는 과정입니다. 이는 해당 도메인의 특화된 데이터셋을 사용하여 모델을 조정하는 작업을 포함합니다. 예를 들어, 의료 데이터를 활용하여 LLM을 파인튜닝하면 의료 분야에서 환자의 질문에 효과적으로 응답할 수 있는 애플리케이션을 개발할 수 있습니다. 파인튜닝에는 Full Fine-tuning과 Repurposing 두 가지 방법이 있습니다. Full Fine-tuning은 모든 모델 매개변수를 포함하여 전체 모델을 조정하는 반면, Repurposing은 일부 레이어를 조정하여 특정 작업에 맞게 모델을 최적화합니다.
사전 학습과 파인튜닝의 주요 차이점은 학습의 목적과 과정에 있습니다. 사전 학습은 대규모 데이터셋을 통해 일반적인 언어 패턴을 학습하는 반면, 파인튜닝은 특정 도메인이나 작업에 맞춰 모델을 세부적으로 조정하는 과정입니다. 사전 학습은 주로 비지도 학습을 통해 이루어지며, 레이블이 없는 데이터를 사용합니다. 반면, 파인튜닝은 지도 학습(Supervised Learning)을 사용하여 라벨이 지정된 데이터를 활용합니다. 또한, 사전 학습된 모델은 다양한 응용에 사용될 수 있는 일반적인 지식을 가지지만, 파인튜닝된 모델은 특정 작업에 최적화된 성능을 발휘합니다.
Full Fine-tuning은 사전 학습된 모델 전체를 대상으로 파인튜닝을 진행하는 방법입니다. 이 방법에서는 모든 모델 매개변수를 업데이트하여 대상 작업의 요구 사항에 맞게 최적화합니다. Full Fine-tuning은 일반적으로 작업과 사전 학습된 모델 사이에 큰 차이가 있거나 높은 적응성이 필요한 경우에 적합합니다. 이 과정은 상당한 리소스와 시간이 필요하지만, 그만큼 더 나은 성능을 기대할 수 있습니다.
LoRA (Low Rank Adaptation)와 QLoRA (Quantized Low Rank Adaptation)는 매개변수 효율적인 파인튜닝 방법입니다. LoRA는 사전 학습된 모델의 모든 가중치를 미세 조정하지 않고, 두 개의 작은 가중치 행렬을 미세 조정하여 큰 가중치 행렬을 근사합니다. QLoRA는 사전 학습된 모델을 4비트 양자화된 가중치로 로드하여 메모리 효율성을 크게 높인 기술입니다. LoRA와 QLoRA는 효과적인 미세 조정 방법으로, 특히 QLoRA는 메모리 효율성을 유지하면서도 높은 성능을 제공합니다.
Instruction Tuning은 모델이 사람의 지시를 이해하고 따라할 수 있도록 조정하는 기법입니다. 이 방법은 모델이 주어진 입력과 일치하는 출력을 생성하도록 도와줍니다. 예를 들어, 질문과 답변 형식의 데이터로 모델을 학습시켜 사용자의 의도를 보다 정확하게 파악하고 답변을 제공할 수 있습니다. Instruction Tuning은 사용자의 특정 요청이나 명령을 처리하는 데 유용한 기술입니다.
프롬프트 엔지니어링은 입력 텍스트를 전략적으로 조정하여 모델이 더 정확하고 관련성 높은 응답을 생성하도록 돕는 기술입니다. 모델의 환각 현상을 줄이고, 복잡한 작업에 대한 모델의 역량을 향상시키는 데 중요한 역할을 합니다. 최근에는 사용자 질의가 모호할 때 발생하는 오류를 최소화하고, 적절한 프롬프트를 설계하는 것이 LLM 애플리케이션 개발에서 점점 중요해지고 있습니다.
삼성SDS는 생성형 AI 서비스를 구성하기 위해 사내 업무 시스템과 외부 LLM뿐만 아니라 서비스, 데이터, 학습 등 다양한 모듈과의 연계를 필요로 합니다. 서비스 모듈은 통합 포털과 함께 인증 및 권한 관리 기능을 제공하며, 여러 LLM의 오케스트레이션과 기업의 보안을 위한 필터링 기능을 포함하고 있습니다. 데이터 모듈은 정형 및 비정형 데이터를 수집하고 전처리 및 벡터화 과정을 지원합니다. 학습 모듈은 모델을 사전 학습 후 모델 저장소에 올려 파인튜닝의 선순환을 지원합니다. 삼성SDS는 기업의 업무 시스템과 외부 LLM에 대한 연결을 '패브릭스(FabriX)' 플랫폼을 통해 간편하게 할 수 있도록 지원하고 있습니다. 이를 통해 기업 내 ERP, SCM, MES, CRM 등의 기간계 시스템과 접속이 가능하며, 기업 내에 존재하는 지식, 문서, 데이터도 가져올 수 있어 업무를 자동화하고 생산성을 혁신할 수 있습니다.
업스테이지는 도메인 특화 LLM을 적용하여 커머스 업계에서 혁신을 가속화하고 있습니다. 이커머스 데이터 플랫폼 회사인 '커넥트웨이브'와 파트너십을 맺고, 이커머스 비즈니스를 위한 개인 생성형 AI 기반 대규모 언어 모델을 구축하였습니다. 이를 통해 사용자는 필요한 제품을 쉽게 찾고, 향상된 추천 기능을 경험할 수 있습니다. 또한 초개인화 지원, 배송 추적 및 문의 자동화, 쇼핑몰 요약 리뷰 제공, 콘텐츠 마케팅 효율화 등을 통해 소비자의 쇼핑 만족도를 높이고자 합니다. 이러한 도메인 특화 LLM의 적용은 초개인화 기능 강화, 실시간 상호작용 촉진 및 운영 프로세스 간소화 등의 다양한 운영상의 개선을 가능하게 합니다.
OpenAI는 ChatGPT의 성능을 높이고자 파인튜닝 기법과 함께 RLHF(참고 reinforcement learning from human feedback) 기법을 활용하고 있습니다. 파인튜닝은 사전 학습된 모델에 추가 학습을 시켜 맞춤형 모델로 업데이트하는 것을 의미합니다. OpenAI는 파인튜닝과 RLHF 기법을 사용함으로써 ChatGPT의 성능을 강화하였습니다. 여러 실제 적용 사례를 통해 OpenAI는 대규모 언어 모델의 기반 지식을 이용하여 다양한 응용 프로그램에 탁월한 성능을 발휘하고 있으며, 이는 특화된 도메인에 맞춰 성능을 최적화할 수 있는 가능성을 열어줍니다.
프롬프트 엔지니어링은 모델 입력을 조정하여 원하는 출력을 유도하는 기술입니다. '당신의 LLM이 잘 동작하지 않는 이유①' 문서에 따르면, 프롬프트 엔지니어링은 모델이 특정 컨텍스트나 지시에 따라 정확하고 적절한 응답을 생성하도록 돕습니다. 이 기술은 질문 답변, 산술 추론 등 일반적이고 복잡한 작업에서 LLM의 역량을 향상시키며, 모호한 질의로 인해 모델이 잘못된 정보를 추론하는 일을 줄이는 데 중요한 역할을 합니다. '초격차 패키지: 프롬프트 엔지니어링으로 시작하는 AI/LLM 서비스 개발' 문서에서는 데이터셋 구축이나 GPU 비용이 필요하지 않아 비용 효율적이며 빠르게 응답을 얻을 수 있다는 장점이 있습니다.
파인튜닝은 특정 도메인에 맞춰 모델을 추가 학습시키는 과정으로, 정리된 사전 학습 데이터가 충분히 존재한다면 특정 주제에 대해 더욱 정확한 응답을 제공할 수 있습니다('당신의 LLM이 잘 동작하지 않는 이유①'). 반면, 파인튜닝은 모델 학습을 위해 데이터셋과 GPU 등 자원이 필요하며 시간이 많이 소요됩니다. 프롬프트 엔지니어링은 데이터셋 구축과 GPU 비용이 필요 없고 빠르게 모델을 활용할 수 있지만, 모든 태스크에서 원하는 성능을 보장하지는 않습니다('초격차 패키지: 프롬프트 엔지니어링으로 시작하는 AI/LLM 서비스 개발').
프롬프트 엔지니어링은 질문 답변 및 산술 추론 등 일반적이고 복잡한 작업에서 사용되며, 예를 들어 아마존 세이지메이커 엔드포인트와 같은 다양한 LLM에 적용되었습니다('당신의 LLM이 잘 동작하지 않는 이유①'). 파인튜닝의 경우, 특정 도메인에 맞춘 모델이 필요한 경우 사용되며, 예를 들어 특정 산업 또는 주제에 대해 더욱 정확한 응답을 제공할 수 있습니다. 이 경우 모델의 환각을 줄이기 위해 사용되기도 합니다. 두 접근법 모두 LLM의 성능을 향상시키기 위함이며, 각각의 장단점과 적용 사례를 통해 LLM 개발 및 구현 전략을 선택할 수 있습니다.
리포트의 주요 발견 사항으로는 사전 학습된 LLM이 일반적인 응용에서 우수한 성능을 보이며, 파인튜닝은 특정 도메인에 최적화된 성능을 제공할 수 있다는 점입니다. 특히 파인튜닝과 프롬프트 엔지니어링의 장단점을 비교 분석함으로써, 각 접근법의 효율성과 적용 가능한 시나리오를 명확히 이해할 수 있었습니다. 예를 들어, 파인튜닝은 시간과 리소스가 많이 소요되지만 특정 도메인에서 더욱 정확한 응답을 제공할 수 있으며, 프롬프트 엔지니어링은 비용 효율적이며 빠르게 결과를 도출할 수 있지만 모든 작업에서 최상의 성능을 기대할 수 없다는 특성이 있습니다. 다양한 실제 사례를 통해 LLM 기술의 상업적 응용 가능성을 확인할 수 있었으며, 예를 들어 삼성SDS의 ‘패브릭스(FabriX)’ 플랫폼은 다양한 비즈니스 시스템과의 통합을 지원하고, 업스테이지의 도메인 특화 LLM은 이커머스 분야에서 혁신적인 솔루션을 제공하였습니다. 이 보고서는 향후 연구 방향에 대한 힌트를 제공하며, LoRA와 QLoRA 같은 매개변수 효율적인 파인튜닝 기법이 앞으로 더욱 발전할 잠재력을 가지고 있음을 강조합니다.
파인튜닝은 사전 학습된 대규모 언어 모델(LLM)을 특정 작업이나 도메인에 맞게 미세 조정하는 기법입니다. 이는 특정 도메인에 맞춰 모델의 성능을 극대화할 수 있는 중요한 방법론입니다.
사전 학습은 모델이 방대한 일반 텍스트 데이터를 통해 언어의 기본 구조와 패턴을 학습하는 과정입니다. 이를 통해 모델은 기본적인 언어 능력을 갖추게 됩니다.
LoRA는 저순위 적응(Fine-tuning) 기법으로, 모델의 일부 매개변수를 효율적으로 조정하여 리소스를 절감하면서도 높은 성능을 유지할 수 있는 방법입니다.
프롬프트 엔지니어링은 모델 입력을 조정해 원하는 출력을 유도하는 기술로, 모델이 더욱 정확하고 적절한 응답을 생성하도록 돕습니다.