
# 합성 데이터 기반 AI를 이용한 보안 질문서 자동화

*생성 AI 시대에서 질문서 자동화 규모를 확장하는 가장 큰 장애물은 **데이터**이며, 컴퓨팅이 아닙니다. 실제 보안 정책은 보호되고, 풍부한 형식을 가지며, 기계 학습을 위해 라벨링되는 경우가 드뭅니다. 합성 데이터는 프라이버시를 보존하는 지름길을 제공해, 조직이 정확하고 감사 가능한 답변을 필요 시점에 즉시 작성할 수 있는 LLM을 훈련·검증·지속적으로 개선할 수 있게 합니다.*

---

## 왜 합성 데이터가 빠진 퍼즐 조각인가

| 도전 과제 | 기존 접근 방식 | 합성 데이터 대안 |
|-----------|----------------------|-----------------------|
| **데이터 부족** – 공개된 보안 질문서 데이터셋이 거의 없음 | 수동 수집, 대대적인 삭제, 법무 검토 | 수백만 개의 현실적인 질문‑답 쌍을 프로그램matically 생성 |
| **프라이버시 위험** – 실제 정책 텍스트에 비밀이 포함 | 복잡한 익명화 파이프라인 | 실제 데이터가 노출되지 않음; 합성 텍스트가 스타일·구조를 모방 |
| **도메인 드리프트** – 규정 변화가 모델 업데이트보다 빠름 | 새 수동 데이터를 주기적으로 재훈련 | 새로운 표준에 맞춘 지속적인 합성 데이터 갱신 |
| **평가 편향** – 테스트 세트가 훈련 편향을 반영 | 과도하게 낙관적인 지표 | 엣지 케이스를 포괄하는 제어된 합성 테스트 스위트 |

원본 정책을 훈련 루프에 투입할 필요가 없어짐으로써 합성 데이터는 기밀성을 유지할 뿐 아니라, 컴플라이언스 팀이 *무엇을*·*어떻게* 모델이 동작해야 하는지 완전한 제어권을 가집니다.

---

## 합성 질문서 데이터의 핵심 개념

### 1. 프롬프트 기반 생성

LLM에게 **정책 작성자 역할**을 시키고 특정 질문 템플릿에 대한 답변 초안을 생성하도록 지시할 수 있습니다. 예시 프롬프트:

```
당신은 SaaS 플랫폼의 컴플라이언스 책임자입니다. 다음 ISO 27001 통제 항목에 대해 간결한 답변(≤150단어)을 작성하세요:
"휴식 및 전송 중에 암호화 키가 어떻게 보호되는지 설명하십시오."
```

이 프롬프트를 통제 카탈로그 전반에 적용하면 **원시 합성 코퍼스**가 생성됩니다.

### 2. 제어된 어휘·온톨로지 정렬

생성 텍스트의 일관성을 유지하기 위해 **보안 온톨로지**(예: [NIST CSF](https://www.nist.gov/cyberframework), [ISO 27001](https://www.iso.org/standard/27001), [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2))를 주입합니다. 온톨로지는 다음을 정의합니다:

- **엔터티 유형**: `Encryption`, `AccessControl`, `IncidentResponse`
- **속성**: `algorithm`, `keyRotationPeriod`, `auditLogRetention`
- **관계**: `protects`, `monitoredBy`

온톨로지는 **구조화된 프롬프트**와 **후처리**를 통해 자유형 설명을 온톨로지 기반 토큰으로 교체하도록 LLM을 안내해, 다운스트림 검증을 가능하게 합니다.

### 3. 노이즈 삽입·엣지 케이스 모델링

컴플라이언스 답변은 거의 완벽하지 않습니다. 합성 파이프라인은 의도적으로 다음을 추가합니다:

- **경미한 사실 오류**(예: 약간 오래된 키 회전 주기) → 모델이 오류 감지를 학습하도록 함
- **모호한 표현** → 모델이 명확화를 요청하는 능력 향상
- **언어 변형**(영국식·미국식 영어, 격식·비격식) → 다국어 준비

---

## 엔드‑투‑엔드 합성 데이터 파이프라인

아래 **Mermaid** 흐름도는 제어 카탈로그 수집부터 Procurize 내부 모델 배포까지 전체 과정을 보여줍니다.

```mermaid
flowchart TD
    A["Control Catalog (ISO, SOC, NIST)"] --> B["Prompt Template Library"]
    B --> C["LLM Synthetic Generator"]
    C --> D["Raw Synthetic Answers"]
    D --> E["Ontology Mapper"]
    E --> F["Structured Synthetic Records"]
    F --> G["Noise & Edge‑Case Engine"]
    G --> H["Final Synthetic Dataset"]
    H --> I["Train / Fine‑Tune LLM"]
    I --> J["Evaluation Suite (Synthetic + Real QA)"]
    J --> K["Model Registry"]
    K --> L["Deploy to Procurize AI Engine"]
    L --> M["Live Questionnaire Automation"]
```

### 파이프라인 단계별 설명

1. **Control Catalog** – 표준 저장소에서 최신 질문 목록을 가져옴.  
2. **Prompt Template Library** – 제어 항목별 재사용 가능한 프롬프트 패턴을 저장.  
3. **LLM Synthetic Generator** – 기본 LLM(e.g., GPT‑4o)으로 원시 답변 초안 생성.  
4. **Ontology Mapper** – 자유형 텍스트를 보안 온톨로지와 정렬, 핵심 구문을 표준 토큰으로 변환.  
5. **Noise & Edge‑Case Engine** – 제어된 교란을 적용.  
6. **Final Synthetic Dataset** – 버전 관리된 데이터 레이크(Snowflake + Delta Lake)에 저장.  
7. **Train / Fine‑Tune LLM** – LoRA 또는 QLoRA를 사용해 컴퓨팅 비용을 최소화하면서 미세 조정.  
8. **Evaluation Suite** – 합성 테스트 케이스와 소량의 실제 QA 세트를 결합해 견고성 검증.  
9. **Model Registry** – 모델 버전, 학습 데이터 해시, 규정 버전 메타데이터를 기록.  
10. **Deploy to Procurize AI Engine** – 질문서 대시보드와 연동되는 API로 서빙.  
11. **Live Automation** – 팀이 AI 초안을 실시간으로 검토·수정·승인.

---

## 기술 심층 탐구: LoRA 로 미세조정

**Low‑Rank Adaptation (LoRA)** 은 메모리 사용량을 크게 낮추면서 모델 성능을 유지합니다.

```python
import torch
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "gpt-4o-mini"
base_model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)

lora_cfg = LoraConfig(
    r=16,                # rank
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM"
)

lora_model = get_peft_model(base_model, lora_cfg)

# Prepare synthetic dataset
train_dataset = SyntheticDataset(tokenizer, synthetic_path="s3://synthetic/qna/train.json")
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=8, shuffle=True)

optimizer = torch.optim.AdamW(lora_model.parameters(), lr=2e-4)

for epoch in range(3):
    for batch in train_loader:
        outputs = lora_model(**batch)
        loss = outputs.loss
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()
    print(f"Epoch {epoch} loss: {loss.item():.4f}")
```

LoRA 를 활용하면 새로운 합성 배치를 주간 단위로 생성해 전체 모델을 재훈련하지 않고도 빠르게 적용할 수 있습니다.

---

## Procurize 와의 통합: 모델 → UI 흐름

1. **Model Endpoint Registration** – LoRA‑미세조정 모델을 안전한 추론 서비스(SageMaker, Vertex AI 등)에 저장.  
2. **API Bridge** – Procurize 백엔드가 `POST /v1/generate-answer` 를 호출하며 payload 예시:

```json
{
  "question_id": "SOC2-CC8.1",
  "context": "latest policy version hash",
  "metadata": {
    "requester": "security-team",
    "priority": "high"
  }
}
```

3. **Real‑Time Review Layer** – 초안이 질문서 UI에 **편집 가능한 리치 텍스트**, **하이라이트된 온톨로지 토큰**, **신뢰도 점수(0‑100)** 와 함께 표시됨.  
4. **Audit Trail** – 모든 AI‑생성 답변은 합성 데이터 출처, 모델 버전, 검토자 행동을 함께 저장해 규제 증거 요구 사항을 충족.

---

## 정량적 효과

| 지표 | 합성 AI 도입 전 | 합성 AI 도입 후 |
|------|-----------------|-----------------|
| **평균 답변 소요 시간** | 3.2일 | 5.4시간 |
| **인간 편집 노력** | 답변 길이의 45 % | 답변 길이의 12 % |
| **컴플라이언스 감사 이슈** | 감사당 8건 경미한 불일치 | 감사당 1건 경미한 불일치 |
| **신규 표준 도입 시간** | 6 주 (수동 매핑) | 2 주 (합성 데이터 재생성) |

Acme Cloud 사례에서는 **질문서 사이클 시간이 71 % 감소**했음을 보고했습니다.

---

## 모범 사례 및 피해야 할 함정

1. **온톨로지 매핑 검증** – 생성된 모든 답변에 필수 토큰(`encryptionAlgorithm`, `keyRotationPeriod`)이 포함됐는지 자동 검사.  
2. **Human‑in‑the‑Loop (HITL)** – 고위험 통제(예: 데이터 유출 통보)에는 반드시 검토 단계를 두기.  
3. **합성 데이터 버전 관리** – 생성 스크립트, 시드 프롬프트, 난수 시드 모두를 저장해 재현성·감사 가능성 확보.  
4. **드리프트 모니터링** – 모델이 출력하는 신뢰도 점수 분포 변화를 추적; 급격한 변동은 프롬프트 혹은 규정 업데이트 필요 신호.  
5. **과적합 방지** – 소량의 실제(익명화된) 답변을 혼합해 모델이 현실에 근거하도록 유지.

---

## 미래 방향

- **교차 도메인 전이**: SaaS, 핀테크, 헬스케어에서 만든 합성 데이터를 활용해 *범용 컴플라이언스 LLM*을 구축하고, 특정 분야는 수백 개 예시만으로 미세조정.  
- **프라이버시 보존 연합 학습**: 합성 데이터와 암호화된 연합 업데이트를 결합해 다수 테넌트가 원본 정책을 노출하지 않고 공유 모델을 학습.  
- **설명 가능한 증거 체인**: 합성 생성 과정을 인과 그래프 엔진과 연결해 답변 조각을 원본 정책 섹션과 자동 매핑, 감사자가 머신 검증 증거 지도를 바로 확인 가능하게 함.

---

## 결론

합성 데이터는 단순히 교묘한 해법이 아니라 **전략적 촉진제**이며, AI 기반 질문서 자동화를 컴플라이언스 중심 세계에 가져옵니다. 현실적인, 온톨로지에 정렬된 답변 코퍼스를 생성함으로써 조직은 기밀 정책 노출 없이 강력한 LLM을 훈련하고, 응답 속도를 가속화하며, 엄격한 감사 추적을 유지하면서도 변하는 규제 표준을 앞서 나갈 수 있습니다. Procurize와 같은 특화 플랫폼과 결합될 때, 합성 데이터 기반 AI는 전통적으로 수동적인 병목 현상을 지속적으로 최적화되는 **컴플라이언스 엔진**으로 변모시킵니다.

---

## <span class='highlight-content'>관련 내용</span>

- [NIST Special Publication 800‑53 Revision 5 – 연방 정보 시스템 보안 및 프라이버시 통제](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)  
- OpenAI Cookbook: LoRA 로 LLM 미세조정  
- [ISO/IEC 27001:2022 – 정보 보안 관리 시스템 요구사항](https://www.iso.org/standard/82875.html)  
- Google Cloud AI‑Ready Synthetic Data Documentation