Abstact:
- 이 논문은 대규모 언어 모델(LLM)에서 데이터 효율성과 데이터 부족 문제를 해결하기 위해, 데이터 합성(synthesis)과 증강(augmentation) 방법을 전반적으로 다루는 survey(조사/연구 정리)임.
- 데이터 부족 문제와 중요성:
- 대규모 언어 모델이 높은 성능을 달성하려면 방대한 양의, 그리고 다양하고 고품질인 데이터가 필요함.
- 그러나 실제로 고품질 데이터를 확보하는 속도는 필요한 훈련 데이터 크기에 비해 훨씬 느려, 결국 데이터 고갈(data exhaustion) 문제가 발생한다.
- 이 문제를 해결하기 위해 “데이터 효율성”을 높이는 방법이 중요하며, 새로운 데이터 소스를 찾는 과정이 필수적임.
- 데이터 합성(Synthesis)과 데이터 증강(Augmentation):
- 논문에서는 데이터 합성과 증강이라는 두 가지 주요 접근 방식을 통해, 충분치 않은 데이터 문제를 해결하려고 함.
- 이러한 데이터 생성 기법들은 모델의 다양한 학습 단계(사전 학습, 미세 조정, 인스트럭션 튜닝, 선호도 정렬 등)에 걸쳐 활용할 수 있음.
- 데이터 증강:
- 데이터 증강은 이미 존재하는 원본 데이터를 변형·확장하는 기법임.
- 즉, 원본 데이터가 있고, 그것을 여러 형태로 변형하여 학습에 쓸 데이터를 다양화하는 것이 핵심임.
- 데이터 합성:
- 말 그대로 새로운 데이터를 “창작”해서 만들어 내는 것을 말함. 예를 들어, 특정 주제(예: 의료 데이터, 소설 텍스트 등)에 대해 전혀 새로운 텍스트, 문장, 예시를 대규모 언어 모델(LLM)이나 다른 생성 모델을 통해 만들어 내는 방식.
- 이 논문은 정리해보면 데이터 준비(Preparation) 단계부터 시작해, 사전학습(Pre-training), 미세조정(Fine-tuning), 인스트럭션 튜닝(Instruction-tuning), 선호도 정렬(Preference alignment), 그리고 최종 응용(Application)에 이르는 전 과정에서, 각 단계에서 적용할 수 있는 다양한 합성과 증강 기술을 체계적으로 정리함.
Introduction:
- 기존 데이터 합성과 증강(Data Synthesis & Augmentation)의 한계점:
- 이미지 회전, 자르기, 뒤집기, 규칙 기반 텍스트 생성 등 기본적인 합성·증강 기법은 데이터 다양성을 어느 정도 높여주지만, 실제 세계의 복잡성을 완전히 반영하지 못하며, 규모 면에서 한계가 있.
- 그래서 LLM 기반 합성과 증강으로의 전환하고 있다:
- 최근에는 LLM 자체가 복잡한 패턴을 학습하는 능력을 활용하여 더 정교하고 대규모로 데이터를 합성·증강하는 방법들이 연구되고 있음.
- 이렇게 생성된 데이터는 실제 데이터 분포와 비슷하거나 더욱 다양할 수 있어, LLM 학습에 필요한 양질의 데이터를 효율적으로 확보하는 데 도움이 됨.
- 논문에서는 LLM 지향(data-centric) 데이터 합성·증강 기법의 발전 추세를 살피고, 해당 분야의 중요 연구 250편을 종합해 정리했다고 밝힘. 동시에, 이런 합성 데이터를 잘못 사용하면 허위정보 확산, 편향, 윤리적 문제 등이 발생할 수 있다는 점도 지적한다.
- 이 서베이(Survey) 에서는 LLM 학습 전 과정(수집·준비, 사전학습, 미세조정, 응용 단계 등) 과 LLM 의 코어 기능(이해, 추론, 기억, 생성) 의 관점에서 데이터 합성과 증강 방법을 분류:
- Lifecycle 단계: Pre-training → Fine-tuning → Application
- LLM 핵심 기능: 이해(Understanding), 논리(Logic), 메모리(Memory), 생성(Generation)
- 이렇게 이중 분류 체계를 두어, 각 단계에서 어떤 데이터 합성·증강 기법이 어떤 식으로 적용되는지 종합적으로 파악하게 도움.
- 전체 연구의 구조:
- Section 2에서는 합성·증강의 기본 기법과 전반적인 카테고리를 소개,
- Section 3에서는 LLM 생애주기 관점에서의 활용,
- Section 4에서는 LLM의 핵심 기능별 적용 방안,
- Section 5에서는 평가 전략 (벤치마크, 메트릭, 리더보드 등),
- Section 6에서는 남은 과제와 미래 연구 방향을 논의
데이터 생성 기법의 분류 개요:
- 데이터 증강(Augmentation): 기존 데이터를 변형하거나 재구성해 다양한 버전을 만들어 내는 접근
- 데이터 합성(Synthesis): 기존 데이터와 상관없이 완전히 새로운 데이터를 만들어 내거나, 혹은 생성 모델로부터 새로운 샘플을 생성하는 접근
- 두 방법 모두 결국 데이터셋의 규모를 확장하고 다양성을 높이는 데 목적이 있지만, “어떻게 데이터를 생성하느냐”에 따라 차이가 있음.
데이터 증강(Data Augmentation):
- 데이터 증강은 원본 데이터를 변형해 만들어 낸 새로운 데이터 샘플을 통해, 데이터 다양성과 양을 늘리는 기법
- 이미지를 예로 들면 회전, 뒤집기, 합성(copy-pasting), 노이즈 추가, 색상 채널 변형 등을 통해 데이터를 다양화
- 텍스트 분야에서는 동의어 치환, 문장 병합, 노이즈 삽입 등을 적용할 수 있음.
- 최근 LLM 시대가 열리면서, 대규모 텍스트 데이터를 LLM이 직접 변형해 새로운 형태로 만드는 고급 데이터 증강 방식이 활발히 연구되고 있음.
- 논문에서는 데이터 증강을 크게 세 가지로 분류:
- Data Labeling (라벨링 자동화):
- LLM의 언어 이해 능력을 활용해, 라벨이 없는 대규모 데이터셋에 자동으로 라벨을 달아주는 방법
- 예: 이미지 캡션 생성, 텍스트 분류 레이블 생성, VQA(Visual Question Answering)에서 가상 라벨을 만들어내는 방식 등
- 사람이 일일이 라벨링하기 어려운 대규모 데이터에 적합하며, 특히 크로스-링귤(multi-language)나 멀티모달 문제에 유용
- Data Reformation (데이터 변형/재구성):
- 기존 데이터를 다양한 방식으로 변형해 새로운 학습 샘플을 만들어내는 것
- 고전적인 예: 이미지 회전, 색상 채널 변환, 텍스트 동의어 치환 등
- 최근에는 LLM을 활용해 더 정교한 변형을 시도함.(예: Disco라는 기법은 LLM으로 대규모 반사실적(counterfactual) 데이터를 생성).
- 반사실적(counterfactual) 데이터란 텍스트 데이터에서 문구 하나를 변경함으로써 의미를 완전히 변경시키는 데이터를 말함. 자연어 추론 작업에서 이를 이용해 의미가 완전히 달라지도록 해서 모델의 추론 작업을 평가할 수 있음.
- DISCO 방법은 대형 언어 모델(LLM)을 활용한 문구(phrases) 변형임. 이렇게 변형 한 후 "고품질" 데이터만을 선별하기 위해서 필터링(distillation) 작업을 거친다고 함. 결과적으로 “쓰임새가 높은, 과업에 적합한” 카운터팩추얼 데이터셋이 만들어지는거임. (이 분야에서 잘 학습된 LLM 같은 걸 이용해서 품질 평가를 한다고 함. 임계값이 넘은 것만 사용하는 식으로. )
- Co-Annotation (협업 라벨링):
- 사람과 LLM이 협업하여 라벨링을 수행하는 방식
- 예: 사람이 어려워하거나 시간이 오래 걸리는 라벨링은 LLM이 처리하고, LLM이 불확실해 하는 부분은 사람이 처리
- 이렇게 분업하면 라벨링 비용과 시간은 줄이고, 정확도와 효율성을 동시에 높일 수 있음.
- Data Labeling (라벨링 자동화):
Data Synthesis:
- 데이터 합성은 원본 데이터가 없는 상태에서, 혹은 생성 모델을 활용해 완전히 새로운 데이터를 만들어 내는 방법을 말함.
- 과거에는 합성 데이터 품질이 낮거나 생성 속도가 느렸지만, 최근 생성 AI 기술(예: ChatGPT, GPT-4 등)의 발전으로 대규모·고품질 데이터를 빠르게 생성하는 것이 가능해짐.
- 논문에서는 LLM을 위한 데이터 합성 방식을 크게 다음 3가지로 분류함:
- General Model Distillation(범용 모델 증류):
- 범용 모델(예: StableVicuna, ChatGPT, GPT-4 등)처럼 파라미터가 크고 성능이 뛰어난 모델을 활용해, 상대적으로 더 작은 모델이 학습에 쓸 합성 데이터를 대량 생산하는 접근임.
- 일반적인 활용 방법은 프롬프트 템플릿으로 데이터를 생성한 후 범용 LLM이 스스로 생성 데이터의 품질을 평가해서 고품질 샘플만 추출하는 방법임.
- 명령(instruction) 데이터를 대규모로 만들어, 이를 잘 다듬은 뒤 모델을 파인 튜닝하여 성능 향상을 달성 방법임.
- Domain Model Distillation(도메인 특화 모델 증류):
- 특정 분야(도메인)에 특화된 모델을 이용해, 그 분야에 맞는 합성 데이터를 생성하는 방법임.
- 범용 모델로는 해결하기 어려운 특정 산업·전문 분야의 요구사항이나, 내부적으로 접근하기 어려운 기업 데이터 등에 대해서 도메인 특화 모델이 데이터를 합성하는 방법임.
- Model Self-Improvement(모델 자기 개선):
- 모델이 스스로 새로운 데이터를 생성하고, 이를 다시 학습해서 자신의 역량을 점진적으로 향상하는 방법임.
- Self-Instruct[210]: 모델이 직접 학습용 인스트럭션 데이터를 자동 생성 및 개선해, 인간 개입 최소화로 성능을 높이는 사례가 있음.
- 데이터 생성 과정에서 인간의 노력이 크게 감소한다는게 특징.
- General Model Distillation(범용 모델 증류):
Data Preparation에서의 합성/증강:
- Data Preparation 단계에서는 LLM 훈련에 필요한 대규모·고품질 데이터셋을 준비하는 것이 핵심 과제임.
- 현실 세계에서 양질의 데이터를 확보하는 데에는 비용과 시간 문제가 따르므로, 합성(data synthesis) 또는 증강(data augmentation) 기법을 통해 데이터 부족을 해결하고자 함.
- 일반 범용 모델(general LLM)을 활용해 데이터를 증류(distill)하여 합성(synthesis)하는 방법 - General Model Distillation: 5가지 접근:
- “General Model Distillation”이란, GPT-4, ChatGPT, StableVicuna 등 파라미터가 크고 성능이 우수한 모델을 사용해 더 작은 모델이 활용할 합성 데이터를 생성·정제하는 과정임.
- 이를 데이터 생성 방식에 따라 다음 다섯 가지로 나눔.
- (1) Synthesize from Seeds:
- 작은 시드(seed) 예시나 단어 세트를 대형 모델에 주어, 관련된 새로운 데이터를 대량 생산.
- 방법은 시드 예시 몇 개 + 프롬프트를 넣어 짧은 이야기(story), 문제-해결 쌍, 함수-입력 쌍 등 데이터를 생성하고, 이 과정을 여러번 해서 다양한 샘플을 축적하는 거임.
- 예시:
- TinyStories[53]: 1,500개 기본 단어 중 3개씩 골라 문장 생성 → 작은 언어 모델을 훈련·평가하기 위한 데이터셋 구성
- Case2Code[180]: 수집된 함수 목록에 적절한 입력을 생성하고, 코드 인터프리터로 출력을 계산해 문제/해결 쌍 확보
- Self-Instruct[210]: 시드 인스트럭션 세트로부터 새 명령을 만들고, 각 명령마다 입력-출력 쌍을 생성하는 과정을 반복
- Evol-Instruct[223]: 기존 인스트럭션을 “깊이(evolving in-depth)” 또는 “폭(evolving in-breadth)” 측면에서 난이도를 높이거나 완전히 새 지시사항을 창출
- 장단점:
- (2) Synthesize Reasoning Steps:
- LLM이 추론 능력(chain-of-thought 등)을 더 잘 학습할 수 있도록, 답만이 아니라 과정(Reasoning Steps)까지 포함한 데이터를 생성
- 예시:
- MMIQC[131]: 문제에 새로운 추론 단계를 추가해, 질문-답 쌍(question-response pair)을 논리 구조는 유지하면서 확장
- 수학 문제 생성: 질문을 만들고, 그에 대한 Chain-of-Thought(CoT)를 생성한 뒤 답변 검증[109]
- MathInstruct[244]: Self-Instruct로 만든 question-CoT 쌍에 Program-of-Thought(PoT)를 추가해 복잡한 수학 풀잇 과정을 단계별로 보강
- (3) Synthesize with Controllability:
- 생성 데이터 품질, 형식 등을 더 세밀하게 통제하려는 시도임.
- 예시:
- OSS-Instruct[215]: 미리 선정한 코드 스니펫으로부터 다양한 코딩 문제·해결책을 생성 → 편향 줄이고, 다양성 확보
- Genie[236]: 4개 예시(컨텐츠+예시 쌍)를 보고 LLM이 새로운 예시를 생성 → 정확한 컨텐츠 매칭 유도
- DIALOGIC[122]: GPT-3가 대화 예시를 생성하되, 슬롯·값 일치도 검사 등 보조 모듈을 두어 과도/부적절한 생성을 방지
- (4) Synthesize from Scratch:
- 시드 데이터 없이 ‘아무것도 없는 상태’에서 프롬프트로 질문·응답, 토픽 등을 생성
- 예시:
- UltraChat[44]: ChatGPT가 직접 “세상에 대한 질문, 창작, 기존 자료 활용” 등 메타 토픽을 만들어 대량의 질문-응답 쌍 작성
- Magpie[227]: 사전 정의한 프롬프트로 LLM이 사용자 질의(instruction)와 그 답변을 즉석에서 생성
- generator prompts[19]: 한 번의 프롬프트로 매우 긴 목록을 만들고, 무작위로 하나씩 고르는 식으로 출력 다양성 제고
- (5) Synthesize Multimodal Data:
- 텍스트뿐 아니라 이미지·표·차트 등 여러 모달리티를 포함한 데이터 생성
- 시드 데이터 + GPT-4 Vision 등의 모델 활용 → 이미지 설명(caption), 대화형 QA 예시 작성
- 아예 이미지 자체도 StableDiffusion 등으로 생성 → 그 뒤 질문-답변·설명·대화문까지 함께 만듦
- 예시:
- ShareGPT4V[21]: GPT-4 Vision에 특정 프롬프트를 주어 100k 캡션을 생성, 추가 모델 파인 튜닝에 사용
- ComVint[49]: 이미지를 받은 뒤 ‘합성 → 복잡화 → 재구성’ 단계를 거쳐 너무 단순한 멀티모달 인스트럭션이 나오지 않도록 보정
- StableLlava[121]: 먼저 ChatGPT로 이미지 생성 프롬프트와 내용 풍부한 대화문을 작성 → StableDiffusion으로 이미지 합성 → 이를 다시 대화 데이터와 연결
- ChartLlama[73]: GPT-4를 이용해 가상의 차트 데이터를 먼저 만들고(토픽, 분포, 트렌드 등), 차트 이미지+설명·QA 쌍을 자동화
- AnyInstruct-108k[251]: 텍스트 기반 대화에 멀티모달 요소를 포함하는 식으로 2단계 접근(메타 토픽 생성 후 → 텍스트→멀티모달 변환)
- Genixer[266]: MLLM(멀티모달 LLM) 자체를 활용해, 인스트럭션 수집→템플릿 설계→모델 동작→데이터 생성·필터링 등의 종합 파이프라인 구축
- Data Augmentation(데이터 증강):
- Data Labeling (자동·반자동 라벨링):
- 라벨이 없는 데이터에 LLM(예: ChatGPT-4)의 언어 이해 능력을 활용해 자동 라벨을 부여함
- 예시:
- GPT-4로 정치인 트윗(공화당·민주당 소속) 라벨링 → 인간보다 높은 정확도와 편향 축소 효과[198].
- 일반화된 프롬프트 템플릿을 이용해 ChatGPT로 라벨 추출[275].
- 원래 존재하던 대화 내용과 유사한 새 대화를 생성한 뒤, LLM에게 동일한 스키마로 라벨링하도록 유도[99].
- 멀티모달(이미지·오디오) 데이터에도 적용: 예) FullAnno[74]는 이미지의 카테고리, 위치, 영역 정보 등을 한꺼번에 라벨링하도록 함.
- 음성 감정 인식에서 텍스트+오디오+젠더 정보까지 통합해 라벨링 정확도 개선[103]
- Data Reformation (데이터 변형·재구성);
- 원본 데이터를 다양한 변형 형태로 재구성해 데이터 다양성을 크게 늘림.
- 보통 프롬프트 엔지니어링을 통해 LLM이 자동으로 문장·문제·반례 등을 만들어 내도록 함.
- 주요 예시:
- TinyGSM[128]: GSM8K 문제 변형 → 저품질 사례는 필터링해, 수학 문제 데이터셋 확장
- GPT3Mix[237]: 데이터셋의 메타정보와 예시를 프롬프트로 투입해 LLM이 새 예시 생성
- CORE[45]: 입력 텍스트 일부를 회수(retrieve)하고, LLM에 지시해 카운터팩추얼 편집 진행
- DISCO[27]: 문장을 여러 span으로 나눈 뒤, LLM에 프롬프트를 줘 다양한 변형을 대량 생성
- ALIA[51](멀티모달): 이미지→캡션→요약→Stable Diffusion으로 재생성해 시각 데이터 다양화
- Co-Annotation (협업 라벨링):
- 사람과 LLM이 함께 라벨링 작업을 진행하여, 라벨링 비용·시간 절감과 정확도 향상을 동시에 꾀함.
- 예시:
- Toolcoder[259]: 사람이 직접 쓴 입출력 예시를 ChatGPT에게 보여주어, 툴 증강 데이터를 자동 라벨링
- CoAnnotating[116]: 데이터 인스턴스별로 LLM의 불확실도를 계산해, 낮은 불확실도는 LLM이 라벨링, 높은 불확실도는 사람이 처리
- Dialgen[142]: 인간 리뷰어가 부분적으로 생성된 대화를 검수·수정→ 다시 LLM에 이어서 생성 요청 → 완성될 때까지 반복
- Data Labeling (자동·반자동 라벨링):
- Non-LLM-Driven (비-LLM 방식):
- LLM을 쓰지 않고도, 스크립트나 도메인 전용 엔진을 사용해 데이터를 생성·필터링하는 기법.
- 예시:
- AMPS[77]: Mathematica 스크립트를 이용해 500만+ 개 수학 문제 생성
- Mind’s Eye[136]: 물리엔진을 사용해 물리 법칙을 시뮬레이션한 뒤, 정답 라벨(ground-truth) 자동 산출
- Proof-Pile-2[6]: 대규모 수학+코드 데이터에서 고품질 자료만 필터링해 55B 토큰 규모의 데이터셋 구성
- 중복·冗長 데이터 정리: 대량 합성 데이터 중 중복이 많으면, 클러스터링·차원 축소·프루닝 등을 적용[200].
LLM 사전학습(Pre-Training) 단계에서 사용되는 데이터 합성·증강 기법:
- 이 단계에서 증강/합성을 사용하는 목표는 사전학습을 수행할 때, 합성·증강된 데이터를 투입해 모델 성능과 편향 감소, 데이터 다양성을 높이고, 실제 데이터 수집 비용을 절감하는 것.
- 저자는 세 가지 접근으로 구분해 소개함:
- Model Self-Improvement:
- 모델이 자체적으로 데이터를 생성(합성)하고, 그 데이터를 다시 자신의 사전학습에 활용해 성능을 고도화
- 예시:
- VILA-2[54]: 현재 버전의 VILA 모델이 긴 문장 캡션을 생성(대화 템플릿+프롬프트 활용) → 다음 라운드 사전학습 데이터로 사용 (셀프 증강 과정)
- General Model Distillation:
- 범용 LLM(성능이 뛰어난 대규모 모델)이 고품질 합성 데이터를 만들어, 다른 모델(또는 같은 모델)의 사전학습에 사용
- 예시:
- phi-1[67]: GPT-3.5 등으로 만든 “교과서 수준”의 코드 데이터(웹에서 필터링한 자료 포함)를 사전학습 → 기존 스케일링 법칙을 넘어서는 성능 시도
- phi-1.5[120]: phi-1 데이터 + 새로 생성된 합성 데이터로 상식 추론 능력을 강화
- TinyDialogues[56]: GPT-4를 활용해 어린이들이 참여하는 사실적인 대화문을 합성 (TinyStories[53] 아이디어 확장)
- SciLitLLM[118]: 파싱 오류 정정(교사 모델 활용) + 분류기로 저품질 텍스트 필터링 후 계속 사전학습 → 과학 논문 분야에 특화
- AnyGPT[251]: 멀티모달 텍스트 중심 데이터로 사전학습한 모델 → 이미지를 텍스트로, 텍스트를 이미지로 등 다양한 모달 변환 가능
- GLIDE 기반 합성[76]: 텍스트→이미지 생성 모델로 만든 합성 이미지가 분류 모델 학습에 큰 도움 → 사전학습 단계에서도 활용 가능
- Data Augmentation:
- 사전학습에 쓰이는 증강 기법은 크게 Data Reformation과 Non-LLM-Driven 방식 두 갈래로 나뉨.
- Data Reformation:
- 기존 데이터를 다양한 형태로 재작성(파라프레이징 등)하여, 더욱 풍부하고 질 높은 사전학습 코퍼스 확보.
- WRAP[150]: 이미 인스트럭션 튜닝된 모델로 웹 문서를 여러 스타일로 파라프레이즈 → 실제+합성 문서 혼합해 사전학습
- bioR[276]: 10만 건의 (합성) 전기(傳記)를 Llama로 다시 ‘실제 전기 형식’에 가깝게 리라이팅 → BIO 데이터셋 구축
- Non-LLM-Driven:
- LLM 없이 스크립트나 외부 엔진, 필터링 로직 등을 써서 대규모로 데이터를 생성·가공하는 방식
- LLEMMA[6]: Code Llama를 Proof-Pile-2(55B 토큰 규모)의 확장된 수학·과학 논문 데이터로 추가 사전학습 → 모델 성능 향상
- KMLM[133]: 지식 그래프(knowledge graph)에서 구조적 지식을 순차 데이터로 변환해 멀티링구얼 사전학습
- 물리 기반 생성[134]: 물리 법칙을 모델링하여, 물리적으로 일관된 상태에서 출발하는 대량 합성 데이터 생성 → LLM의 물리적 합리성을 높임
LLM 미세조정(Fine-Tuning) 단계에서 이루어지는 데이터 합성·증강 방식:
- 이 단계에서 증강/합성을 사용하는 목표는 사전학습된 LLM을 새로운 태스크나 도메인에 맞춰 좀 더 정교하게 튜닝하기 위해, 합성·증강된 데이터를 활용하는 거임.
- 논문에서는 Model Self-Improvement, General Model Distillation, Data Augmentation 세 가지 관점에서 관련 기법들을 소개함:
- Model Self-Improvement:
- 모델이 스스로 만든 데이터를 가지고 다시 모델을 향상시키는 접근으로 분류 방법이 3가지가 있음:
- (1) Single-Shot Self-Improvement
- (2) Iterative Self-Improvement
- (3) Multi-modal Self-Improvement
- Single-Shot Self-Improvement:
- 한 번의 데이터 생성과 한 번의 미세조정(fine-tuning)만으로 LLM이 “자기 자신”을 향상시키는 방식임. (물론 합성 데이터를 정제하는 과정이 들어가긴 할거임.
- 이렇게 하는 이유는 별도의 외부 라벨러나 추가 모델 없이 빠른 파인튜닝이 가능하기 때문.
- 예시:
- 고신뢰(reasoning-augmented) 응답 생성: 모델이 스스로 “Chain-of-Thought(CoT) + Self-consistency”로 자세한 풀이 과정을 작성 → 고품질 정답+추론 근거를 만들고, 이를 미세조정 데이터로 사용
- Reject Sampling Fine-Tuning(RFT) [242]: 모델이 여러 가지 추론 경로를 시도해보고, 가장 정확해 보이는 답변·해설만 골라 데이터셋화. 이후 그 고품질 추론 과정을 모델이 재학습함으로써, 추론 능력이 한 번에 개선
- Self-Translate-Train [170]: 모델이 자신의 번역 능력을 이용해, 예를 들어 영어 문서를 스페인어·한국어 등 목표 언어로 번역. 이렇게 만들어진 번역(합성 데이터)으로 모델을 미세조정 → 번역 품질 향상
- CodeRL [104]: LLM(Actor)이 새로운 코드 스니펫·예제를 작성 → 별도 Critic 모델이 이를 평가 → 고품질 코드를 선별. 선별된 코드를 해당 LLM에 다시 파인튜닝해, 코드 생성 능력을 한 단계 업그레이드.
- Self-Instruct [210]: 시드(seed) 몇 개와 간단한 지시만으로, 모델이 새 인스트럭션이나 문제+해결 쌍을 대거 생성. 이렇게 만들어진 인스트럭션 튜닝용 합성 데이터를 모델 자신에게 다시 학습해 질문 답변 능력을 개선
- Code Llama-Instruct [174]: “코딩 관련 질문-답변”이나 “단위 테스트+솔루션” 같은 자료를 Llama2/Code Llama로 만들어, Code Llama-Instruct를 미세조정. 단 한 번의 생성–학습 루프로 코딩 지원 능력 강화
- Iterative Self-Improvement:
- 모델이 합성 데이터를 반복(여러 번) 생성·검증·학습해 점진적으로 성능을 올리는 방식임. Single-shot 이 아닌 여러번 하는 것.
- 사례:
- Self-Improvement Strategy[71]: 모델이 퍼즐 문제·해결책을 만들고, 품질 필터를 거쳐 나머지를 모델에 재학습
- STaR[248]: 모델이 틀린 문제를 추론 근거(rationale)를 달아 “왜 틀렸는지” 설명 → 이를 정답·이유 형태의 증강 데이터로 만들어 재학습
- ReST[66]: LLM이 여러 출력을 생성 → 필터링해 오프라인 강화학습(offline RL) 방식으로 다시 LLM을 미세조정
- ReST-EM[187]: ReST의 확장판. 이전 라운드 모델 대신, 기본 모델을 반복 파인튜닝해 과도한 누적 오류 방지
- DeepSeek-Prover[220]: 자동 증명(automated proving) 과정에서 생성된 합성 증명·공식 자료를 사용해 모델을 계속 업데이트
- SPIN[26]: self-play 방식. 이전 단계 모델(상대)의 답변을 정답 분포와 얼마나 다른지 구분·학습하며 반복적으로 목표 분포에 가까워짐
- Multi-Modal Self-Improvement:
- 텍스트뿐 아니라 이미지·오디오 등 다른 모달을 포함하는 데이터를 모델이 직접 생성·활용
- (본문에서는 구체적 예시가 간략히만 언급되었으나, 기본 원리는 위와 동일: LLM이 스스로 멀티모달 데이터를 만들고 재학습)
- 모델이 스스로 만든 데이터를 가지고 다시 모델을 향상시키는 접근으로 분류 방법이 3가지가 있음:
- General Model Distillation:
- 성능이 뛰어난 범용 LLM(예: GPT-4)으로부터 고품질 미세조정용 데이터를 추출·생성해, 다른(또는 같은) 모델을 향상하는 방식.
- 5가지 유형이 있음: (1) Synthesize with Seeds, (2) Synthesize Data Iteratively, (3) Synthesize Reasoning Steps, (4) Taxonomy-Driven Synthesis, (5) Synthesize MultiModal Data
- Synthesize with Seeds:
- 교사 모델에게, “시드(seed) 예시”나 “간단한 입력” 몇 개를 주고, 더 많은 대화/문제/입출력 쌍을 합성하게 하는 기법
- 시드가 적더라도, 대형 모델의 언어 생성 능력을 활용해 데이터 규모와 다양성을 크게 늘릴 수 있음.
- Unnatural Instruction[80]: 3개 시드 예시→4번째를 생성, 인스트럭션 계속 재활용
- Baize[222]: ChatGPT에 “자체 대화(self-chat)”를 시켜 대규모 멀티턴 대화 코퍼스 생성 → 이로 모델을 파인튜닝
- CLINGEN[226], HuaTuo[204]: 의학·임상 분야 지식 그래프 + ChatGPT를 조합해 임상 시나리오, 질의응답 등 특화 데이터셋 구축
- Impossible Distillation[91]: 저품질 모델에 고품질 패러프레이즈(문장 재작성) 데이터를 제공해 성능을 끌어올림
- Synthesize Data Iteratively:
- 한 번 데이터 합성으로 끝나지 않고, 여러 라운드에 걸쳐 데이터를 점진적으로 늘리거나 품질을 높이는 기법
- 각 라운드에서 교사 모델(또는 현재 모델)이 생성한 결과를 검증·필터링하고, 학생 모델을 업데이트 → 다음 라운드에 더 유의미한 합성 데이터를 생산
- 예시:
- WizardLM[223]: Evol-Instruct 방식을 통해 7만 개의 합성 데이터 생성 → 학생 모델 파인튜닝 → 고복잡 태스크에서 SOTA에 근접.
- Evol-Instruct 방식은 단계적으로 발전된 형태의 명령어(Instructions)를 이용해서 데이터 합성을 하는 방법론임.
- 초기에는 기본 명령어(Seed Instructions)에서 시작함. 그 다음 생성된 명령어를 점차적으로 확장하거나 복잡도를 증가시키는 방식으로 반복함.
- 두 가지 주요 발전 방법이 있음:
- In-depth Evolution (깊이 발전): 기존 명령어에 세부적인 요구사항을 추가하여 더 정교하게 발전. 예: “코드 작성” → “코드 작성 및 성능 최적화” → “코드 작성, 성능 최적화 및 주석 추가”.
- In-breadth Evolution (폭 발전): 새로운 유형의 명령어를 추가하여 다양성을 증가. 예: “텍스트 요약” + “문법 교정” + “내용 분류”.
- LLM2LLM[107]: 학생 모델이 스스로 해답을 시도해보며 오류 부분만 교사 모델이 새 예시로 만들어 줌 → 점진적 오류 수정
- 코드 분야(예: Evol-Instruct Code Edition[146]): 인스트럭션 형식과 디버깅, 시간·공간 복잡도 제약 등을 추가해 매 라운드 새롭고 복잡한 코드 예시 생성
- WizardLM[223]: Evol-Instruct 방식을 통해 7만 개의 합성 데이터 생성 → 학생 모델 파인튜닝 → 고복잡 태스크에서 SOTA에 근접.
- Synthesize Reasoning Steps:
- 교사 모델이 단순히 최종 답만 주는 것이 아니라, 추론 과정(체인오브소트, 단계별 풀이 등)을 자세히 서술하도록 유도
- 학생 모델이 이를 모사(imitate)하여 추론 능력을 습득하거나 강화
- 예시:
- Orca[154], Orca 2[152]: GPT-4가 제공하는 해설, 단계별 논리, recall-then-generate 등을 함께 튜닝 데이터에 포함 → 학생 모델이 답안 뿐 아니라 “왜 그렇게 답했는가”를 학습
- GAIR-Abel[28]: 답변을 “질문 재진술 → 단계별 솔루션” 구조로 작성하면 성능 향상 효과 큼
- MAmmoTH[244]: 수학 문제에 CoT(Chain-of-Thought) + PoT(Program-of-Thought) 논리를 제공, 학생 모델에 복합적 수리 추론 능력을 전수
- Taxonomy-Driven Synthesize:
- 시드 기반이 아니라, 체계적인 분류체계(taxonomy)에 따라 희소한 영역이나 특정 테마를 의도적으로 보강하는 기법.
- 예: tail 현상(등장 확률이 매우 낮은 토픽) 등을 집중 합성하여, 모델의 희소 영역 성능을 개선
- 예시:
- LAB[191]: 무작위 합성 대신, taxonomy에 기초하여 데이터를 생성 → 드문 토픽도 충분히 커버
- GLAN[111]: 인간 전문가가 만든 분류체계 + Teacher LLM으로 대규모 인스트럭션 튜닝 세트 구성
- SciLitIns[118]: 과학 분야의 키워드·태스크 목록을 만들고, GPT-4로 실제 데이터 생성 → 논문 요약·정리 등 분야 특화 파인튜닝 데이터
- Synthesize MultiModal Data:
- 텍스트 기반 모델(GPT-4 등)을 활용하되, 이미지·차트·오디오 등 멀티모달 요소가 들어간 데이터도 함께 합성
- 이를 텍스트-이미지 결합 모델(LLaVA, ChartLlama 등)에 파인튜닝하여 멀티모달 이해·생성 능력을 높임
- Visual instruction-tuning[130]: 텍스트 전용 GPT-4로부터 멀티모달 지시사항을 만들고, LLaVA 등 비전-언어 모델을 파인튜닝
- ChartLlama[73]: 챗GPT로 차트 설명·Q&A 생성 → LLaVA 기반 모델에 미세조정해 차트 해석·생성 능력 확보
- A curriculum learning method[110]: 초기에는 의학·바이오 용어 정렬 → GPT-4가 복잡한 멀티모달 인스트럭션 생성
- NExT-GPT[219]: 텍스트 대화 + 이미지·비디오 등 모달을 상황별로 변환해, 다양한 시나리오로 모델 학습
- Data Augmentation:
- 미세조정 단계에서 활용되는 증강 기법은 주로 Data Labeling과 Data Reformation 두 갈래로 분류
- Data Labeling:
- 라벨이 없는 데이터(또는 불완전한 라벨)를 LLM이나 추가 툴로 라벨링·가공 → 미세조정 데이터로 사용
- Llama-3-UltraMedical[258]: 여러 LLM과 GPT-4가 레이블·선호도(Preference)를 생성해 준 의료 분야 대규모 데이터로 SFT
- 멀티모달 예: SelTDA[94] → 비전+언어 모델(teacher)을 활용해 이미지 QA 라벨 생성
- Data Reformation:
- 기존 데이터를 다양한 형태(재진술, 역추론, 구조화 등)로 바꾸어 풍부하게 만듦
- Symbol tuning[213]: 레이블을 자연어 대신 임의 심볼로 매핑 → 모델이 “형식적” 패턴을 배우도록 유도
- DISC-MedLLM[10]: 의학 지식 그래프 + 실제 대화 재구성 + 사람 선호도 재표현 → 의료 특화 데이터
- MetaMath[238]: 전방·후방 추론 경로를 LLM으로 생성해, 수학 Q&A 재작성
- MathGenie[144]: (1) 반복적 솔루션 확장 (2) 백트랜슬레이션 (3) 검증 기반 필터 → 다양한 문제·해결 예시
- BianQueCorpus[25]: 실제 의료 상담 기록을 ChatGPT로 다듬어(폴리싱) 대화 품질 향상
LLM의 인스트럭션 튜닝(Instruction-Tuning) 단계에서 이루어지는 데이터 합성 및 증강 방식:
- LM이 “명령”을 더 잘 이해하고 따르도록(instruction-following) 다양한 방법으로 합성/증강된 데이터를 활용함.
- 인스트럭션 튜닝은 “LLM이 주어진 명령(Instruction)”을 정확히 이해하고 원하는 형식대로 응답할 수 있게 모델을 미세조정(fine-tuning) 하는 과정임.
- 합성된 인스트럭션이나 프롬프트(prompt) 데이터를 대규모로 활용하여, “질문-답변 쌍”, “대화 시나리오”, “툴 사용 안내” 등 여러 형태의 ‘명령-응답 예시’를 모델에게 학습시킴.
- 논문에서는 이를 세 가지 범주로 구분한다:
- (1) General Model Distillation
- (2) Model Self-Improvement
- (3) Data Augmentation
- General Model Distillation:
- General Model Distillation이란, 더 강력한 LLM(예: GPT-4, ChatGPT)을 통해 합성된 “명령-응답” 데이터로 다른(또는 동일) 모델을 인스트럭션 튜닝하는 방식임.
- 고성능 모델(교사 모델)이 이미 내재한 언어/추론 능력을 활용해, 대량의 고품질 인스트럭션-응답 데이터를 빠르고 저렴하게 생성할 수 있음.
- Uni-Modality (텍스트 위주):
- 알파카(Alpaca)[196]: GPT-3.5가 생성한 인스트럭션 튜닝 예시를 사용해 Llama-7B를 미세조정 → 간단한 인스트럭션 챗봇.
- Alpagasus[22]는 Alpaca 데이터 품질이 낮은 점을 지적하고, 강력한 LLM(ChatGPT)으로 저품질 예시를 필터링 → “소량의 고품질 데이터”만으로도 매우 좋은 성능 달성
- Vicuna[29]: ShareGPT.com 사용자 대화 데이터로 챗봇 튜닝, 오픈소스 대화 모델 구축.
- WizardLM[223]: Evol-Instruct 기법(깊이+폭 진화)으로 복잡한 인스트럭션 대량 생성 → 모델의 고난도 추론 능력 향상.
- Orca[154], Orca2[152]: GPT-4가 제공하는 추론 과정(Explanation Trace)을 답변과 함께 합성 → 학생 모델은 단계별 reasoning 모사 가능
- Baize[222]: ChatGPT를 self-chat시키고, Quora·Stack Overflow 등을 시드로 멀티턴 대화 생성 → 대규모 대화형 데이터.
- LongForm[96]: “역방향(reverse) 인스트럭션” 생성 → 모델이 긴 텍스트 설명을 잘 하도록 훈련.
- WizardCoder[146]: Evol-Instruct를 코드 영역에 적용하여 복잡한 코딩 명령을 만들고, 이를 StarCoder 기반 모델에 튜닝.
- Multi-Modality (멀티모달):
- LLaVA[130]: GPT-4/ChatGPT가 이미지-텍스트 쌍을 멀티모달 인스트럭션으로 변환 → 시각 인코더(CLIP) + 언어 디코더(Vicuna) 결합하여 학습.
- Model Self-Improvement:
- Model Self-Improvement은 “모델 스스로 데이터를 합성”하고, 그 데이터를 다시 자기 자신을 미세조정하여 인스트럭션 파인튜닝 효과를 얻는 방식입니다.
- 장점: 외부의 강력한 교사 모델 없이, 자체적으로 데이터를 만들고 학습할 수 있음.
- Uni-Modality:
- Self-Instruct[210]: GPT-3가 “새로운 인스트럭션과 입출력”을 스스로 생성 → 이를 가지고 다시 GPT-3를 튜닝.
- Instruction Backtranslation[119]: 웹 문서의 응답을 보고 거꾸로 인스트럭션을 생성 → 추가적인 자기 검열(self-curation)로 데이터 품질 보장
- SPIN[26]: self-play 메커니즘. 한 모델의 이전 버전(또는 다른 iteration)을 “상대(Generator)”로 두고, 현재 버전이 “플레이어(Discriminator)” 역할을 수행 → GAN 유사 방식으로 인스트럭션 튜닝.
- ReSTᴱᴹ[187]: “다중 샘플 생성 → 필터링 → (이진 피드백 기반) 강화학습”의 2단계 자기 학습을 통해, 모델이 스스로 고품질 응답을 학습.
- CAI[8]: 헌법적 원칙(constitution)이나 자가 비판(self-critique) 규칙을 모델에게 부여 → 모델 스스로 해로운 답변을 점검하고 수정해, “무해성(harmlessness)” 향상.
- Toolformer[177]: 모델이 스스로 API 콜 형태의 입력을 구성해 외부 도구(tool)을 활용 → “툴 사용 능력”을 자가 지도(self-supervised)로 습득.
- Multi-Modality:
- SelTDA[94]: 시각 언어 모델(BLIP 등)을 활용해, 이미지 기반 VQA 질문·답변을 자동 생성(pseudo-labeling) → LLM이 소규모 데이터로 VQA를 더 잘 학습.
- Data Augmentation:
- Data Augmentation은 추가 데이터를 새로 만들지 않고, 기존 데이터를 재라벨링, 재구성, 협업 라벨링 등을 통해 다양화하여 인스트럭션 튜닝에 활용하는 접근임.
- Data Labeling (라벨링 자동화):
- LLM으로 라벨링: unlabeled 데이터를 LLM에 태스크 지시 → 라벨링된 합성 데이터 확보. 예) ChatGPT-4로 정치 트윗 분류[198].
- 번역 데이터: 예) 모노링구얼 데이터에 pseudo parallel prompts를 적용해 머신 번역 성능 향상[252].
- T-SciQ[205]: 과학 문제의 체인오브소트(CoT) 해설을 LLM이 생성 → 더 작은 모델들이 해당 해설을 학습해 고난도 과학 질의응답 수행.
- Data Reformation (재구성):
- 기존 데이터를 다른 형태로 바꿔, 인스트럭션 튜닝에 맞게 만든다.
- CORE[45]: counterfactual perturbation(가상 상황 편집)으로 텍스트 재작성.
- ALIA[51]: 이미지를 GPT-4가 요약→ Stable Diffusion으로 이미지 편집.
- ChatAug[37]: 한 문장을 다수 유사 문장으로 변형(“개념은 유사, 의미는 다름”).
- Co-Annotation (협업 라벨링):
- 사람 + LLM 협업으로 라벨링·주석 달기.
- CoAnnotating[116]: 변형된 프롬프트로 LLM이 먼저 응답, 불확실도 계산 → 필요하면 인간이 보충
- ChatGPT 보조: LLM이 “관련 속성, 간단한 설명” 등을 제공해 사람 라벨러의 정확도·속도 향상 [11].
- ToolCoder[259]: 코드 생성 모델에 도구 사용 정보를 라벨링. 사람 예시 + LLM 공동 작업.
Preference Alignment 에서의 데이터 증강/합성 방법:
- Preference Alignment 는 모델이 인간이 중요하게 여기는 안전성, 유용성, 윤리, 정확성 등 여러 종류의 “선호(Preference)”를 최대한 맞추도록 미세조정하는 방법을 말함.
- 여기서는 이를 위한 데이터 증강/합성 방법은 다음과 같이 있음:
- General Model Distillation: 범용 LLM으로부터 생성·합성된 선호 데이터 활용
- Domain Model Distillation: 특정 도메인(수학, 요약, 검색, 안전, 코드 등)의 특화된 선호 데이터로 모델을 학습
- Model Self-Improvement: 모델이 자체적으로 피드백을 만들어, 이를 반영해 성능과 안전성 등을 점진적으로 향상
- Data Augmentation: 다양하고 풍부한 예시를 확보해, 모델이 여러 상황의 사용자 선호를 잘 반영할 수 있도록 지원
- General Model Distillation:
- 범용 LLM(예: GPT-4, ChatGPT 등)의 능력을 빌려, 고품질 선호도 데이터(피드백, 정렬 정보 등)를 대량으로 생성·정제하고, 이를 학생 모델(또는 동일 모델)에 미세조정하는 접근 방법임.
- 물론 도전 과제들도 있음:
- 강력한 모델(교사 모델)도 편향이나 제한 사항을 갖고 있어, 합성 데이터가 왜곡될 수 있음.
- 여러 모델을 동시에 사용해 편향을 상쇄시키거나, 품질 필터링 기법을 도입해 해결할 수 있음.
- 예시:
- RLAIF[106]:
- Summarization(요약) 태스크에 Reddit TL;DR, 대화 태스크에 Anthropic Helpful/Harmless Human Preferences 등 다양한 소스에서 피드백 데이터 수집 → 모델을 선호도에 맞게 정렬
- ULTRAFEEDBACK[35]:
- GPT-4로 100만 개 이상의 피드백을 만들고, Best-of-n Sampling·PPO를 통해 피드백 품질 개선
- Open Assistant[97]:
- 13,500+ 자원봉사자가 대화 데이터를 작성·평가(도움, 창의성, 해로움 등) → 선호도 정렬에 활용
- HelpSteer[212]:
- 37,000개 대화를 품질, 정확성, 복잡도, 장황함 등을 기준으로 라벨링
- Selective Reflection-Tuning[114]:
- 교사 모델 출력 중 학생 모델의 점수(r-IFD)에 기반해 어려우면서 적절한 예시만 선별해 학습
- LEMA[4]:
- GPT-4가 학생 모델 답변에서 오류를 찾아내 수정안 작성 → 이 수정안으로 학생 모델을 재학습
- SELF-REFINE[148]:
- 모델이 자신의 답변을 스스로 비판·개선 → 향상된 출력을 확보하고 이를 학습에 반영
- RLAIF[106]:
- Domain Model Distillation:
- 일반 범용 태스크가 아니라, 특정 분야(수학, 안전 시나리오, 코드, 요약 등)에 대한 선호를 모델이 잘 이해하도록, 도메인 특화 데이터로 학습하는 방식임.
- 파인튜닝하는 것과 무슨 차이가 있을까?
- 안전(Safety) 관련:
- BAD[225]: 어뷰징·불쾌감을 유발하려는 ‘적대적 대화’ 데이터를 수집 → 모델이 안전하게 반응하도록 학습
- REALTOXICITYPROMPTS[60]: 10만 개 이상 프롬프트에 대한 ‘유해성’ 라벨
- BEAVERTAILS[85]: 44k+ 레드팀 프롬프트와 안전 메타 라벨(해로움 정도) → 안전성 정렬에 최적화
- 요약(Summarization):
- Stiennon et al.[189]: Reddit TL;DR·CNN/DM 요약본을 인간 평가(쌍 비교)로 학습 → 모델이 사람이 선호하는 요약 스타일을 학습
- RLHF(강화학습 + 보상모델) 기법을 많이 사용
- 수학(Math Problem Solving):
- PRM800K[124]: 12,000개 수학 문제, 75,000개 풀이, 스텝별(800,000개) 라벨 → 모델이 각 단계의 논리성·정합성을 스스로 체크
- 검색 기반 QA(Search-based QA):
- WebGPT[156]: ELI5·TriviaQA·ARC 등 long-form QA에 웹 탐색(browsing) 과정을 추가 → 모델이 인터넷 검색을 통해 답변 정확도와 신뢰도 향상
- 코드 생성 & 논리 추론:
- WizardCoder[146], WizardMath[145]: WizardLM 방식(점진적 인스트럭션 진화)을 코드·수리 논리 영역에 최적화 → 도메인 맞춤형 선호도 정렬 가능
- 일반 범용 태스크가 아니라, 특정 분야(수학, 안전 시나리오, 코드, 요약 등)에 대한 선호를 모델이 잘 이해하도록, 도메인 특화 데이터로 학습하는 방식임.
- Model Self-Improvement:
- LLM이 추가적인 “인간 주석 데이터” 없이도, 스스로 피드백을 생성하거나, 혹은 외부 평가 모델(teacher, judge)의 도움을 받으며 출력을 개선해 나가는 접근임. 크게 두 가지 범주로 소개된다:
- Self-Feedback Loops:
- 모델이 자신이 생성한 답변에 대해 스스로 평가(피드백)를 작성하고, 그 피드백을 반영해 점진적으로 출력을 개선
- 예시:
- CAI[8]: 모델이 red-teaming, helpfulness 등을 집중적으로 다루는 합성 데이터를 만들고, 체인오브소트(CoT)·자가 비판(self-critique)을 통해 인간 의존도를 줄임.
- RLAIF[106]: AI가 헌법(Constitution)에 맞춰 스스로 선호 데이터(어떤 답변이 더 나은지)를 선택해 정렬; 초기엔 오프라인 데이터 생성으로 분포 변화 문제 등이 있었음.
- OAIF[69], SELF-JUDGE[235]: on-policy 방식(모델이 현재 상태에서 즉시 선호도 판단)에 의해 동적으로 피드백을 주어, 더 적합한 정렬.
- Self-Rewarding[241]: 모델이 자신에게 보상을 주는(자가 보상) 동적인 방법 → 모델과 보상 메커니즘이 함께 발전
- SALMON[193]: Instructable Reward Model로, 서로 다른 원칙(스코어링 방법)에 따라 응답을 평가·정렬.
- CycleAlign[79]: 모델이 생성한 여러 응답의 확률을 기반으로 랭킹을 매기고, 공통 서브시퀀스 등을 사용해 최종 정렬을 개선
- External Evaluation Models:
- 내부 피드백 대신, 외부의 강력한 모델(예: ChatGPT)이나 속성 예측 모델 등을 활용하여, 모델의 출력을 평가·선별·보강.
- ALPAGASUS[22]: ChatGPT가 저품질 데이터를 자동 필터링 → 훨씬 적은 양의 데이터로도 좋은 성능 달성.
- Instruction Backtranslation[119]: 웹 문서에서 인스트럭션 ↔ 응답 쌍을 생성해, 품질이 높은 쌍만 골라 파인튜닝 → 인간 주석 없이 모델의 인스트럭션 수행 능력 향상.
- SteerLM[47]: 유머, 창의성, 독성(toxicity) 같은 속성을 예측하는 모델을 사용해 출력 품질을 평가 → Open Assistant·HH-RLHF 데이터로 미세조정.
- Self-Rewarding[241] & SPIN[26]:
- Self-Rewarding: 모델이 직접 보상 모델까지 담당해 일체화된 피드백 루프 형성
- SPIN: 인간 주석 데이터에 의존해 반복 개선. 다만 모델이 인간 수준에 도달하면 더 이상의 개선에 사람 개입 필요
- Data Augmentation:
- Data Augmentation은 모델의 정렬(align) 성능을 높이기 위해, 이미 존재하는 데이터를 다양하게 변형하거나 새 라벨을 달거나, 협업해 확장하는 기법임.
- Data Labeling:
- 라벨이 없는 데이터 또는 기존 데이터에 대한 선호도, 랭킹, 안전성 등 추가 라벨을 달아 고품질 학습 예시를 늘림.
- 예시:
- Starling-7B[273]: 대화 프롬프트에 대한 랭크 데이터를 대량 생성해, 모델 선호도 정렬을 정교화.
- UltraInteract[240]: LLM 응답으로부터 Preference Tree를 구성, GPT-4 피드백으로 잘못된 응답을 보정 → 더 다양한 선호 데이터 축적.
- Data Reformation:
- 기존 데이터를 새로운 형태(인스트럭션 형태, 역번역, 복잡도 높이기 등)로 재구성해 학습 다양성을 확보.
- 예시:
- Self-Instruct[210], Unnatural Instructions[80]: 시드(Seed) 태스크를 기반으로 여러 변형된 인스트럭션을 자동 생성.
- LaMini-LM[218]: 위키피디아 등에서 풍부한 텍스트를 가져와 더 다양한 인스트럭션으로 확장.
- Auto Evol-Instruct[250]: Optimizer LLM이 진화 규칙을 스스로 개선 → 명령어 복잡도·다양성 점진적 증대.
- Instruction Backtranslation[119]: 비주석 웹 문서의 응답 → 거꾸로 인스트럭션 생성.
- Co-Annotation:
- 인간과 모델이 협업하여 데이터를 주석, 보완, 검증 → 더 안전하고 높은 품질의 데이터셋 확보.
- 예시:
- BEAVERTAILS[85]: 44k+ 적대적(adversarial) 프롬프트를 사람+모델이 함께 QA를 만들고, 안전 메타라벨 부착.
- HelpSteer2[211]: 인간이 LLM 응답을 모니터링·수정해 다턴 대화를 정제, 윤리 지침 준수 강화를 유도.
LLM을 다양한 응용(Application) 분야에 적용하기 위해 증강/합성 하는 방법:
- Domain-Specific Data의 필요성:
- LLM은 주로 일반 목적(general-purpose) 데이터로 학습되어 있으나, 특정 도메인(수학, 과학 등)에서는 이런 일반 데이터가 충분치 않거나 품질이 떨어짐.
- 해당 분야에 특화된 질 높은 합성 데이터(예: 수학 문제·풀이, 과학 논문 질의 등)를 만들어 LLM을 추가학습(pre-training) 또는 미세조정(fine-tuning) → 지식·추론 능력을 극대화를 해야함.
- 수학 분야:
- 수학 영역에서는 문제 이해 + 추론 + 정답 도출이 핵심이므로, 모델이 “단계별 논리(Reasoning Steps)”를 학습할 수 있도록 다양하고 정교한 데이터가 필요함.
- 체인오브소트(CoT) & PoT(Program-of-Thought) 활용:
- Galactia[197]: 수학 추론 과정을 <work></work> 토큰으로 감싸는 워킹 메모리(working memory) 방식 도입 → 논리 단계를 명시적으로 표시.
- MammoTH[245]: 13개 수학 데이터셋(중간 해설 포함)을 결합해 MathInstruct 생성. GPT-4 도움으로 CoT와 PoT를 추가해 다양한 형태의 해설을 부여.
- 질문(Q&A) 다양성 제고:
- GPT-4 등 범용 모델을 이용해 특정 실세계 문제(예: 선형 프로그래밍)를 두 LLM 간 대화 형식으로 모델링[1], 품질·정확성은 또 다른 GPT-4가 평가.
- MetaMath[238]: 한 문제를 두 가지 추론 경로로 다시 쓰고, LLM으로 재구성 → 질문 다양성 및 모델의 유연한 사고 촉진.
- IQC[131]: 시드 문제를 LLM으로 재구성(Compose) → 또 다른 LLM이 Rejection Sampling하여 저품질 문제 걸러냄.
- 정답 검증(Verifiable) 활용:
- 수학 문제는 정답이 비교적 명확히 검증 가능하므로, LLM이 스스로 문제·풀이·증명 등을 생성→검증→재학습을 반복할 수 있음.
- STaR[248]: GPT-J에 소수의 해설 예시를 주고, 여러 답변을 시도 + 검증. 틀린 건 재시도하고, 맞는 해설만 미세조정에 사용
- DeepSeekProver[220]: 수학 문제 자동 형식화(auto-formalization) 후, LLM이 문제와 증명을 생성 및 검증. 맞춤형(negation) 증명 등도 시도 → 유효하면 모델 훈련에 재활용
- WizardMath[145]: ChatGPT로 복잡한 수학 인스트럭션(“Evolved Instructions”) 생성 후, 그 생성 과정에 추가적인 감독. Reinforcement Learning, Evol-Instruct Feedback(RLEIF) 등을 병행해 모델 추론 성능 대폭 개선.
- 과학(Science) 분야:
- 과학 분야는 지식집약적이면서 논리적 추론까지 필요하기 때문에, 다양한 형식(논문, 수식, 화학반응식 등)에 맞춰 품질 높은 과학 데이터를 만들고 통합해야 함.
- 형식·토큰 통일 (Format Unification):
- SciLitLLM[118], SciGLM[253], Galactia[197] 등: 여러 학문 분야(물리, 화학, 수학, 생물학 등)에서 가져온 원문 데이터를 분석·정리·통합.
- 방법: 구조화 데이터를 자연어로 변환, 전용 토크나이저 도입, 여러 형식을 통일해 모델 입력으로 사용.
- 과학 분야 인스트럭션 생성:
- SciLitLLM[118]:
- 키워드·작업(Task) 설명을 수집(과학 논문·데이터셋) -> GPT-4에 키워드+설명 프롬프트하여 다양하고 품질 높은 과학 인스트럭션 생성 -> 추후 단계에서 다양성·정확성 보장
- ChemLLM[254]: GPT-4로 “Play as Playwrights” CoT 스타일 프롬프트 → 맥락 풍부, 논리적 정합이 높은 화학 분야 대화를 생성
- SciGLM[253]: 대학 수준 물리·화학·수학·논리 증명 문제를 수집, GPT-4를 이용해 CoT를 생성 + Self-correction.
- Galactia[197]: 방정식, 화학 반응, 인용 예측 등 지식 집약 분야에 특화된 토크나이저 + 워킹 메모리 기법 + 다양한 과학 태스크 적용.
- SciLitLLM[118]:
- 코드(Code) 분야:
- 코드 관련 작업에서는 문제와 정답(코드)의 정확도가 명확히 검증 가능하므로, LLM이 직접 문제·풀이를 생성하고 검사 후 학습에 활용하기가 용이함.
- Self-Play + 자동 검증:
- Python 인터프리터 등으로 코드의 정·오답을 자동 확인 → 정답만 데이터셋에 포함
- 예) Haluptzok et al.[72]: LLM이 프로그래밍 퍼즐과 해답을 생성 → Python으로 실행·검증 → 모델 미세조정 → 코드 성능 향상
- 코드 최적화 데이터 생성:
- Shypula et al.[186]: GPT-3.5로 최적화 문제를 늘려 만들고, 파인튜닝된 GPT-3.5로 정답→재학습
- 코드의 효율·성능을 높이는 문제를 대량으로 만들어, 모델의 코드 최적화 능력을 개선
- 다양한 코드 인스트럭션 생성:
- WizardCoder[146]: StarCoder 15B 기반, Evol-Instruct 기법으로 복잡한 코딩 명령 생성
- Code Alpaca[17]: Self-Instruct 기법으로 만든 2만 개 코드 인스트럭션(문제-풀이 쌍)을 LLaMA 7B/13B에 파인튜닝
- MagicCoder[215]: 오픈소스 코드 스니펫을 활용해 다양하고 현실적인 코딩 문제+답변 생성
- Phi-1[67], Phi-1.5[120]: GPT-3.5를 통해 ‘텍스트-코드 교과서’ 스타일 자료 생성 (특정 주제·타겟 청중 지정), 일반 상식·추론 능력까지 확장
- 의료(Medical) 분야:
- 의료 분야 LLM은 의료 상담 챗봇으로 활용되어, 환자-의사 간 다턴 대화가 중요하며, 개인정보(민감성)와 전문성(의학 지식)이 요구됩니다.
- 의학 대화 자동 생성·정제:
- DISC-MedLLM[10]: MedDialog·cMedQA2 데이터를 GPT-3.5로 재작성(구어체 제거, 모호성 해소 등) → 고품질 의학 대화 확보
- HuatuoGPT[256]: ChatGPT가 두 개체로 ‘Self-Instruct’ 대화 생성 + (instruction, output) 쌍으로 재구성 → 의료 특화 파인튜닝
- ChatCounselor[132]: GPT-4가 환자-의사 대화를 보고 핵심 요약·응답, 심리 상담에 최적화
- 개인정보 보호:
- ClinGen[226]: 지식 그래프 + ChatGPT로 가명화된(혹은 합성된) 임상 텍스트 생성 → 개인정보 유출 없이 의료 지식 활용
- DISC-MedLLM[10]: 의학 지식 그래프 기반 Q&A를 대화 형태에 접목, 민감 정보 없이 도메인 전문성 강화
- 법률(Law) 분야:
- 법률 분야 LLM은 법률 질의응답, 자문 등에 활용되며, 정확하고 격식 있는 표현이 중요함.
- 법률 데이터 정제·생성:
- DISC-LawLLM[243]: GPT-3.5-turbo를 이용해 법적 삼단논법, 지식 확장, Chain-of-Thought 강화 등 SFT에 적합한 인스트럭션 데이터 생성
- 해설(Explanation)·응답 품질 개선:
- LawyerLLaMA[82]: ChatGPT로 질문과 답변에 추가 해설을 생성 → 모델 미세조정. 다만 인간 전문가가 만든 데이터가 더 효과적임도 확인
- LawGPT[272]: ChatGPT 프롬프트로 정교한 응답(격식, 정중, 명료)을 생성
- WisdomInterrogatory[270]: GPT-3.5에게 변호사 역할 vs 사용자 역할을 맡겨 다턴 대화(법적 질의응답) 생성
LLM의 4대 기능:
- 논문에서는 LLM의 기능을 크게 이해(Understanding), 논리(Logic), 기억(Memory), 생성(Generation) 네 가지로 구분함.
- 그리고 이런 4가지의 기능을 강화하기 위해서 증강/합성을 사용하는 방법들에 대해서 소개함.
LLM - Understanding:
- Understanding은 LLM이 입력(텍스트·이미지 등)을 해석하고, 의미론적 구조·맥락을 파악하는 핵심 기능임.
- Text Understanding:
- 인스트럭션 팔로잉(instruction-following) 능력을 높이기 위해, 인간이 작성한 문제/지시-응답 쌍이나, 모델이 자체적으로 만든 인스트럭션-응답 쌍을 대규모로 학습하는 방법.
- 주요 사례:
- Alpaca[196], Alpagasus[22]: 사람이 쓴 시드(seeds)를 GPT로 확장해, 인스트럭션-응답 예시를 대규모 생성 → 모델의 지시 이해·응답 품질 향상
- WizardLM[223]: Evol-Instruct 전략을 사용해 더 복잡하고 다양한 지시사항을 생성(깊이·폭 확장)
- Self-Instruct[210]: 모델이 자기 출력을 재활용해 인스트럭션 팔로잉 능력을 부스팅
- SPIN[26]: 모델과 인간 출력 간 차이를 구분(‘2인 게임’ 구성)함으로써, 추가 인간 라벨 없이도 모델이 텍스트 응답을 이해·분류하도록 유도
- WRAP[150]: 웹 문서(노이즈·비정형 텍스트)에서 다양한 스타일의 파라프레이즈를 생성해 모델이 더 폭넓은 언어 이해를 갖추도록 지원
- Alpaca[196], Alpagasus[22]: 사람이 쓴 시드(seeds)를 GPT로 확장해, 인스트럭션-응답 예시를 대규모 생성 → 모델의 지시 이해·응답 품질 향상
- Semantic Labeling:
- 단순히 텍스트를 읽는 것 넘어, 문서·문장에 특정 라벨(주제·편향·저자 정보 등)을 붙일 수 있도록, LLM으로 데이터를 자동 라벨링·증강
- 주요 사례:
- Instruction Backtranslation[119]: 인간이 쓴 문서(“응답”)에 모델이 역방향 인스트럭션을 달아 자동 라벨링
- 정치 트윗 분류[198]: ChatGPT-4가 트윗을 분류, 정치 경향성 라벨 부여
- Co-Annotating[116]: 사람 + LLM 협업 라벨링(비용 vs 성능 트레이드오프를 비교 가능)
- ChatGPT 보조[259]: 소셜미디어 스폰서 게시물 라벨링 시 LLM 해설(Explanation)을 제공해 인간이 더 정확히 판단
- Multi-Modal Understanding (멀티모달):
- 텍스트 외에도 이미지, 차트 등 다양한 모달 데이터를 이해하고, 그 의미를 텍스트로 표현하는 능력을 기르는 것.
- LLaVA[130]:
- 이미지 캡션·바운딩 박스 정보를 LLM이 인식 가능한 시퀀스로 변환
- 이를 바탕으로 멀티모달 “인스트럭션-응답” 데이터를 만들어, 시각-언어 이해에 활용
- 예: 이미지 속 물체 설명, 개체 간 관계 파악 등
- ChartLlama[73]:
- 차트(그래프) 이해 능력을 키우기 위해, 차트 유형·태스크 종류를 다양하게 합성한 데이터로 모델을 학습 → 차트 분석 성능 증대
- Genixer[266]
- 라벨 없는 이미지로부터 시각 질문응답(VQA), 지시어 해석 등 관련 튜닝 데이터를 합성해, 시각 이해·표현 능력 강화
- SciLitIns[118]:
- 과학 문헌 분야에서 데이터(과학 문헌) 품질을 명확성, 복잡도, 정확성, 유용성, 적응성 다섯 측면으로 평가
- 이를 통해 과학 텍스트 이해 능력을 높임
LLM - Logic:
- Logic은 LLM이 문제를 해결할 때 추론 과정을 명확하게 수행하고, 정확한 답변을 도출하도록 하는 핵심 기능임.
- 코드, 수학, 일반 추론 등에서 논리적 사고 과정을 모델이 학습하도록 데이터 합성(문제·솔루션 생성)과 데이터 증강(기존 데이터 다양화)을 다양하게 시도함.
- Code Logic:
- 코드 로직 분야에서는 프로그래밍 문제와 해결책(코드)을 모델이 생성·검증하며, 논리 능력을 높이는 방법들이 소개됩니다.
- ReSTᴱᴹ[187]:
- 학습 샘플을 “2진 보상 함수(binary reward function)”로 평가 → 논리적 문제 해결에 강한 데이터를 선별
- 코드 생성·수학 문제 풀이에서 LLM의 추론 성능을 향상
- ToolCoder[259]:
- ChatGPT가 API 검색 툴을 활용하는 코드 샘플(API-augmented code) 생성 → 모델이 자동으로 검색 툴을 써서 적합한 API를 찾고 사용
- 논리적 코드 작성 능력 및 API 선택 과정 개선
- OSS-Instruct[215]:
- 오픈소스 코드 스니펫을 활용해 다양·현실적·통제 가능한 코딩 인스트럭션 생성
- 여러 LLM에서 추론 성능을 개선할 수 있는 고품질 코드 예시 제공
- Case2Code[180]:
- 소형 LLM과 코드 인터프리터로 미리 학습한 코드에서 함수-입출력 쌍을 추출해 대규모 데이터셋 자동 생성
- 파이썬 인터프리터 등으로 정답을 검증해, 합성된 프로그래밍 문제·풀이의 품질을 담보
- Python Interpreter 검증[71]
- 생성된 코드가 실제로 돌아가는지(정답·오답)를 파이썬으로 실행 확인
- 맞는 코드만 모아 다시 모델을 파인튜닝 → 정확도·논리력 향상
- Reasoning (일반 추론):
- 다음은 수학·코드를 넘어, 일반적인 논리 추론을 더 잘 수행하기 위한 합성·증강 기법들임.
- Orca[154], Orca2[152]:
- GPT-4가 제공하는 복잡한 해설(Explanation Trace) 을 모사
- Step-by-step, Recall-Reason-Generate 등의 전략으로 작은 모델(학생 모델)이 강력한 논리 추론을 습득하도록 지원
- CAI[8]:
- 모델이 헌법(Constitution)을 바탕으로 “해로운(harmful) 답변”을 비판·수정하도록 유도 → 무해성이면서도 회피적이지 않은(nonevasive) AI 보조 구축
- T-SciQ[205]:
- 과학 질의응답(Science QA)에서 CoT(Chain-of-Thought)를 적극 활용해 QA-CoT 샘플 생성
- 복잡한 문제를 하위 문제로 나눈 뒤 LLM이 단계별로 풀이
- CoT 예시 활용[81]:
- 모델이 “자신있는(CoT) 추론 경로”를 생성하면, 이를 최종 학습 샘플로 삼아 모델을 Fine-tuning
- STaR[248]:
- 모델이 틀린 문제를 추론 근거를 포함해 재시도 → 정답에 대한 논리적인 해설이 담긴 데이터셋 확장
- Symbol Tuning[213]:
- 자연어 라벨·인스트럭션 대신 임의 심볼을 사용 → 모델이 입력-라벨 맵핑을 순수 추론으로 파악
- 언어적 힌트 없이도 논리 관계를 이해하도록 훈련
- Multi-Modal Reasoning:
- SelTDA[94]: VLM(시각 언어 모델) 캡션을 Boolean question으로 변환, 이미지-텍스트 간 논리를 파악
- 멀티모달 Self-Instruct[263]: 추상적 이미지(일상 맥락)를 활용해 LLM이 시각 추론 능력 보강
LLM - Memory:
- LLM의 Memory(기억) 기능을 어떻게 정의하고, 어떤 식으로 데이터 합성·증강 과정에서 활용되는지를 다룬 내용의 정리임.
- 이 논문에서는 기억 기능을 절차 기억(Procedural Memory), 의미 기억(Semantic Memory), 에피소드 기억(Episodic Memory) 세 가지 범주로 나누어 설명함.
- 먼저 Memory 란 LLM이 과거에 학습한 정보(텍스트, 알고리즘, 지식 구조 등)를 기억하고, 이를 새 데이터 생성이나 추론 과정에 적절히 재활용하여 더 풍부하고 일관성 있는 출력을 만드는 것을 의미함.
- Procedural Memory (절차 기억):
- 어떻게 작업이 수행되는지(단계, 순서, 방법)를 기억하고, 이를 모델이 재현하거나 자동화하는 것.
- 예시:
- 코드 분류: 소프트웨어 엔지니어링 맥락에서 정렬 알고리즘을 사용해 코드 LLM 산출물을 분류[269].
- LLM 에이전트: 코드 생성 모델이 여러 인-컨텍스트 감독(in-context supervision)을 통해 라이브러리 함수 등을 지정하고, 사용자 명령에 맞춰 자동으로 문제 해결[160].
- Quiet-STaR[247]: Self-Taught Reasoner[248] 기반으로, 텍스트 토큰을 순차적으로 따라가며 “미래 텍스트를 어떻게 설명(해석)해 나가는가”라는 인간 유사 추론 절차를 학습·생성.
- Semantic Memory (의미 기억):
- 지식 그래프, 문서, API 목록 등, “상징적으로 표현 가능한 지식”을 모델 내부(또는 외부 도구)로 통합하여, 세상에 대한 일반 지식을 기억하고 활용
- AutoKG[274]: 멀티 에이전트(어시스턴트·도메인 전문가 등)가 협업해 지식 그래프를 자동으로 구성하고, 외부 지식 베이스·인터넷 리소스를 연계해 LLM 한계를 보완.
- KPC[167]: 코드 생성 과정을 검증과 수정 단계로 나누고, 문서에서 추출한 예외처리 지식을 활용 → 세밀한 코드 작성 가능
- De-Hallucinator[52]: 모델이 존재하지 않는 API를 허구로 만들어내지 않도록, 모델 예측 결과에서 실존 API 참조를 골라 프롬프트에 삽입 → API 사용 정확도 향상.
- Episodic Memory (에피소드 기억):
- 현재 상황과 밀접하게 연관된 맥락 정보나 개인적 경험(‘에피소드’)을 기억하고, 이를 출력에 반영.
- Persona Hub[16]: 방대한 웹 데이터를 통해 1억 명 규모의 페르소나를 자동 생성 → LLM이 다양한 ‘개인적 경험·성격·배경’에 맞춰 다채로운 응답 생성
- AceCoder[113]: 사용자의 요구사항을 먼저 분석·정리한 뒤, 유사한 예시 코드를 찾아 보조 자료로 프롬프트에 추가 → 사용자 맥락에 딱 맞는 코드 예시 제시
- RepoCoder[255]: 리포지토리 단위로 코드 완성을 최적화. 유사도 기반 검색 → 맥락(비슷한 코드·파일) 찾아서 모델에 제공 → 일관된 코드 생성
LLM - Generation:
- LLM에서의 Generation(생성) 기능을 중심으로, 논문에서 어떻게 데이터를 합성·증강하여 모델의 생성 능력을 향상시키는지 다룸.
- Generation(생성) 기능은 LLM이 맥락과 일관성을 갖춘 텍스트, 이미지, 멀티모달 컨텐츠 등을 생성하는 능력을 말함.
- 논문에서는 생성 기능을 크게 (1) 텍스트 생성, (2) 멀티모달 생성, (3) 검색 결합 생성(Retrieval-Augmented Generation) 세 가지로 구분해 설명함.
- Text Generation:
- 텍스트 생성을 위한 데이터 합성·증강 기법들은 번역, 요약, 패러프레이즈, 대화 생성 등 다양한 형태로 분류된다.
- Machine Translation, Paraphrasing, Summarization:
- LLM-Based Prompt Strategy for MT[252]: 모노링구얼 데이터를 제로샷 프롬프트(back/forward-translation)로 번역, 자동 증강
- ChatAug[37]: 한 문장을 다양한 의미적으로 유사한 문장으로 재구성(패러프레이즈)
- Impossible Distillation[91]: 패러프레이즈 근접도와 Critic 모델 평가를 통한 고품질 문장 재작성·요약 데이터 생성
- 대화 데이터, 멀티턴 시뮬레이션
- TinyStories[53]: 작은 단어 세트에서 자연스럽고 일관된 이야기 데이터를 생성 → 어린이 수준 문해력 훈련에 활용
- UltraChat[44]: ChatGPT Turbo API 두 개를 사용해 사용자와 응답자 역할로 풍부하고 현실적인 멀티턴 대화 생성
- Baize[222]: Self-distillation + feedback 기법을 통해 미세 조정(fine-grained) 최적화 달성
- DIALOGIC[122]: 인간 개입 거의 없이 소규모 대화 데이터셋을 대규모로 확장
- TinyDialogues[56]: 다양한 데이터 소스(인공, 자연 대화 등)를 섞을수록 성능이 더 좋아진다는 점 발견 → 고품질 합성 대화가 중요
- 도메인 특화 텍스트
- DISC-MedLLM[10]: 의학 NLP 데이터셋을 ChatGPT로 재작성하여 정확하고 진실성 높은 의료 대화 제공
- ReST[66]: 반복적으로 NLL(negative log-likelihood) 학습 + 필터링 임계값 높이기 → 모델 성능 점진적 향상
- Self-translate-train[170]: 모델의 번역 능력을 자체 활용해 크로스-링귤 성능을 높임
- HuaTuo[204]: 지식 그래프에서 필요한 지식만 추출한 뒤, ChatGPT로 인스턴스를 생성 → 응답의 사실성 강화
- Multi-Modal Generation:
- ALIA[51]: 이미지 캡션을 요약·재작성하여 “언어 지시” 기반으로 이미지 편집(augmentation) → 시각적 다양성 증대
- 이처럼 멀티모달에서도 언어적 표현(캡션, 설명 등)을 LLM이 생성·재가공하여 시각적·언어적 데이터를 연결하는 기법이 부각
- Retrieval-Augmented Generation (RAG):
- Retrieval-Augmented Generation은 외부 지식 베이스나 문서 검색 결과 등을 LLM에 결합해, 더 정확하고 맥락 있는 응답을 생성하는 방법을 뜻함.
- GraphRAG[40]:
- 텍스트 전반(문서 전체)에서 그래프 기반 인덱스를 만들고, 부분 답변들을 모아 최종 결과를 합성
- 풍부한 개체·관계로 구성된 지식 그래프를 활용해, 보다 포괄적이고 다각적인 응답 생성
- RankRAG[246]:
- 쿼리와 문맥의 유의미도를 모델이 직접 평가(Instruction-tuned LLM)해서, 적합도가 높은 문맥을 선택
- 선택된 문맥을 바탕으로 답변 → 정확도 향상
- LongRAG[88]:
- 장문의 텍스트나 대규모 코퍼스를 효율적으로 검색하기 위해, corpus size를 줄이고 상위 랭크만 사용하는 구조 설계
- 검색+생성을 조합해 효율적인 장문 QA나 요약 구현
데이터 합성/증강 과정에서 만나는 도전 과제 - Synthesizing and Augmenting Method 관련 이슈:
- Dependence on LLMs (모델 의존도):
- 합성·증강 데이터의 품질이 LLM 스스로의 능력에 크게 좌우됨.
- LLM이 충분히 크고(수십억~수천억 파라미터) 강력해야, 프롬프트 몇 개로 양질의 데이터를 생성할 수 있음. 작은 모델은 추론 능력이 부족해, 의미 있는 합성 데이터를 만들기 어려움.
- 결국 데이터 합성에 “큰 모델”이 필요 → 비용, 접근 제한 등의 현실적 어려움 발생.
- Evaluation & Depollution 복잡성
- 합성 데이터를 모델 학습에 사용하면, 공개 평가 데이터셋과 중복·오염 교차 가능 → 평가 공정성 저해
- 일반적으로 학계에서 쓰이는 벤치마크(공개 포럼, 웹자료 기반 등)와 합성 데이터가 섞이면서, 모델이 이미 답을 ‘학습해버린’ 문제를 평가에 포함할 수 있음.
- 내부적으로 보호된 프라이빗 평가 세트를 유지 (공개되지 않음)
- 단순히 토큰 매칭으로 ‘중복’ 탐지하는 방식은, 합성 데이터가 미묘하게 바뀌었을 경우 제대로 걸러내기 힘듦
- RLAIF(Preference Alignment) 불확실성과 탐색 복잡성:
- 사람 피드백에서 벗어나 AI 피드백으로 선호도를 맞추려 하면, 실제 인간 선호와 얼마나 부합하는지 불확실.
- AI 피드백도 “진짜 인간 선호”를 대변하는지 증거 부족. 검색공간(search space)이 방대 → 모델이 유용한 피드백을 얻으려면 엄청난 샘플이 필요.
- 현 시점에서 “AI가 생성한 피드백”만으로 지속가능한 alignment 달성 여부는 불명확.
- Unstable & Inconsistent Logical Paths (불안정한 논리 경로):
- 수학·코드·추론 등 논리가 중요한 태스크에서, 합성된 “추론 경로(Reasoning Path)”가 일관적이지 않을 수 있음.
- 지식 그래프나 공식 논리 도구를 합성 프로세스에 통합해, 모든 단계의 정확성·일관성을 강화하는게 필요.
LLM을 위한 합성·증강 데이터의 품질 문제:
- 실제(real) 데이터는 언어 표현의 다양성·문화적 맥락·관용 표현 등이 풍부하고 신뢰도가 높을 수 있음.
- 반면, 합성(synthetic)·증강(augmented) 데이터는 생성 과정에서 각종 편향 또는 부자연스러움이 들어가기 쉬우며, 다양성과 사실성(factuality)을 충분히 반영하지 못할 가능성이 큼.
- 주요 이슈:
- Data Diversity (다양성):
- 미리 정의된 템플릿이나 알고리즘에 의존하면, 유사한 형태의 문장만 대량 생성 → 모델이 다양한 언어 패턴과 맥락을 학습하지 못함.
- 관용어, 문화적 레퍼런스, 상황적·맥락적 표현 등의 미묘한 차이가 제대로 반영되지 않음. 합성 데이터를 많이 학습한 모델이 실제 대화 속 섬세한 표현이나 뉘앙스를 이해하기 어려워질 수 있음.
- Long-tail Phenomenon (롱테일 현상):
- LLM이 자주 쓰이는 언어(혹은 주제)에서는 합성 데이터가 성능 개선에 기여가 크지만, 드물게 쓰이는 언어·희소 토픽에 대해서는 합성 데이터가 충분치 않거나 부정확 → 롱테일 영역 성능이 떨어짐.
- 일반적으로 자주 쓰이는 표현·단어가 합성·증강 데이터의 대부분을 차지 → 상대적으로 드문 표현(전문 용어, 고유 맥락)은 소외.
- Reliability (신뢰성):
- 합성 데이터가 형태상 유창하고, 인간 선호도(편안한 톤 등)에 맞게 쓰였더라도, 실제 팩트가 틀리거나 낡은 정보일 수 있음.
- 데이터 생성 과정에서 원본 편향, 부정확성, 시간 경과로 인한 진부화 등 반영하기 어렵.
- 학습에 사용된 원본 데이터가 편향되어 있으면, 합성 데이터에도 고스란히 편향이 반영됨 → 모델이 결과적으로 왜곡된 출력을 하게 됨
- Distribution Inconsistency (분포 불일치):
- 합성 데이터 분포가 실제 인간 언어 사용과 크게 다르면, 모델 응답이 자연스럽지 않거나 사용자 기대와 어긋남.
- 합성·증강된 문장이 실제 맥락과 동떨어진 경우, 실제 커뮤니케이션 상황과 정렬되지 않음 이로 인해 모델이 현실 상황에서 부정확하거나 부자연스러운 답변을 할 수 있음.
- Generalization (일반화):
- 합성 데이터 중심으로 학습된 모델이 실제(real) 데이터에서 기대 이하 성능을 보일 수 있음.
- 실제 세계의 복잡성과 변동성을 합성 데이터가 충분히 포착하지 못해, 오버피팅 위험이 존재.
- Data Diversity (다양성):
'Generative AI > Data' 카테고리의 다른 글
Enhancing Chat Language Models by Scaling High-quality Instructional Conversations (0) | 2025.01.20 |
---|---|
GENIE: Achieving Human Parity In Content-Grounded Datasets Generation (0) | 2025.01.19 |
Does Synthetic Data Generation of LLMs Help Clinical Text Mining? (0) | 2025.01.17 |
Data-centric Artificial Intelligence: A Survey (0) | 2024.11.05 |
Data-Centric AI (0) | 2024.11.03 |