
# Sintetinių duomenų varoma dirbtinio intelekto saugumo klausimynų automatizacijai

*Generatyviojo DI laikais didžiausia kliūtis, trukdanti mastuoti klausimynų automatizaciją, yra **duomenys** – ne skaičiavimai. Tikrosios saugumo politikos yra apsaugotos, gausiai formatuotos ir retai žymimos mašininio mokymosi tikslais. Sintetiniai duomenys siūlo privatumo išsaugantį šaukinį, leidžiantį organizacijoms mokyti, verifikuoti ir nuolat tobulinti LLM, kurie galėtų pagal pareikalavimą parengti tikslius, audituojamus atsakymus.*

---

## Kodėl sintetiniai duomenys yra trūkstamas ryšys

| Iššūkis | Tradicinis požiūris | Sintetinis alternatyva |
|-----------|----------------------|-----------------------|
| **Duomenų stygius** – Mažai viešų saugumo klausimynų duomenų | Rankinis rinkimas, intensyvus redagavimas, teisinė peržiūra | Programinė milijonų realistiškų atsakymų porų generacija |
| **Privatumo rizika** – Tikrosios politikos tekstas turi paslaptis | Sudėtingi anonimizacijos procesai | Jokių realių duomenų neatskleidžiama; sintetiniai tekstai imituoja stilių ir struktūrą |
| **Srities driftas** – Reguliavimas keičiasi greičiau nei modelio atnaujinimai | Periodinis pakartotinis mokymas su šviežiais rankiniais duomenimis | Nuolatinis sintetinės duomenų atnaujinimas, suderintas su naujais standartais |
| **Vertinimo šališkumas** – Testų rinkiniai atspindi mokymo šališkumą | Pernelyg optimistinės metrikos | Valdomi sintetiniai testų rinkiniai, apimantys kraštutinius atvejus |

Išskyrus poreikį tepti neapdorotą politiką į mokymo ciklą, sintetiniai duomenys ne tik gerbia konfidencialumą, bet ir suteikia atitikties komandoms visišką kontrolę, kas **kas** ir **kaip** modelis elgsis.

---

## Pagrindinės sąvokos, susijusios su sintetiniais klausimynų duomenimis

### 1. Prompt‑Based Generation

LLM galima nurodyti **veikti kaip politikos autorius** ir generuoti atsakymų juodraščius pagal pateiktą klausimo šabloną. Pavyzdinis promptas:

```
Jūs esate atitikties pareigūnas SaaS platformoje. Parašykite glaustą atsakymą (≤150 žodžių) į šią ISO 27001 kontrolę:
"Apibūdinkite, kaip šifravimo raktai apsaugomi ramybės ir perdavimo metu."
```

Vykdant šį promptą per visą kontrolės katalogą gaunamas **žali sintetiniai duomenų rinkiniai**.

### 2. Kontroliuojama žodynų ir ontologijos programinė įranga

Norint išlaikyti konsistenciją, įterpiame **saugumo ontologiją** (pvz., [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)), kuri apibrėžia:

- **Objektų tipai**: `Encryption`, `AccessControl`, `IncidentResponse`
- **Atributai**: `algorithm`, `keyRotationPeriod`, `auditLogRetention`
- **Santykiai**: `protects`, `monitoredBy`

Ontologija vadovauja LLM per **strukturizuotus promptus** ir **post‑processing**, keičiančius laisvos formos aprašymus į ontologijos pagrindu sukurtus žodžius, leidžiančius vėlesnį validavimą.

### 3. Triukšmo įterpimas ir kraštutinių atvejų modeliavimas

Atitikties atsakymai retai būna tobuli. Sintetiniai procesai tyčia prideda:

- **Nedideles faktines netikslumus** (pvz., šiek tiek senesnį raktų atnaujinimo intervalą), siekiant mokyti modelį klaidų aptikimui.
- **Neaiškią formuluotę**, kad modelis geriau prašytų papildomos informacijos.
- **Kalbos variacijas** (britų vs. amerikietišką anglų, formalų vs. neformų toną) siekiant daugiakalbės pasirengimo.

---

## End‑to‑End sintetinės duomenų grandinė

Žemiau pateiktas **Mermaid** diagramos srautas, apimantis visą procesą nuo kontrolės katalogo įsisavinimo iki modelio diegimo „Procurize“ platformoje.

```mermaid
flowchart TD
    A["Kontrolės katalogas (ISO, SOC, NIST)"] --> B["Promptų šablonų biblioteka"]
    B --> C["LLM sintetiniai generatoriai"]
    C --> D["Žali sintetiniai atsakymai"]
    D --> E["Ontologijos mapperis"]
    E --> F["Struktūrizuoti sintetiniai įrašai"]
    F --> G["Triukšmo ir kraštutinių atvejų variklis"]
    G --> H["Galutinis sintetinis duomenų rinkinys"]
    H --> I["Mokyti / Smulkiomis korekcijomis derinti LLM"]
    I --> J["Vertinimo rinkinys (syntetiniai + realūs QA)"]
    J --> K["Modelio registras"]
    K --> L["Diegti į Procurize AI variklį"]
    L --> M["Gija klausimynų automatizacija"]
```

### Grandinės žingsniai

1. **Kontrolės katalogas** – Parsisiųsti naujausią klausimynų elementų sąrašą iš standartų saugyklų.  
2. **Promptų šablonų biblioteka** – Saugo pakartotinai naudojamus promptų modelius pagal kontrolės kategoriją.  
3. **LLM sintetiniai generatoriai** – Naudoja bazinį LLM (pvz., GPT‑4o), kad sukurtų žalius atsakymų juodraščius.  
4. **Ontologijos mapperis** – Susieja laisvos formos tekstą su saugumo ontologija, konvertuojant svarbias frazes į kanoninius tokenus.  
5. **Triukšmo ir kraštutinių atvejų variklis** – Pridėti kontroliuojamus perturbacijas.  
6. **Galutinis sintetinis duomenų rinkinys** – Saugojamas versijavimo duomenų ežere (pvz., Snowflake + Delta Lake).  
7. **Mokyti / Smulkiomis korekcijomis derinti LLM** – Taikoma instrukcinė mokymo strategija naudojant LoRA arba QLoRA, kad būtų ekonomiška.  
8. **Vertinimo rinkinys** – Derina sintetiniai testai su nedideliu, kruopščiai atrinktu realiu QA rinkiniu, siekiant patikimumo.  
9. **Modelio registras** – Registruoja modelio versiją su metaduomenimis (mokymo duomenų maiša, atitikties versija).  
10. **Diegti į Procurize AI variklį** – Teikia API, integruojamą į klausimynų skydelį.  
11. **Gija klausimynų automatizacija** – Komandos gauna DI‑sugeneruotus atsakymus, gali peržiūrėti, redaguoti ir patvirtinti realiu laiku.

---

## Techninė išsamumas: Derinimas su LoRA

**Low‑Rank Adaptation (LoRA)** ženkliai sumažina atminties poreikį, išlaikant modelio našumą:

```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,                # rangas
    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)

# Paruoškite sintetinį duomenų rinkinį
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 leidžia greitai iteruoti – naujus sintetinius paketus galima generuoti kas savaitę ir įterpti be viso modelio perkrovimo.

---

## Integravimas su Procurize: Nuo modelio iki vartotojo sąsajos

1. **Modelio galutinio taško registravimas** – Saugojimas saugiame inferencijos serveryje (pvz., SageMaker, Vertex AI).  
2. **API tiltas** – „Procurize“ backendas siunčia `POST /v1/generate-answer` su duomenimis:

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

3. **Tikro laiko peržiūros sluoksnis** – Juodraštis atsiranda klausimynų UI kaip **redaguojamas rich‑text**, **pažymėti ontologijos tokenai** ir **pasitikėjimo balas** (0–100).  
4. **Auditų takas** – Kiekvienas DI‑sugeneruotas atsakymas saugomas su sintetinės duomenų kilmės nuoroda, modelio versija ir peržiūros veiksmais, atitinkančiais reguliavimo įrodymų reikalavimus.

---

## Kiekybiniai privalumai

| Metriška | Prieš sintetinį DI | Po sintetinės DI |
|----------|--------------------|------------------|
| **Vidutinis atsakymo laikas** | 3,2 dienos | 5,4 valandos |
| **Redagavimo pastangų dalis** | 45 % atsakymo ilgio | 12 % atsakymo ilgio |
| **Audito neatitikimų skaičius** | 8 nedidelių neatitikimų per auditą | 1 nedidelis neatitikimas per auditą |
| **Naujų standartų įdiegimo laikas** | 6 savaitės (rankinis susiejimas) | 2 savaitės (sintetinė atnaujinimo procedūra) |

Tikras atvejis **Acme Cloud** parodė **71 % sumažėjimą** klausimynų ciklo laike po sintetiniais duomenimis apmokyto LLM diegimo su Procurize.

---

## Geriausios praktikos ir klaidų vengimas

1. **Patikrinkite ontologijos susiejimą** – Automatizuokite patikrinimą, ar kiekvienas sugeneruotas atsakymas turi privalomus tokenus (pvz., `encryptionAlgorithm`, `keyRotationPeriod`).  
2. **Žmogaus įsikišimas (HITL)** – Privalomas peržiūros žingsnis aukštos rizikos kontrolėms (pvz., duomenų pažeidimo pranešimų).  
3. **Versijavimas sintetinės duomenų** – Saugojimas generavimo skriptų, pradinių promptų ir atsitiktinių sėklų; tai leidžia atkurti duomenis audito tikslais.  
4. **Stebėkite drifta** – Analizuokite generuojamų pasitikėjimo balų skirstinius; staigus svyravimas gali rodyti pasenusius promptus arba reguliavimo atnaujinimus.  
5. **Apsaugokite nuo perviršio** – Periodiškai įdėkite nedidelį rinkinį realių, anonimizuotų atsakymų, kad modelis išliktų pagrįstas faktu.

---

## Ateities kryptys

- **Kryžminio domeno perkėlimas:** Naudoti sintetinį duomenų rinkinį iš SaaS, FinTech ir Sveikatos sektorių, kad sukurtume *universalią atitikties LLM*, kurią galima pritaikyti specifiniams nišiniams atvejams su keliomis šimtais pavyzdžių.  
- **Privatumo išsaugantis federacinis mokymas:** Kombinuoti sintetinį duomenų rinkinį su šifruotu federaciniu modelio atnaujinimu iš kelių nuomininkų, suteikiant bendrą modelį be jokių realių politikų atskleidimo.  
- **Paaiškinamų įrodymų grandinės:** Susieti sintetinę generaciją su priežastiniu grafų varikliu, automatiškai susiejant atsakymo fragmentus su šaltinio politikos dalimis, taip suteikiant auditoriams mašininiu būdu patvirtintą įrodymų žemėlapį.

---

## Išvada

Sintetiniai duomenys yra ne tik protingas triukas; tai **strateginis lemiantis veiksnys**, leidžiantis DI‑sukurtą klausimynų automatizaciją įgyvendinti atitikties orientuotoje aplinkoje. Generuojant realistiškus, ontologijai pritaikytus atsakymų korpusus, organizacijos gali mokyti galingus LLM nepavojingai – neatskleidžiant konfidencialios politikos, pagreitinti reakcinio laiko, išlaikyti griežtą audito taką ir nuolat prisitaikyti prie kintančių reguliavimo standartų. Derinus tai su specialiai sukurta platforma, tokia kaip Procurize, sintetiniais duomenimis paremtas DI paverčia tradicinį rankinį butelį į nuolat besitobulinantį atitikties variklį.

---

## <span class='highlight-content'>Žiūrėti</span> taip pat

- [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 Cookbooks: LLM smulkiomis korekcijomis (LoRA) mokymas  
- [ISO/IEC 27001:2022 – Information Security Management Systems Requirements](https://www.iso.org/standard/82875.html)  
- Google Cloud AI‑Ready Synthetic Data Documentation