
# Privatnost‑Zaštitno Federativno Učenje Potiče Automatizaciju Sigurnosnih Upitnika

U brzo‑mijenjivom SaaS ekosustavu, **sigurnosni upitnici** postali su de‑facto ulazna točka za nove ugovore. Prodavači provode bezbroj sati kopajući kroz repozitorije politika, verzionirajući dokaze i ručno tipkajući odgovore. Dok platforme poput Procurize već automatiziraju velike dijelove ovog radnog toka pomoću centralizirane AI, sve veća briga je **privatnost podataka** — osobito kada više organizacija dijeli isti AI model.

Uvedimo **privatnost‑zaštitno federativno učenje (FL)**. Trening zajedničkog modela na uređaju uz zadržavanje sirovih podataka lokalno omogućuje zajednici SaaS pružatelja da udruži znanje bez ikada otkrivanja povjerljivih dokumenata politika, revizijskih izvješća ili internih procjena rizika. Ovaj članak detaljno istražuje kako se FL može primijeniti na automatizaciju sigurnosnih upitnika, tehnički plan i konkretne koristi za timove usklađenosti, rizika i proizvoda.

---

## 1. Razumijevanje Federativnog Učenja u Kontekstu Usklađenosti  

Tradicionalni strojevi za učenje slijede **centralizirani** model:

1. Prikupljanje sirovih podataka od svakog klijenta.  
2. Pohrana u središnje jezero podataka.  
3. Trening monolitnog modela.  

U okruženjima s visokim zahtjevima za usklađenost, korak 1 predstavlja crvenu zastavu. Politike, **[SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)** izvješća i **[GDPR](https://gdpr.eu/)** procjene utjecaja slobodna su **intellectual property** koju organizacije ne žele slati izvan vlastitih vatrozida.

**Federativno učenje** mijenja scenarij:

| Centralizirano ML | Federativno Učenje |
|-------------------|--------------------|
| Podaci napuštaju izvor | Podaci nikada ne napuštaju izvor |
| Jedinstvena točka otkaza | Distribuirani, otporni trening |
| Ažuriranja modela su monolitna | Ažuriranja modela se sigurno agregiraju |
| Teško je primijeniti propise o lokalnosti podataka | Prirodno poštuje regulative o lokalnosti podataka |

Za sigurnosne upitnike, svaka sudjelujuća tvrtka pokreće **lokalni trener** koji učitava najnovije odgovore, isječke dokaza i kontekstualne metapodatke u *mini‑model* u svom okruženju. Lokalni treneri izračunavaju **gradijente** (ili delta težine modela) i enkriptiraju ih. **Koordinator server** agregira enkriptirane ažuriranja, primjenjuje diferencijalni privatni šum i šalje ažurirani globalni model natrag sudionicima. Nijedan sirovi sadržaj upitnika nikada ne prolazi mrežom.

---

## 2. Zašto je Privatnost Bitna za Automatizaciju Upitnika  

| Rizik | Tradicionalna Centralizirana AI | AI Temeljena na FL |
|------|--------------------------------|--------------------|
| **Propuh podataka** – slučajno otkrivanje vlasničkih kontrola | Visok – svi podaci su u jednoj repozitoriji | Nizak – sirovi podaci ostaju lokalno |
| **Regulatorni sukob** – zabrane prekograničnog prenosa podataka (npr. **[GDPR](https://gdpr.eu/)**, **[CCPA](https://oag.ca.gov/privacy/ccpa)**) | Potencijalna neusklađenost | Ugrađena usklađenost s lokalnošću podataka |
| **Vendor lock‑in** – ovisnost o jedinstvenom AI pružatelju | Visok | Nizak – model je vođen zajednicom |
| **Pojačavanje pristranosti** – ograničena raznolikost podataka | Vjerojatno | Poboljšano raznolikim, decentraliziranim podacima |

Kada SaaS prodavač učita **SOC 2** reviziju na platformu treće strane, sama revizija može se smatrati **osjetljivim osobnim podacima** prema **GDPR** ako sadrži informacije o zaposlenicima. FL eliminira to izlaganje, čineći ga **privacy‑by‑design** rješenjem koje se podudara s modernim zakonima o zaštiti podataka.

---

## 3. Visokorazinski Arhitekturni Prikaz  

Dolje je pojednostavljen prikaz sustava automatizacije upitnika poduprte federativnim učenjem. Svi nazivi čvorova su stavljeni u dvostruke navodnike, kako zahtijeva sintaksa Mermaid.

```mermaid
graph LR
    subgraph "Tvrtka sudionik"
        A["Lokalna pohrana podataka (Politike, Dokazi, Prijašnji odgovori)"]
        B["Trener na licu mjesta"]
        C["Modul za enkripciju gradijenata"]
    end
    subgraph "Agregacijski Server"
        D["Sigurni agregator (Homomorfna enkripcija)"]
        E["Motor diferencijalne privatnosti"]
        F["Registar globalnog modela"]
    end
    subgraph "Korisnik"
        G["Procurize UI (Preporuke odgovora)"]
        H["Upravljačka ploča usklađenosti"]
    end

    A --> B --> C --> D
    D --> E --> F
    F --> G
    F --> H
    G -->|Povratna informacija korisnika| B
    H -->|Ažuriranja politika| B
```

**Ključne komponente:**

* **Lokalna pohrana podataka** – postojeći repozitorij politika, verzioniranih dokaza i povijesnih odgovora na upitnike.  
* **Trener na licu mjesta** – lagana PyTorch/TensorFlow rutina koja fino podešava globalni model na lokalnim podacima.  
* **Modul za enkripciju gradijenata** – koristi **homomorfnu enkripciju (HE)** ili **sigurni višestranični izračun (SMPC)** za zaštitu ažuriranja modela.  
* **Sigurni agregator** – prima enkriptirane gradijente od svih sudionika, agregira ih bez dekripcije.  
* **Motor diferencijalne privatnosti** – ubacuje kalibrirani šum kako bi se osiguralo da se podaci jednog klijenta ne mogu rekonstruirati iz globalnog modela.  
* **Registar globalnog modela** – pohranjuje najnoviju verziju zajedničkog modela, koju preuzimaju svi sudionici.  
* **Procurize UI** – konzumira model za generiranje prijedloga odgovora, poveznica na dokaze i ocjena povjerenja u stvarnom vremenu.  
* **Upravljačka ploča usklađenosti** – prikazuje revizijske putanje, povijest verzija modela i certifikate privatnosti.

---

## 4. Opipljive Prednosti  

### 4.1 Brže Generiranje Odgovora  

Zahvaljujući tome što globalni model već poznaje obrasce iz desetaka tvrtki, **latencija inferencije pada na <200 ms** za većinu polja upitnika. Timovi više ne čekaju minute na poziv server‑side AI; model radi lokalno ili u laganom edge kontejneru.

### 4.2 Veća Točnost Kroz Raznolikost  

Svaki sudionik doprinosi *specifičnim nijansama domena* (npr. jedinstveni postupci upravljanja šifriranim ključevima). Agregirani model hvata ove nijanse, pružajući **poboljšanje točnosti odgovora od 12‑18 %** u odnosu na model treniran samo na ograničenom skupu podataka.

### 4.3 Kontinuirana Usklađenost  

Kad se objavi nova regulativa (npr. **[EU AI Act Compliance](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai)**), sudionici jednostavno učitaju povezane promjene politika u svoj lokalni repozitorij. Sljedeća FL iteracija automatski širi regulativno razumijevanje cijeloj mreži, **osiguravajući da svi partneri ostanu ažurirani** bez ručnog pretreniranja modela.

### 4​.4 Ušteda Troškova  

Trening velikog LLM‑a centralno može koštati **10 000–30 000 $ mjesečno** u računalnim resursima. U federativnoj postavci, svaki sudionik treba jedinstveni CPU/GPU (npr. jedan NVIDIA T4) za lokalno fino podešavanje, što rezultira **uštedom do 80 %** za konsorcij.

---

## 5. Vodič Korak‑po‑Korak za Implementaciju  

| Korak | Akcija | Alati i Biblioteke |
|------|--------|--------------------|
| **1** | **Formirajte FL konsorcij** – potpišite ugovor o dijeljenju podataka koji definira enkripcijske standarde, učestalost agregacije i uvjete izlaska. | Pravne predloške, DLT za nepromjenjive revizijske zapise. |
| **2** | **Postavite lokalni trener** – kontejnerizirajte trener koristeći Docker, izložite jednostavan REST endpoint za slanje gradijenata. | PyTorch Lightning, FastAPI, Docker. |
| **3** | **Integrirajte enkripciju** – obavijte gradijente s **Microsoft SEAL** (HE) ili **TF Encrypted** (SMPC). | Microsoft SEAL, TenSEAL, CrypTen. |
| **4** | **Pokrenite agregator** – postavite Kubernetes servis s **Federated Learning Frameworkom** (npr. **Flower**, **TensorFlow Federated**). Omogućite TLS‑mutual autentikaciju. | Flower, TF‑Federated, Istio za mTLS. |
| **5** | **Primijenite diferencijalnu privatnost** – odaberite proračun privatnosti (ε) koji balansira korisnost i zakonsku usklađenost. | Opacus (PyTorch), TensorFlow Privacy. |
| **6** | **Objavite globalni model** – pohranite model u potpisani registar artefakata (npr. **JFrog Artifactory**). | Cosign, Notary v2. |
| **7** | **Iskoristite model** – usmjerite Procurize‑ov motor za prijedloge na endpoint modela. Omogućite **real‑time inference** putem ONNX Runtime za podršku više jezika. | ONNX Runtime, HuggingFace Transformers. |
| **8** | **Nadzor i iteracije** – koristite nadzornu ploču za vizualizaciju drift‑a modela, potrošnje privatnog budžeta i metrika doprinosa. | Grafana, Prometheus, MLflow. |

### 5.1 Primjer Koda – Lokalni Trener (Python)

```python
import torch
from torch import nn, optim
from flwr import client, server
from crypten import encrypt

class QnAHead(nn.Module):
    def __init__(self, base_model):
        super().__init__()
        self.base = base_model
        self.head = nn.Linear(base_model.hidden_size, 1)  # predviđa score povjerenja

    def forward(self, x):
        return self.head(self.base(x))

def train_local(model, dataloader, epochs=1):
    optimizer = optim.Adam(model.parameters(), lr=5e-5)
    loss_fn = nn.BCEWithLogitsLoss()
    model.train()
    for _ in range(epochs):
        for batch in dataloader:
            inputs, labels = batch["text"], batch["label"]
            optimizer.zero_grad()
            logits = model(inputs)
            loss = loss_fn(logits.squeeze(), labels.float())
            loss.backward()
            optimizer.step()
    return model.state_dict()

class FLClient(client.NumPyClient):
    def get_parameters(self):
        return [val.cpu().numpy() for val in model.parameters()]

    def fit(self, parameters, config):
        # učitaj primljene globalne težine
        for val, param in zip(parameters, model.parameters()):
            param.data = torch.tensor(val)
        # lokalni trening
        new_weights = train_local(model, local_loader)
        # enkripta težine prije slanja
        encrypted = encrypt(new_weights)  # homomorfna enkripcija
        return [encrypted.cpu().numpy()], len(local_loader.dataset), {}

# Instanciraj model i pokreni klijenta
base = torch.hub.load('huggingface/pytorch-transformers', 'model', 'distilbert-base-uncased')
model = QnAHead(base)
fl_client = FLClient()
client.start_numpy_client(server_address="fl.aggregator.example:8080", client=fl_client)
```

> **Napomena:** Ovaj isječak prikazuje osnovnu ideju — treniranje lokalno, enkripcija ažuriranja i slanje na agregator. Produkcijska implementacija treba uključivati upravljanje ključevima, kvantizaciju batch‑ova i klipiranje gradijenata.

---

## 6. Izazovi i Ublažavanje  

| Izazov | Utjecaj | Ublažavanje |
|--------|----------|--------------|
| **Komunikacijski overhead** – slanje enkriptiranih gradijenata može opteretiti propusnost. | Sporiji ciklusi agregacije. | Koristite **rijetke ažuriranja**, **kvantizaciju gradijenata** i planirajte okvire tijekom perioda niske prometnosti. |
| **Heterogenost modela** – tvrtke imaju različite hardverske kapacitete. | Neki sudionici zaostaju. | Primijenite **asinkrono FL** (npr. FedAvg s zastarjelim ažuriranjima) i dozvolite **pruning na klijentu**. |
| **Ispunjavanje budžeta privatnosti** – diferencijalna privatnost troši ε kroz vrijeme. | Pada korisnost nakon mnogo iteracija. | Implementirajte **praćenje privatnosti** i **resetiranje modela** nakon definirane količine epoha, ponovo inicijalizirajući težine. |
| **Regulativna nejasnoća** – neke jurisdikcije nemaju jasna pravila o FL. | Potencijalni pravni rizik. | Provedite **procjene utjecaja na privatnost (PIA)** i osigurajte **certifikate** (npr. ISO 27701) za sam FL pipeline. |

---

## 7. Primjer iz Prakse: „SecureCloud Konsorcij“

Skupina od pet srednjih SaaS pružatelja — **DataGuard, CloudNova, VaultShift, CipherOps i ShieldSync** — udružila je svoje setove podataka upitnika (prosječno 2 300 odgovornih stavki po tvrtki). Tijekom **12‑tjednog pilot-projekta**, zabilježili su:

* **Vrijeme obrade** za nove sigurnosne upitnike smanjeno s **8 dana** na **1,5 dana**.  
* **Točnost odgovora** (mjereno protiv auditiranih odgovora) porasla s **84 %** na **95 %**.  
* **Incidenti izlaganja podataka** ostali su **nul**; to je potvrdila treća strana testiranje penetracije FL pipelinea.  
* **Ušteda troškova**: zajednička potrošnja računalnih resursa pala je za **18 k $** po kvartalu.

Konsorcij je također iskoristio FL za **automatsko generiranje matrice usklađenosti** koja je istaknula propuste u regulativi, što je svakoj tvrtki omogućilo da proaktivno otkloni slabosti prije klijentske revizije.

---

## 8. Pogled u Budućnost: FL i Veliki Jezični Modeli  

Sljedeća evolucija kombinirat će **federativno učenje s instruktivno podešenim LLM‑ovima** (npr. privatni GPT‑4‑klasni model). Ovaj hibrid može:

* Izvršavati **kontekstualno generiranje odgovora** koji referencira složene isječke politika.  
* Nuditi **multijezičnu podršku** bez slanja jezično‑specifičnih podataka na centralni server.  
* Omogućiti **few‑shot učenje** iz nišne domene partnera (npr. specifične AML kontrole u fintechu).

Ključ će biti **efikasno dijeljenje parametara** (npr. LoRA adapteri) kako bi komunikacija ostala lagana, a istovremeno zadržala moć LLM‑ova.

---

## 9. Zaključak  

Privatnost‑zaštitno federativno učenje transformira automatizaciju sigurnosnih upitnika iz **jednosmjernog alata** u **zajedničku inteligenciju** koja poštuje suverenost podataka, povećava kvalitetu odgovora i smanjuje operativne troškove. Implementacijom FL, SaaS prodavači mogu:

1. **Zaštititi** povjerljive docimente politika od slučajnog otkrivanja.  
2. **Suradnjom** kroz industriju stvoriti bogatiji model usklađenosti.  
3. **Pripremiti se** za buduće regulative i napredne AI tehnologije.

Za organizacije koje već koriste Procurize, ubacivanje FL sloja prirodan je sljedeći korak — pretvarajući platformu u **raspršeni, privatnost‑prvi AI hub** koji skalira s rastućom složenošću globalne usklađenosti.

---

## Vidi Također  

* [Federativno učenje: Pristup privatnosti‑prvom AI – Google AI Blog](https://ai.googleblog.com/2023/04/federated-learning-privacy-first.html)  
* [ISO/IEC 27001:2022 – Sustavi upravljanja sigurnošću informacija – Službeni standard](https://www.iso.org/standard/73906.html)  
* [Homomorfna enkripcija za sigurnu višestruku obradu podataka – Microsoft SEAL Dokumentacija](https://github.com/microsoft/SEAL)