[Paper Review] Synthetic Data Generation Using Large Language Models : Advances in Text and Code

2026. 5. 12. 18:29·Paper Review/Synthetic Data Generation
Synthetic Data Generation Using Large Language Models : Advances in Text and Code(IEEE Access)
Mihai Nadas, Laura Diosan, Andreea Tomescu
https://arxiv.org/abs/2503.14023

오늘은 최근 제가 관심있게 보고 있는 합성 데이터 생성 기술의 동향을 한번 살펴보고자 위의 서베이 논문을 가져오게 되었습니다. 저는 주로 텍스트 생성에 관심이 있는데, 어떤 영역에 기술이 어떻게 활용되고, 어떠한 한계점이 있는지 살펴보며 그 안에서 개인적인 인사이트와 앞으로의 연구 방향성 등에 대해 고민해보고자 합니다.   

 

📌 Introduction

다양한 언어 생성 작업에서 LLM이 발전을 거듭해온 것은 방대한 데이터셋을 기반으로 한 학습 덕분이라고 할 수 있다. 하지만, 데이터 부족, 높은 라벨링 비용, 보안이나 개인정보 문제 등으로 인해 대량의 고품질 학습 데이터를 확보하는 것이 여전히 매우 어렵다고 한다.

 

물론, 바로 지난 논문 리뷰에서처럼, 강화학습과 같은 비지도학습 메커니즘들이 발달하면서 지도학습 데이터셋 의존도가 조금 낮아진 것도 맞는 것 같지만, 여전히 고품질 라벨링 데이터가 꼭 필요하기 때문에 이러한 인위적으로 데이터를 합성하는 분야가 관심있게 다루어지고 있는 것이 아닐까 싶다.

 

클로드, 딥시크 R1, 라마, GPT등의 LLM들이 합성 데이터 생성에 잘 쓰이는 이유는 실제 현실 세계의 데이터 분포를 모방하는, 인간이 생성하는 것과 유사한 텍스트와 코드를 생성할 수 있기 때문이다. 생성기로서 LLM을 활용하는 것은 저자원 환경에서 모델 성능 향상, 라벨링 비용 절감, 모델 강건성 증가에서 가능성을 보여주고 있지만, 데이터 품질 관리, 현실성, 편향에 대한 우려를 남긴다.

 

Vision은 합성 태스크가 이미 광범위하게 연구되어 지고 있고, Signal Processing 분야는 텍스트처럼 발전 중인 분야이지만 결이 조금 다르기 때문에 본 논문에서는 LLM 기반 합성 데이터 생성을 주로 다루고, 기술, 응용, 과제, 향후 방향성에 대해 언급한다.

 

📌 Related Work

기존 연구들도 합성 데이터 생성을 다룬 연구들이 꽤 있다. 자연어 처리 분야에서의 LLM을 위한 데이터 생성 및 증강 기법을 조사한 서베이, LLM 기반 합성 데이터 생성, 정제, 평가를 위한 프레임워크 제안 , 코드 생성을 위한 LLM 등이 있지만, 개요 수준이거나 너무 특정 도메인에만 치우쳐져있는 경우가 많다고 한다.

 

본 논문도 물론 완전 텍스트 보다는 코드나 이런 것들까지 포괄적으로 다루는 것 같긴 한데, 우선 텍스트에 초점을 맞춰 리뷰를 해보려고 하고, 그만큼 최신 발전과 결과, 과제 , 대응 전략 등을 다루고 있기 때문에 충분히 가치 있을 것으로 판단되어 이외 부족한 부분들은 기존, 그리고 이 이후의 논문들을 찾아보면서 추가로 채우면 될 것 같다.

 

📌 Survey Methodology

PRISMA 방식을 통해 리뷰 연구들의 범위를 체계적으로 정하였음을 밝힌다. 구글 스칼라, 아카이브 등에서 주요 키워드를 기반으로 검색을 수행하고, 최신 논문의 참고문헌 목록을 통해 부족한 추가 연구들을 찾았다고 한다. 다음과 같은 기준에 따라 연구들을 포함시켰다고 한다.

 

1) 2020년 1월부터 2025년 4월 사이에 발표된 연구

2) 텍스트 또는 코드 도메인에서 LLM을 활용한 합성 데이터 생성, 데이터 증강 또는 Instruction Tuning을 다룬 연구

3) 상용 모델 및 오픈 소스 모델을 모두 포함하여 최소 수억 개 이상의 파라미터를 가진 모델을 대상으로 한 연구

4) 합성 데이터 워크플로우와 관련해 실증적인 증거, 평가, 또는 중요한 방법론적 기여를 제공하는 연구

 

📌 Background and Motivation

🟢 합성 데이터

합성 데이터란 실 세계의 사건이나 주석으로부터 직접 수집된 것이 아닌 알고리즘이나 신경망을 통해 실제 데이터의 특성을 모방하도록 인위적으로 생성된 데이터를 의미한다.

 

NLP 분야에서는 동의어 치환, 랜덤 삽입/삭제, 역번역과 같은 전통적인 Augmentation 기법들이 오랫동안 사용되어져 왔고, 단순한 변형만으로도 모델의 성능과 강건성을 향상시킬 수 있음을 입증하였다. 하지만 이러한 규칙 기반 알고리즘들은 새로운 언어 패턴이나 의미적 변화를 충분히 생성해낼 수 없어 데이터의 다양성이 제한되는 문제가 있었다. 해당 한계점이 모델을 통한 합성 데이터 생성으로 이어지는 계기가 되었다.

 

초기에는 Seq2Seq나 언어 모델을 활용해 텍스트를 Paraphrasing하거나 새로운 예제를 생성하는 방법이 있었다. 역번역을 한다는 것은 라벨링 데이터와 역번역한 비 라벨링 데이터가 정확히 동일하진 않지만 유사한 스탠스를 가지니까, 비 라벨링 데이터도 동일한 라벨을 활용하여 학습시킬 수 있다. 또, Knowledge Distillation 기법을 활용하면 Teacher 모델이 일종의 합성 라벨링을 하여 Student 모델을 학습 시킬 수 있게 된다.

 

LLM이 등장하면서, 프롬프트를 통해 특정 작업에 맞는 데이터를 생성할 수 있어 합성 데이터 생성 태스크의 수준이 한 단계 더 점프하였다. Insturction과 예시가 담긴 프롬프트만 주면 라벨링된 데이터를 즉석에서 뽑을 수 있고, 심지어 정교한 프롬프트라면 예제조차도 없어도 되기 때문이다.

 

또한, 이론상 합성 데이터는 파이프라인만 잘 구축이 된다면 무한한 규모로 생성해낼 수 있기 때문에 그 확장성도 매우 높으며, 원하는 목적에 맞게 데이터의 특성을 조정할 수 있다는 것이 가장 킥인 것 같다. 예를 들어 특정 스타일을 갖거나, 편향을 완화시킬 수 있는 텍스트를 생성해내도록 할 수 있다. 합성 데이터를 활용해 데이터 처리 능력은 유지하되, 실제 학습에는 개인정보가 포함되지 않도록 보안 유지의 수단으로 활용할 수도 있다.  

 

🟢 프롬프트 기반 데이터 증강

- 제로샷 : 프롬프트에 오로지 작업에 대한 Instruction만 넣어주기(모델에 의존, 일반적인 출력이 나올 수 있고, 다양성이 제한될 수 있음)

- 원샷 : 하나의 입출력 쌍을 예시로 추가 제공(출력 스타일 고정하는 역할, 관련성은 증가하지만 다양성 감소)

- 퓨샷 : 여러 개의 입출력 쌍을 예시로 제공(위와 마찬가지로 예시를 참고하면서 다양성이 감소할 위험)

- 주제 기반 생성 / 제어된 생성 : LLM을 활용해 작업과 관련된 다양한 주제나 상황을 먼저 생성하고, 이렇게 나온 여러개의 주제나 상황에 대해 데이터를 생성해서 다양성을 증가시키는 방법

 

LLM을 데이터 생성에 활용하는 것은 인간이 직접 라벨링을 하는거 보다 훨씬 싸고, 빠르고, 체계화된 방법이기는 하지만, 위의 그런 이점들을 누리기 위해서는 동시에 생성 데이터가 실제 데이터만큼 효과적이고 신뢰 가능한지에 대해서 증명해야하는 과제도 뒤따른다.

 

📌 Syntethic Data Generation for Text tasks

🟢 프롬프트 기반 합성 텍스트 데이터 생성을 위한 접근들

실제 학습 데이터셋에 합성 데이터셋을 추가할 경우, 다양한 연구의 다양한 태스크에서 성능 향상을 이루는 모습을 보였는데, 간과하면 안될 점 중 하나는 합성 데이터는 실제 데이터가 부족해서 모델이 과소적합 되는 상황에 유용하며, 실제 데이터의 비중이 커질수록 이점이 감소한다는 것이다. 따라서, 아직 고품질 대규모 실제 데이터를 완벽히 대체할수 있다의 느낌보다는 데이터 부족 상황에서의 보조 수단으로 매우 적절하다의 느낌이 더 강한 것 같다.

 

최근에는 기본적인 프롬프팅을 넘어서서 조금 더 다양한 전략들이 제안되고 있다. 각 논문을 모두 리뷰했지만, 겹치는 내용도 많고, 모든 내용을 본 리뷰에 통합해서 싣기에는 양이 조금 많아서 논문별 핵심만 간추려 보도록 하겠다.

 

주제 제어 및 랜덤 프롬프팅

WANLI : Worker and AI Collaboration for Natural Language Inference Dataset Creation(EMNLP 2022)

- 크라우드소싱을 통해 인간이 직접 데이터 만들때 패턴이 겹치고 다양성이 저하되는 문제 발생. AI가 데이터를 만들고 인간이 평가하는 협업 구조 제안(NLI Task)

- 초기 파인튜닝 모델에서 에포크 별 모델 응답의 표준편차가 큰 모호한 샘플들 뽑고, 해당 샘플과 유사한 예시들 수집하고, 유사한 추론 패턴을 가지도록 in-context 예시를 제공한 GPT-3를 활용해 합성 데이터 증강

- 다양한 휴리스틱 지표들, 인간 검수를 기반으로 샘플 필터링

- Cohen's K 지표에서 높은 합의를 보여 품질 확보 증명

- 모델의 에포크별 확신도를 통해 샘플 난이도를 추정한다거나 이러한 부분들을 충분히 다른 도메인에도 확장할 수 있겠다라는 개인적인 생각. 오히려 합성 데이터 품질 평가 할 때나 이런 때.

 

AugGPT : Leveraging ChatGPT for Text Data Augmentation(IEEE Transactions on Big Data 2025)

- 문자 삽입, 삭제 및 교체, 동의어 치환, 역번역, 언어 모델 활용 문맥 기반 증강 등 기존 베이스라인은 정확한 레이블 보장이 어렵고 충분한 다양성 확보가 불가하다는 문제

- 학습 데이터 각 문장을 개념적으로 유사하지만, 의미적으로는 서로 다른 표현으로 rephrasing

- Cross entropy 이외, Contrastive Loss를 추가하여 클래스 간 구분이 잘 되도록 조정

- 생성 데이터와 실제 데이터간 코사인 유사도, Translate 성능 지표 상대적 우수했지만, 여전히 GPT가 특정 도메인 지식이 부족하면 생성 품질에 한계 존재

 

퓨샷 및 지시 기반 프롬프팅

GPT3Mix : Leveraging Large-scale Language Models for Text Augmentation(EMNLP 2021)

- GPT와 같은 언어 모델에서 프롬프트 기반으로 직접 분류하는 것은 데이터가 많아질수록 비용이 커지고, 추론 시 매번 긴 프롬프트를 삽입해야해서 비효율적

- 실제 데이터 샘플 2개를 분포로 부터 균등 분포로 샘플링하고, 프롬프트에 설명, 텍스트-라벨 쌍, 증강 유도, 메타 정보를 포함해서 새로운 텍스트와 라벨 쌍 생성

- 라벨을 Soft Label로 뽑아서 작은 소형 모델에 Distillation

- 원본 대비 10개 규모의 증강 데이터 생성, 기존 증강 기법 대비 성능 향상, GPT-3 학습 이후 시점 데이터셋에서도 성능 향상을 보여 사전 지식 능력 배제

 

Unnatural Instructions : Tuning Language Models with(Almost) No Human Labor(ACL 2023)

- Instruction tuning 데이터셋 만들 때 기존에는 사람이 직접 NLP 데이터를 가공하거나, 실제 사용자 프롬프트를 수집해야하는 어려움. 물론 여러 도메인에 걸쳐 다양성 있는 Instruction을 확보하는 것도 문제

- OpenAI API로 3개의 seed instruction 예시를 제공하고, 4번째 instruction을 생성하도록 프롬프팅, 이 과정에서 Greedy 디코딩과 Nucleus 샘플링 활용

- 생성된 Instruction을 Paraphrasing해서 데이터 추가 다양화하고, 규칙 기반 필터링을 통해 데이터 품질 확보

- 생성치의 50% 이상이 실제로 올바른 정답 포함, 200개 샘플 중 117개가 서로 다른 Instruction Task일 정도로 태스크 다양성 확보, 여러 벤치마크에서 인간 데이터셋보다 더 높은 일반화 성능 달성

- 도메인이 LLM 아는 범위 내에서 다양화되고 한계가 금방 오지 않을까. 200개 샘플로 Task 다양성 주장하기에는 무리.

 

반복 및 피드백 기반 생성

Self-Instruct : Aligning Language Models with Self-Generated Instructions(ACL 2023)

- Instruction tuning 데이터셋이 일부 인기 있는 NLP task에 편중되어 있고, task 다양성이 부족한 문제

- 인간이 직접 작성한 175개의 seed task(instruction, instance) 풀에서 인간이 생성한 6개, 이전 단계에서 모델이 생성한 2개의 태스크 예시를 뽑아 in-context sample로 제공한 후 새로운 task instruction 생성 요청

- 분류 task는 라벨 편향 문제가 있어 분류 문제는 label 먼저 생성하고 비분류 문제들은 input을 우선 생성

- 생성된 Instruction에 대해 입출력을 생성하고 휴리스틱 필터링 한 후에 다시 Seed Task 풀에 섞어 부트스트래핑

- GPT-3 Instruction + Input, Output 쌍으로 SFT 했을 때 인간 데이터 보다 우수하고, InstructGPT 성능에 근접(RLHF 안하고도)

- 논문에서도 16000개 이상 되면 과포화 온다는데, 어차피 내장 지식 한계 오면 태스크는 같고 표현만 다르게 나와 다양성 배제되는거 아닌지(무한대는 아닐테니)

 

SunGen : Self-Guided Noise-Free Data Generation for Efficient Zero-Shot Learning(ICLR 2023)

- 사전 학습 언어 모델이 생성한 합성 데이터에 잘못된 레이블, task 무관 등의 저품질 샘플이 포함되는 문제, 기존에는 휴리스틱 기준 혹은 인간이 필터링 했으나 비용도 비싸고 인간의 손을 많이 타는 문제

- 인간 개입없이 어떤 생성 샘플이 신뢰할만한지 학습하는 noise-robust re-weighting 프레임워크 SunGen 제안

- 기존에는 고품질 샘플에 높은 weight 부여하고, Noisy 샘플에 낮은 weight 부여하도록 샘플 weight 함수를 설계했는데, 품질이 보장된 검증 데이터셋이 있으면 모를까, 제로샷 환경에서는 bi-level optimization의 어려움 존재

- 내부 루프랑 외부 루프를 따로 두는데, 내부는 작은 분류 모델 기존처럼 학습, 외부는 Reversed 크로스 엔트로피와 같은 노이즈 robust한 손실 함수를 활용해 학습을 통한 샘플 중요도 업데이트

- Clean과 Noise에서 비교적 동일하게 최적화 지점을 찾도록 하는 저 목적 함수를 직접 모델 파라미터 업데이트에 쓰면 그 클래스간 결정 경계가 무뎌져 최적화가 어려워질 수 있는데, 여기서는 샘플 가중치 업데이트를 위한 Outer 루프에만 사용.

- 분류 모델 파라미터를 sharing하고 체인룰로 robust 목적함수에 대한 샘플 가중치 그래디언트 계산해서 weight 업데이트

- 그래디언트가 한 쪽으로 투머치하게 쏠리는 문제를 손실함수를 통해 일부 보정하여 노이즈에 대한 상대적 영향을 줄여보겠다는 건데, 이렇게 되면 벤치마크 성능은 좋았다고 경험적으로 이야기하나 사실상 이 합성 상황 자체가 제로샷이라 라벨을 모르는 상황에서 때때로 Clean 샘플의 영향력도 같이 줄이는 것은 아닐지 한계를 생각해보게 됨(그냥 전반적으로 확신 낮추는)

- 찾아보니 Robust Learning, 이중 최적화 이런 분야들이 평가나 Safety 분야에서도 많이 쓰이는 것 같은데 찾아볼 필요가 있다고 느꼈음.

 

🟢 생성 데이터 품질과 속성

주요 우려 사항은 LLM이 훈련 분포를 벗어나는 생성을 요청 받았을 때, 부정확하거나 비논리적인 출력을 생성할 수 있다는 지점. 품질 개선을 위한 두 가지 정도의 전략이 있다.

 

RAG는 이미 알고 있었던 지점인데, 검색 기반의 외부 지식 도입하는 것이 도움이 되는 것은 익히 알고 있는 사실이나, 이 역시 한계가 없는 것은 아니라고 생각한다.

 

또 하나는 후처리 및 필터링을 하는 방식인데, 간단하게는 휴리스틱 기준에 의해서 필터링 하는 방식도 있고, 경우에 따라서 외부 분류기, Annotator를 따로 학습시켜서 좋은 샘플인지를 판별하게 하는 방식도 있다. 여러 LLM들의 평가 합의나 일치와 같은 방식도 언급했는데, 이는 결국 LLM 순환 논리에 빠지기 쉬울 거라고 생각한다. 그나마 아직 현실적인 방안은 일부를 인간 Annotation 한 뒤에 이를 통해 judge를 학습시키는 방식인 것 같다.

 

때로는 Multi-hop reasoning 모델을 학습시키기 위해 CoT Reasoning을 출력하라고 하는 경우도 있는데, 이 역시 품질 보장은 아직 정확히 할 수 없다고 한다.

 

📌 Challenges and Considerations

품질 보증 및 사실성

여전히 LLM이 할루시네이션에 취약하고, 잘못된 생성 데이터는 모델 응답 패턴에 전이됨. 완화를 위해서 검색 기능을 통합하고, 더 강력한 모델의 평가를 Critic으로 삼거나, faithfulness에 관한 지표 개발 연구들을 참고할 필요성이 있음.

 

분포 변화

분포가 실제 데이터와 너무 다르지 않게 하기 위해서 실제 데이터와 합성 데이터를 혼합해서 사용하고, 프롬프트 다양화 전략과 일부 실제 데이터로 먼저 학습시키고 그 이후에 점진적으로 합성 데이터 추가 학습시키는 커리큘럼 전략 등이 유효할 수 있음.

 

합성 데이터 성능 평가

가장 간단한 방법은 합성 데이터를 사용하여 모델 학습시키고 다운스트림 태스크에서 평가하는 방법이 있고, 데이터 구성의 ablation을 통해 통제된 환경에서 합성 데이터의 성능만 추정하는 방법도 있고, 인간 평가를 차용하는 방법도 있다. 다만 추가적인 통계적 검정을 보완적인 장치로 꼭 써야할 것을 추천한다.

 

트레이드오프

LLM을 어떤 것을 사용하냐에 따라 비용 차이가 분명히 있고, 태스크 적합을 위한 적절한 데이터셋 규모를 정하는 것도 비용 간 트레이드오프를 잘 고려해야 한다. 또한, 연구 관점에서는 공유 및 재현 가능성도 낮다는 문제점도 있다.

 

작업 간 차이

대화 시스템에서 LLM이 합성한 데이터는 인간 대화의 특성을 잘 모방하지 못할 수 있고, 요약 작업에서는 무한한 수의 요약을 생성할 수는 있으나, 많은 요약이 유사할 것이며 몇 가지 참조 요약이 제공하는 것 이상의 가치를 추가할 수 없을 가능성도 있다. 도메인 별로도 한계 지점들이 많이 남아있어, 이러한 점들을 충분히 고려해야 한다.

 

미래 발전 방향

합성 데이터의 품질은 프롬프트 품질에 많이 의존하기 때문에, 학습 가능한 프롬프트 튜닝이나 동적 프롬프팅 알고리즘 개발들이 충분히 논의되어야할 필요성이 있다. 또한 데이터 생성 자체를 학습 루프에 추가해서 어떤 추가 데이터 포인트가 가장 도움이 될지를 식별하고 해당 도메인의 데이터를 생성할 수 있도록 자동화하는 것 역시 추가 과제이다. 

 

📌 Conclusion & My Insight

합성 텍스트 데이터에 대한 전반적인 내용들을 훑어 보았는데, 프롬프팅 기반, Context 기반의 생성 등은 조금 단순하기도 하고, 흐름에 지난 내용들도 많지만, 리뷰하는 과정에서 SunGen의 Bi-level Optimization과 같은 새로운 방향성의 접근 방식이 있는 것도 알 수 있었다.

 

하지만 전반적으로 결론은 조금 명확한 것 같다. 결국은 합성 데이터의 성능을 좋게 하기 위해서는 LLM의 성능이 좋아야한다. 하지만, 단순히 성능이라기보다 LLM의 '어느 성능'에 포커스를 맞출지가 조금 다른 문제 인 것 같다. 그 과제로 크게 분포 이동(현실 보장, 할루시네이션 방지), 편향 완화, 피드백 루프 안에서의 모델 붕괴 해소, 프롬프트 엔지니어링, 품질 평가 방식 등이 있는 것으로 보인다.

 

논문의 내용이 조금 포괄적이었어서, 앞으로 모든 논문을 팔로우업하진 못하더라도, 이러한 문제들을 해결하려고 했던 Specific한 상황에 대한 케이스나 방법론들을 양적으로 넓게 살펴보면서 LLM 그 자체와 이 도메인에서 모델이 어떤 방식으로 변형되어 사용되어지고 있는지를 가까이 보는게 중요할 것 같다.

 

막연하지만 조금씩 보다 보면 내 연구 방향도 더 견고해지지 않을까..!

'Paper Review > Synthetic Data Generation' 카테고리의 다른 글

[Paper Review] ToEdit : How to synthesize text to avoid model collapse?  (0) 2026.05.31
'Paper Review/Synthetic Data Generation' 카테고리의 다른 글
  • [Paper Review] ToEdit : How to synthesize text to avoid model collapse?
gaegulcode
gaegulcode
무지한 올챙이가 성숙한 개구리 AI 리서처가 되는 과정
  • gaegulcode
    개굴코드
    gaegulcode
  • 전체
    오늘
    어제
    • 전체 (49)
      • Paper Review (32)
        • NLP (7)
        • CV (10)
        • LLM (4)
        • Multimodal (8)
        • Synthetic Data Generation (2)
        • Etc. (1)
      • Coding Test (11)
      • ML & DL (5)
        • 패턴인식과 머신러닝 (3)
        • HuggingFace (1)
        • Reinforcement Learning (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 관리
    • 글쓰기
  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
gaegulcode
[Paper Review] Synthetic Data Generation Using Large Language Models : Advances in Text and Code
상단으로

티스토리툴바