MissawB commited on
Commit
53740f4
·
verified ·
1 Parent(s): b06d028

Fiche IRL Guard

Browse files
Files changed (1) hide show
  1. README.md +107 -0
README.md ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: convaiinnovations/laya-multilingual
4
+ datasets:
5
+ - MissawB/irl-guard-decisions-v2
6
+ language:
7
+ - fr
8
+ library_name: laya
9
+ pipeline_tag: text-classification
10
+ tags:
11
+ - structured-decisions
12
+ - content-moderation
13
+ - live-streaming
14
+ - irl-guard
15
+ ---
16
+
17
+ # IRL Guard — decision model v2 (Laya fine-tuné)
18
+
19
+ *Decision model* d'IRL Guard : à partir d'un `state` JSON (charte de la chaîne en langage naturel, catégorie du
20
+ stream, mode domicile, élément vu à l'écran), il répond à trois questions typées — **action**
21
+ (diffuser / flouter / pause), **risque** et **gravité** — avec des probabilités calibrées. Fine-tuné à partir de
22
+ `convaiinnovations/laya-multilingual` sur [`MissawB/irl-guard-decisions-v2`](https://huggingface.co/datasets/MissawB/irl-guard-decisions-v2).
23
+
24
+ ## Utilisation
25
+
26
+ Sur CPU, sans serveur, avec le paquet [`laya`](https://pypi.org/project/laya/) :
27
+
28
+ ```python
29
+ import laya
30
+ agent = laya.load("MissawB/irl-guard-decision-laya-v2")
31
+ reponse = agent.predict(state, questions)
32
+ ```
33
+
34
+ Alternative légère d'IRL Guard sans GPU (`decideur.modele: laya-local`). Moins précis que Qwen v2 sur les chartes
35
+ écrites librement.
36
+
37
+ ## Résultats
38
+
39
+ Précision de l'action, F1 macro, taux de fuite (cas à protéger que l'approche diffuse), calibration (ECE) et coût
40
+ moyen par décision, sur 1 000 cas par jeu.
41
+
42
+ ### Chartes vues
43
+
44
+ `toujours-diffuser` : Toujours diffuser (plancher), `regles` : Règles, `xgboost` : XGBoost, `laya` : Laya brut, `laya-ft` : Laya fine-tuné, `qwen-ft` : Qwen3.5-0.8B fine-tuné, `laya-ft-v2` : Laya fine-tuné (v2), `qwen-ft-v2` : Qwen3.5-2B fine-tuné (v2), `combine-laya` : Règles + Laya fine-tuné, `combine-qwen` : Règles + Qwen fine-tuné, `combine-laya-v2` : Règles + Laya v2, `combine-qwen-v2` : Règles + Qwen v2
45
+
46
+ | Approche | Action | F1 macro | Fuite | ECE | Coût moyen |
47
+ |---|---|---|---|---|---|
48
+ | toujours-diffuser | 44.9 % | 0.207 | 100.0 % | 0.551 | 8.48 |
49
+ | regles | 39.3 % | 0.334 | 21.1 % | 0.607 | 3.17 |
50
+ | xgboost | 50.1 % | 0.502 | 16.5 % | 0.080 | 2.30 |
51
+ | laya | 40.7 % | 0.314 | 55.9 % | 0.289 | 5.59 |
52
+ | laya-ft | 73.8 % | 0.721 | 20.0 % | 0.053 | 2.02 |
53
+ | qwen-ft | 82.0 % | 0.807 | 15.2 % | 0.042 | 1.44 |
54
+ | laya-ft-v2 | 80.1 % | 0.797 | 3.8 % | 0.072 | 0.73 |
55
+ | qwen-ft-v2 | 99.3 % | 0.993 | 0.2 % | 0.005 | 0.02 |
56
+ | combine-laya | 58.1 % | 0.592 | 5.4 % | 0.267 | 1.25 |
57
+ | combine-qwen | 63.1 % | 0.641 | 2.4 % | 0.272 | 0.83 |
58
+ | combine-laya-v2 | 63.4 % | 0.638 | 0.7 % | 0.224 | 0.73 |
59
+ | combine-qwen-v2 | 72.7 % | 0.733 | 0.0 % | 0.272 | 0.31 |
60
+
61
+ ### Chartes non vues
62
+
63
+ `toujours-diffuser` : Toujours diffuser (plancher), `regles` : Règles, `xgboost` : XGBoost, `laya` : Laya brut, `laya-ft` : Laya fine-tuné, `qwen-ft` : Qwen3.5-0.8B fine-tuné, `laya-ft-v2` : Laya fine-tuné (v2), `qwen-ft-v2` : Qwen3.5-2B fine-tuné (v2), `combine-laya` : Règles + Laya fine-tuné, `combine-qwen` : Règles + Qwen fine-tuné, `combine-laya-v2` : Règles + Laya v2, `combine-qwen-v2` : Règles + Qwen v2
64
+
65
+ | Approche | Action | F1 macro | Fuite | ECE | Coût moyen |
66
+ |---|---|---|---|---|---|
67
+ | toujours-diffuser | 40.5 % | 0.192 | 100.0 % | 0.595 | 9.34 |
68
+ | regles | 44.5 % | 0.407 | 21.2 % | 0.555 | 3.27 |
69
+ | xgboost | 45.9 % | 0.458 | 24.2 % | 0.138 | 3.11 |
70
+ | laya | 34.2 % | 0.275 | 47.6 % | 0.297 | 5.54 |
71
+ | laya-ft | 72.2 % | 0.711 | 21.5 % | 0.061 | 2.44 |
72
+ | qwen-ft | 80.3 % | 0.793 | 20.3 % | 0.084 | 1.92 |
73
+ | laya-ft-v2 | 74.3 % | 0.740 | 6.2 % | 0.034 | 1.11 |
74
+ | qwen-ft-v2 | 97.3 % | 0.972 | 2.2 % | 0.017 | 0.23 |
75
+ | combine-laya | 63.5 % | 0.642 | 4.4 % | 0.216 | 1.25 |
76
+ | combine-qwen | 69.8 % | 0.701 | 5.4 % | 0.228 | 0.97 |
77
+ | combine-laya-v2 | 66.4 % | 0.664 | 1.3 % | 0.130 | 0.83 |
78
+ | combine-qwen-v2 | 79.3 % | 0.790 | 0.3 % | 0.198 | 0.28 |
79
+
80
+ ### Chartes écrites à la main
81
+
82
+ `toujours-diffuser` : Toujours diffuser (plancher), `regles` : Règles, `xgboost` : XGBoost, `laya` : Laya brut, `laya-ft` : Laya fine-tuné, `qwen-ft` : Qwen3.5-0.8B fine-tuné, `laya-ft-v2` : Laya fine-tuné (v2), `qwen-ft-v2` : Qwen3.5-2B fine-tuné (v2), `combine-laya` : Règles + Laya fine-tuné, `combine-qwen` : Règles + Qwen fine-tuné, `combine-laya-v2` : Règles + Laya v2, `combine-qwen-v2` : Règles + Qwen v2
83
+
84
+ | Approche | Action | F1 macro | Fuite | ECE | Coût moyen |
85
+ |---|---|---|---|---|---|
86
+ | toujours-diffuser | 36.9 % | 0.180 | 100.0 % | 0.631 | 8.31 |
87
+ | regles | 53.1 % | 0.462 | 20.4 % | 0.469 | 2.52 |
88
+ | xgboost | 46.0 % | 0.441 | 59.6 % | 0.281 | 4.83 |
89
+ | laya | 40.5 % | 0.295 | 44.7 % | 0.274 | 4.58 |
90
+ | laya-ft | 56.4 % | 0.548 | 55.5 % | 0.239 | 4.42 |
91
+ | qwen-ft | 59.9 % | 0.589 | 56.7 % | 0.285 | 4.43 |
92
+ | laya-ft-v2 | 55.0 % | 0.553 | 47.4 % | 0.186 | 3.90 |
93
+ | qwen-ft-v2 | 79.1 % | 0.805 | 29.2 % | 0.187 | 2.21 |
94
+ | combine-laya | 63.1 % | 0.622 | 11.3 % | 0.286 | 1.46 |
95
+ | combine-qwen | 64.5 % | 0.639 | 10.9 % | 0.306 | 1.41 |
96
+ | combine-laya-v2 | 63.3 % | 0.623 | 11.7 % | 0.208 | 1.50 |
97
+ | combine-qwen-v2 | 71.9 % | 0.725 | 5.5 % | 0.270 | 0.77 |
98
+
99
+ ## Limites
100
+
101
+ - Les chartes « non vues » sont des formulations et des combinaisons de clauses absentes de l'entraînement, mais
102
+ écrites dans le même style de gabarits : une charte rédigée librement par un streamer sera plus difficile.
103
+ - Seul, Qwen v2 laisse passer 29 % des cas à protéger sur les chartes écrites à la main (2 % sur les chartes
104
+ synthétiques non vues) : dans IRL Guard, il est utilisé en **mode combiné** avec des règles déterministes (la
105
+ décision la plus protectrice l'emporte), ce qui ramène la fuite à 5,5 %.
106
+ - Le modèle décide à partir d'un `state` JSON (texte lu par OCR, objet détecté, charte, contexte) : il ne voit pas
107
+ l'image.