02_Machine Leaning/Data-Centric

합성데이터_NLP

jiniby 2025. 2. 24. 13:14
728x90

✅ NLP 합성 데이터의 주요 목적

  1. 데이터 보충
    • 데이터가 부족한 언어, 도메인에서 사용할 수 있는 새로운 데이터를 생성
    • 다국어 데이터 생성 가능 (예: 한국어 데이터가 부족한 경우, AI로 생성)
  2. 도메인 맞춤 데이터 생성
    • 특정 산업이나 스타일에 맞춘 데이터를 생성
    • 다양한 문장 구조, 어휘를 활용하여 자연스러운 문장 만들기 가능
  3. 개인 정보 보호
    • 원본 데이터와 유사하지만, 개인 정보를 포함하지 않은 데이터 생성
    • 예: 고객 서비스 데이터에서 개인정보를 제거한 가짜 데이터 생성

❌NLP 합성 데이터의 한계

  • 품질 문제: 생성된 데이터가 실제 언어를 잘 반영하지 못할 수 있음
  • 잠재적 편향(Bias): 원본 데이터의 편향이 반영될 가능성
  • 과적합(Overfitting): 특정한 패턴에 맞춰진 데이터가 되어, 실제 환경에서 잘 작동하지 않을 수 있음
  • 윤리적 문제: 잘못된 정보나 편향된 데이터를 생성할 가능성 존재

🔹 2. Task에 맞는 NLP 합성 데이터 생성

📌 대표적인 NLP Task

  • 텍스트 분류(Text Classification)
    예: 리뷰를 긍정/부정으로 분류하는 데이터 생성
  • 질의 응답(Question-Answering)
    예: 문장을 주고 AI가 질문과 답변을 생성하도록 학습
  • 번역(Translation)
    예: 영어 문장을 프랑스어로 변환하는 데이터 생성
  • 요약(Summarization)
    예: 긴 문서를 짧게 요약하는 데이터 생성
  • NER(Named Entity Recognition, 개체명 인식)
    예: 문장에서 "사람 이름", "장소", "회사명"을 자동으로 태깅하는 데이터 생성

📌 예제

💡 ChatGPT를 사용하여 합성 데이터 생성 가능!
  • 텍스트 분류 데이터 생성 → "이 문장은 긍정적인가? 부정적인가?"
  • 요약 데이터 생성 → "이 문장을 요약해줘!"
  • 질의 응답 데이터 생성 → "이 문장에 대해 질문과 답변을 만들어줘!"
  • 번역 데이터 생성 → "이 문장을 다른 언어로 번역해줘!"
  • NER 데이터 생성 → "이 문장에서 인물, 장소, 제품명을 태깅해줘!"

🔹 3. NLP 합성 데이터 생성 방법

1️⃣ RNN(Recurrent Neural Network) 기반 텍스트 생성

  • 순차적인 데이터를 다룰 수 있는 신경망 모델
  • 이전 단계의 정보가 다음 단계에도 영향을 줌 → 텍스트를 자연스럽게 생성
  • 단점: 기울기 소실(Gradient Vanishing) 문제로 긴 문장을 생성하는 데 한계
 실습 예제:
  • PyTorch RNN을 이용하여 언어별 이름 데이터를 생성
  • 예: "영어 이름을 학습한 모델이 새로운 영어 이름을 생성"

2️⃣ BART(Bidirectional and Auto-Regressive Transformer) 기반 텍스트 생성

  • Transformer 아키텍처를 기반으로 한 Denoising Autoencoder 모델
  • 학습 과정: 입력 데이터에 일부 잡음(Noise)을 추가 → 원래 데이터로 복원하는 방식
  • 텍스트 요약, 번역, 질의 응답 등의 Task에서 강력한 성능을 보임
 실습 예제:
  • BART를 사용한 Fill Mask 방식 데이터 생성
    • 예: 문장에서 일부 단어를 가리고, 해당 단어를 채우도록 학습
    • "나는 [MASK]을 좋아한다." → "나는 축구를 좋아한다."

3️⃣ LLM(Large Language Model) 기반 텍스트 생성

  • GPT, LLaMA, Falcon 등의 거대한 언어 모델을 활용하여 데이터 생성
  • 프롬프트 엔지니어링을 통해 원하는 형태의 데이터를 생성 가능
  • 특정 도메인에 맞는 데이터가 필요할 경우, 파인 튜닝(Fine-Tuning)이 필요
 실습 예제:
  • "프롬프트에 개체명을 지정하여 개체명을 포함한 문장을 생성"
    • 예: "서울에 위치한 회사 이름을 포함한 문장을 생성해줘."
    • 결과: "삼성전자는 서울에 본사를 두고 있다."
 주의할 점:
  • LLM은 "할루시네이션(Hallucination)" 문제를 가질 수 있음
    • 즉, 사실이 아닌 정보를 생성할 가능성이 있기 때문에 생성된 데이터를 검토해야 함.

🔹 4. 최종 정리

방법 설명 특징  예제
RNN 과거 정보를 활용해 텍스트 생성 순차적 데이터 학습, 기울기 소실 문제 존재 언어별 새로운 이름 생성
BART 일부 단어를 가리고 복원하는 방식 텍스트 요약, 번역, 질의 응답 가능 마스크된 단어 복원
LLM 대형 언어 모델을 활용해 생성 강력한 텍스트 생성 성능, 할루시네이션 문제 가능 특정 개체명을 포함한 문장 생성

 

728x90

'02_Machine Leaning > Data-Centric' 카테고리의 다른 글

액티브 러닝(Active Learning)  (0) 2025.02.25
합성데이터_CV  (0) 2025.02.21
데이터마무리_데이터스플릿  (2) 2025.02.21
데이터클렌징_IAA  (0) 2025.02.21
데이터 클렌징  (0) 2025.02.21