2025년 3월 18일, arXiv 공개
ABSTRACT
Large language models (LLMs) have unlocked new possibilities for generating synthetic training data in both natural language and code domains. By producing artificial but task-relevant examples, these models can significantly augment or even substitute for real-world datasets, particularly in scenarios where labeled data is scarce, expensive, or sensitive. This paper surveys recent advances in leveraging LLMs to create synthetic text and code, highlighting key techniques such as prompt-based generation, retrieval-augmented pipelines, and iterative self-refinement. We examine how these methods can enrich low-resource tasks (e.g. classification, question answering) and facilitate code-centric applications (e.g. instruction tuning, code translation, bug repair) through automated verification of functional correctness. Alongside potential benefits—cost-effectiveness, broad coverage, and controllable diversity—we discuss the accompanying challenges, including factual inaccuracies in
generated text, insufficient stylistic or distributional realism, and risks of bias amplification. Proposed mitigation strategies range from filtering and weighting synthetic outputs to reinforcement learning with execution feedback in code domains. We conclude by outlining open research directions, such as automated prompt engineering, cross-modal data synthesis, and robust evaluation frameworks, underscoring the growing importance of LLM-generated synthetic data in accelerating AI development while emphasizing ethical and quality safeguards.
1 Introduction
대형 언어 모델(LLM)은 방대한 데이터셋을 기반으로 훈련되어 자연어 및 코드 생성 작업 전반에서 눈에 띄는 성과를 거두었다. 그러나 많은 분야에서 충분하고 고품질의 학습 데이터를 확보하는 것은 여전히 병목 요인으로 남아있다. 이러한 문제는 실제 세계에서 수집하는 대신 인공적으로 추가 학습 예제를 생성하는 합성 데이터 생성에 대한 관심을 높이고 있다. 본 논문은 자연어 텍스트와 프로그래밍 코드 모두에 대해 LLM 기반 합성 데이터 생성의 최신 발전을 검토하고 분석하며, 관련 기술, 응용, 도전 과제 및 향후 연구 방향을 강조한다.
텍스트와 코드 생성을 위한 LLM 기반 접근 방식이 점점 더 많이 채택되고 있음에도 불구하고, 이를 종합적으로 검토한 논문은 현재까지 부족하다. 여러 가지 핵심 이유로 인해, 본 논문은 다른 형태의 데이터가 아닌 텍스트와 코드 생성에 구체적으로 초점을 맞춘다. 본 논문은 LLM 기반 합성 데이터 생성에 대한 포괄적 분석을 제공하며, 그 기여는 기술 요약, 텍스트 및 코드 데이터 생성의 발전, 도전 과제 및 향후 방향 등으로 요약된다.
2 Background and Motivation
2.1 Synthetic Data
합성 데이터란 실제 사건이나 주석에서 직접 수집된 것이 아니라 인위적으로 생성된 데이터를 말한다. 머신러닝에서 합성 데이터의 초기 사용은 수십 년 전으로 거슬러 올라가며, 자연어처리에서는 동의어 치환, 무작위 삽입/삭제, 역번역과 같은 전통적인 데이터 증강 기법이 오랫동안 사용되어 왔다. 하지만 단순한 규칙 기반 증강 방식은 한계가 있다. 이들은 새로운 언어적 패턴이나 의미적 변형을 실제로 도입하지 못하므로 다양성이 제한된다. 이러한 한계는 생성 모델을 이용한 합성 데이터 생성으로의 전환을 이끌었다.
대형 언어 모델(LLM)은 고품질의 일관된 텍스트를 생성할 수 있으며, 이는 종종 인간이 작성한 글과 매우 유사하다. 이러한 특성은 LLM을 매우 유연한 데이터 생성기로 만들어, 실질적으로 범용 데이터 증강기로서 기능하게 한다.
데이터 부족과 비용 문제 해결: LLM은 수작업 라벨링에 대한 저렴하고 빠른 대안을 제공한다. 예를 들어, GPT-3는 유사한 수의 예제를 몇 분 만에 극히 적은 비용으로 생성할 수 있다.
확장 가능성: 합성 데이터는 사실상 무제한 규모로 생성할 수 있다.
생성 데이터의 통제 가능성: 합성 데이터 생성은 특정한 요구에 맞춰 조정할 수 있다. 예컨대, 극단 사례를 포함하거나, 모델의 편향을 줄이기 위한 반사실적 예제 생성, 특정 문체나 읽기 수준에 맞춘 데이터 생성 등이 가능하다.
프라이버시 보호: 민감한 정보의 개별적 내용을 드러내지 않고 집합적인 패턴만 반영하는 합성 데이터는 프라이버시 친화적 대안이 될 수 있다.
다양성과 강건성 확보: LLM은 사람이 떠올리지 못할 다양한 표현이나 논리를 도입할 수 있으며, 이는 새로운 문장 구조나 논리 흐름을 제공할 수 있다.
2.2 Prompt-Based Data Augmentation with LLMs
프롬프트 기법은 LLM 기반 텍스트 데이터 생성의 핵심이다.
Zero-Shot Generation: Zero-Shot 생성은 작업 지시나 설명만 포함된 프롬프트를 제공하고, LLM이 그에 따라 예제를 처음부터 생성하도록 하는 방식이다. Zero-Shot 프롬프트는 모델의 일반 지식에 의존하므로 합리적인 출력을 제공하긴 하지만, 때때로 일반적인 결과에 그치기도 한다.
One-Shot Generation: One-Shot 생성은 작업 설명과 함께 입력-출력 쌍 하나를 예시로 제공하여 형식을 보여주는 방식이다.
Few-Shot Gerneration: Few-Shot 생성은 작업에 대한 예시를 여러 개(예: 3~5개) 포함한 프롬프트를 제공하여, LLM이 이와 유사한 추가 예제를 생성하도록 하는 방식이다. Few-Shot 프롬프트는 일반적으로 더 높은 품질의 과제 특화된 출력을 생성하지만, 반복되는 패턴이 나올 위험도 있다.
Topic/Controlled Generation: Yu 등(연구자들)이 제안한 고급 변형 방식은 Zero-Shot 주제 기반 생성이다. 이 방법은 통제된 다양성을 도입한다. 예를 들어, 감성 분류의 경우 LLM은 '레스토랑 리뷰', '전자제품 리뷰', '영화 리뷰' 같은 주제를 생성한 뒤, 각각에 대한 합성 예제를 생성할 수 있다.
요약하자면, LLM을 통한 데이터 생성은 더 저렴하고 빠르며 유연한 데이터 생성 가능성에 의해 주도되지만, 이러한 합성 데이터가 실제 데이터만큼 효과적이고 신뢰할 수 있어야 한다는 책임도 따른다.
3 Synthetic Data Generation for Text Tasks
3.1 Various approaches for Prompt-Based Synthetic Text Data Generation
실제 학습 예제가 100개뿐일 때, 여기에 100개의 GPT 기반 합성 데이터를 추가하면 여러 분류 과제에서 정확도 및 F1 점수가 3~26%까지 향상되었다. 실제 예제가 1,000개일 경우, 합성 데이터를 추가해도 5% 미만의 소폭 향상만 있었고, 일부 과제에서는 향상이 없었다. 합성 데이터는 대규모 실제 데이터를 완전히 대체하기보다는, 소규모 실제 데이터를 보완하는 수단으로 보는 것이 더 적절하다.
Zero-shot 프롬프트는 다양한 출력을 생성할 수 있지만, 일부는 과제와 맞지 않거나 관련성이 떨어질 수 있다. 반면, few-shot 프롬프트는 중복되거나 매우 유사한 문장이 나올 위험이 있다. Zero-shot 주제 기반 방식은 가장 다양한 합성 데이터셋을 만들어냈으며, 합성 데이터만 사용한 경우에도 가장 좋은 성능을 보이는 경우가 많았다.
Self-Instruct는 모델이 실수한 어려운 사례를 찾아내고, 그와 유사한 데이터를 LLM이 반복적으로 생성하도록 유도하는 방식이다. SunGen은 학습 시 잠재적으로 품질이 낮은 합성 예제에 더 낮은 가중치를 부여하여 모델이 노이즈에 덜 영향을 받도록 한다.
3.2 Quality and properties of gernerated data
프롬프트 기반 생성은 많은 양의 데이터를 생산할 수 있지만, 그 품질과 유용성을 확보하는 것이 핵심이다.
Retrieval-Augemented Generation - LLM의 출력을 현실에 근거하게 만드는 한 가지 방법은, 프롬프트에 지식 베이스나 말뭉치에서 검색한 관련 정보를 함께 제공하는 것이다. LLM은 검색된 정보를 추가 문맥으로 활용함으로써, 환각(hallucination)을 줄일 수 있다.
Post-Processing and Filtering - 생성 이후에는 낮은 품질의 합성 데이터를 제거하기 위해 필터나 선택 기준을 적용하는 것이 일반적이다. 다른 접근법은 강력한 모델이 높은 확신으로 예측한 합성 예제만 유지하는 것이다. 품질 향상을 위한 주목할 만한 방법은, 사람의 피드백이나 평가를 루프에 통합하는 것이다.
Distribution Alignment 또 다른 미묘한 문제는, 합성 데이터 분포를 실제 과제 데이터 분포와 정렬시키는 것이다. LLM은 문법적으로는 맞지만 테스트 시점에 나올 텍스트 스타일과는 다른, 과도하게 복잡한 문장을 생성할 수 있다.
Synthetic QA and Reasoning 멀티홉 추론을 수행하는 모델을 학습시키기 위해, LLM에게 질문, 정답, 그리고 단계별 설명을 생성하도록 프롬프트를 구성할 수 있다. 하지만 Chain-of-Thought의 정확성을 보장하는 것은 어렵다. 정답은 맞을 수 있으나 설명이 잘못될 가능성이 있다.
3.3 Final remarks
단순히 프롬프트만 사용하면 데이터를 빠르게 대량 생성할 수 있지만, 그 데이터가 다양하고 과제와 관련 있으며 정확하도록 하려면 신중한 설계가 필요하다.
4 Synthetic Data Gneration for Code Tasks
4.1 Various approaches for Prompt-Based Synthetic Code Generation
연구자들은 특정한 결함을 보완하거나 특정 과제에 대해 모델을 파인튜닝하기 위해, 실제 코드 데이터셋을 LLM 기반의 합성 코드로 보완하기 시작했다.
Insturction-Following approaches: Code Alpaca는 Self-Instruct 방식을 코드 과제에 적용하여 생성한 20,000개의 합성 코딩 지시문-응답 예제를 포함한 데이터셋이다. WizardCoder는 진화 전략을 적용하여 코딩 지시문의 복잡도를 점진적으로 증가시켰다.
Code Translation and Refactoring: LLM은 코드 간 번역을 통해 병렬 코드 쌍을 생성하는 데 사용될 수 있다. 예를 들어 Python 코드를 Java로 번역하는 방식이다. 이러한 변환된 버전은 합성 데이터로 활용되어, 모델이 다양한 코딩 스타일에 일반화하고 가독성을 높이는 데 도움을 준다.
Problem Generation and Solution Synthesis: 이는 텍스트 QA 쌍을 생성하는 것과 유사하며, 여기서는 코딩 과제에 대한 문제와 해답을 생성하는 방식이다.
연구자들은 GPT-4를 이용해 학생들이 실제로 저지를 법한 버그가 있는 코드를 합성 생성했고, 그 오류 분포가 실제 학생 코드와 통계적으로 유사함을 확인했다. 버그 코드 -> 수정된 코드 쌍을 생성하고, 이를 Python 인터프리터로 실행해 검증한 후 학습 데이터에 포함시킬 수 있다.
4.2 Quality and properties of generated data
생성된 코드 데이터의 정합성은 종종 자동으로 확인할 수 있다. 일반적으로 코드를 실행하거나 테스트와 컴파일러를 사용하는 방식이다.
Filter Correct Solutions
Learn from Failure: 코드가 실패하면, 그 오류 메시지나 진행 상태를 생성 루프로 다시 입력할 수 있다. 이러한 시퀀스로 학습시키면 모델이 점진적 수정(iterative refinement)을 수행하는 법을 배울 수 있다.
Reward Modeling: 실행 결과는 강화학습에 자연스러운 보상 신호를 제공한다. 모델은 다양한 코드 해답을 탐색하고, 테스트를 통과한 출력에 대해 보상을 받도록 학습된다.
Measuring Difficulty: 여러 차례 시도가 필요했던 솔루션은 난이도 높은 문제일 가능성이 있다. 이러한 문제는 해당 난이도로 라벨링하여 커리큘럼 학습에 사용할 수 있다.
코드 데이터의 편향이란 특정 패턴이나 스타일이 과도하게 나타나는 것을 의미할 수 있다 (예: 항상 리스트 컴프리헨션을 사용하는 코드 등). 이를 완화하기 위해, 반복문과 재귀 방식의 해법을 모두 생성하거나, 주석 및 변수 이름의 다양성을 확보할 수 있다. 모델의 강건성을 위해, 매우 깊게 중첩된 반복문이나 흔치 않은 언어 기능 조합이 포함된 합성 예제를 생성할 수 있다.
5 Challenges and Considerations
5.1 Quality Assurance and Fatuality
LLM은 사실이 아닌 내용이나 실행 불가능한 코드를 자신 있게 생성하는 환각(hallucination) 경향이 있다.
텍스트 생성에 검색 기반 정보를 통합하고, 코드의 경우 실행을 통한 검증을 수행하는 것이 이러한 문제를 해결하는 주요 방법이다.
5.2 Distribution Shift and Realism
합성 데이터는 실제 데이터의 분포를 완벽히 따르지 않을 수 있으며, 모델이 합성 패턴에 과적합(overfit)될 수 있다. 이를 완화하기 위해 합성 데이터와 실제 데이터를 혼합 사용하는 것이 일반적인 전략이다.
5.3 Evaluation of Synthetic Data
합성 데이터의 유용성을 평가하는 것은 간단하지 않다. 직접적인 평가는 downstream 과제에서 모델 성능을 측정하는 것이지만, 이는 리소스를 많이 소모한다.
5.4 Scale and Cost Trade-offs
더 많이 생성하면 커버리지는 늘어나지만, 수익은 점점 줄고 중복은 증가한다. 빠른 모델로 대량의 데이터를 생성한 후, 더 강력한 모델이나 인간이 이를 평가하거나 필터링하는 전략도 가능하다.
5.5 Ethical and Legal Considerations
합성 데이터는 인공적으로 만들어졌더라도 여전히 윤리적 문제를 일으킬 수 있다. 예컨대, 학습 데이터에 있던 편향이나 개인정보가 합성 결과에 드러날 수 있다. 이런 데이터가 재사용되면 프라이버시 침해나 저작권 위반으로 이어질 수 있다.
합성 데이터라고 해서 무조건 안전한 것은 아니다.
5.6 Task-Specific Nuances
대화 시스템에서는 LLM이 지나치게 협조적으로 반응하여, 실제 사용자와의 상호작용에서 발생할 수 있는 어려움을 제대로 시뮬레이션하지 못할 수 있다.
5.7 Human Acceptance
사용자들이 합성 데이터로 학습된 모델을 신뢰할 것인가는 중요한 사회적 도전 과제이다.
6 Future Directions
Unified Frameworks and Taxonomies: 다양한 기술들을 통합하는 포괄적인 프레임워크가 요구된다.
Automated Prompt Engineering: 합성 데이터를 위한 프롬프트 자동 최적화에 관한 연구가 활발해질 것으로 예상된다.
Active Learning with LLM Generators: 학습 중인 모델이 도움이 될 데이터를 식별하고, 그에 맞춰 LLM에게 예제를 생성 요청하는 능동학습 기반 합성 생성이 가능하다.
Cross-Model Synthetic Data: LLM 기반 합성 생성은 텍스트 외에 이미지·음성·시뮬레이션(RL) 등 다양한 모달리티로 확장될 수 있다.
Enhancing Real Data with Synthetic Variants: 완전히 새로운 데이터를 만드는 대신, 기존 데이터의 속성을 조절하여 다양한 변형을 생성하는 방식도 유망하다.
Theoretical Understanding: 합성 데이터가 언제, 왜 도움이 되는지에 대한 이론적 분석이 더 필요하다.
Quality Evaluation Metrics: 다운스트림 성능과 높은 상관을 가지는 평가 지표가 있다면, 전체 학습 없이도 생성 과정을 조정할 수 있다.
Human-in-the-Loop and Expert Knowledge: 전문가가 도메인 제약 조건을 명시하거나, 출력 결과를 교정하는 방식도 연구될 수 있다.
Safety Filtering and Bias Mitigation: 미래의 합성 데이터 생성기는 자체 검증 또는 편향 조정 기능을 포함할 수 있다.
Domain-Specific Synthetic Data Generators: 특정 분야(의료, 법률 등)를 위한 도메인 특화 합성 생성기가 등장할 수 있다.
Benchmarking and Competitions: 합성 데이터 생성 기법을 비교 평가하는 벤치마크와 경진대회가 생겨날 것으로 예상된다.