
# Sintetički podaci pogonjeni AI za automatizaciju sigurnosnih upitnika

*U eri generativne AI, najveća prepreka skaliranju automatizacije upitnika je **podaci** – ne računarska snaga. Stvarne sigurnosne politike su zaštićene, bogato formatirane i rijetko označene za strojno učenje. Sintetički podaci nude privatnost‑čuvajući prečac, omogućujući organizacijama da treniraju, validiraju i kontinuirano poboljšavaju LLM‑ove koji mogu u stvarnom vremenu sastaviti točne, revizorske odgovore na zahtjev.*

---

## Zašto su sintetički podaci ključni

| Izazov | Tradicionalni pristup | Sintetička alternativa |
|--------|----------------------|--------------------------|
| **Nedostatak podataka** – Malo javno dostupnih setova sigurnosnih upitnika | Ručno prikupljanje, opsežno crno (redakcija), pravni pregled | Programska generacija milijuna realističnih parova pitanja‑odgovora |
| **Rizik od povrede privatnosti** – Stvarni tekstovi politika sadrže tajne | Kompleksni pipelinei anonimizacije | Nema izloženih stvarnih podataka; sintetički tekst oponaša stil i strukturu |
| **Promjena domena** – Propisi se razvijaju brže od ažuriranja modela | Povremeno retransfiranje na svježe ručne podatke | Kontinuirano osvježavanje sintetičkih podataka usklađenog s novim standardima |
| **Evaluacijska pristranost** – Testni setovi odražavaju pristranost treniranja | Previše optimističke metrike | Kontrolirani sintetički testni setovi koji pokrivaju rubne slučajeve |

Uklanjanjem potrebe za unošenjem stvarnih politika u ciklus treniranja, sintetički podaci ne samo da poštuju povjerljivost, već i timovima za usklađenost daju potpunu kontrolu nad *što* i *kako* model djeluje.

---

## Osnovni koncepti sintetičkih podataka za upitnike

### 1. Generiranje na temelju prompta

LLM‑ovi se mogu uputiti da **se ponašaju kao autor politike** i generiraju nacrte odgovora za određeni predložak pitanja. Primjer prompta:

```
You are a compliance officer for a SaaS platform. Write a concise answer (≤150 words) to the following ISO 27001 control:
"Describe how encryption keys are protected at rest and in transit."
```

Pokretanjem ovog prompta kroz katalog kontrola dobiva se **sirovi sintetički korpus**.

### 2. Kontrolirani rječnik i usklađenost s ontologijom

Kako bi generirani tekst bio dosljedan, ubacujemo **sigurnosnu ontologiju** (npr. [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)) koja definira:

- **Vrste entiteta**: `Encryption`, `AccessControl`, `IncidentResponse`
- **Atributi**: `algorithm`, `keyRotationPeriod`, `auditLogRetention`
- **Relacije**: `protects`, `monitoredBy`

Ontologija usmjerava LLM putem **strukturiranih prompta** i **post‑procesiranja** koji zamjenjuju slobodne opise tokenima vezanim uz ontologiju, omogućujući naknadnu validaciju.

### 3. Ubrizgavanje šuma i modeliranje rubnih slučajeva

Odgovori na usklađenost rijetko su savršeni. Sintetički pipeline namjerno dodaje:

- **Manje činjenične netočnosti** (npr. malo stariji interval rotacije ključa) kako bi se model naučio otkrivati greške.  
- **Dvosmislene formulacije** za poboljšanje sposobnosti modela da traži pojašnjenja.  
- **Varijacije jezika** (britanski vs. američki engleski, formalno vs. neformalno) za pripremu na višejezičnost.

---

## End‑to‑End pipeline sintetičkih podataka

Dolje je **Mermaid** dijagram toka koji prikazuje cijeli proces, od ingestiranja kataloga kontrola do implementacije modela u 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"]
```

### Prolaz kroz pipeline

1. **Katalog kontrola** – Preuzimanje najnovijeg popisa stavki iz repozitorija standarda.  
2. **Biblioteka predložaka prompta** – Pohrana ponovljivih obrazaca prompta po kategoriji kontrola.  
3. **Generator sintetičkih podataka (LLM)** – Korištenje baznog LLM‑a (npr. GPT‑4o) za izradu sirovih nacrta odgovora.  
4. **Mapper ontologije** – Usklađivanje slobodnog teksta s sigurnosnom ontologijom, pretvaranje ključnih fraza u kanoničke tokene.  
5. **Engine za šum i rubne slučajeve** – Primjena kontroliranih perturbacija.  
6. **Finalni sintetički skup podataka** – Pohrana u verzioniranom data‑lakeu (npr. Snowflake + Delta Lake).  
7. **Trening / fino podešavanje LLM‑a** – Primjena instruction‑tuning‑a koristeći LoRA ili QLoRA kako bi se održala niska potrošnja računalnih resursa.  
8. **Evaluacijska suite** – Kombinacija sintetičkih testova i malog, kuriranog seta stvarnih QA‑ova za provjeru robusnosti.  
9. **Registracija modela** – Registracija verzije modela s metapodacima (hash trening podataka, verzija standarda).  
10. **Deploy u Procurize AI Engine** – Serviranje putem API‑ja koji se integrira s dashboardom upitnika.  
11. **Živa automatizacija** – Timovi primaju AI‑generirane odgovore, mogu ih pregledati, urediti i odobriti u stvarnom vremenu.

---

## Tehnički detalj: fino podešavanje s LoRA‑om

**Low‑Rank Adaptation (LoRA)** značajno smanjuje memorijski otisak, a zadržava performanse modela:

```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 omogućuje brzu iteraciju – nove sintetičke serije mogu se generirati tjedno i ubaciti bez ponovnog treniranja cijelog modela.

---

## Integracija s Procurize: od modela do UI‑ja

1. **Registracija krajnje točke modela** – Pohrana LoRA‑fino podešenog modela u siguran inference servis (npr. SageMaker, Vertex AI).  
2. **Most API‑ja** – Backend Procurize‑a poziva `POST /v1/generate-answer` s payloadom:

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

3. **Sloj pregleda u stvarnom vremenu** – Nacrt se prikazuje u UI‑ju upitnika kao **uređivački rich‑text**, **istaknuti ontološki tokeni** i **ocjena povjerenja** (0–100).  
4. **Auditorski trag** – Svaki AI‑generirani odgovor pohranjuje se s provenance‑om sintetičkih podataka, verzijom modela i akcijama preglednika, zadovoljavajući regulatorne zahtjeve za dokazivanjem.

---

## Kvantificirane prednosti

| Metrička | Prije sintetičkog AI | Nakon sintetičkog AI |
|----------|----------------------|-----------------------|
| **Prosječno vrijeme odgovora** | 3,2 dana | 5,4 sata |
| **Udio ručnog uređivanja** | 45 % dužine odgovora | 12 % dužine odgovora |
| **Nalazi revizije usklađenosti** | 8 manjih neslaganja po reviziji | 1 manje neslaganje po reviziji |
| **Vrijeme uvođenja novih standarda** | 6 tjedana (ručno mapiranje) | 2 tjedna (sintetičko osvježavanje) |

Studija slučaja iz **Acme Cloud** pokazala je **71 % smanjenje ciklusa upitnika** nakon implementacije LLM‑a treniranog na sintetičkim podacima i integriranog s Procurize‑om.

---

## Najbolje prakse & zamke koje treba izbjegavati

1. **Validirajte mapiranje ontologije** – Automatizirajte provjeru da svaki generirani odgovor sadrži potrebne tokene (npr. `encryptionAlgorithm`, `keyRotationPeriod`).  
2. **Čovjek u petlji (HITL)** – Održavajte obavezni korak preglednika za kontrole visokog rizika (npr. obavijesti o proboju podataka).  
3. **Verzioniranje sintetičkih podataka** – Pohranite skripte generiranja, početne promptove i nasumične sjeme; to omogućuje reprodukciju i reviziju provenance podataka.  
4. **Praćenje drifta** – Pratite promjene u distribuciji ocjena povjerenja generiranih odgovora; iznenadni pomaci mogu signalizirati zastarjele promptove ili promjene u propisima.  
5. **Izbjegnite pre‑prilagođavanje** – Povremeno ubacite mali set stvarnih, anonimiziranih odgovora kako bi model ostao povezan s realnošću.

---

## Smjerovi za budućnost

- **Transfer između domena:** Iskoristite sintetičke skupove podataka iz SaaS‑a, FinTech‑a i zdravstvene skrbi za izgradnju *univerzalnog LLM‑a usklađenosti* koji se može fino podešavati za nišne domene s nekoliko stotina primjera.  
- **Privatnost‑čuvajuće federativno podešavanje:** Kombinirajte sintetičke podatke s enkriptiranim federativnim ažuriranjima od više zakupnika, omogućujući zajednički model bez izlaganja bilo kakvih sirovih politika.  
- **Objašnjive lance dokaza:** Spojite generiranje sintetičkih podataka s motorom uzročnih grafova koji automatski povezuje fragmente odgovora s izvornim odlomcima politika, pružajući revizorima strojno‑verificiranu mapu dokaza.

---

## Zaključak

Sintetički podaci nisu samo pametan trik; oni su **strategijski omogućivač** koji donosi AI‑pogonenu automatizaciju upitnika u svijet usmjeren na usklađenost. Generiranjem realističnih, ontologijom usklađenih korpusa, organizacije mogu trenirati moćne LLM‑ove bez rizika od otkrivanja povjerljivih politika, ubrzati vrijeme odgovora i održavati rigorozan audit‑trail – sve dok ostaju ispred stalno mijenjajućih regulatornih standarda. U kombinaciji s platformom poput Procurize, AI pogonjen sintetičkim podacima pretvara tradicionalno ručni usko grl u kontinuirani, samopoboljšavajući engine usklađenosti.

---

## <span class='highlight-content'>Pogledajte</span> također

- [NIST Special Publication 800‑53 Revision 5 – Security and Privacy Controls for Federal Information Systems](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)  
- OpenAI Cookbook: Fine‑tuning LLMs with LoRA  
- [ISO/IEC 27001:2022 – Information Security Management Systems Requirements](https://www.iso.org/standard/82875.html)  
- Google Cloud AI‑Ready Synthetic Data Documentation