본문 바로가기
인공지능/랭체인

2. LLM 생성 과정 (데이터 수집, 모델설계, 모델학습, 평가 및 검증, 배포 및 유지보수)

by 으노으뇨 2025. 4. 1.
728x90
반응형
SMALL

LLM(Large Language Model)의 생성 과정은 단순한 모델 훈련이 아니라, 데이터 수집 → 모델 설계 → 학습 → 평가 및 검증 → 배포 및 유지보수라는 복잡한 절차를 거칩니다.
각 과정에서 고려해야 할 핵심 요소와 이를 설명하겠습니다.


데이터 수집

① 데이터 출처

LLM의 성능은 학습 데이터의 품질에 따라 좌우됩니다.
일반적으로 다음과 같은 데이터 출처를 활용합니다.

  • 웹 문서: Wikipedia, 뉴스 기사, 블로그, 논문 등
  • 책 및 논문: 학술 문헌, eBook
  • 소셜 미디어: Twitter, Reddit, Quora 등
  • 코드 리포지토리: GitHub, Stack Overflow 등

이 데이터를 수집한 후 데이터 정제(Data Cleaning) 과정을 거칩니다.

② 데이터 정제

원본 데이터는 중복, 오탈자, 의미 없는 기호 등이 포함되어 있어 모델 학습에 적합하지 않습니다.
따라서, 텍스트 정제필터링이 필요합니다.

(1) 데이터 전처리

  • HTML 태그 제거
  • 특수 문자, 이모지 제거
  • 중복 데이터 필터링
  • 문법적 오류 수정

(2) 데이터 필터링

  • 유해 콘텐츠 제거 (NSFW, Hate Speech)
  • 광고성 텍스트 제거
  • 불완전한 문장 제거

이 과정에서 흔히 사용하는 텍스트 정규화(Normalization) 기법은 아래와 같습니다.

  • 소문자 변환: "Hello" → "hello"
  • 불용어(Stopword) 제거: "I am going to the park" → "going park"
  • 어간 추출(Stemming) & 표제어 추출(Lemmatization)
    • "running" → "run"
    • "better" → "good"

이후, 데이터는 라벨링(Labeling) 과정을 거쳐 특정 NLP 태스크를 수행할 수 있도록 가공됩니다.


모델 설계

LLM의 성능을 결정하는 요소는 모델 구조, 파라미터 수, 학습 방법입니다.

① Transformer 아키텍처

LLM의 기반이 되는 Transformer 모델은 Attention 메커니즘을 활용하여 문맥을 학습합니다.
이를 수식적으로 표현하면 다음과 같습니다.

Self-Attention 수식

  • QQ : Query 행렬
  • KK : Key 행렬
  • VV : Value 행렬
  • dkd_k : 차원 크기 정규화

이 수식은 각 단어(토큰)의 중요도를 계산하여 문맥을 이해하는 데 사용됩니다.


② 토큰화(Tokenization)

LLM은 단순히 문장을 그대로 학습하는 것이 아니라, 문장을 토큰(Token) 단위로 나눠서 학습합니다.
이 과정에서 다양한 토크나이제이션 기법이 사용됩니다.

(1) WordPiece (BERT 사용)

  • "unhappiness" → ["un", "##happiness"]

(2) BPE (Byte Pair Encoding, GPT 사용)

  • "low", "lowest", "lower" → ["low", "est", "er"]

이러한 방식으로 문장을 압축적으로 표현하고, 모델이 더 효과적으로 학습할 수 있도록 합니다.


모델 학습

모델 학습은 크게 사전 학습(Pretraining), 미세 조정(Fine-tuning), 강화 학습(RLHF) 단계로 나뉩니다.

모델링은 입력 데이터에서 패턴을 찾아 학습하고, 이를 일반화하여 새로운 데이터에 적용하는 과정입니다.
우리가 데이터를 보면 특정 규칙을 파악할 수 있는데, 이 규칙을 수학적으로 표현한 것이 모델입니다.

예제 1️⃣: 고양이 사진을 인식하는 모델

  1. 입력(Training Data):
    • 다양한 고양이 사진을 수집
    • 다양한 강아지 사진도 함께 수집하여 차이를 구분하도록 학습
  2. 특징(Feature) 추출:
    • "고양이는 보통 귀가 뾰족하다."
    • "고양이의 눈 모양이 특정 패턴을 가진다."
    • "고양이는 수염이 길다."
  3. 패턴 학습:
    • 모델이 고양이의 특징을 찾아 학습
    • 새로운 사진이 들어오면 학습된 패턴을 활용해 고양이인지 판단

🔹 LLM도 동일한 원리!

  • 문장에서 단어가 등장하는 패턴을 학습
  • "나는 밥을 먹었다."와 "나는 학교에 갔다."를 보면 "나는" 뒤에는 동사가 등장한다는 규칙을 학습
  • 이를 바탕으로 "나는 ..." 다음에 올 단어를 예측

① 사전 학습(Pretraining)

사전 학습 단계에서 LLM은 자가회귀 모델(Auto-Regressive Model) 이나 마스크드 언어 모델(Masked LM) 방식을 사용합니다.

사전 학습은 모델이 일반적인 패턴과 언어 구조를 학습하는 과정입니다.
고양이 예제를 활용해 설명하겠습니다.

📌 고양이 이미지 분류에서 사전 학습

  • 다양한 고양이 사진을 학습하여 "고양이"라는 개념을 이해
  • 강아지, 고양이, 사자, 호랑이 등의 사진을 함께 학습하며 차이점을 학습

🔹 LLM의 사전 학습

  • "나는 오늘 맛있는 밥을 먹었다."
  • "나는 학교에서 공부를 했다."
  • "나는 친구와 영화를 봤다."
  • "나는" 다음에 나오는 단어들의 패턴을 학습
  • 이를 바탕으로 다음 단어를 예측

자가회귀 모델 (Auto-Regressive Model)

LLM은 다음 단어를 예측하는 방식으로 학습됩니다.

즉, 이전 단어들의 확률을 곱하여 전체 문장의 확률을 계산합니다.

예제 문장: "나는 오늘 맛있는 밥을 먹었다."

  • P(나는)P(\text{나는})
  • P(오늘∣나는)P(\text{오늘} \mid \text{나는})
  • P(맛있는∣나는, 오늘)P(\text{맛있는} \mid \text{나는, 오늘})
  • 최종 확률 P(나는 오늘 맛있는 밥을 먹었다.)P(\text{나는 오늘 맛있는 밥을 먹었다.}) 을 계산

이 확률을 최대화하는 방향으로 모델이 학습됩니다.


② 손실 함수 (Loss Function)

학습 과정에서는 크로스 엔트로피(Cross-Entropy) 손실 함수를 사용하여 모델이 예측을 얼마나 정확하게 했는지 평가합니다.

여기서,

  • : 실제 값 (Ground Truth)
  • y^i : 모델이 예측한 확률값

예제)
정답이 "밥" 일 때, 모델이 "밥"일 확률을 0.8로 예측했다면,

이 값이 작을수록 모델이 정답을 잘 예측한 것입니다.

③ 미세 조정(Fine-Tuning)

사전 학습이 끝난 후, 특정 태스크(예: 문서 요약, 번역)를 수행하기 위해 미세 조정을 진행합니다.
이때, 지식 증류(Knowledge Distillation) 를 사용하여 모델을 경량화할 수도 있습니다.

미세 조정(Fine-Tuning)은 사전 학습된 모델을 특정 태스크에 맞춰 추가 학습하는 과정입니다.
예를 들어,

  • 일반적인 고양이 사진을 학습한 후, 페르시안 고양이를 구별하는 모델로 튜닝
  • 일반적인 언어모델을 학습한 후, 법률 문서를 요약하는 모델로 튜닝

 

  • L CE : 원래의 크로스 엔트로피 손실
  • L Distill  : 작은 모델이 큰 모델의 출력을 따라가도록 유도하는 손실
  • α : 가중치 조절 파라미터

④ 강화 학습  : RLHF (Reinforcement Learning from Human Feedback)

최근 ChatGPT 등에서 사용하는 방법으로, 인간의 피드백을 강화 학습으로 반영하는 방식입니다.
이 과정에서 Proximal Policy Optimization (PPO) 알고리즘을 사용하여 모델을 튜닝합니다.

예제

  • ChatGPT가 "잘못된 정보"를 제공하면, 사용자가 "이 답변이 틀렸다"고 피드백
  • 모델이 보상을 기반으로 더 좋은 답변을 생성하도록 학습

📌 강화 학습의 보상 함수

  • r t  : 특정 행동(출력)에 대한 보상값

강화 학습을 통해 모델은 더 나은 답변을 생성할 수 있도록 지속적으로 학습합니다.

모델 학습의 전체 과정 요약

  1. 사전 학습
    • 일반적인 데이터를 학습하여 기본적인 언어 패턴을 익힘
    • (예: "나는 밥을 먹었다."와 같은 일반 문장 학습)
  2. 미세 조정
    • 특정 태스크(예: 법률 문서 요약)에 맞게 추가 학습
  3. 강화 학습 (RLHF)
    • 사용자 피드백을 반영하여 모델을 개선

 

LLM의 평가 및 검증 (Evaluation & Validation)

훈련된 모델이 제대로 작동하는지 확인하기 위해 다양한 평가 지표를 사용합니다.
평가 지표는 정확성(Accuracy), 문장 유사도, 확률 모델 평가 등 다양한 방식으로 측정됩니다.

📌 평가 지표의 중요성

  • 모델이 얼마나 좋은지를 판단하는 기준
  • 과적합(Overfitting) 여부 확인
  • 실제 서비스에서 사용자에게 적절한 결과를 제공하는지 검증

📍 1. 기본 평가 지표: 정확도 (Accuracy), 정밀도 (Precision), 재현율 (Recall), F1-score

LLM이 자연어 처리(NLP)에서 정답을 얼마나 잘 맞추는지를 평가할 때,
정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-score 를 사용합니다.

1-1. 정확도 (Accuracy)

모든 예측 중 정답을 맞힌 비율

  • TP (True Positive) : 실제 정답(O) → 모델이 정답(O)
  • TN (True Negative) : 실제 정답(X) → 모델이 정답(X)
  • FP (False Positive) : 실제 정답(X) → 모델이 정답(O)
  • FN (False Negative) : 실제 정답(O) → 모델이 정답(X)

📌 예제: 고양이 사진 분류

  • 모델이 100장 중 90장을 맞히면, Accuracy = 90%
  • 하지만 데이터가 불균형할 경우 정확도만으로 판단하면 안됨!

문제점:
만약 데이터가 고양이 95%, 강아지 5% 라면,
모델이 "항상 고양이!"라고 예측해도 Accuracy = 95%
하지만 모델이 강아지를 구별하지 못함! 😨
👉 정확도만으로는 모델 성능을 제대로 평가할 수 없다!


1-2. 정밀도 (Precision)

모델이 정답(O)이라고 예측한 것 중에서 실제로 정답(O)인 비율

  • FP (False Positive) 가 많으면 Precision이 낮음
  • "고양이 사진"을 찾는 모델에서 강아지를 고양이라고 착각하면 Precision이 낮아짐

📌 예제: 스팸 필터

  • 모델이 "스팸"이라고 예측한 이메일 중 실제 스팸일 확률
  • Precision이 높을수록 정상 이메일을 스팸으로 잘못 분류하지 않음

1-3. 재현율 (Recall)

실제 정답(O) 중에서 모델이 정답(O)이라고 예측한 비율

  • FN (False Negative) 가 많으면 Recall이 낮음
  • "암 환자 예측 모델"에서 환자를 정상으로 예측하면 Recall이 낮아짐

📌 예제: 암 진단 모델

  • Recall이 높을수록 암 환자를 놓치지 않음
  • 하지만 Recall만 높이면 정상인도 암으로 오진할 가능성 있음 (Precision ↓)

1-4. F1-score (Precision & Recall의 조화 평균)

Precision과 Recall의 균형을 맞추기 위한 지표

  • Precision과 Recall 중 하나가 너무 낮으면 F1-score도 낮아짐
  • Precision ↔ Recall 트레이드오프 해결

📌 예제: 의료 진단

  • 암 진단 모델은 암을 놓치면 안됨 (Recall↑)
  • 하지만 너무 많은 정상인을 암으로 진단하면 안됨 (Precision↓)
  • F1-score를 최적화하는 것이 중요!

📍 2. ROC 곡선과 AUC (Receiver Operating Characteristic & Area Under Curve)

2-1. ROC 곡선 (Receiver Operating Characteristic Curve)

모델의 전체 성능을 평가하는 곡선
ROC 곡선은 True Positive Rate (TPR)와 False Positive Rate (FPR) 의 관계를 나타냅니다.

  • TPR이 높고, FPR이 낮을수록 모델이 좋음
  • ROC 곡선이 좌측 상단으로 올라갈수록 좋은 모델

📌 예제: 암 진단 모델

  • 완벽한 모델 : (0,1) 점에 가까움
  • 무작위 모델 : 대각선(랜덤 예측)

2-2. AUC (Area Under Curve)

ROC 곡선 아래 면적

  • AUC = 1 : 완벽한 모델
  • AUC = 0.5 : 랜덤 예측 모델
  • AUC < 0.5 : 모델이 오히려 잘못된 예측을 함

📌 예제: 스팸 필터

  • AUC가 높을수록 스팸을 잘 탐지하는 모델

📍 3. 자연어 처리(NLP) 모델의 평가 지표

LLM의 성능을 평가할 때, NLP에 특화된 지표도 사용합니다.

3-1. BLEU (Bilingual Evaluation Understudy)

기계 번역 성능을 평가하는 지표

  • BLEU가 높을수록 번역 품질이 좋음
  • 인간 번역과 얼마나 유사한지 평가

📌 예제: 기계 번역 (English → 한국어)
정답: "나는 오늘 맛있는 밥을 먹었다."
번역 결과 1: "나는 오늘 맛있는 밥을 먹었습니다." (BLEU ↑)
번역 결과 2: "나는 밥을 먹었다." (BLEU ↓)


3-2. ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

문서 요약 성능 평가 지표
ROUGE는 정답과 얼마나 유사한지 비교하는 방식입니다.

  • ROUGE-N : 단어 개수 기준 비교
  • ROUGE-L : 문장 구조를 고려한 비교

📌 예제: 뉴스 요약
정답: "미국 대선에서 바이든이 승리했다."
요약 결과 1: "바이든이 미국 대선에서 승리했다." (ROUGE ↑)
요약 결과 2: "트럼프가 대선에 나왔다." (ROUGE ↓)


3-3. Perplexity (혼란도)

언어 모델이 얼마나 "놀라는지" 평가하는 지표

  • Perplexity가 낮을수록 좋은 모델
  • 낮으면 낮을수록 모델이 문장을 더 잘 예측

📌 예제: 텍스트 생성 모델

  • "나는 오늘 맛있는 밥을 ..." → "먹었다" (Perplexity ↓)
  • "나는 오늘 맛있는 밥을 ..." → "비행기" (Perplexity ↑)

📍 결론

모델의 성능을 평가할 때는 여러 지표를 함께 고려해야 합니다.

  • Classification 문제: Precision, Recall, F1-score, ROC-AUC
  • NLP 문제: BLEU, ROUGE, Perplexity

📌 LLM의 배포 및 유지보수: AI 모델의 지속적 발전을 위한 핵심 과정

LLM(Large Language Model)은 단순히 학습 후 배포로 끝나는 것이 아닙니다. 배포 이후에도 지속적인 유지보수와 최적화가 필수적이며, 이 과정에서 다양한 기술적 요소와 관리 기법이 활용됩니다. 이를 자세히 분석해 보겠습니다.


🔹 1. 모델 배포의 개념

모델 배포(Deployment)란, 개발된 LLM을 실제 환경에서 사용자들이 활용할 수 있도록 배포하는 과정입니다. 일반적으로 온프레미스(On-Premise) 배포클라우드 배포(Cloud Deployment) 방식이 존재합니다.

📌 온프레미스(On-Premise) 배포

  • 기업 내부 서버에서 모델을 직접 운영
  • 보안과 데이터 프라이버시 강화
  • 초기 인프라 구축 비용이 높음
  • 예시: 금융, 의료 등 민감한 데이터를 다루는 기업의 AI 모델 배포

📌 클라우드 배포(Cloud Deployment)

  • AWS, GCP, Azure 등의 클라우드 플랫폼을 활용하여 배포
  • 서버리스(Serverless) 또는 컨테이너(Container) 기반 배포 가능
  • 확장성(Scalability) 및 유지보수 용이
  • 예시: OpenAI의 GPT API, Google Bard, Claude

🔹 2. 배포 방식의 종류와 전략

📌 ① 실시간 배포 (Real-Time Deployment)

  • API 형태로 제공하여 실시간으로 사용자 요청에 응답
  • OpenAI의 GPT API처럼 REST API를 통해 제공 가능
  • 사용 사례: 챗봇, 음성 비서, 실시간 번역기

📌 ② 배치 배포 (Batch Deployment)

  • 일정한 시간 간격으로 데이터를 처리하여 결과를 반환
  • 예를 들어, 하루 한 번 새로운 데이터로 문서 요약을 수행
  • 사용 사례: 뉴스 요약, 대량 문서 번역

📌 ③ 엣지 배포 (Edge Deployment)

  • 모델을 클라우드가 아닌 개별 장치(모바일, IoT 디바이스 등)에서 실행
  • 네트워크가 불안정한 환경에서도 동작 가능
  • 사용 사례: 스마트폰 음성 비서, AI 카메라

🔹 3. 모델 배포 후 유지보수 (Maintenance)

배포된 LLM이 실무에서 지속적으로 좋은 성능을 유지하려면 정기적인 유지보수가 필요합니다.

📌 ① 사용자 피드백 기반 모델 업데이트

LLM이 배포된 후에는 사용자들이 실제로 어떻게 활용하는지 모니터링하고, 피드백을 반영하여 모델을 개선해야 합니다.

  • 사용자 로그 분석: 유저들이 어떤 질문을 많이 하는지, 오류가 발생하는 패턴 분석
  • 모델 업데이트 주기 설정: 주기적으로 Fine-Tuning 또는 RLHF(Reinforcement Learning from Human Feedback) 적용
  • 모델 개선 방식:
    • 데이터 추가 학습 (Incremental Learning)
    • 새로운 태스크를 학습하는 Transfer Learning

📌 ② 지속적인 데이터 재학습 (Continuous Learning)

배포된 모델은 시간이 지남에 따라 최신 데이터와 트렌드를 반영해야 합니다.

✅ 데이터 재학습 방법

  • Online Learning: 실시간으로 새로운 데이터를 학습하여 모델을 업데이트
  • Offline Learning: 일정 주기마다 새로운 데이터를 수집하여 다시 학습 후 배포
  • Transfer Learning: 기존 모델을 기반으로 새로운 데이터셋을 학습하여 특정 도메인에 최적화

✅ 예제: 뉴스 요약 AI 모델의 데이터 업데이트

  1. 초기에는 2022년까지의 뉴스 데이터로 학습된 모델을 배포
  2. 2023년 이후 새로운 뉴스가 등장 → 최신 뉴스 반영 필요
  3. 새로운 데이터를 수집하여 Fine-Tuning 진행
  4. 모델 성능 평가 후 새로운 버전 배포

📌 ③ 모델 성능 평가 및 재조정 (Evaluation & Tuning)

LLM이 지속적으로 좋은 성능을 내기 위해서는 성능 평가가 필수적입니다.

✅ 주요 평가 지표 (Evaluation Metrics)

평가 지표설명
Perplexity (혼란도) 언어 모델이 얼마나 정확하게 예측하는지 측정 (값이 낮을수록 좋음)
BLEU (Bilingual Evaluation Understudy) 기계 번역의 정확도를 평가하는 지표
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) 텍스트 요약 모델의 성능을 평가하는 지표
F1 Score 정밀도(Precision)와 재현율(Recall)의 조화 평균
AUC-ROC (Area Under Curve - Receiver Operating Characteristic) 이진 분류 모델의 성능을 측정

✅ 예제: Perplexity 계산 방법

Perplexity는 모델이 예측한 확률의 역수를 평균적으로 계산한 값입니다.

수식:

예제 문장: "나는 오늘 맛있는 밥을 먹었다."
각 단어의 예측 확률이 다음과 같다면:

  • P(나는) = 0.1
  • P(오늘) = 0.05
  • P(맛있는) = 0.2
  • P(밥을) = 0.15
  • P(먹었다) = 0.5

해당 값이 낮을수록 모델이 문장을 잘 예측하고 있다는 의미입니다.


📌 ④ 모델 경량화 및 최적화

배포된 모델이 너무 크면 연산 속도가 느려지고 운영 비용이 증가할 수 있습니다. 이를 해결하기 위해 모델 경량화(Model Compression) 기술을 활용합니다.

✅ 모델 경량화 기법

기법설명
지식 증류 (Knowledge Distillation) 큰 모델(Teacher Model)의 지식을 작은 모델(Student Model)로 전이
양자화 (Quantization) 모델의 파라미터를 32-bit에서 8-bit 등으로 줄여 계산량 감소
프루닝 (Pruning) 모델의 불필요한 뉴런을 제거하여 경량화

✅ 예제: GPT 경량화

  • GPT-3(175B) → 너무 크기 때문에 API 비용이 비쌈
  • DistilGPT-3(66B)로 지식 증류를 적용하여 더 가볍게 운영

🔹 4. 모델 유지보수 자동화 (MLOps)

LLM의 지속적인 유지보수를 위해 MLOps(Machine Learning Operations) 자동화 프로세스를 구축할 수 있습니다.

✅ MLOps 주요 단계

  1. 데이터 수집 자동화 (크롤링, ETL 파이프라인)
  2. 모델 학습 자동화 (자동 재학습, CI/CD)
  3. 성능 평가 및 모니터링 (실시간 로그 분석, A/B 테스트)
  4. 배포 및 롤백 (새 모델 배포 후 성능 저하 시 롤백)

예제: Google의 TFX (TensorFlow Extended)

  • Google은 TFX를 활용하여 Gmail의 자동완성 AI를 지속적으로 업데이트

🔹 결론

LLM의 배포 및 유지보수는 단순한 모델 배포가 아니라 지속적인 개선과 최적화가 핵심입니다.
1️⃣ 배포 방식 선택 (API, Batch, Edge AI)
2️⃣ 사용자 피드백 반영 (Fine-Tuning, RLHF)
3️⃣ 모델 평가 및 성능 개선 (Perplexity, BLEU, ROUGE)
4️⃣ 경량화 및 자동화 적용 (Knowledge Distillation, MLOps)

728x90
반응형
LIST

댓글