
# Federacinio mokymosi duomenų kilmės ir atitikties spartinimas su Formize

Federacinis mokymasis (FL) tapo de facto strategija mokant aukštos kokybės DI modelius, išlaikant neapdorotus duomenis įrenginyje. Šis požiūris sprendžia daugelį privatumo problemų, tačiau taip pat sukelia naują atitikties iššūkių rinkinį: sekti, kurie duomenys prisidėjo prie kurio modelio atnaujinimo, įrodyti, kad sutikimas buvo gautas, ir užtikrinti, kad audito takai būtų nekeičiami tūkstančiuose kraštutinių mazgų.  

Formize, žemo/kodo, be kodo platforma, skirta kurti atitikties darbo srautus, gali užpildyti šią spragą. Pasinaudodama Formize dinamine formų varikliu, versijomis valdomomis duomenų schemomis ir blokų grandinės pagrindu veikiančiais audito takais, organizacijos gali **spartinti** visą kilmės gyvavimo ciklą – nuo duomenų rinkimo krašte iki reguliacinės ataskaitos debesyje – be jokio kodo rašymo.

Žemiau nagrinėjame problemų sritį, apžvelgiame praktinę architektūrą ir žingsnis po žingsnio įgyvendinimą, kurį galima pakartoti per kelias savaites, o ne mėnesius.

---

## Kodėl duomenų kilmė svarbi federaciniame mokyme

| Iššūkis | Įtaka FL projektams |
|-----------|-----------------------|
| **Reguliacinė kontrolė** | [GDPR](https://gdpr.eu/), [CCPA](https://oag.ca.gov/privacy/ccpa) ir sektorių specifiniai reglamentai ([HIPAA](https://www.hhs.gov/hipaa/index.html), FINRA) reikalauja įrodymo, kad asmens duomenys buvo naudojami teisėtai. |
| **Modelio paaiškinamumas** | Auditoriai ir suinteresuotosios šalys reikalauja galimybės atsekti modelio išvestį iki pradinės duomenų dalies. |
| **Incidentų reagavimas** | Duomenų saugumo pažeidimo atveju reikia greitai nustatyti, kurie kraštutiniai įrenginiai prisidėjo prie pažeistų duomenų. |
| **Kryžminis duomenų perdavimas** | Federacinis mokymasis dažnai apima kelias jurisdikcijas; kilmės įrašai supaprastina SCC ir BCR atitiktį. |

Be sisteminio kilmės pagrindo, komandos kreipiasi į ad‑hoc skaičiuokles, rankinius žurnalus arba savus duomenų bazių sprendimus – visi jie linkę į klaidas, vėlavimus ir saugumo spragas.

---

## Formize iš pirmo žvilgsnio

1. **Dinaminis formų kūrėjas** – Sukurkite pakartotinai naudojamas, schemomis valdomas formas sutikimui, duomenų žymėjimui ir atnaujinimo metaduomenims.
2. **Ne keičiama audito takas** – Saugo kiekvieną formos pateikimą nepažeidžiamame ledger'yje (galima papildomai naudoti blokų grandinę).
3. **Žemo kodo automatizavimas** – Suaktyvinkite vėlesnius veiksmus (pvz., metaduomenų siuntimą į modelio registrą, atitikties ataskaitų generavimą) naudojant vizualius darbo srauto dizainerius.

Šios galimybės teikiamos per internetinę vartotojo sąsają, REST API ir SDK Python, Java bei JavaScript kalboms, todėl integracija su FL įrankių rinkiniais (TensorFlow Federated, PySyft, Flower) yra tiesioginė.

---

## End‑to‑End (nuo pradžios iki pabaigos) kilmės architektūra

```mermaid
flowchart TD
    A["Kraštutinis įrenginys – Duomenų surinkimas"] --> B["Formize sutikimo forma"]
    B --> C["Pasirašytas sutikimas saugomas ledger'yje"]
    C --> D["Vietinis FL klientas – Duomenų žymėjimas su sutikimo ID"]
    D --> E["Federacinis atnaujinimas (modelio svoriai)"]
    E --> F["Formize metaduomenų forma"]
    F --> G["Ne keičiama atnaujinimo žurnalas"]
    G --> H["Centrinis agregatorius"]
    H --> I["Modelio registras (MLflow)"]
    I --> J["Atitikties skydelis"]
```

*Visi mazgų etiketės yra cituojamos, kaip reikalauja Mermaid.*

### Pagrindiniai duomenų srautai

1. **Sutikimo surinkimas** – Prieš bet kokius sensorių duomenis išsiunčiant iš įrenginio, vietoje (per Formize SDK) atvaizduojama Formize sutikimo forma. Vartotojo parašas ir sutikimo apimtis saugomi nekeičiama forma.
2. **Žymėjimas** – FL klientas priskiria sutikimo transakcijos ID kiekvienam duomenų paketui, užtikrindamas kriptografinį ryšį tarp neapdorotų duomenų ir sutikimo įrašo.
3. **Atnaujinimo metaduomenys** – Po kiekvieno mokymo ciklo klientas pateikia lengvą Formize formą, kurioje nurodoma modelio versija, duomenų maišos ir naudojami sutikimo ID.
4. **Agregavimas ir ataskaitų teikimas** – Centrinis serveris sujungia nekeičiamus žurnalus, įkelia juos į atitikties skydelį ir automatiškai generuoja reguliatoriui paruoštas ataskaitas (pvz., GDPR DSAR, FDA 21 CFR Part 11).

---

## Žingsnis po žingsnio įgyvendinimo vadovas

### 1. Apibrėžkite sutikimo schemą

Sukurkite Formize formą pavadinimu **„FL‑Device Consent“** su šiais laukais:

| Laukas | Tipas | Aprašymas |
|-------|------|-------------|
| `device_id` | Tekstas | Unikalus kraštutinio įrenginio identifikatorius |
| `user_id` | Tekstas | Pseudonimizuotas vartotojo identifikatorius |
| `data_scope` | Multi‑Select | Duomenų tipai (pvz., „akcelerometras“, „kamera“) |
| `purpose` | Tekstas | Numatas ML tikslas (pvz., „veiklos atpažinimas“) |
| `expiry_date` | Data | Sutikimo galiojimo pabaiga |
| `signature` | Parašas | Rankų piešta arba skaitmeninė parašas |

Įjunkite **„Ne keičiama ledger“** ir pasirinkite **Ethereum‑suderinamą** blokų grandinę papildomam teisiniam svoriui.

### 2. Įdiekite sutikimo formą į kraštutinius įrenginius

```javascript
import { FormizeClient } from '@formize/sdk';

const client = new FormizeClient({ apiKey: 'YOUR_API_KEY' });

async function renderConsent(deviceId, userId) {
  const form = await client.getForm('FL-Device Consent');
  const prefilled = {
    device_id: deviceId,
    user_id: userId,
  };
  return client.renderForm(form.id, prefilled);
}
```

SDK talpina formą lokaliai, leidžiant ją naudoti neprisijungus. Kai vartotojas pasirašo, SDK automatiškai persiunčia pasirašytą duomenį į Formize ledger'į, kai tik atkuria ryšį.

### 3. Žymėkite duomenis su sutikimo transakcijos ID

```python
import hashlib
from formize_sdk import FormizeClient

def tag_data(sample, consent_tx):
    data_hash = hashlib.sha256(sample).hexdigest()
    metadata = {
        "data_hash": data_hash,
        "consent_tx": consent_tx,
        "timestamp": datetime.utcnow().isoformat()
    }
    return metadata
```

FL klientas įtraukia šiuos metaduomenis į kiekvieną vietinį mokymo paketą.

### 4. Pateikite atnaujinimo metaduomenis po kiekvieno ciklo

Sukurkite antrą Formize formą **„FL‑Update Log“** su laukais:

| Laukas | Tipas | Aprašymas |
|-------|------|-------------|
| `model_version` | Tekstas | |
| `round_number` | Skaičius | |
| `data_hashes` | Tekstas (JSON masyvas) | |
| `consent_tx_ids` | Tekstas (JSON masyvas) | |
| `aggregator_signature` | Parašas | |

```python
def submit_update_log(version, round_num, data_hashes, consent_ids):
    payload = {
        "model_version": version,
        "round_number": round_num,
        "data_hashes": json.dumps(data_hashes),
        "consent_tx_ids": json.dumps(consent_ids),
    }
    client.submit_form('FL-Update Log', payload)
```

Kadangi forma susieta su nekeičiamu ledger'iu, kiekvienas atnaujinimas tampa patikimu, laiku pažymėtu įrašu.

### 5. Sukurkite atitikties skydelį

Formize siūlo **report builder**, kuris gali užklausti ledger'io įrašus per GraphQL. Sukurkite skydelį, kuriame matyti:

* Aktyvių sutikimų skaičius pagal jurisdikciją
* Duomenų indėlio šiltnamio žemėlapis pagal įrenginio tipą
* Modelio versijų kilmės grafikas (kurie sutikimai įtakavo kurią versiją)

Eksportavimo galimybės: PDF, CSV, JSON – paruošti regulatoriams.

### 6. Automatizuokite reguliacinę atskaitomybę

Naudodami Formize **workflow engine**, apibrėžkite trigerį:

> **Kai** sukuriamas naujas „FL‑Update Log“ įrašas **ir** `round_number % 10 == 0`  
> **Tuomet** generuokite [GDPR](https://gdpr.eu/) DSAR atitikties paketą ir išsiųskite jį DPO el. paštu.

Darbo srautas veikia Formize serverless aplinkoje, pašalinant poreikį kurti savus cron darbus.

---

## Išmatuoti privalumai

| Metrika | Tradicinis požiūris | Formize‑palaikytas FL |
|--------|----------------------|------------------------|
| **Laikas įdiegti sutikimo darbo srautą** | 6–8 savaitės (individuali UI, backend) | 2–3 dienos (drag‑and‑drop) |
| **Audito takų vėlavimas** | Valandos (paketų įkėlimas) | Artimas realaus laiko (sekundės) |
| **Kaštai dėl atitikties** | $150k‑$250k per metus (teisiniai ir kūrimo) | $30k‑$50k per metus (automatizavimas) |
| **Nesąžiningos atitikties rizika** | Aukšta (rankinės klaidos) | Maža (nekeičiama ledger) |

---

## Geriausios praktikos ir klaidos, kurių reikia vengti

| Praktika | Kodėl tai svarbu |
|----------|----------------|
| **Versijuokite savo formas** | Keičiant formos schemą sukuriama nauja sutarties versija; senesni įrašai lieka nekeičiami, išlaikant istorinį vientisumą. |
| **Šifruokite jautrius laukus** | Nors ledger yra nekeičiamas, šifruokite laukus kaip `user_id`, kad atitiktumėte duomenų minimizavimo principus. |
| **Naudokite kraštutinį talpinimą** | Įrenginiai gali būti neprisijungę kelias valandas; įsitikinkite, kad SDK talpina pasirašytas formas lokaliai ir automatiškai bando išsiųsti vėl. |
| **Periodiškas ledger'io valymas** | Viešos blokų grandinės atveju apsvarstykite nekeičiamų duomenų saugojimą ne grandinėje, o tik maišų įrašus – taip kontroliuojate kaštus. |
| **Integruokite su modelio registru** | Susiejant Formize įrašus su MLflow arba DVC gaunama vieninga modelio kilmės šaltinis. |

---

## Ateities plėtiniai

1. **Zero‑Knowledge įrodymai** – Pridėkite ZKP‑pagrįstą patikrinimą, kad įrodytumėte duomenų įtraukimą neatskleidžiant neapdorotų maišų.  
2. **Federacinis paaiškinamumas** – Kombinuokite Formize kilmės duomenis su SHAP reikšmėmis, kad sukurtumėte prietaiso indėlio ataskaitas.  
3. **DI‑valdomas sutikimo optimizavimas** – Naudokite surinktus sutikimo metaduomenis mokyti rekomendacijų variklį, kuris siūlo optimalias sutikimo sritis naujiems įrenginiams.  

---

## Išvada

Federacinis mokymasis žada privatumo išsaugojimą DI, tačiau **kilmės** ir **atitikties** sluoksniai dažnai atsilieka. Formize užpildo šią spragą, paverčiant sutikimo surinkimą, metaduomenų registravimą ir reguliacinę atskaitomybę konfigūruojamais, be kodo sprendimais, paremtais nekeičiamais audito takais. Įmonės, kurios priima šį modelį, gali **spartinti** FL diegimą, sumažinti teisinę riziką ir pristatyti patikimus AI modelius plačiu mastu.

---

## Taip pat žiūrėkite

- [Google AI Blog – Federacinis mokymasis: privatumo išsaugojimo mašininis mokymasis](https://ai.googleblog.com/2020/04/federated-learning-privacy-preserving.html)  
- [Europos duomenų apsaugos valdyba – Gairės dėl sutikimo pagal GDPR](https://edpb.europa.eu/our-work-tools/consultations/consent_en)  
- [MLflow – Modelio kilmės ir metaduomenų sekimas](https://mlflow.org/docs/latest/tracking.html)  
- [Hyperledger Fabric – Ne keičiamos audito takų kūrimas įmoninėms programoms](https://www.hyperledger.org/use/fabric)