
# Adaptuotas įrodymų atribucijos variklis, veikiantis grafų neuroniniais tinklais

*Keywords*: saugos klausimynų automatizavimas, grafų neuroninis tinklas, įrodymų atribucija, AI valdomas atitiktis, realaus laiko įrodymų susiejimas, pirkimo rizika, generatyvus AI  

Šiandien, sparčiai besivystančioje SaaS aplinkoje, saugos ir atitikties komandos susiduria su gausiais klausimynais, audito prašymais ir tiekėjų rizikos vertinimais. Rankinis įrodymų rinkimas ne tik sulėtina sandorių ciklus, bet ir sukelia žmogaus klaidas bei audito spragas. **Procurize AI** sprendžia šią problemą naudodama protingų modulių paketą; tarp jų **Adaptuotas įrodymų atribucijos variklis (AEAE)** išsiskiria kaip revoliucingas komponentas, pasitelkiantis **grafų neuroninius tinklus (GNN)**, kad realiu laiku automatiškai susietų tinkamus įrodymus su kiekvienu klausimyno atsakymu.

Šiame straipsnyje aptariami pagrindiniai konceptai, architektūrinis dizainas, įgyvendinimo žingsniai ir matomi AEAE, sukurtų ant GNN technologijos, privalumai. Perskaitykite iki galo, jei norite sužinoti, kaip įdėti šį variklį į savo atitikties platformą, kaip jis susijungia su esamais darbo srautais ir kodėl tai yra būtinas įrankis bet kuriai organizacijai, siekiančiai didinti saugos klausimynų automatizavimą.

---

## 1. Kodėl svarbi įrodymų atribucija

Saugos klausimynai paprastai susideda iš dešimčių klausimų, apimančių kelias struktūras ([SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), [NIST 800‑53](https://www.nist.gov/cyberframework)). Kiekvienas atsakymas turi būti pagrįstas **įrodymu** – politikos dokumentais, audito ataskaitomis, konfigūracijos ekrano nuotraukomis ar žurnalais. Tradicinis darbos srautas atrodo taip:

1. **Klausimas priskiriamas** atitikties savininkui.  
2. **Savininkas ieško** vidinėje saugykloje atitinkamo įrodymo.  
3. **Įrodymas pridedamas** rankiniu būdu, dažnai po kelių bandymų.  
4. **Peržiūrėtojas patvirtina** susiejimą, prideda komentarus ir patvirtina.

Kiekviename žingsnyje atsiranda rizika:

* **Laiko švaistymas** – ieškant per tūkstančius failų.  
* **Nesuderintas susiejimas** – tas pats įrodymas gali būti susietas su skirtingais klausimais, turint skirtingą svarbą.  
* **Audito rizika** – trūkstami ar pasenę įrodymai gali sukelti atitikties trūkumus.

**AI valdomas atribucijos variklis** pašalina šias skausmines vietas, automatiškai pasirenkant, reitinguojant ir pridedant tinkamiausius įrodymus, nuolat mokydamasis iš peržiūrėtojų atsiliepimų.

---

## 2. Grafų neuroniniai tinklai – idealus sprendimas

GNN puikiai mokosi iš **santykinės duomenų** struktūros. Saugos klausimyno kontekste duomenys gali būti modeliuojami kaip **žinių grafas**, kuriame:

| Mazgo tipas | Pavyzdys |
|------------|----------|
| Klausimas | “Ar šifruojate duomenis ramybės būsenoje?” |
| Įrodymas | “AWS KMS politikos PDF”, “S3 šifravimo žurnalo įrašas” |
| Kontrolė | “Šifravimo raktų valdymo procedūra” |
| Struktūra | “SOC 2 – CC6.1” |

Brūkšniai (edges) atspindi santykius: **„reikalauja“**, **„apima“**, **„gautas iš“**, **„patvirtinta“**. Šis grafas natūraliai atspindi daugiaplanės atitikties susiejimo struktūras, todėl GNN tampa puikiu varikliu, galinčiu atspėti paslėptus ryšius.

### 2.1 GNN darbo srauto apžvalga

```mermaid
graph TD
    Q["Klausimo mazgas"] -->|reikalauja| C["Kontrolės mazgas"]
    C -->|palaikoma| E["Įrodymo mazgas"]
    E -->|patvirtinta| R["Peržiūros mazgas"]
    R -->|grįžtamasis ryšys| G["GNN Modelis"]
    G -->|atnaujina| E
    G -->|teikia| A["Atribucijos balai"]
```

* **Q → C** – Klausimas susijęs su viena ar keliais kontrolės elementais.  
* **C → E** – Kontrolės elementus palaiko įrodymo objektai, jau saugomi saugykloje.  
* **R → G** – Peržiūrėtojo atsiliepimas (priimta/atmesta) grąžinamas į GNN, kad modelis nuolat mokytųsi.  
* **G → A** – Modelis išduoda pasitikėjimo balą kiekvienam įrodymo‑klausimo porai, kurį UI rodo automatinio priskyrimo metu.

---

## 3. Detali AEAE architektūra

Žemiau pateikiamas komponentų vaizdas, parodo, kaip gamybos lygio AEAE integruojamas su **Procurize AI**.

```mermaid
graph LR
    subgraph Priekinė dalis
        UI["Vartotojo sąsaja"]
        Chat["Pokalbių AI treneris"]
    end

    subgraph Galinė dalis
        API["REST / gRPC API"]
        Scheduler["Užduočių planuotojas"]
        GNN["Grafų neuroninio tinklo paslauga"]
        KG["Žinių grafo saugykla (Neo4j/JanusGraph)"]
        Repo["Dokumentų saugykla (S3, Azure Blob)"]
        Logs["Auditų žurnalo paslauga"]
    end

    UI --> API
    Chat --> API
    API --> Scheduler
    Scheduler --> GNN
    GNN --> KG
    KG --> Repo
    GNN --> Logs
    Scheduler --> Logs
```

### 3.1 Pagrindiniai moduliai

| Modulis | Atsakomybė |
|---------|------------|
| **Žinių grafo saugykla** | Išsaugo mazgus ir brūkšnius klausimams, kontrolėms, įrodymams, struktūroms ir peržiūrėtojams. |
| **GNN paslauga** | Atlieka inferenciją grafui, generuoja atribucijos balus ir atnaujina brūkšnių svorius pagal atsiliepimus. |
| **Užduočių planuotojas** | Aktyvuoja atribucijos darbus, kai įkeliama nauja klausimynų byla arba kai keičiasi įrodymai. |
| **Dokumentų saugykla** | Laiko neapdorotus įrodymo failus; metaduomenys indeksuojami grafui greitai surasti. |
| **Auditų žurnalo paslauga** | Registruoja kiekvieną automatinį priskyrimą ir peržiūrėtojo veiksmą dėl visos pėdsakų atskaitomybės. |
| **Pokalbių AI treneris** | Veda naudotojus per atsakymo procesą, realiu laiku rodo rekomenduojamus įrodymus. |

### 3.2 Duomenų srautas

1. **Įkėlimas** – Naujas klausimynų JSON yra analizuojamas; kiekvienas klausimas tampa grafo mazgu.  
2. **Papildymas** – Esamos kontrolės ir struktūros priskiriamos automatiškai pagal iš anksto nustatytus šablonus.  
3. **Inferencija** – Planavimo moduliai kviečia GNN paslaugą; modelis įvertina kiekvieną įrodymo mazgą prieš kiekvieną klausimo mazgą.  
4. **Priskyrimas** – Aukščiausios N įrodymo elementų (konfigūracija) automatiškai priskiriamos klausimui. UI rodo pasitikėjimo ženklelį (pvz., 92 %).  
5. **Žmogaus patikrinimas** – Peržiūrėtojas gali priimti, atmesti arba perskirstyti – šis veiksmas atnaujina brūkšnį grafą.  
6. **Nuolatinis mokymasis** – GNN retreniruojamas kas naktį naudojant sukauptus atsiliepimus, gerinant ateities prognozes.

---

## 4. GNN modelio kūrimas – žingsnis po žingsnio

### 4.1 Duomenų paruošimas

| Šaltinis | Išgavimo metodas |
|----------|-------------------|
| Klausimynų JSON | JSON parser → Klausimo mazgai |
| Politikos dokumentai (PDF/Markdown) | OCR + NLP → Įrodymo mazgai |
| Kontrolės katalogas | CSV importas → Kontrolės mazgai |
| Peržiūrėtojų veiksmai | Įvykių srautas (Kafka) → Brūkšnių svorių atnaujinimai |

Visi objektai normalizuojami ir suteikiami **savybių vektoriai**:

* **Klausimo savybės** – teksto įterpimas (BERT pagrindo), rimtumo lygis, struktūros žyma.  
* **Įrodymo savybės** – dokumento tipas, kūrimo data, svarbiausi raktiniai žodžiai, turinio įterpimas.  
* **Kontrolės savybės** – atitikties reikalavimo ID, brandos lygis.

### 4.2 Grafo konstrukcija

```python
import torch
import torch_geometric as tg

# Pavyzdinis pseudo‑kodas
question_nodes = tg.data.Data(x=question_features, edge_index=[])
control_nodes  = tg.data.Data(x=control_features, edge_index=[])
evidence_nodes = tg.data.Data(x=evidence_features, edge_index=[])

# Susiejame klausimus su kontrolėmis
edge_qc = tg.utils.links.edge_index_from_adj(adj_qc)

# Susiejame kontroles su įrodymais
edge_ce = tg.utils.links.edge_index_from_adj(adj_ce)

# Sudedame viską į vieną heterogenišką grafą
data = tg.data.HeteroData()
data['question'].x = question_features
data['control'].x = control_features
data['evidence'].x = evidence_features
data['question', 'requires', 'control'].edge_index = edge_qc
data['control', 'supported_by', 'evidence'].edge_index = edge_ce
```

### 4.3 Modelio architektūra

**Santykinis grafų konvoliucinės tinklo (RGCN)** modelis puikiai tinka heterogeniams grafams.

```python
class EvidenceAttributionRGCN(torch.nn.Module):
    def __init__(self, hidden_dim, num_relations):
        super().__init__()
        self.rgcn1 = tg.nn.RGCN(in_channels=feature_dim,
                               out_channels=hidden_dim,
                               num_relations=num_relations)
        self.rgcn2 = tg.nn.RGCN(in_channels=hidden_dim,
                               out_channels=hidden_dim,
                               num_relations=num_relations)
        self.classifier = torch.nn.Linear(hidden_dim, 1)  # pasitikėjimo balas

    def forward(self, x_dict, edge_index_dict):
        x = self.rgcn1(x_dict, edge_index_dict)
        x = torch.relu(x)
        x = self.rgcn2(x, edge_index_dict)
        scores = self.classifier(x['question'])  # vėliau susiejame su įrodymų erdve
        return torch.sigmoid(scores)
```

Mokymo tikslas: **binary cross‑entropy** tarp prognozuotų balų ir peržiūrėtojo patvirtintų susiejimų.

### 4.4 Diegimo patarimai

| Aspektas | Rekomendacija |
|----------|----------------|
| **Inferencijos delsos** | Kešuoti neseniai atnaujintus grafų momentinius vaizdus; naudoti ONNX eksportą, kad inferencija truktų < ms. |
| **Modelio retreniruojimas** | Naktiniai pakartotini mokymai GPU serveriuose; saugoti versijuotus tikslinius žingsnius. |
| **Mastelis** | Horizontaliai padalyti žinių grafiką pagal struktūrą; kiekviena dalis turi savo GNN egzempliorių. |
| **Saugumas** | Modelio svoriai šifruojami rakte; inferencijos paslauga veikia izoliuotame VPC, laikantis zero‑trust principų. |

---

## 5. AEAE integracija į Procurize darbo procesą

### 5.1 Vartotojo patirtis

1. **Klausimynų įkėlimas** – Saugos komanda įkelia naują klausimynų failą.  
2. **Automatinis susiejimas** – AEAE iš karto pasiūlo įrodymus kiekvienam atsakymui, šalia rodomas pasitikėjimo ženklelis.  
3. **Vieno paspaudimo priskyrimas** – Vartotojas spustelėja ženklelį, įrodymas automatiškai susiejamas, o sistema registruoja veiksmą.  
4. **Atsiliepimų kilpa** – Jei pasiūlymas netinkamas, peržiūrėtojas nutempia kitą dokumentą ir palieka trumpą komentarą (“Įrodymas pasenęs – naudoti 2025 m. Q3 auditą”). Šis komentaras fiksuojamas kaip **neigiama brūkšnis**, nuo kurios mokosi GNN.  
5. **Audito takas** – Kiekvienas automatizuotas ir rankinis veiksmas žymimas laiku, pasirašomas ir išsaugomas nekeičiamiame ledžeryje (pvz., Hyperledger Fabric).

### 5.2 API kontraktas (supaprastintas)

```http
POST /api/v1/attribution/run
Content-Type: application/json

{
  "questionnaire_id": "qnr-2025-11-07",
  "max_evidence_per_question": 3,
  "retrain": false
}
```

**Atsakymas**

```json
{
  "status": "queued",
  "run_id": "attr-20251107-001"
}
```

Rezultatus galima gauti per `GET /api/v1/attribution/result/{run_id}`.

---

## 6. Poveikio matavimas – KPI skydelis

| KPI | Pradinė (rankinė) | Su AEAE | Patobulinimas |
|-----|--------------------|----------|----------------|
| Vidutinis laikas per klausimą | 7 min | 1 min | 86 % |
| Įrodymų pakartojimo lygis | 32 % | 71 % | +121 % |
| Peržiūrėtojų korekcijų dažnis | 22 % (rankinis) | 5 % (po AI) | -77 % |
| Audito trūkumų dažnis | 4 % | 1,2 % | -70 % |
| Sandorio užbaigimo laikas | 45 dienos | 28 dienos | -38 % |

Gyvai veikianti **Įrodymų atribucijos skydelis** (Grafana) vizualizuoja šiuos rodiklius, leidžiant atitikties vadovams greitai pastebėti trūkumus ir planuoti resursus.

---

## 7. Saugumo ir valdymo aspektai

1. **Duomenų privatumas** – AEAE prieiga tik iki metaduomenų ir šifruotų įrodymų. Jautrus turinys niekada nėra tiesiogiai pateikiamas modeliui; įterpimai (embeddings) generuojami saugioje apskaitoje.  
2. **Paaiškinamumas** – Pasitikėjimo ženklelis rodo pop-up langą su top‑3 priežastimis (pvz., „Raktinis žodis: ‘šifravimas ramybės būsenoje’, dokumento data per 90 dienas, atitinka SOC 2‑CC6.1 kontrolę”). Tai tenkina audito reikalavimus dėl **Explainable AI**.  
3. **Versijų kontrolė** – Kiekvienas įrodymo priskyrimas turi versiją. Jei politika atnaujinama, variklis automatiškai perskaito paveiktus klausimus ir praneša apie pasitikėjimo sumažėjimą.  
4. **Prieigos kontrolė** – Vartotojų vaidmenų politika riboja, kas gali paleisti retreniruojimą arba peržiūrėti modelio logit'us.

---

## 8. Realus sėkmės pavyzdys

**Įmonė**: FinTech SaaS tiekėjas (Series C, 250 darbuotojų)  
**Iššūkis**: Vidutiniškai po 30 valandų per mėnesį atsakinėjo į SOC 2 ir ISO 27001 klausimynus, dažnai praleisdama įrodymus.  
**Įgyvendinimas**: Įdiegta AEAE ant esamos Procurize instancijos. Modelį treniravo naudojant 2 metų istorinius duomenis (≈ 12 k klausimo‑įrodymo porų).  
**Rezultatai (pirmieji 3 mėn.)**:

* **Atsakymo laikas** sumažėjo nuo 48 valandų iki 6 valandų per klausimyną.  
* **Rankinis įrodymų paieškos** sumažėjo 78 %.  
* **Audito trūkumai**, susiję su trūkstamais įrodymais, išnyko.  
* **Pajamų poveikis**: greitesnis sandorių užbaigimas prisidėjo prie $1,2 M papildomų metinių pajamų (ARR).

Įmonė savo sėkmę priskiria „įkyriai paversti atitiktį į konkurencinį pranašumą“.

---

## 9. Praktinis žingsnių planas

1. **Įvertinkite duomenų paruošimą** – sudarykite inventorių visų esamų įrodymų failų, politikų ir kontrolės susiejimų.  
2. **Paleiskite grafo duomenų bazę** – naudokite Neo4j Aura arba valdomą JanusGraph; importuokite mazgus ir brūkšnius per CSV ar ETL procesus.  
3. **Sukurkite bazinį GNN** – klonuokite atviro kodo `rgcn-evidence-attribution` saugyklą, pritaikykite savybių išgavimą savo domenui.  
4. **Paleiskite pilotą** – pasirinkite vieną struktūrą (pvz., SOC 2) ir dalį klausimynų. Įvertinkite pasitikėjimo balus pagal peržiūrėtojų atsiliepimus.  
5. **Iteruokite su atsiliepimais** – įtraukite peržiūrėtojų komentarus, koreguokite brūkšnių svorius, retreniruokite modelį.  
6. **Mastelis** – pridėkite daugiau struktūrų, įgalinkite naktinį retreniruojimą, integruokite į CI/CD pipelines dėl nuolatinio diegimo.  
7. **Stebėkite ir optimizuokite** – naudokite KPI skydelį, nustatykite perspėjimus, kai pasitikėjimo balas krenta žemiau slenksčio (pvz., 70 %).  

---

## 10. Ateities kryptys

* **Kruopštus mokymasis per organizacijas** – kelių įmonių gali kartu mokyti globalų modelį, nesikeisdamos jokių jautrių įrodymų, išlaikant konfidencialumą.  
* **Zero‑knowledge įrodymo integracija** – labai jautriems įrodymams variklis galėtų generuoti zk‑įrodymus, patvirtinančius reikalavimą be turinio atskleidimo.  
* **Multimodaliniai įrodymai** – išplėsti modelį, kad suprastų ekrano nuotraukas, konfigūracijos failus ir net infrastruktūros kaip kodo fragmentus, pasitelkiant vizija‑kalbos transformatorius.  
* **Reguliavimo pokyčių radaras** – susieti AEAE su realaus laiko reguliavimo naujienų srautais; grafas automatiškai prideda naujus kontrolės mazgus, iš karto iškviečiant įrodymų perkėlimą.

---

## 11. Išvada

**Adaptuotas įrodymų atribucijos variklis, veikiantis grafų neuroniniais tinklais** pertvarko darbo, susijusio su įrodymų susiejimu su saugos klausimynų atsakymais, meną į **tikslų, audituojamą ir nuolat tobulėjantį** procesą. Modeliuodamas atitikties ekosistemą kaip žinių grafą ir mokydamasis iš realaus peržiūrėtojo elgesio, organizacijos gauna:

* Greitesnį klausimynų atsakymų sukūrimą, pagreitindamos pardavimų ciklus.  
* Didesnį įrodymų pakartojimo santykį, mažindamos saugyklų pertekliaus ir versijų šlamšto.  
* Stipresnę audito poziciją per skaidrų, paaiškinamą AI.  

Bet kuri SaaS įmonė, naudojanti Procurize AI – arba kūranti savo atitikties platformą – AI‑valdomas atribucijos variklis nebėra „malonus eksperimentas“; tai yra strateginis būtinybės elementas, leidžiantis mastelio saugos ir atitikties automatizavimą verslo greičiu.