enzoferracini commited on
Commit
76c0aec
·
verified ·
1 Parent(s): f2fb6d8

feat: publish software v0.2.0 evaluation and documentation

Browse files
README.md CHANGED
@@ -65,3 +65,11 @@ BERT Models for Brazilian Portuguese*, BRACIS.
65
  Treino executado em GPU local NVIDIA RTX A1000 6 GB, Python 3.11.14. Não houve sessão Kaggle/Colab nesta execução nem contratação de computação. O PyTorch avisou sobre atenção backward não determinística; não se alega identidade bit a bit entre retreinos. O ganho observado é pequeno e não comprova superioridade em currículos reais.
66
 
67
  O benchmark referencia o manifest original do treino, preservado em `training-manifest.json`; `manifest.json` cobre o bundle publicado, incluindo esta card atualizada.
 
 
 
 
 
 
 
 
 
65
  Treino executado em GPU local NVIDIA RTX A1000 6 GB, Python 3.11.14. Não houve sessão Kaggle/Colab nesta execução nem contratação de computação. O PyTorch avisou sobre atenção backward não determinística; não se alega identidade bit a bit entre retreinos. O ganho observado é pequeno e não comprova superioridade em currículos reais.
66
 
67
  O benchmark referencia o manifest original do treino, preservado em `training-manifest.json`; `manifest.json` cobre o bundle publicado, incluindo esta card atualizada.
68
+
69
+ <!-- software-release -->
70
+ ## Software v0.2.0
71
+
72
+ Checkpoint: 0.1.0; weights unchanged in this release.
73
+ New evaluation: 36 synthetic texts, authored and reviewed by the same AI; no human review.
74
+ Macro-F1: heuristics 0.6910; frozen regression 0.6196; fine-tuned BERT 0.5584.
75
+ See [evaluation](evaluations/v02/test/README.md) and [protocol](project-docs/v02.md).
evaluations/v02/comparison.json ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "source_sha256": {
3
+ "historical": "f13f28eece03c7a9367698d1ac19ffb4cc7aac85db7b20fddd6268885dd6406a",
4
+ "test": "145caee680e8de41dfa16f27a685a3a678b58c4b26478067f51e82b507f6fdad"
5
+ },
6
+ "directions": {
7
+ "macro_f1": "max",
8
+ "micro_f1": "max",
9
+ "exact_match": "max",
10
+ "hamming_loss": "min",
11
+ "macro_average_precision": "max",
12
+ "macro_roc_auc": "max",
13
+ "macro_mcc": "max",
14
+ "mean_binary_brier": "min",
15
+ "mean_binary_log_loss": "min"
16
+ },
17
+ "datasets": {
18
+ "historical": {
19
+ "n": 60,
20
+ "methods": {
21
+ "heuristic": {
22
+ "macro_f1": 0.6791489361702128,
23
+ "micro_f1": 0.7633587786259542,
24
+ "exact_match": 0.3333333333333333,
25
+ "hamming_loss": 0.20666666666666667,
26
+ "macro_average_precision": 0.8248484848484848,
27
+ "macro_roc_auc": 0.809090909090909,
28
+ "macro_mcc": 0.6331355092029024,
29
+ "mean_binary_brier": 0.20666666666666667,
30
+ "mean_binary_log_loss": 3.331073180531391
31
+ },
32
+ "frozen_logistic": {
33
+ "macro_f1": 0.9888253968253968,
34
+ "micro_f1": 0.9878048780487805,
35
+ "exact_match": 0.9333333333333333,
36
+ "hamming_loss": 0.013333333333333334,
37
+ "macro_average_precision": 1.0,
38
+ "macro_roc_auc": 1.0,
39
+ "macro_mcc": 0.9731698608453658,
40
+ "mean_binary_brier": 0.00887946007497595,
41
+ "mean_binary_log_loss": 0.02965192071338393
42
+ },
43
+ "bert_finetuned": {
44
+ "macro_f1": 0.9911005961711339,
45
+ "micro_f1": 0.9908256880733946,
46
+ "exact_match": 0.95,
47
+ "hamming_loss": 0.01,
48
+ "macro_average_precision": 1.0,
49
+ "macro_roc_auc": 1.0,
50
+ "macro_mcc": 0.9799051522352762,
51
+ "mean_binary_brier": 0.03831968082832739,
52
+ "mean_binary_log_loss": 0.19410858738420056
53
+ }
54
+ },
55
+ "reference": "sintético; mesma IA autora e revisora",
56
+ "ranking": {
57
+ "macro_f1": [
58
+ "bert_finetuned",
59
+ "frozen_logistic",
60
+ "heuristic"
61
+ ],
62
+ "micro_f1": [
63
+ "bert_finetuned",
64
+ "frozen_logistic",
65
+ "heuristic"
66
+ ],
67
+ "exact_match": [
68
+ "bert_finetuned",
69
+ "frozen_logistic",
70
+ "heuristic"
71
+ ],
72
+ "hamming_loss": [
73
+ "bert_finetuned",
74
+ "frozen_logistic",
75
+ "heuristic"
76
+ ],
77
+ "macro_average_precision": [
78
+ "frozen_logistic",
79
+ "bert_finetuned",
80
+ "heuristic"
81
+ ],
82
+ "macro_roc_auc": [
83
+ "frozen_logistic",
84
+ "bert_finetuned",
85
+ "heuristic"
86
+ ],
87
+ "macro_mcc": [
88
+ "bert_finetuned",
89
+ "frozen_logistic",
90
+ "heuristic"
91
+ ],
92
+ "mean_binary_brier": [
93
+ "frozen_logistic",
94
+ "bert_finetuned",
95
+ "heuristic"
96
+ ],
97
+ "mean_binary_log_loss": [
98
+ "frozen_logistic",
99
+ "bert_finetuned",
100
+ "heuristic"
101
+ ]
102
+ }
103
+ },
104
+ "test": {
105
+ "n": 36,
106
+ "methods": {
107
+ "heuristic": {
108
+ "macro_f1": 0.691048951048951,
109
+ "micro_f1": 0.7027027027027027,
110
+ "exact_match": 0.3055555555555556,
111
+ "hamming_loss": 0.18333333333333332,
112
+ "macro_average_precision": 0.7440764790764791,
113
+ "macro_roc_auc": 0.7851515151515152,
114
+ "macro_mcc": 0.6538496468102492,
115
+ "mean_binary_brier": 0.18333333333333332,
116
+ "mean_binary_log_loss": 2.9549842843452883
117
+ },
118
+ "frozen_logistic": {
119
+ "macro_f1": 0.6195621366504097,
120
+ "micro_f1": 0.711864406779661,
121
+ "exact_match": 0.3055555555555556,
122
+ "hamming_loss": 0.18888888888888888,
123
+ "macro_average_precision": 0.8401363583558913,
124
+ "macro_roc_auc": 0.8733322510822511,
125
+ "macro_mcc": 0.5682419918647319,
126
+ "mean_binary_brier": 0.16010723790970832,
127
+ "mean_binary_log_loss": 0.853996945277067
128
+ },
129
+ "bert_finetuned": {
130
+ "macro_f1": 0.5583710407239819,
131
+ "micro_f1": 0.6379310344827587,
132
+ "exact_match": 0.25,
133
+ "hamming_loss": 0.23333333333333334,
134
+ "macro_average_precision": 0.776780168309343,
135
+ "macro_roc_auc": 0.8258551587301588,
136
+ "macro_mcc": 0.4626239339618895,
137
+ "mean_binary_brier": 0.16481213328826325,
138
+ "mean_binary_log_loss": 0.5052829993297918
139
+ },
140
+ "bert_finetuned_temperature": {
141
+ "macro_f1": 0.5583710407239819,
142
+ "micro_f1": 0.6379310344827587,
143
+ "exact_match": 0.25,
144
+ "hamming_loss": 0.23333333333333334,
145
+ "macro_average_precision": 0.776780168309343,
146
+ "macro_roc_auc": 0.8258551587301588,
147
+ "macro_mcc": 0.4626239339618895,
148
+ "mean_binary_brier": 0.1647451937300374,
149
+ "mean_binary_log_loss": 0.5051296116716306
150
+ },
151
+ "frozen_logistic_temperature": {
152
+ "macro_f1": 0.6195621366504097,
153
+ "micro_f1": 0.711864406779661,
154
+ "exact_match": 0.3055555555555556,
155
+ "hamming_loss": 0.18888888888888888,
156
+ "macro_average_precision": 0.8401363583558913,
157
+ "macro_roc_auc": 0.8733322510822511,
158
+ "macro_mcc": 0.5682419918647319,
159
+ "mean_binary_brier": 0.13551575028636434,
160
+ "mean_binary_log_loss": 0.4291855522239792
161
+ }
162
+ },
163
+ "reference": "sintético; mesma IA autora e revisora",
164
+ "ranking": {
165
+ "macro_f1": [
166
+ "heuristic",
167
+ "frozen_logistic",
168
+ "frozen_logistic_temperature",
169
+ "bert_finetuned",
170
+ "bert_finetuned_temperature"
171
+ ],
172
+ "micro_f1": [
173
+ "frozen_logistic",
174
+ "frozen_logistic_temperature",
175
+ "heuristic",
176
+ "bert_finetuned",
177
+ "bert_finetuned_temperature"
178
+ ],
179
+ "exact_match": [
180
+ "heuristic",
181
+ "frozen_logistic",
182
+ "frozen_logistic_temperature",
183
+ "bert_finetuned",
184
+ "bert_finetuned_temperature"
185
+ ],
186
+ "hamming_loss": [
187
+ "heuristic",
188
+ "frozen_logistic",
189
+ "frozen_logistic_temperature",
190
+ "bert_finetuned",
191
+ "bert_finetuned_temperature"
192
+ ],
193
+ "macro_average_precision": [
194
+ "frozen_logistic",
195
+ "frozen_logistic_temperature",
196
+ "bert_finetuned",
197
+ "bert_finetuned_temperature",
198
+ "heuristic"
199
+ ],
200
+ "macro_roc_auc": [
201
+ "frozen_logistic",
202
+ "frozen_logistic_temperature",
203
+ "bert_finetuned",
204
+ "bert_finetuned_temperature",
205
+ "heuristic"
206
+ ],
207
+ "macro_mcc": [
208
+ "heuristic",
209
+ "frozen_logistic",
210
+ "frozen_logistic_temperature",
211
+ "bert_finetuned",
212
+ "bert_finetuned_temperature"
213
+ ],
214
+ "mean_binary_brier": [
215
+ "frozen_logistic_temperature",
216
+ "frozen_logistic",
217
+ "bert_finetuned_temperature",
218
+ "bert_finetuned",
219
+ "heuristic"
220
+ ],
221
+ "mean_binary_log_loss": [
222
+ "frozen_logistic_temperature",
223
+ "bert_finetuned_temperature",
224
+ "bert_finetuned",
225
+ "frozen_logistic",
226
+ "heuristic"
227
+ ]
228
+ }
229
+ }
230
+ }
231
+ }
evaluations/v02/core-tests.xml ADDED
@@ -0,0 +1 @@
 
 
1
+ <?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="0" skipped="3" tests="19" time="12.908" timestamp="2026-11-07T10:55:15.294791-03:00" hostname="efpatti-host"><testcase classname="tests.test_core.TextTests" name="test_invalid" time="0.002" /><testcase classname="tests.test_core.TextTests" name="test_normalization_preserves_case_accents" time="0.000" /><testcase classname="tests.test_core.RuleTests" name="test_measurement" time="0.001" /><testcase classname="tests.test_core.RuleTests" name="test_negation_and_future" time="0.002" /><testcase classname="tests.test_core.RuleTests" name="test_structural_fixtures" time="0.001" /><testcase classname="tests.test_core.RuleTests" name="test_technology_boundaries_aliases" time="0.000" /><testcase classname="tests.test_core.MetricTests" name="test_invalid" time="0.000" /><testcase classname="tests.test_core.MetricTests" name="test_known_confusion" time="0.000" /><testcase classname="tests.test_core.DataTests" name="test_freeze_and_splits" time="12.479" /><testcase classname="tests.test_core.DataTests" name="test_reject_tampering" time="0.001" /><testcase classname="tests.test_contract" name="test_strict_input_and_output" time="0.000" /><testcase classname="tests.test_contract" name="test_cli_json_and_stderr" time="0.231" /><testcase classname="tests.test_contract" name="test_no_silent_heuristic_fallback" time="0.105" /><testcase classname="tests.test_v02" name="test_batch_preserves_order_errors_and_limits" time="0.001" /><testcase classname="tests.test_v02" name="test_action_method_requires_known_present_components" time="0.000" /><testcase classname="tests.test_v02" name="test_loopback_demo_inference_and_origin_protection" time="0.007" /><testcase classname="tests.test_v02" name="test_suite_freeze_and_provenance" time="0.001"><skipped type="pytest.skip" message="could not import 'sklearn': No module named 'sklearn'">/home/efpatti/Documents/Projects/patch-insight/tests/test_v02.py:69: could not import 'sklearn': No module named 'sklearn'</skipped></testcase><testcase classname="tests.test_v02" name="test_abstention_never_completes_structure_from_unknown" time="0.001"><skipped type="pytest.skip" message="could not import 'sklearn': No module named 'sklearn'">/home/efpatti/Documents/Projects/patch-insight/tests/test_v02.py:86: could not import 'sklearn': No module named 'sklearn'</skipped></testcase><testcase classname="tests.test_v02" name="test_policy_rejects_other_method_or_bundle" time="0.002"><skipped type="pytest.skip" message="could not import 'sklearn': No module named 'sklearn'">/home/efpatti/Documents/Projects/patch-insight/tests/test_v02.py:98: could not import 'sklearn': No module named 'sklearn'</skipped></testcase></testsuite></testsuites>
evaluations/v02/development/README.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Avaliação de desenvolvimento
2
+
3
+ Referência sintética revisada pela mesma IA. Sem revisão humana ou evidência populacional.
4
+
5
+ | Método | Macro-F1 | Exact match | Hamming ↓ | AP macro | Brier ↓ | Log loss ↓ |
6
+ |---|---:|---:|---:|---:|---:|---:|
7
+ | heuristic | 0.6797 | 0.4167 | 0.1889 | 0.7221 | 0.1889 | 3.0445 |
8
+ | frozen_logistic | 0.5967 | 0.3056 | 0.1889 | 0.8507 | 0.1664 | 0.9170 |
9
+ | bert_finetuned | 0.5507 | 0.2500 | 0.2167 | 0.7905 | 0.1642 | 0.5061 |
10
+ | frozen_logistic_temperature | 0.5967 | 0.3056 | 0.1889 | 0.8507 | 0.1384 | 0.4330 |
11
+ | bert_finetuned_temperature | 0.5507 | 0.2500 | 0.2167 | 0.7905 | 0.1641 | 0.5060 |
12
+
13
+ Métricas por rótulo, suportes, ROC-AUC, MCC, confiabilidade e risco/cobertura: `results.json`.
14
+ Scores heurísticos são decisões binárias, sem interpretação probabilística calibrada.
15
+ Log loss usa clipping em 1e-7. Esta análise não altera a seleção da v0.1.
16
+
17
+ | Política experimental | Temperatura | Cutoff | Cobertura | Erro nas decisões aceitas |
18
+ |---|---:|---:|---:|---:|
19
+ | frozen_logistic | 4.0000 | desativado | 1.0000 | 0.18888888888888888 |
20
+ | bert_finetuned | 0.9659 | desativado | 1.0000 | 0.21666666666666667 |
21
+
22
+ Política ajustada somente em desenvolvimento; desempenho em teste não é garantia de risco.
23
+ Nenhum cutoff cumpriu a meta de erro/cobertura em desenvolvimento. O erro na tabela é sem abstenção, não o risco de uma política aprovada.
evaluations/v02/development/bert_finetuned-policy.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "temperature": 0.9659363289248455,
3
+ "confidence_cutoff": null,
4
+ "target_development_error": 0.05,
5
+ "minimum_development_coverage": 0.5,
6
+ "unit": "component_decision",
7
+ "thresholds": [
8
+ 0.5,
9
+ 0.5,
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "warning": "Exploratório; erro observado em desenvolvimento não é garantia de risco.",
15
+ "labels": [
16
+ "action",
17
+ "context",
18
+ "method",
19
+ "result",
20
+ "measurement"
21
+ ],
22
+ "model_manifest_sha256": "8aec42f49e157ee64bd77fb82656b848d856cd29c0ec0b30fba41d9884f92720",
23
+ "development_sha256": "3a039e23c089234b20943d6883afa6823e834ce58dc95ce410c743143c890787",
24
+ "method": "bert_finetuned",
25
+ "policy_id": "v02-bert_finetuned"
26
+ }
evaluations/v02/development/frozen_logistic-policy.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "temperature": 4.0,
3
+ "confidence_cutoff": null,
4
+ "target_development_error": 0.05,
5
+ "minimum_development_coverage": 0.5,
6
+ "unit": "component_decision",
7
+ "thresholds": [
8
+ 0.5,
9
+ 0.5,
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "warning": "Exploratório; erro observado em desenvolvimento não é garantia de risco.",
15
+ "labels": [
16
+ "action",
17
+ "context",
18
+ "method",
19
+ "result",
20
+ "measurement"
21
+ ],
22
+ "model_manifest_sha256": "8aec42f49e157ee64bd77fb82656b848d856cd29c0ec0b30fba41d9884f92720",
23
+ "development_sha256": "3a039e23c089234b20943d6883afa6823e834ce58dc95ce410c743143c890787",
24
+ "method": "frozen_logistic",
25
+ "policy_id": "v02-frozen_logistic"
26
+ }
evaluations/v02/development/predictions.jsonl ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"id": "v02-development-001", "group_id": "v02-development-001", "target": [1, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9998669442755598, 7.718986269432533e-05, 4.616158293901498e-06, 3.8043822726752843e-06, 2.1296332864700696e-06], "bert_finetuned": [0.6523076295852661, 0.22838157415390015, 0.19425801932811737, 0.15401087701320648, 0.12161717563867569], "frozen_logistic_temperature": [0.9030123315110231, 0.08570114496317079, 0.04429888226239491, 0.04229632218802178, 0.03679551892687606], "bert_finetuned_temperature": [0.6573229079926165, 0.22090393551074347, 0.18652599774029843, 0.14634547503826847, 0.11436292808408023]}}
2
+ {"id": "v02-development-002", "group_id": "v02-development-002", "target": [1, 0, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9999740080487047, 0.0008275760279614949, 0.0011967326222498242, 6.4578847869868714e-06, 1.862758047023293e-05], "bert_finetuned": [0.656220555305481, 0.23174896836280823, 0.3105009198188782, 0.14279477298259735, 0.08291705697774887], "frozen_logistic_temperature": [0.9333561702755373, 0.14503996315535153, 0.15686510902971018, 0.04799147644175229, 0.06164639189029983], "bert_finetuned_temperature": [0.6613453464660166, 0.22430973508316476, 0.30451012883019757, 0.13523156709152423, 0.07669583397018148]}}
3
+ {"id": "v02-development-003", "group_id": "v02-development-003", "target": [1, 1, 0, 0, 0], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9947739875601785, 0.9300973929109273, 6.796471293949522e-06, 0.0002285713577553522, 0.0005373224015462006], "bert_finetuned": [0.6001863479614258, 0.5503604412078857, 0.12055563181638718, 0.10913611948490143, 0.1446249783039093], "frozen_logistic_temperature": [0.7878838626029342, 0.6563446100994205, 0.048578550054403584, 0.10950001713160411, 0.13214857184539824], "bert_finetuned_temperature": [0.603619087028329, 0.5521237223959581, 0.11332118293376882, 0.10214292647914873, 0.1370423408296274]}}
4
+ {"id": "v02-development-004", "group_id": "v02-development-004", "target": [1, 1, 1, 0, 0], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9999950396852636, 0.951717230139321, 0.0006798850485437936, 0.7149954623227588, 0.003740111332623842], "bert_finetuned": [0.662879228591919, 0.5170606970787048, 0.21735386550426483, 0.13012875616550446, 0.1002175509929657], "frozen_logistic_temperature": [0.9549337828784152, 0.6781533602803093, 0.13904714769683382, 0.557233735504785, 0.19841611754714064], "bert_finetuned_temperature": [0.6681868875703234, 0.5176618491870989, 0.20976645896288384, 0.12273109208247188, 0.09345086225231104]}}
5
+ {"id": "v02-development-005", "group_id": "v02-development-005", "target": [1, 0, 0, 1, 0], "scores": {"heuristic": [1.0, 0.0, 0.0, 1.0, 0.0], "frozen_logistic": [0.9931310781021772, 0.00010370423209576177, 0.00021147021067480934, 4.1491212704048845e-05, 9.083304479630669e-06], "bert_finetuned": [0.585912823677063, 0.25898420810699463, 0.14494827389717102, 0.14988099038600922, 0.22811590135097504], "frozen_logistic_temperature": [0.7761663759559062, 0.09166555332471946, 0.10761825361992765, 0.0742960387799673, 0.05204166738926284], "bert_finetuned_temperature": [0.5888793866848049, 0.2519333949096839, 0.13736231784708847, 0.1422485770726397, 0.22063532805483105]}}
6
+ {"id": "v02-development-006", "group_id": "v02-development-006", "target": [1, 0, 1, 1, 0], "scores": {"heuristic": [1.0, 0.0, 1.0, 1.0, 0.0], "frozen_logistic": [0.9866165676588549, 0.0002589940430140886, 0.19413967091383116, 0.005703140956864068, 7.481072873883011e-07], "bert_finetuned": [0.6653961539268494, 0.28721192479133606, 0.1883377581834793, 0.2549234628677368, 0.3208555579185486], "frozen_logistic_temperature": [0.7455591313417851, 0.1125842639661088, 0.4119686166300097, 0.21580970565698454, 0.028569509435657555], "bert_finetuned_temperature": [0.6707717539778499, 0.28069469094568444, 0.18058870838425925, 0.2478063786830411, 0.3151209036280949]}}
7
+ {"id": "v02-development-007", "group_id": "v02-development-007", "target": [1, 1, 1, 1, 1], "scores": {"heuristic": [1.0, 0.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.9317974577833914, 0.9674771204842485, 0.0038669097825689692, 0.021426633076444965, 0.0006684293553691253], "bert_finetuned": [0.6771220564842224, 0.5506308078765869, 0.16819415986537933, 0.206863671541214, 0.12132566422224045], "frozen_logistic_temperature": [0.6578344023043402, 0.70018668347338, 0.199750207233953, 0.2778071040435711, 0.13853901348686334], "bert_finetuned_temperature": [0.6828052143683773, 0.5524034180266479, 0.1604544948310063, 0.19919568912326843, 0.1140768104403489]}}
8
+ {"id": "v02-development-008", "group_id": "v02-development-008", "target": [1, 1, 0, 1, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9996222706588016, 0.5825715582273432, 0.0001442625445332432, 0.998498093490181, 0.03624624350839917], "bert_finetuned": [0.736871600151062, 0.644560694694519, 0.15978898108005524, 0.6146021485328674, 0.24083520472049713], "frozen_logistic_temperature": [0.8776367508501776, 0.520821632186193, 0.0987730022446447, 0.8354669370436055, 0.30573712257461905], "bert_finetuned_temperature": [0.7438519349849171, 0.6493548710705584, 0.15208617837740557, 0.618493092711322, 0.23351052008777254]}}
9
+ {"id": "v02-development-009", "group_id": "v02-development-009", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.0018468035290774836, 0.11526478077781045, 0.9977056325181769, 0.0012925049354051976, 0.0054308962035184635], "bert_finetuned": [0.19404979050159454, 0.2611004114151001, 0.24751633405685425, 0.1458917260169983, 0.2534297704696655], "frozen_logistic_temperature": [0.17177311699024136, 0.3753074334902503, 0.8203543776601805, 0.1594307143771653, 0.21373594144922847], "bert_finetuned_temperature": [0.1863170250209143, 0.2540852325514612, 0.24028568740789258, 0.13829627978194017, 0.2462890164801087]}}
10
+ {"id": "v02-development-010", "group_id": "v02-development-010", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [3.5480205392155155e-06, 0.00011777935265595083, 0.007659524819123202, 4.975853372507626e-05, 0.2937887548095488], "bert_finetuned": [0.20423659682273865, 0.2991288900375366, 0.37240198254585266, 0.25466352701187134, 0.6507839560508728], "frozen_logistic_temperature": [0.04159544599045766, 0.09434971789589985, 0.22863601351269158, 0.07748139474453922, 0.4454027230488983], "bert_finetuned_temperature": [0.19655224305664454, 0.2928720599049502, 0.36811042999316984, 0.2475422961964979, 0.6557561917386865]}}
11
+ {"id": "v02-development-011", "group_id": "v02-development-011", "target": [0, 0, 0, 0, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.003686311215658133, 0.03579754892649808, 4.916990230326614e-06, 0.005484522302728242, 0.08792255691818396], "bert_finetuned": [0.21914033591747284, 0.32531073689460754, 0.1743016093969345, 0.16231781244277954, 0.38906964659690857], "frozen_logistic_temperature": [0.19783849215941723, 0.305051852464384, 0.04497192808848213, 0.21415131513445942, 0.3578249275282452], "bert_finetuned_temperature": [0.21156900775364987, 0.31969014187778594, 0.16654766999782583, 0.15460176989409, 0.38529410121212326]}}
12
+ {"id": "v02-development-012", "group_id": "v02-development-012", "target": [0, 1, 0, 0, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [6.480637109445325e-05, 0.3845749038512201, 9.76348018837426e-07, 2.0150920973502412e-05, 0.0058643534750468145], "bert_finetuned": [0.3274966776371002, 0.4280436336994171, 0.13146518170833588, 0.09594190865755081, 0.32323604822158813], "frozen_logistic_temperature": [0.08233693815927805, 0.4706478710699469, 0.03047612706886152, 0.0627930276575486, 0.21699829871715845], "bert_finetuned_temperature": [0.3219328629144994, 0.4255431415561199, 0.12404741108693856, 0.08929648505863412, 0.3175620575122641]}}
13
+ {"id": "v02-development-013", "group_id": "v02-development-013", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [2.600067059065102e-06, 0.4810946235085207, 0.00677036573916818, 0.0036492719479936987, 0.00052202655583038], "bert_finetuned": [0.2560884356498718, 0.6283457279205322, 0.17880922555923462, 0.23652242124080658, 0.4630889296531677], "frozen_logistic_temperature": [0.038605403535699225, 0.495271542567015, 0.22320225243279057, 0.19743666689210115, 0.13132230908349238], "bert_finetuned_temperature": [0.2489900776316297, 0.6326599380714037, 0.171051250146845, 0.2291414094522216, 0.4617922504634391]}}
14
+ {"id": "v02-development-014", "group_id": "v02-development-014", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.12133542101084299, 0.00014833714044929338, 4.7836050156307554e-09, 1.2241684701432535e-05, 8.12307628069437e-05], "bert_finetuned": [0.32507753372192383, 0.17984330654144287, 0.09814026951789856, 0.08999603986740112, 0.1548643559217453], "frozen_logistic_temperature": [0.3787255549363485, 0.09939466981710056, 0.017472091924003903, 0.055847504511244636, 0.08670607400162218], "bert_finetuned_temperature": [0.31945091265131026, 0.17208516573447757, 0.0914314372229418, 0.08353370037078177, 0.14719279364740123]}}
15
+ {"id": "v02-development-015", "group_id": "v02-development-015", "target": [0, 0, 1, 0, 1], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.0010299869043885889, 0.015572399439536883, 4.205039312552859e-05, 8.357162885835909e-06, 0.22478885571493706], "bert_finetuned": [0.16005855798721313, 0.15730968117713928, 0.14334736764431, 0.06785578280687332, 0.10191027075052261], "frozen_logistic_temperature": [0.15196203713919432, 0.2617988149732431, 0.07452655440325193, 0.051023593196075454, 0.4232383810584727], "bert_finetuned_temperature": [0.15235425432741695, 0.14962169560509422, 0.1357781788512505, 0.06223973807094281, 0.09509789067239718]}}
16
+ {"id": "v02-development-016", "group_id": "v02-development-016", "target": [1, 0, 0, 1, 0], "scores": {"heuristic": [1.0, 0.0, 0.0, 1.0, 0.0], "frozen_logistic": [0.9988721035577781, 0.0005875060328787982, 0.00024684962148833827, 1.6874637089047277e-05, 9.474562267720694e-06], "bert_finetuned": [0.370901495218277, 0.21979379653930664, 0.10349240899085999, 0.08699218183755875, 0.16537624597549438], "frozen_logistic_temperature": [0.8450859774588932, 0.1347311343110255, 0.11138998026347, 0.06023249673806771, 0.05256426298446979], "bert_finetuned_temperature": [0.3665645187564577, 0.21222851676617668, 0.09663848510960946, 0.08062899466923984, 0.15764667654081171]}}
17
+ {"id": "v02-development-017", "group_id": "v02-development-017", "target": [0, 0, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 0.0], "frozen_logistic": [9.994786789591046e-05, 6.343108618193849e-07, 0.9011762737712986, 1.1031300818279478e-05, 0.0006301334478783729], "bert_finetuned": [0.3396495282649994, 0.1968003213405609, 0.6307265758514404, 0.19746984541416168, 0.18174277245998383], "frozen_logistic_temperature": [0.09090038252183938, 0.027446631305468247, 0.6347364649948201, 0.05449085393492752, 0.13678692335780884], "bert_finetuned_temperature": [0.3344107888191561, 0.18907822064616037, 0.6351126351055094, 0.1897506136224562, 0.17398505653152152]}}
18
+ {"id": "v02-development-018", "group_id": "v02-development-018", "target": [0, 0, 0, 1, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 1.0, 0.0], "frozen_logistic": [0.15147484456999488, 0.0012884964912778503, 0.00033428207638876026, 0.01713601681594044, 2.2333285893362375e-06], "bert_finetuned": [0.30577513575553894, 0.34596890211105347, 0.1422298103570938, 0.47618845105171204, 0.22049567103385925], "frozen_logistic_temperature": [0.3939424679788569, 0.1593265427946781, 0.11911918769280858, 0.26652566552254764, 0.037219099806310704], "bert_finetuned_temperature": [0.29967178675051726, 0.34090520504531874, 0.13467282549154316, 0.4753500766833478, 0.2129369869367151]}}
19
+ {"id": "v02-development-019", "group_id": "v02-development-019", "target": [0, 0, 0, 1, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 1.0], "frozen_logistic": [2.505834630894098e-05, 0.37088035194010305, 4.4063168634787756e-05, 0.7963752820670864, 0.004105692383571481], "bert_finetuned": [0.3130202293395996, 0.4272197186946869, 0.1476779580116272, 0.5312488675117493, 0.2706129252910614], "frozen_logistic_temperature": [0.0660772239940106, 0.4670203309166674, 0.07533681923951373, 0.5844207761447836, 0.20216514983861958], "bert_finetuned_temperature": [0.3070905731494879, 0.42469146152639053, 0.140065331057615, 0.5323478312875256, 0.2637669466825842]}}
20
+ {"id": "v02-development-020", "group_id": "v02-development-020", "target": [0, 1, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [1.877983435392888e-05, 0.9963634163603183, 0.0009697556043290358, 5.9762987055397494e-05, 1.321498945277251e-06], "bert_finetuned": [0.1334305703639984, 0.8039056658744812, 0.16628144681453705, 0.25543922185897827, 0.09233647584915161], "frozen_logistic_temperature": [0.061764221071368614, 0.8027017760672452, 0.150028944007681, 0.08081936418812957, 0.03279337470764105], "bert_finetuned_temperature": [0.12598438643066845, 0.8116306764238571, 0.15854838882052305, 0.24833039957345493, 0.08580001535466686]}}
21
+ {"id": "v02-development-021", "group_id": "v02-development-021", "target": [1, 1, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9979060014258915, 0.9759626647892803, 0.35690736877372076, 0.010220610447420283, 0.0006324934455253233], "bert_finetuned": [0.6024187803268433, 0.2626284062862396, 0.26572975516319275, 0.11423183977603912, 0.08184149861335754], "frozen_logistic_temperature": [0.823703865215134, 0.7162537232714493, 0.4632655274716595, 0.24172068507618488, 0.13689737989001008], "bert_finetuned_temperature": [0.6059233546545608, 0.25563941802271883, 0.2587950990839981, 0.10712447688315299, 0.07565921503154174]}}
22
+ {"id": "v02-development-022", "group_id": "v02-development-022", "target": [1, 0, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9600465811885177, 0.006133525231937524, 0.0011985050057469605, 0.002011673820136559, 6.722166505204964e-06], "bert_finetuned": [0.4860963821411133, 0.2555278241634369, 0.1995239406824112, 0.10344620048999786, 0.06961704045534134], "frozen_logistic_temperature": [0.6888646733189236, 0.21892220759422878, 0.15691410701508843, 0.17484179223350912, 0.04845168560695754], "bert_finetuned_temperature": [0.48560633843090045, 0.24842042576687934, 0.19181417055098637, 0.09659347417302437, 0.06392325188960582]}}
23
+ {"id": "v02-development-023", "group_id": "v02-development-023", "target": [1, 1, 0, 1, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9912542883662386, 0.9982401422209465, 3.295990056640961e-05, 0.10339239154909616, 0.001004030832854437], "bert_finetuned": [0.39987796545028687, 0.563210129737854, 0.08679807186126709, 0.10630110651254654, 0.1483049988746643], "frozen_logistic_temperature": [0.7654153105656083, 0.8299383239660756, 0.07043368783256108, 0.3681825261106387, 0.15114073257549018], "bert_finetuned_temperature": [0.3964473003989882, 0.5654141396279202, 0.08044145021846873, 0.0993761516912532, 0.14068658323675431]}}
24
+ {"id": "v02-development-024", "group_id": "v02-development-024", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.5205488766475089, 0.0002429364965676596, 3.9238326567070206e-05, 0.0033118351313840516, 0.00010591027308952663], "bert_finetuned": [0.457999587059021, 0.30623090267181396, 0.10635389387607574, 0.11646765470504761, 0.2081911712884903], "frozen_logistic_temperature": [0.5051399333275126, 0.11099508151567748, 0.07334178252840506, 0.19360809483934044, 0.09210469945268954], "bert_finetuned_temperature": [0.45652579491121326, 0.3001382868183944, 0.09942763698124354, 0.10931354712787945, 0.20053205158439324]}}
25
+ {"id": "v02-development-025", "group_id": "v02-development-025", "target": [1, 0, 0, 0, 1], "scores": {"heuristic": [1.0, 0.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.999993207397311, 2.117539557872894e-07, 5.905745786001515e-07, 2.028068248657628e-06, 0.283190927997861], "bert_finetuned": [0.7224216461181641, 0.19805297255516052, 0.19702932238578796, 0.16628307104110718, 0.3561125099658966], "frozen_logistic_temperature": [0.9514280284484682, 0.021001008487862436, 0.026973869657540166, 0.036364986708811026, 0.4422163188256711], "bert_finetuned_temperature": [0.7291346956818286, 0.19033632585553212, 0.1893081910026064, 0.15855000699717137, 0.35133780801298575]}}
26
+ {"id": "v02-development-026", "group_id": "v02-development-026", "target": [1, 0, 1, 0, 1], "scores": {"heuristic": [1.0, 0.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.9998546881535417, 0.00033731048938493075, 0.0012246679111102955, 1.5898398323249899e-06, 0.0006759954358618556], "bert_finetuned": [0.5947754979133606, 0.2206302136182785, 0.17477954924106598, 0.0977809876203537, 0.1571999192237854], "frozen_logistic_temperature": [0.9010655755390136, 0.11935605218202855, 0.15763050410275478, 0.03429135415762197, 0.13887540941882612], "bert_finetuned_temperature": [0.5980328796830525, 0.21307280554769217, 0.16702492374084357, 0.0910823639666293, 0.14951263211134194]}}
27
+ {"id": "v02-development-027", "group_id": "v02-development-027", "target": [1, 0, 0, 1, 0], "scores": {"heuristic": [1.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9295027481558734, 0.80020622803251, 2.7096191201524127e-06, 0.9354203367970858, 0.00030199078016471216], "bert_finetuned": [0.6259682774543762, 0.3828553855419159, 0.1093657910823822, 0.3659406304359436, 0.20400866866111755], "frozen_logistic_temperature": [0.6558307045164011, 0.5858646521430056, 0.03899017496175772, 0.661116595693127, 0.11647910835057229], "bert_finetuned_temperature": [0.6302102922197494, 0.37888508880159255, 0.10236721961956573, 0.3614547670087062, 0.19632296821400785]}}
28
+ {"id": "v02-development-028", "group_id": "v02-development-028", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.1198191331540774, 0.010262795367132245, 0.012726431336930185, 0.00013269654308724013, 1.6412077975391175e-08], "bert_finetuned": [0.29934921860694885, 0.25142064690589905, 0.2553832530975342, 0.18979501724243164, 0.10219521075487137], "frozen_logistic_temperature": [0.3778847738178307, 0.2419114314192027, 0.2520296622900723, 0.09692849097892399, 0.017472091924003903], "bert_finetuned_temperature": [0.2930973841487492, 0.24424866373065157, 0.24827353205337524, 0.18204935967586267, 0.09537526624934692]}}
29
+ {"id": "v02-development-029", "group_id": "v02-development-029", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.00549932191655114, 0.18785609510507506, 0.00023074451292433637, 0.4501826649547985, 2.7152109067632637e-06], "bert_finetuned": [0.19798584282398224, 0.5043371915817261, 0.09093426913022995, 0.21298940479755402, 0.17956267297267914], "frozen_logistic_temperature": [0.2142653405684064, 0.4095078346766548, 0.10973095845745855, 0.4875068082355889, 0.039009491175101746], "bert_finetuned_temperature": [0.1902688944400794, 0.5044901342292997, 0.0844418907769865, 0.20536556891656257, 0.1718045492817267]}}
30
+ {"id": "v02-development-030", "group_id": "v02-development-030", "target": [0, 1, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.005565892998657401, 0.0006299514699109615, 1.64014580778437e-07, 0.00024188368274927503, 6.744265474724567e-06], "bert_finetuned": [0.16338959336280823, 0.2528574764728546, 0.0981215313076973, 0.08365093171596527, 0.13302427530288696], "frozen_logistic_temperature": [0.2147750391980087, 0.1367783920834511, 0.019727295157035914, 0.11088796133884059, 0.048489529294591736], "bert_finetuned_temperature": [0.15566850309217817, 0.245707755561807, 0.0914132299595386, 0.077403496048328, 0.12558385303700376]}}
31
+ {"id": "v02-development-031", "group_id": "v02-development-031", "target": [1, 1, 1, 1, 0], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9924888909973482, 0.9869082159144359, 0.06855949044692673, 0.9549481460412084, 0.00012544687490530226], "bert_finetuned": [0.7958874702453613, 0.8834933638572693, 0.3370674252510071, 0.7919710278511047, 0.1632542610168457], "frozen_logistic_temperature": [0.7722321262307106, 0.7466166001378504, 0.3424809682654245, 0.682104622900521, 0.09570581400258256], "bert_finetuned_temperature": [0.803572558511338, 0.8906482686589559, 0.3317583194340916, 0.7996312515285341, 0.15553378973723886]}}
32
+ {"id": "v02-development-032", "group_id": "v02-development-032", "target": [0, 0, 0, 1, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.0038690422591141664, 0.0008491118922084035, 0.000593880123660825, 0.12076284022628055, 5.6759408930565235e-05], "bert_finetuned": [0.2744193375110626, 0.2929377853870392, 0.16406016051769257, 0.34060364961624146, 0.31984254717826843], "frozen_logistic_temperature": [0.19977232567217965, 0.1458388627727806, 0.13504612984156023, 0.37840904423572913, 0.07986680776055192], "bert_finetuned_temperature": [0.26764507850494573, 0.2865432376106383, 0.15633608125493292, 0.33539108335202406, 0.3140822753090294]}}
33
+ {"id": "v02-development-probe-1-1", "group_id": "v02-development-probe-1", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9989031687985784, 0.8820096699726373, 0.962164668599362, 0.005505907987964393, 0.9997352083460299], "bert_finetuned": [0.8715278506278992, 0.8107214570045471, 0.7828874588012695, 0.4968845546245575, 0.8964351415634155], "frozen_logistic_temperature": [0.8459988769649815, 0.6231406199478793, 0.6918932917013649, 0.21431599983497562, 0.8868614510937132], "bert_finetuned_temperature": [0.8788996974013299, 0.8184683771122183, 0.7904769857082936, 0.49677469167649246, 0.9032909411810476]}}
34
+ {"id": "v02-development-probe-1-0", "group_id": "v02-development-probe-1", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9958549144371829, 0.9961301602336985, 0.00035771381292531355, 0.0005206916792293704, 0.0018267159392048086], "bert_finetuned": [0.7421473860740662, 0.8496145606040955, 0.25249361991882324, 0.25217312574386597, 0.20014899969100952], "frozen_logistic_temperature": [0.7974479276240973, 0.8002194050847417, 0.12090850499258696, 0.13124926828544603, 0.17138377414024056], "bert_finetuned_temperature": [0.7492169469382183, 0.8572512886208612, 0.24533822746587514, 0.24501275669288797, 0.1924423050030694]}}
35
+ {"id": "v02-development-probe-2-1", "group_id": "v02-development-probe-2", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9913563878484966, 0.9972955449663338, 0.9974653266464528, 0.02494122101515428, 0.9999856707418265], "bert_finetuned": [0.8835669159889221, 0.8502550721168518, 0.8169382810592651, 0.5647239089012146, 0.9057784676551819], "frozen_logistic_temperature": [0.7659466396796126, 0.8142002229782321, 0.8166461730183785, 0.2856728114663767, 0.9420401949132237], "bert_finetuned_temperature": [0.8907203160407681, 0.8578863079279403, 0.8246951514588908, 0.5669794523375151, 0.9123726775400306]}}
36
+ {"id": "v02-development-probe-2-0", "group_id": "v02-development-probe-2", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.9885987202582185, 0.9999746447401763, 0.01000525460458422, 0.006037926345610415, 0.05755068917659453], "bert_finetuned": [0.7820743918418884, 0.8642739057540894, 0.42508819699287415, 0.3310144543647766, 0.14188116788864136], "frozen_logistic_temperature": [0.7531792206645246, 0.933740811812862, 0.2407362450434726, 0.21824730377631024, 0.33204417884652165], "bert_finetuned_temperature": [0.7896567257358031, 0.871751555997513, 0.4224882486972096, 0.32554311848619494, 0.13432807481010356]}}
evaluations/v02/development/results.json ADDED
The diff for this file is too large to render. See raw diff
 
evaluations/v02/development/selection.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "suite_manifest_sha256": "6a3b01f29aa7aa3cc0a34be30da0dbb5f1a28bb64a54f85a65ae9a7689eb930d",
3
+ "frozen_sha256": "07bf28b9c3349024949f89af59c3a8e3e0a126527d3de57b9c2b69064228e8a2",
4
+ "sha256": {
5
+ "bert_finetuned-policy.json": "0b144015e0bcb2808ab507b10018fd38ca5e8f5184bca7b110975135410638a9",
6
+ "frozen_logistic-policy.json": "bae8c8ae9687001a610b16030cd25c98c8ceefd94732055bca54008230674a1e"
7
+ }
8
+ }
evaluations/v02/error-analysis.md ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Erros e interpretação da avaliação 0.2
2
+
3
+ Análise posterior ao teste; não orientou correções, regras, limiares ou retreino nesta versão.
4
+
5
+ | Método | Componente | FP | FN | Suporte positivo |
6
+ |---|---|---:|---:|---:|
7
+ | heuristic | action | 0 | 16 | 20 |
8
+ | heuristic | context | 1 | 3 | 14 |
9
+ | heuristic | method | 0 | 4 | 14 |
10
+ | heuristic | result | 0 | 7 | 11 |
11
+ | heuristic | measurement | 0 | 2 | 12 |
12
+ | frozen_logistic | action | 1 | 0 | 20 |
13
+ | frozen_logistic | context | 2 | 3 | 14 |
14
+ | frozen_logistic | method | 2 | 11 | 14 |
15
+ | frozen_logistic | result | 0 | 5 | 11 |
16
+ | frozen_logistic | measurement | 0 | 10 | 12 |
17
+ | bert_finetuned | action | 1 | 2 | 20 |
18
+ | bert_finetuned | context | 3 | 5 | 14 |
19
+ | bert_finetuned | method | 0 | 11 | 14 |
20
+ | bert_finetuned | result | 2 | 7 | 11 |
21
+ | bert_finetuned | measurement | 2 | 9 | 12 |
22
+
23
+ ## Exemplos de erros do BERT
24
+
25
+ Amostra determinística: primeiros 12 textos com erro na ordem dos IDs. Referência revisada pela mesma IA, sem revisão humana.
26
+
27
+ - `v02-test-002` — method: FN. Auditei as permissões por meio de uma lista de verificação.
28
+ Interpretação de referência registrada antes dos scores: Procedimento explícito; auditoria não afirma correção.
29
+ - `v02-test-004` — context: FN; method: FN. Durante a mudança de sede, examinei a conectividade usando captura de tráfego.
30
+ Interpretação de referência registrada antes dos scores: Circunstância e meio, sem efeito declarado.
31
+ - `v02-test-005` — result: FN. Entreguei o roteiro de recuperação.
32
+ Interpretação de referência registrada antes dos scores: Entrega concreta sem números.
33
+ - `v02-test-006` — method: FN; result: FN. Disponibilizei a biblioteca usando Docker; o pacote ficou acessível.
34
+ Interpretação de referência registrada antes dos scores: Ação, método e disponibilidade explícitos.
35
+ - `v02-test-007` — context: FN; method: FN; result: FN; measurement: FN. No processo de conciliação, ajustei as consultas com PostgreSQL e o tempo caiu 22%.
36
+ Interpretação de referência registrada antes dos scores: Cenário, atividade, ferramenta, efeito e medida.
37
+ - `v02-test-008` — measurement: FN. Na equipe de entregas, reorganizei os turnos. O atraso caiu de 30 para 10 minutos.
38
+ Interpretação de referência registrada antes dos scores: Mudança e medida explícitas, sem procedimento separado.
39
+ - `v02-test-010` — measurement: FP. Em 2024. Ocorrência OPS-719.
40
+ Interpretação de referência registrada antes dos scores: Data e identificador não medem realização.
41
+ - `v02-test-012` — context: FN; measurement: FN. Tenho seis anos de experiência no setor de pagamentos.
42
+ Interpretação de referência registrada antes dos scores: Duração e setor; experiência genérica não é contribuição concreta.
43
+ - `v02-test-013` — context: FP; measurement: FP. Perfil colaborativo com foco em excelência e alta performance.
44
+ Interpretação de referência registrada antes dos scores: Qualidades alegadas não são componentes de uma realização.
45
+ - `v02-test-015` — method: FN; measurement: FN. Planejo reduzir os custos em 17% por meio de compressão.
46
+ Interpretação de referência registrada antes dos scores: Futuro preserva método e medida, sem efeito realizado.
47
+ - `v02-test-016` — action: FN; result: FN. Não migrei os arquivos; entreguei o plano de contingência.
48
+ Interpretação de referência registrada antes dos scores: Negação restrita à primeira oração; segunda afirma entrega.
49
+ - `v02-test-017` — method: FN. Comparação de checksums como procedimento.
50
+ Interpretação de referência registrada antes dos scores: Abordagem nominal explícita, sem contribuição afirmada.
51
+
52
+ ## Sensibilidade a marcadores
53
+
54
+ Dois pares de origens, cada um com versão marcada e livre, preservam os rótulos. Isso é uma sondagem pequena, não uma estimativa populacional.
55
+
56
+ | Método | Origem | Componentes que mudaram de decisão | Mudança absoluta média do score |
57
+ |---|---|---:|---:|
58
+ | heuristic | v02-test-probe-1 | 1 | 0.2000 |
59
+ | heuristic | v02-test-probe-2 | 1 | 0.2000 |
60
+ | frozen_logistic | v02-test-probe-1 | 2 | 0.3921 |
61
+ | frozen_logistic | v02-test-probe-2 | 2 | 0.4020 |
62
+ | bert_finetuned | v02-test-probe-1 | 3 | 0.3497 |
63
+ | bert_finetuned | v02-test-probe-2 | 3 | 0.3063 |
64
+
65
+ ## Leitura dos resultados
66
+
67
+ O BERT e a regressão acertam action com frequência maior que a heurística, mas perdem cobertura em method e measurement. A vantagem global das heurísticas nesta amostra não significa que elas sejam superiores em qualquer domínio.
68
+
69
+ Os pares sem marcadores mudam duas decisões por origem na regressão e três no BERT, embora os rótulos de referência permaneçam iguais. O comportamento é compatível com dependência de sinais de superfície; dois pares não isolam uma explicação causal.
70
+
71
+ A temperatura da regressão reduziu Brier/log loss, mantendo F1. A temperatura do BERT alterou pouco os scores. Nenhum cutoff de confiança cumpriu a meta de desenvolvimento; as políticas salvam abstenção desativada. Não selecionar um cutoff pelos erros deste teste.
72
+
73
+ Recortes podem não ter positivos em todos os rótulos: macro-F1 com zero_division=0 pode ser zero apesar de todas as decisões negativas estarem corretas. Usar suportes, Hamming e FP/FN na leitura desses recortes.
74
+
75
+ As fontes de desenvolvimento e teste têm categorias e algumas construções paralelas; a autoria/revisão única e a pequena amostra limitam independência. Não são textos reais, validação humana, avaliação de spans ou benchmark de estruturas. O teste original continua preservado.
evaluations/v02/historical/README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Avaliação posterior da v0.1
2
+
3
+ Referência sintética revisada pela mesma IA. Sem revisão humana ou evidência populacional.
4
+
5
+ | Método | Macro-F1 | Exact match | Hamming ↓ | AP macro | Brier ↓ | Log loss ↓ |
6
+ |---|---:|---:|---:|---:|---:|---:|
7
+ | heuristic | 0.6791 | 0.3333 | 0.2067 | 0.8248 | 0.2067 | 3.3311 |
8
+ | frozen_logistic | 0.9888 | 0.9333 | 0.0133 | 1.0000 | 0.0089 | 0.0297 |
9
+ | bert_finetuned | 0.9911 | 0.9500 | 0.0100 | 1.0000 | 0.0383 | 0.1941 |
10
+
11
+ Métricas por rótulo, suportes, ROC-AUC, MCC, confiabilidade e risco/cobertura: `results.json`.
12
+ Scores heurísticos são decisões binárias, sem interpretação probabilística calibrada.
13
+ Log loss usa clipping em 1e-7. Esta análise não altera a seleção da v0.1.
evaluations/v02/historical/results.json ADDED
@@ -0,0 +1,1061 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "phase": "historical_posthoc_v01",
3
+ "source_sha256": "e10149701fb267a3269b062e8e56dbf2156132362ba843e2908523f5933142b5",
4
+ "selection_changed": false,
5
+ "methods": {
6
+ "heuristic": {
7
+ "n": 60,
8
+ "macro_f1": 0.6791489361702128,
9
+ "micro_f1": 0.7633587786259542,
10
+ "exact_match": 0.3333333333333333,
11
+ "per_label": {
12
+ "action": {
13
+ "precision": 0.0,
14
+ "recall": 0.0,
15
+ "f1": 0.0,
16
+ "support": 31,
17
+ "tp": 0,
18
+ "fp": 0,
19
+ "fn": 31,
20
+ "tn": 29,
21
+ "average_precision": 0.5166666666666667,
22
+ "roc_auc": 0.5,
23
+ "mcc": 0.0,
24
+ "brier": 0.5166666666666667,
25
+ "log_loss": 8.327682801328468,
26
+ "reliability": [
27
+ {
28
+ "lower": 0.0,
29
+ "upper": 0.2,
30
+ "n": 60,
31
+ "mean_score": 0.0,
32
+ "positive_rate": 0.5166666666666667
33
+ },
34
+ {
35
+ "lower": 0.2,
36
+ "upper": 0.4,
37
+ "n": 0,
38
+ "mean_score": null,
39
+ "positive_rate": null
40
+ },
41
+ {
42
+ "lower": 0.4,
43
+ "upper": 0.6,
44
+ "n": 0,
45
+ "mean_score": null,
46
+ "positive_rate": null
47
+ },
48
+ {
49
+ "lower": 0.6,
50
+ "upper": 0.8,
51
+ "n": 0,
52
+ "mean_score": null,
53
+ "positive_rate": null
54
+ },
55
+ {
56
+ "lower": 0.8,
57
+ "upper": 1.0,
58
+ "n": 0,
59
+ "mean_score": null,
60
+ "positive_rate": null
61
+ }
62
+ ]
63
+ },
64
+ "context": {
65
+ "precision": 1.0,
66
+ "recall": 0.6666666666666666,
67
+ "f1": 0.8,
68
+ "support": 36,
69
+ "tp": 24,
70
+ "fp": 0,
71
+ "fn": 12,
72
+ "tn": 24,
73
+ "average_precision": 0.8666666666666667,
74
+ "roc_auc": 0.8333333333333333,
75
+ "mcc": 0.6666666666666666,
76
+ "brier": 0.2,
77
+ "log_loss": 3.2236192101916674,
78
+ "reliability": [
79
+ {
80
+ "lower": 0.0,
81
+ "upper": 0.2,
82
+ "n": 36,
83
+ "mean_score": 0.0,
84
+ "positive_rate": 0.3333333333333333
85
+ },
86
+ {
87
+ "lower": 0.2,
88
+ "upper": 0.4,
89
+ "n": 0,
90
+ "mean_score": null,
91
+ "positive_rate": null
92
+ },
93
+ {
94
+ "lower": 0.4,
95
+ "upper": 0.6,
96
+ "n": 0,
97
+ "mean_score": null,
98
+ "positive_rate": null
99
+ },
100
+ {
101
+ "lower": 0.6,
102
+ "upper": 0.8,
103
+ "n": 0,
104
+ "mean_score": null,
105
+ "positive_rate": null
106
+ },
107
+ {
108
+ "lower": 0.8,
109
+ "upper": 1.0,
110
+ "n": 24,
111
+ "mean_score": 1.0,
112
+ "positive_rate": 1.0
113
+ }
114
+ ]
115
+ },
116
+ "method": {
117
+ "precision": 1.0,
118
+ "recall": 0.42424242424242425,
119
+ "f1": 0.5957446808510638,
120
+ "support": 33,
121
+ "tp": 14,
122
+ "fp": 0,
123
+ "fn": 19,
124
+ "tn": 27,
125
+ "average_precision": 0.740909090909091,
126
+ "roc_auc": 0.7121212121212122,
127
+ "mcc": 0.4990108793478454,
128
+ "brier": 0.31666666666666665,
129
+ "log_loss": 5.104063691136806,
130
+ "reliability": [
131
+ {
132
+ "lower": 0.0,
133
+ "upper": 0.2,
134
+ "n": 46,
135
+ "mean_score": 0.0,
136
+ "positive_rate": 0.41304347826086957
137
+ },
138
+ {
139
+ "lower": 0.2,
140
+ "upper": 0.4,
141
+ "n": 0,
142
+ "mean_score": null,
143
+ "positive_rate": null
144
+ },
145
+ {
146
+ "lower": 0.4,
147
+ "upper": 0.6,
148
+ "n": 0,
149
+ "mean_score": null,
150
+ "positive_rate": null
151
+ },
152
+ {
153
+ "lower": 0.6,
154
+ "upper": 0.8,
155
+ "n": 0,
156
+ "mean_score": null,
157
+ "positive_rate": null
158
+ },
159
+ {
160
+ "lower": 0.8,
161
+ "upper": 1.0,
162
+ "n": 14,
163
+ "mean_score": 1.0,
164
+ "positive_rate": 1.0
165
+ }
166
+ ]
167
+ },
168
+ "result": {
169
+ "precision": 1.0,
170
+ "recall": 1.0,
171
+ "f1": 1.0,
172
+ "support": 31,
173
+ "tp": 31,
174
+ "fp": 0,
175
+ "fn": 0,
176
+ "tn": 29,
177
+ "average_precision": 1.0,
178
+ "roc_auc": 1.0,
179
+ "mcc": 1.0,
180
+ "brier": 0.0,
181
+ "log_loss": 1.0000000497280527e-07,
182
+ "reliability": [
183
+ {
184
+ "lower": 0.0,
185
+ "upper": 0.2,
186
+ "n": 29,
187
+ "mean_score": 0.0,
188
+ "positive_rate": 0.0
189
+ },
190
+ {
191
+ "lower": 0.2,
192
+ "upper": 0.4,
193
+ "n": 0,
194
+ "mean_score": null,
195
+ "positive_rate": null
196
+ },
197
+ {
198
+ "lower": 0.4,
199
+ "upper": 0.6,
200
+ "n": 0,
201
+ "mean_score": null,
202
+ "positive_rate": null
203
+ },
204
+ {
205
+ "lower": 0.6,
206
+ "upper": 0.8,
207
+ "n": 0,
208
+ "mean_score": null,
209
+ "positive_rate": null
210
+ },
211
+ {
212
+ "lower": 0.8,
213
+ "upper": 1.0,
214
+ "n": 31,
215
+ "mean_score": 1.0,
216
+ "positive_rate": 1.0
217
+ }
218
+ ]
219
+ },
220
+ "measurement": {
221
+ "precision": 1.0,
222
+ "recall": 1.0,
223
+ "f1": 1.0,
224
+ "support": 31,
225
+ "tp": 31,
226
+ "fp": 0,
227
+ "fn": 0,
228
+ "tn": 29,
229
+ "average_precision": 1.0,
230
+ "roc_auc": 1.0,
231
+ "mcc": 1.0,
232
+ "brier": 0.0,
233
+ "log_loss": 1.0000000497280527e-07,
234
+ "reliability": [
235
+ {
236
+ "lower": 0.0,
237
+ "upper": 0.2,
238
+ "n": 29,
239
+ "mean_score": 0.0,
240
+ "positive_rate": 0.0
241
+ },
242
+ {
243
+ "lower": 0.2,
244
+ "upper": 0.4,
245
+ "n": 0,
246
+ "mean_score": null,
247
+ "positive_rate": null
248
+ },
249
+ {
250
+ "lower": 0.4,
251
+ "upper": 0.6,
252
+ "n": 0,
253
+ "mean_score": null,
254
+ "positive_rate": null
255
+ },
256
+ {
257
+ "lower": 0.6,
258
+ "upper": 0.8,
259
+ "n": 0,
260
+ "mean_score": null,
261
+ "positive_rate": null
262
+ },
263
+ {
264
+ "lower": 0.8,
265
+ "upper": 1.0,
266
+ "n": 31,
267
+ "mean_score": 1.0,
268
+ "positive_rate": 1.0
269
+ }
270
+ ]
271
+ }
272
+ },
273
+ "zero_division": 0,
274
+ "hamming_loss": 0.20666666666666667,
275
+ "mean_binary_brier": 0.20666666666666667,
276
+ "mean_binary_log_loss": 3.331073180531391,
277
+ "macro_average_precision": 0.8248484848484848,
278
+ "macro_roc_auc": 0.809090909090909,
279
+ "macro_mcc": 0.6331355092029024,
280
+ "risk_coverage": [
281
+ {
282
+ "confidence_cutoff": 0.5,
283
+ "accepted_decisions": 300,
284
+ "coverage": 1.0,
285
+ "error_on_accepted": 0.20666666666666667,
286
+ "complete_text_coverage": 1.0
287
+ },
288
+ {
289
+ "confidence_cutoff": 0.6,
290
+ "accepted_decisions": 300,
291
+ "coverage": 1.0,
292
+ "error_on_accepted": 0.20666666666666667,
293
+ "complete_text_coverage": 1.0
294
+ },
295
+ {
296
+ "confidence_cutoff": 0.7,
297
+ "accepted_decisions": 300,
298
+ "coverage": 1.0,
299
+ "error_on_accepted": 0.20666666666666667,
300
+ "complete_text_coverage": 1.0
301
+ },
302
+ {
303
+ "confidence_cutoff": 0.8,
304
+ "accepted_decisions": 300,
305
+ "coverage": 1.0,
306
+ "error_on_accepted": 0.20666666666666667,
307
+ "complete_text_coverage": 1.0
308
+ },
309
+ {
310
+ "confidence_cutoff": 0.85,
311
+ "accepted_decisions": 300,
312
+ "coverage": 1.0,
313
+ "error_on_accepted": 0.20666666666666667,
314
+ "complete_text_coverage": 1.0
315
+ },
316
+ {
317
+ "confidence_cutoff": 0.9,
318
+ "accepted_decisions": 300,
319
+ "coverage": 1.0,
320
+ "error_on_accepted": 0.20666666666666667,
321
+ "complete_text_coverage": 1.0
322
+ },
323
+ {
324
+ "confidence_cutoff": 0.95,
325
+ "accepted_decisions": 300,
326
+ "coverage": 1.0,
327
+ "error_on_accepted": 0.20666666666666667,
328
+ "complete_text_coverage": 1.0
329
+ },
330
+ {
331
+ "confidence_cutoff": 0.975,
332
+ "accepted_decisions": 300,
333
+ "coverage": 1.0,
334
+ "error_on_accepted": 0.20666666666666667,
335
+ "complete_text_coverage": 1.0
336
+ },
337
+ {
338
+ "confidence_cutoff": 0.99,
339
+ "accepted_decisions": 300,
340
+ "coverage": 1.0,
341
+ "error_on_accepted": 0.20666666666666667,
342
+ "complete_text_coverage": 1.0
343
+ }
344
+ ],
345
+ "probability_note": "Brier/log loss combinam discriminação e calibração.",
346
+ "log_loss_clip": 1e-07
347
+ },
348
+ "frozen_logistic": {
349
+ "n": 60,
350
+ "macro_f1": 0.9888253968253968,
351
+ "micro_f1": 0.9878048780487805,
352
+ "exact_match": 0.9333333333333333,
353
+ "per_label": {
354
+ "action": {
355
+ "precision": 1.0,
356
+ "recall": 1.0,
357
+ "f1": 1.0,
358
+ "support": 31,
359
+ "tp": 31,
360
+ "fp": 0,
361
+ "fn": 0,
362
+ "tn": 29,
363
+ "average_precision": 0.9999999999999999,
364
+ "roc_auc": 1.0,
365
+ "mcc": 1.0,
366
+ "brier": 0.0003769292223415689,
367
+ "log_loss": 0.007869408187192114,
368
+ "reliability": [
369
+ {
370
+ "lower": 0.0,
371
+ "upper": 0.2,
372
+ "n": 29,
373
+ "mean_score": 0.012395977609864136,
374
+ "positive_rate": 0.0
375
+ },
376
+ {
377
+ "lower": 0.2,
378
+ "upper": 0.4,
379
+ "n": 0,
380
+ "mean_score": null,
381
+ "positive_rate": null
382
+ },
383
+ {
384
+ "lower": 0.4,
385
+ "upper": 0.6,
386
+ "n": 0,
387
+ "mean_score": null,
388
+ "positive_rate": null
389
+ },
390
+ {
391
+ "lower": 0.6,
392
+ "upper": 0.8,
393
+ "n": 0,
394
+ "mean_score": null,
395
+ "positive_rate": null
396
+ },
397
+ {
398
+ "lower": 0.8,
399
+ "upper": 1.0,
400
+ "n": 31,
401
+ "mean_score": 0.9967540745274271,
402
+ "positive_rate": 1.0
403
+ }
404
+ ]
405
+ },
406
+ "context": {
407
+ "precision": 0.9230769230769231,
408
+ "recall": 1.0,
409
+ "f1": 0.96,
410
+ "support": 36,
411
+ "tp": 36,
412
+ "fp": 3,
413
+ "fn": 0,
414
+ "tn": 21,
415
+ "average_precision": 1.0,
416
+ "roc_auc": 1.0,
417
+ "mcc": 0.8987170342729172,
418
+ "brier": 0.028265760174585822,
419
+ "log_loss": 0.07687311236660713,
420
+ "reliability": [
421
+ {
422
+ "lower": 0.0,
423
+ "upper": 0.2,
424
+ "n": 20,
425
+ "mean_score": 0.010617662256270585,
426
+ "positive_rate": 0.0
427
+ },
428
+ {
429
+ "lower": 0.2,
430
+ "upper": 0.4,
431
+ "n": 1,
432
+ "mean_score": 0.21032964650510808,
433
+ "positive_rate": 0.0
434
+ },
435
+ {
436
+ "lower": 0.4,
437
+ "upper": 0.6,
438
+ "n": 0,
439
+ "mean_score": null,
440
+ "positive_rate": null
441
+ },
442
+ {
443
+ "lower": 0.6,
444
+ "upper": 0.8,
445
+ "n": 2,
446
+ "mean_score": 0.6947694943011785,
447
+ "positive_rate": 0.0
448
+ },
449
+ {
450
+ "lower": 0.8,
451
+ "upper": 1.0,
452
+ "n": 37,
453
+ "mean_score": 0.9939287675216965,
454
+ "positive_rate": 0.972972972972973
455
+ }
456
+ ]
457
+ },
458
+ "method": {
459
+ "precision": 1.0,
460
+ "recall": 1.0,
461
+ "f1": 1.0,
462
+ "support": 33,
463
+ "tp": 33,
464
+ "fp": 0,
465
+ "fn": 0,
466
+ "tn": 27,
467
+ "average_precision": 0.9999999999999999,
468
+ "roc_auc": 1.0,
469
+ "mcc": 1.0,
470
+ "brier": 0.00012500252239207543,
471
+ "log_loss": 0.005853569530398106,
472
+ "reliability": [
473
+ {
474
+ "lower": 0.0,
475
+ "upper": 0.2,
476
+ "n": 27,
477
+ "mean_score": 0.005059445023443739,
478
+ "positive_rate": 0.0
479
+ },
480
+ {
481
+ "lower": 0.2,
482
+ "upper": 0.4,
483
+ "n": 0,
484
+ "mean_score": null,
485
+ "positive_rate": null
486
+ },
487
+ {
488
+ "lower": 0.4,
489
+ "upper": 0.6,
490
+ "n": 0,
491
+ "mean_score": null,
492
+ "positive_rate": null
493
+ },
494
+ {
495
+ "lower": 0.6,
496
+ "upper": 0.8,
497
+ "n": 0,
498
+ "mean_score": null,
499
+ "positive_rate": null
500
+ },
501
+ {
502
+ "lower": 0.8,
503
+ "upper": 1.0,
504
+ "n": 33,
505
+ "mean_score": 0.9936130111171408,
506
+ "positive_rate": 1.0
507
+ }
508
+ ]
509
+ },
510
+ "result": {
511
+ "precision": 0.96875,
512
+ "recall": 1.0,
513
+ "f1": 0.9841269841269841,
514
+ "support": 31,
515
+ "tp": 31,
516
+ "fp": 1,
517
+ "fn": 0,
518
+ "tn": 28,
519
+ "average_precision": 0.9999999999999999,
520
+ "roc_auc": 1.0,
521
+ "mcc": 0.9671322699539122,
522
+ "brier": 0.00754726813501838,
523
+ "log_loss": 0.02673219015314694,
524
+ "reliability": [
525
+ {
526
+ "lower": 0.0,
527
+ "upper": 0.2,
528
+ "n": 27,
529
+ "mean_score": 0.010395747457866493,
530
+ "positive_rate": 0.0
531
+ },
532
+ {
533
+ "lower": 0.2,
534
+ "upper": 0.4,
535
+ "n": 1,
536
+ "mean_score": 0.2820285215936479,
537
+ "positive_rate": 0.0
538
+ },
539
+ {
540
+ "lower": 0.4,
541
+ "upper": 0.6,
542
+ "n": 1,
543
+ "mean_score": 0.598077836891273,
544
+ "positive_rate": 0.0
545
+ },
546
+ {
547
+ "lower": 0.6,
548
+ "upper": 0.8,
549
+ "n": 0,
550
+ "mean_score": null,
551
+ "positive_rate": null
552
+ },
553
+ {
554
+ "lower": 0.8,
555
+ "upper": 1.0,
556
+ "n": 31,
557
+ "mean_score": 0.9976701096604229,
558
+ "positive_rate": 1.0
559
+ }
560
+ ]
561
+ },
562
+ "measurement": {
563
+ "precision": 1.0,
564
+ "recall": 1.0,
565
+ "f1": 1.0,
566
+ "support": 31,
567
+ "tp": 31,
568
+ "fp": 0,
569
+ "fn": 0,
570
+ "tn": 29,
571
+ "average_precision": 0.9999999999999999,
572
+ "roc_auc": 1.0,
573
+ "mcc": 1.0,
574
+ "brier": 0.008082340320541895,
575
+ "log_loss": 0.030931323329575384,
576
+ "reliability": [
577
+ {
578
+ "lower": 0.0,
579
+ "upper": 0.2,
580
+ "n": 25,
581
+ "mean_score": 0.005906779640878344,
582
+ "positive_rate": 0.0
583
+ },
584
+ {
585
+ "lower": 0.2,
586
+ "upper": 0.4,
587
+ "n": 3,
588
+ "mean_score": 0.2991547887488771,
589
+ "positive_rate": 0.0
590
+ },
591
+ {
592
+ "lower": 0.4,
593
+ "upper": 0.6,
594
+ "n": 1,
595
+ "mean_score": 0.4564630103563689,
596
+ "positive_rate": 0.0
597
+ },
598
+ {
599
+ "lower": 0.6,
600
+ "upper": 0.8,
601
+ "n": 0,
602
+ "mean_score": null,
603
+ "positive_rate": null
604
+ },
605
+ {
606
+ "lower": 0.8,
607
+ "upper": 1.0,
608
+ "n": 31,
609
+ "mean_score": 0.9991607864692897,
610
+ "positive_rate": 1.0
611
+ }
612
+ ]
613
+ }
614
+ },
615
+ "zero_division": 0,
616
+ "hamming_loss": 0.013333333333333334,
617
+ "mean_binary_brier": 0.00887946007497595,
618
+ "mean_binary_log_loss": 0.02965192071338393,
619
+ "macro_average_precision": 1.0,
620
+ "macro_roc_auc": 1.0,
621
+ "macro_mcc": 0.9731698608453658,
622
+ "risk_coverage": [
623
+ {
624
+ "confidence_cutoff": 0.5,
625
+ "accepted_decisions": 300,
626
+ "coverage": 1.0,
627
+ "error_on_accepted": 0.013333333333333334,
628
+ "complete_text_coverage": 1.0
629
+ },
630
+ {
631
+ "confidence_cutoff": 0.6,
632
+ "accepted_decisions": 298,
633
+ "coverage": 0.9933333333333333,
634
+ "error_on_accepted": 0.010067114093959731,
635
+ "complete_text_coverage": 0.9666666666666667
636
+ },
637
+ {
638
+ "confidence_cutoff": 0.7,
639
+ "accepted_decisions": 295,
640
+ "coverage": 0.9833333333333333,
641
+ "error_on_accepted": 0.006779661016949152,
642
+ "complete_text_coverage": 0.9166666666666666
643
+ },
644
+ {
645
+ "confidence_cutoff": 0.8,
646
+ "accepted_decisions": 291,
647
+ "coverage": 0.97,
648
+ "error_on_accepted": 0.003436426116838488,
649
+ "complete_text_coverage": 0.8666666666666667
650
+ },
651
+ {
652
+ "confidence_cutoff": 0.85,
653
+ "accepted_decisions": 290,
654
+ "coverage": 0.9666666666666667,
655
+ "error_on_accepted": 0.0,
656
+ "complete_text_coverage": 0.85
657
+ },
658
+ {
659
+ "confidence_cutoff": 0.9,
660
+ "accepted_decisions": 289,
661
+ "coverage": 0.9633333333333334,
662
+ "error_on_accepted": 0.0,
663
+ "complete_text_coverage": 0.8333333333333334
664
+ },
665
+ {
666
+ "confidence_cutoff": 0.95,
667
+ "accepted_decisions": 285,
668
+ "coverage": 0.95,
669
+ "error_on_accepted": 0.0,
670
+ "complete_text_coverage": 0.7833333333333333
671
+ },
672
+ {
673
+ "confidence_cutoff": 0.975,
674
+ "accepted_decisions": 274,
675
+ "coverage": 0.9133333333333333,
676
+ "error_on_accepted": 0.0,
677
+ "complete_text_coverage": 0.65
678
+ },
679
+ {
680
+ "confidence_cutoff": 0.99,
681
+ "accepted_decisions": 241,
682
+ "coverage": 0.8033333333333333,
683
+ "error_on_accepted": 0.0,
684
+ "complete_text_coverage": 0.36666666666666664
685
+ }
686
+ ],
687
+ "probability_note": "Brier/log loss combinam discriminação e calibração.",
688
+ "log_loss_clip": 1e-07
689
+ },
690
+ "bert_finetuned": {
691
+ "n": 60,
692
+ "macro_f1": 0.9911005961711339,
693
+ "micro_f1": 0.9908256880733946,
694
+ "exact_match": 0.95,
695
+ "per_label": {
696
+ "action": {
697
+ "precision": 1.0,
698
+ "recall": 1.0,
699
+ "f1": 1.0,
700
+ "support": 31,
701
+ "tp": 31,
702
+ "fp": 0,
703
+ "fn": 0,
704
+ "tn": 29,
705
+ "average_precision": 0.9999999999999999,
706
+ "roc_auc": 1.0,
707
+ "mcc": 1.0,
708
+ "brier": 0.041335153456922374,
709
+ "log_loss": 0.21240315083340947,
710
+ "reliability": [
711
+ {
712
+ "lower": 0.0,
713
+ "upper": 0.2,
714
+ "n": 8,
715
+ "mean_score": 0.14893143717199564,
716
+ "positive_rate": 0.0
717
+ },
718
+ {
719
+ "lower": 0.2,
720
+ "upper": 0.4,
721
+ "n": 20,
722
+ "mean_score": 0.2442474253475666,
723
+ "positive_rate": 0.0
724
+ },
725
+ {
726
+ "lower": 0.4,
727
+ "upper": 0.6,
728
+ "n": 1,
729
+ "mean_score": 0.4098203480243683,
730
+ "positive_rate": 0.0
731
+ },
732
+ {
733
+ "lower": 0.6,
734
+ "upper": 0.8,
735
+ "n": 8,
736
+ "mean_score": 0.7360205724835396,
737
+ "positive_rate": 1.0
738
+ },
739
+ {
740
+ "lower": 0.8,
741
+ "upper": 1.0,
742
+ "n": 23,
743
+ "mean_score": 0.8850775646126788,
744
+ "positive_rate": 1.0
745
+ }
746
+ ]
747
+ },
748
+ "context": {
749
+ "precision": 0.972972972972973,
750
+ "recall": 1.0,
751
+ "f1": 0.9863013698630136,
752
+ "support": 36,
753
+ "tp": 36,
754
+ "fp": 1,
755
+ "fn": 0,
756
+ "tn": 23,
757
+ "average_precision": 1.0,
758
+ "roc_auc": 1.0,
759
+ "mcc": 0.965625409997289,
760
+ "brier": 0.046350382880483744,
761
+ "log_loss": 0.2129871598361737,
762
+ "reliability": [
763
+ {
764
+ "lower": 0.0,
765
+ "upper": 0.2,
766
+ "n": 10,
767
+ "mean_score": 0.1494319349527359,
768
+ "positive_rate": 0.0
769
+ },
770
+ {
771
+ "lower": 0.2,
772
+ "upper": 0.4,
773
+ "n": 10,
774
+ "mean_score": 0.306925505399704,
775
+ "positive_rate": 0.0
776
+ },
777
+ {
778
+ "lower": 0.4,
779
+ "upper": 0.6,
780
+ "n": 4,
781
+ "mean_score": 0.4979019984602928,
782
+ "positive_rate": 0.0
783
+ },
784
+ {
785
+ "lower": 0.6,
786
+ "upper": 0.8,
787
+ "n": 2,
788
+ "mean_score": 0.7946509420871735,
789
+ "positive_rate": 1.0
790
+ },
791
+ {
792
+ "lower": 0.8,
793
+ "upper": 1.0,
794
+ "n": 34,
795
+ "mean_score": 0.8833667846286998,
796
+ "positive_rate": 1.0
797
+ }
798
+ ]
799
+ },
800
+ "method": {
801
+ "precision": 0.9705882352941176,
802
+ "recall": 1.0,
803
+ "f1": 0.9850746268656716,
804
+ "support": 33,
805
+ "tp": 33,
806
+ "fp": 1,
807
+ "fn": 0,
808
+ "tn": 26,
809
+ "average_precision": 0.9999999999999999,
810
+ "roc_auc": 1.0,
811
+ "mcc": 0.9667680812251803,
812
+ "brier": 0.04249664346850491,
813
+ "log_loss": 0.20848600222352162,
814
+ "reliability": [
815
+ {
816
+ "lower": 0.0,
817
+ "upper": 0.2,
818
+ "n": 17,
819
+ "mean_score": 0.1475498137228629,
820
+ "positive_rate": 0.0
821
+ },
822
+ {
823
+ "lower": 0.2,
824
+ "upper": 0.4,
825
+ "n": 8,
826
+ "mean_score": 0.2691106591373682,
827
+ "positive_rate": 0.0
828
+ },
829
+ {
830
+ "lower": 0.4,
831
+ "upper": 0.6,
832
+ "n": 2,
833
+ "mean_score": 0.4874587655067444,
834
+ "positive_rate": 0.0
835
+ },
836
+ {
837
+ "lower": 0.6,
838
+ "upper": 0.8,
839
+ "n": 10,
840
+ "mean_score": 0.7249036371707916,
841
+ "positive_rate": 1.0
842
+ },
843
+ {
844
+ "lower": 0.8,
845
+ "upper": 1.0,
846
+ "n": 23,
847
+ "mean_score": 0.8914383960806805,
848
+ "positive_rate": 1.0
849
+ }
850
+ ]
851
+ },
852
+ "result": {
853
+ "precision": 0.96875,
854
+ "recall": 1.0,
855
+ "f1": 0.9841269841269841,
856
+ "support": 31,
857
+ "tp": 31,
858
+ "fp": 1,
859
+ "fn": 0,
860
+ "tn": 28,
861
+ "average_precision": 0.9999999999999999,
862
+ "roc_auc": 1.0,
863
+ "mcc": 0.9671322699539122,
864
+ "brier": 0.043329534433857265,
865
+ "log_loss": 0.2010442056541721,
866
+ "reliability": [
867
+ {
868
+ "lower": 0.0,
869
+ "upper": 0.2,
870
+ "n": 19,
871
+ "mean_score": 0.13355475272002973,
872
+ "positive_rate": 0.0
873
+ },
874
+ {
875
+ "lower": 0.2,
876
+ "upper": 0.4,
877
+ "n": 7,
878
+ "mean_score": 0.28619490350995747,
879
+ "positive_rate": 0.0
880
+ },
881
+ {
882
+ "lower": 0.4,
883
+ "upper": 0.6,
884
+ "n": 4,
885
+ "mean_score": 0.5223050490021706,
886
+ "positive_rate": 0.25
887
+ },
888
+ {
889
+ "lower": 0.6,
890
+ "upper": 0.8,
891
+ "n": 8,
892
+ "mean_score": 0.7499877959489822,
893
+ "positive_rate": 1.0
894
+ },
895
+ {
896
+ "lower": 0.8,
897
+ "upper": 1.0,
898
+ "n": 22,
899
+ "mean_score": 0.9129913638938557,
900
+ "positive_rate": 1.0
901
+ }
902
+ ]
903
+ },
904
+ "measurement": {
905
+ "precision": 1.0,
906
+ "recall": 1.0,
907
+ "f1": 1.0,
908
+ "support": 31,
909
+ "tp": 31,
910
+ "fp": 0,
911
+ "fn": 0,
912
+ "tn": 29,
913
+ "average_precision": 0.9999999999999999,
914
+ "roc_auc": 1.0,
915
+ "mcc": 1.0,
916
+ "brier": 0.018086689901868694,
917
+ "log_loss": 0.13562241837372585,
918
+ "reliability": [
919
+ {
920
+ "lower": 0.0,
921
+ "upper": 0.2,
922
+ "n": 26,
923
+ "mean_score": 0.1282187465291757,
924
+ "positive_rate": 0.0
925
+ },
926
+ {
927
+ "lower": 0.2,
928
+ "upper": 0.4,
929
+ "n": 3,
930
+ "mean_score": 0.2532645563284556,
931
+ "positive_rate": 0.0
932
+ },
933
+ {
934
+ "lower": 0.4,
935
+ "upper": 0.6,
936
+ "n": 0,
937
+ "mean_score": null,
938
+ "positive_rate": null
939
+ },
940
+ {
941
+ "lower": 0.6,
942
+ "upper": 0.8,
943
+ "n": 1,
944
+ "mean_score": 0.7553810477256775,
945
+ "positive_rate": 1.0
946
+ },
947
+ {
948
+ "lower": 0.8,
949
+ "upper": 1.0,
950
+ "n": 30,
951
+ "mean_score": 0.8938039938608805,
952
+ "positive_rate": 1.0
953
+ }
954
+ ]
955
+ }
956
+ },
957
+ "zero_division": 0,
958
+ "hamming_loss": 0.01,
959
+ "mean_binary_brier": 0.03831968082832739,
960
+ "mean_binary_log_loss": 0.19410858738420056,
961
+ "macro_average_precision": 1.0,
962
+ "macro_roc_auc": 1.0,
963
+ "macro_mcc": 0.9799051522352762,
964
+ "risk_coverage": [
965
+ {
966
+ "confidence_cutoff": 0.5,
967
+ "accepted_decisions": 300,
968
+ "coverage": 1.0,
969
+ "error_on_accepted": 0.01,
970
+ "complete_text_coverage": 1.0
971
+ },
972
+ {
973
+ "confidence_cutoff": 0.6,
974
+ "accepted_decisions": 289,
975
+ "coverage": 0.9633333333333334,
976
+ "error_on_accepted": 0.0,
977
+ "complete_text_coverage": 0.8166666666666667
978
+ },
979
+ {
980
+ "confidence_cutoff": 0.7,
981
+ "accepted_decisions": 271,
982
+ "coverage": 0.9033333333333333,
983
+ "error_on_accepted": 0.0,
984
+ "complete_text_coverage": 0.6
985
+ },
986
+ {
987
+ "confidence_cutoff": 0.8,
988
+ "accepted_decisions": 212,
989
+ "coverage": 0.7066666666666667,
990
+ "error_on_accepted": 0.0,
991
+ "complete_text_coverage": 0.35
992
+ },
993
+ {
994
+ "confidence_cutoff": 0.85,
995
+ "accepted_decisions": 161,
996
+ "coverage": 0.5366666666666666,
997
+ "error_on_accepted": 0.0,
998
+ "complete_text_coverage": 0.3
999
+ },
1000
+ {
1001
+ "confidence_cutoff": 0.9,
1002
+ "accepted_decisions": 93,
1003
+ "coverage": 0.31,
1004
+ "error_on_accepted": 0.0,
1005
+ "complete_text_coverage": 0.25
1006
+ },
1007
+ {
1008
+ "confidence_cutoff": 0.95,
1009
+ "accepted_decisions": 0,
1010
+ "coverage": 0.0,
1011
+ "error_on_accepted": null,
1012
+ "complete_text_coverage": 0.0
1013
+ },
1014
+ {
1015
+ "confidence_cutoff": 0.975,
1016
+ "accepted_decisions": 0,
1017
+ "coverage": 0.0,
1018
+ "error_on_accepted": null,
1019
+ "complete_text_coverage": 0.0
1020
+ },
1021
+ {
1022
+ "confidence_cutoff": 0.99,
1023
+ "accepted_decisions": 0,
1024
+ "coverage": 0.0,
1025
+ "error_on_accepted": null,
1026
+ "complete_text_coverage": 0.0
1027
+ }
1028
+ ],
1029
+ "probability_note": "Brier/log loss combinam discriminação e calibração.",
1030
+ "log_loss_clip": 1e-07
1031
+ }
1032
+ },
1033
+ "environment": {
1034
+ "python": "3.11.14",
1035
+ "platform": "Linux-7.1.8+deb13-amd64-x86_64-with-glibc2.41",
1036
+ "packages": {
1037
+ "torch": "2.6.0",
1038
+ "transformers": "4.57.1",
1039
+ "numpy": "2.3.4",
1040
+ "scikit-learn": "1.7.2",
1041
+ "pydantic": "2.12.4"
1042
+ },
1043
+ "source_sha256": {
1044
+ "__init__.py": "3d499b49e5fa937ecc39186f714f271b94e1baba7a98950b8ad8f0c7787b8949",
1045
+ "__main__.py": "935a1c1166b0c1ea35a82256345000bf2c73ded718d77773bc27a71ecce28f7d",
1046
+ "assessment.py": "2846f95e8fb17cb9bc1de245c194bdd26c736071d8253100c08bf967956b7ed6",
1047
+ "cli.py": "e4ab82eb9ac1f63d9cf1c8e8844c09087f3a45db1cd1acb444883ab05fcd6277",
1048
+ "data.py": "533b9618df7d41c1402a9fa6b02e6cd9f1ac0fdaad549d93cce98784070d52de",
1049
+ "demo.py": "fac1223c3abcfa885fc86a4451b99084550272f7bfe84d3bd05a1ccc36ce4b6e",
1050
+ "evaluate.py": "386dc2f86c890a3484b714e8311ce95cb771adae8a5cc91ecb266cba4e08712e",
1051
+ "experiment.py": "683db32333171a30d6747980b705791ac17db70f6a90a8af82b6da5186b22c0e",
1052
+ "metrics.py": "a1374b9fa54c1ae278a5b81c52317e06b6b1f97726a726afe5cfc7d924c232e3",
1053
+ "model.py": "4c4d4e5c044168ba7ff657d51e213fec81005bcccbcbbbc8848c3a4ea30b9e6f",
1054
+ "research.py": "e34e5acdc8f755f9ea18ca1b00919975221b8aa721f2f0af73accb96d7b6b311",
1055
+ "rules.py": "0bed977e7b005bf37e235615760cc9a3eaa950d86a8da65738bc2d99d54e37a7",
1056
+ "schema.py": "1dac19929fd05adf72e5928c27156253f566aa1ead17c59ef4b20d85f9175343",
1057
+ "service.py": "b7fe374165331be8b3977d9abf5b5b3b846901978e4255ed8d381cb2ce28cbaa",
1058
+ "text.py": "67132ac951f1b81972229e75ca311ef8dab8dc810992f8059717528ed79bc43e"
1059
+ }
1060
+ }
1061
+ }
evaluations/v02/latency/results.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "device": "cuda",
3
+ "environment": {
4
+ "python": "3.11.14",
5
+ "platform": "Linux-7.1.8+deb13-amd64-x86_64-with-glibc2.41",
6
+ "packages": {
7
+ "torch": "2.6.0",
8
+ "transformers": "4.57.1",
9
+ "numpy": "2.3.4",
10
+ "scikit-learn": "1.7.2",
11
+ "pydantic": "2.12.4"
12
+ },
13
+ "source_sha256": {
14
+ "__init__.py": "3d499b49e5fa937ecc39186f714f271b94e1baba7a98950b8ad8f0c7787b8949",
15
+ "__main__.py": "935a1c1166b0c1ea35a82256345000bf2c73ded718d77773bc27a71ecce28f7d",
16
+ "assessment.py": "0ab401c13f04752bcf4046ac1ff10c6ae8339cbfeb113f68406a7379674df4e9",
17
+ "cli.py": "e4ab82eb9ac1f63d9cf1c8e8844c09087f3a45db1cd1acb444883ab05fcd6277",
18
+ "data.py": "533b9618df7d41c1402a9fa6b02e6cd9f1ac0fdaad549d93cce98784070d52de",
19
+ "demo.py": "fac1223c3abcfa885fc86a4451b99084550272f7bfe84d3bd05a1ccc36ce4b6e",
20
+ "evaluate.py": "386dc2f86c890a3484b714e8311ce95cb771adae8a5cc91ecb266cba4e08712e",
21
+ "experiment.py": "683db32333171a30d6747980b705791ac17db70f6a90a8af82b6da5186b22c0e",
22
+ "metrics.py": "a1374b9fa54c1ae278a5b81c52317e06b6b1f97726a726afe5cfc7d924c232e3",
23
+ "model.py": "4c4d4e5c044168ba7ff657d51e213fec81005bcccbcbbbc8848c3a4ea30b9e6f",
24
+ "research.py": "e34e5acdc8f755f9ea18ca1b00919975221b8aa721f2f0af73accb96d7b6b311",
25
+ "rules.py": "0bed977e7b005bf37e235615760cc9a3eaa950d86a8da65738bc2d99d54e37a7",
26
+ "schema.py": "1dac19929fd05adf72e5928c27156253f566aa1ead17c59ef4b20d85f9175343",
27
+ "service.py": "aa150c81ff2025a3252f5f0ed0237073cd9af295752283a770a327fa3e357299",
28
+ "text.py": "67132ac951f1b81972229e75ca311ef8dab8dc810992f8059717528ed79bc43e"
29
+ }
30
+ },
31
+ "load_all_methods_seconds": 1.0641264889854938,
32
+ "scope": "tokenização + modelo + scores; exclui JSON, regras e I/O; mesmo processo, textos de desenvolvimento",
33
+ "warmup_batches": 3,
34
+ "repetitions": 12,
35
+ "methods": {
36
+ "heuristic": {
37
+ "1": {
38
+ "batch_size": 1,
39
+ "batch_p50_ms": 0.07743301102891564,
40
+ "batch_p95_ms": 0.08327695250045508,
41
+ "texts_per_second": 12884.882158024195,
42
+ "process_cuda_peak_allocated_bytes": 873960960
43
+ },
44
+ "8": {
45
+ "batch_size": 8,
46
+ "batch_p50_ms": 1.4830669824732468,
47
+ "batch_p95_ms": 1.8100193119607866,
48
+ "texts_per_second": 5156.035890463484,
49
+ "process_cuda_peak_allocated_bytes": 873960960
50
+ }
51
+ },
52
+ "frozen_logistic": {
53
+ "1": {
54
+ "batch_size": 1,
55
+ "batch_p50_ms": 5.443803005618975,
56
+ "batch_p95_ms": 5.56465309637133,
57
+ "texts_per_second": 183.13095888391567,
58
+ "process_cuda_peak_allocated_bytes": 883751936
59
+ },
60
+ "8": {
61
+ "batch_size": 8,
62
+ "batch_p50_ms": 15.434860993991606,
63
+ "batch_p95_ms": 16.41275106667308,
64
+ "texts_per_second": 514.4537659904482,
65
+ "process_cuda_peak_allocated_bytes": 889474048
66
+ }
67
+ },
68
+ "bert_finetuned": {
69
+ "1": {
70
+ "batch_size": 1,
71
+ "batch_p50_ms": 4.658220990677364,
72
+ "batch_p95_ms": 4.849228047532961,
73
+ "texts_per_second": 213.79934768996688,
74
+ "process_cuda_peak_allocated_bytes": 883751936
75
+ },
76
+ "8": {
77
+ "batch_size": 8,
78
+ "batch_p50_ms": 14.881465001963079,
79
+ "batch_p95_ms": 15.570303803542629,
80
+ "texts_per_second": 536.7568550996159,
81
+ "process_cuda_peak_allocated_bytes": 889474048
82
+ }
83
+ }
84
+ },
85
+ "memory_note": "Pico CUDA do processo com ambos encoders residentes; não é memória isolada por método. CPU não medida."
86
+ }
evaluations/v02/test/README.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Avaliação do novo teste
2
+
3
+ Referência sintética revisada pela mesma IA. Sem revisão humana ou evidência populacional.
4
+
5
+ | Método | Macro-F1 | Exact match | Hamming ↓ | AP macro | Brier ↓ | Log loss ↓ |
6
+ |---|---:|---:|---:|---:|---:|---:|
7
+ | heuristic | 0.6910 | 0.3056 | 0.1833 | 0.7441 | 0.1833 | 2.9550 |
8
+ | frozen_logistic | 0.6196 | 0.3056 | 0.1889 | 0.8401 | 0.1601 | 0.8540 |
9
+ | bert_finetuned | 0.5584 | 0.2500 | 0.2333 | 0.7768 | 0.1648 | 0.5053 |
10
+ | bert_finetuned_temperature | 0.5584 | 0.2500 | 0.2333 | 0.7768 | 0.1647 | 0.5051 |
11
+ | frozen_logistic_temperature | 0.6196 | 0.3056 | 0.1889 | 0.8401 | 0.1355 | 0.4292 |
12
+
13
+ Métricas por rótulo, suportes, ROC-AUC, MCC, confiabilidade e risco/cobertura: `results.json`.
14
+ Scores heurísticos são decisões binárias, sem interpretação probabilística calibrada.
15
+ Log loss usa clipping em 1e-7. Esta análise não altera a seleção da v0.1.
16
+
17
+ | Política experimental | Temperatura | Cutoff | Cobertura | Erro nas decisões aceitas |
18
+ |---|---:|---:|---:|---:|
19
+ | bert_finetuned | 0.9659 | desativado | 1.0000 | 0.23333333333333334 |
20
+ | frozen_logistic | 4.0000 | desativado | 1.0000 | 0.18888888888888888 |
21
+
22
+ Política ajustada somente em desenvolvimento; desempenho em teste não é garantia de risco.
23
+ Nenhum cutoff cumpriu a meta de erro/cobertura em desenvolvimento. O erro na tabela é sem abstenção, não o risco de uma política aprovada.
evaluations/v02/test/predictions.jsonl ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"id": "v02-test-001", "group_id": "v02-test-001", "target": [1, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9999843483178822, 1.6564502867546106e-05, 0.0030823658949127876, 0.002304280664811067, 2.296853861252261e-06], "bert_finetuned": [0.7105566263198853, 0.21480223536491394, 0.2507629096508026, 0.18686294555664062, 0.1330302655696869], "bert_finetuned_temperature": [0.7170265932028956, 0.207193035573819, 0.24358085564565896, 0.17911100167759622, 0.12558975793315938], "frozen_logistic_temperature": [0.9408233928759486, 0.05997052767082609, 0.19081199225722884, 0.1798048878641162, 0.03747117690371489]}}
2
+ {"id": "v02-test-002", "group_id": "v02-test-002", "target": [1, 0, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9998907584197106, 0.0278630968883917, 0.0011301871646710842, 0.1392996588924986, 7.870913672112758e-05], "bert_finetuned": [0.7031946182250977, 0.27264413237571716, 0.2597985565662384, 0.1616096943616867, 0.10627040266990662], "bert_finetuned_temperature": [0.7095037383278303, 0.2658361460916835, 0.25276136778276337, 0.15389717020305066, 0.09934620575551559], "frozen_logistic_temperature": [0.907245754028235, 0.2915127374076012, 0.15498051324771783, 0.3881061953817596, 0.08608375999925878]}}
3
+ {"id": "v02-test-003", "group_id": "v02-test-003", "target": [1, 1, 0, 0, 0], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9999715410411251, 0.9916590017941814, 5.0526794006554025e-06, 0.00030005914597112455, 0.0013570922183621184], "bert_finetuned": [0.6452749371528625, 0.6044043898582458, 0.14432120323181152, 0.12351462244987488, 0.14319172501564026], "bert_finetuned_temperature": [0.6500897303093964, 0.6079725960935223, 0.13674171501827742, 0.11622605952573768, 0.13562421117777712], "frozen_logistic_temperature": [0.9319321349270174, 0.7675536797728411, 0.04526512969422976, 0.11631406721874403, 0.1610733761594574]}}
4
+ {"id": "v02-test-004", "group_id": "v02-test-004", "target": [1, 1, 1, 0, 0], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9990622724544519, 0.3948437777925932, 0.0336355636334411, 0.06447687766560162, 9.632389267965472e-06], "bert_finetuned": [0.666788637638092, 0.3956003785133362, 0.3245883584022522, 0.1425568014383316, 0.06441381573677063], "bert_finetuned_temperature": [0.672201540515484, 0.39203232478916716, 0.31894911669278253, 0.13499620307862917, 0.058955439205027355], "frozen_logistic_temperature": [0.8510396094491486, 0.4733380352913085, 0.301642360661493, 0.338788039094226, 0.0527703340315182]}}
5
+ {"id": "v02-test-005", "group_id": "v02-test-005", "target": [1, 0, 0, 1, 0], "scores": {"heuristic": [1.0, 0.0, 0.0, 1.0, 0.0], "frozen_logistic": [0.9966689224021508, 9.616048401933923e-05, 4.509315377920385e-06, 2.878059631705362e-06, 0.000917506493574087], "bert_finetuned": [0.5626470446586609, 0.22634337842464447, 0.13888035714626312, 0.135978102684021, 0.2512674629688263], "bert_finetuned_temperature": [0.5648318631700233, 0.21884358618302469, 0.1313624403300664, 0.12849710968984687, 0.2440931275828291], "frozen_logistic_temperature": [0.8061649284484541, 0.090105375424609, 0.044051687832288904, 0.039559056522058995, 0.14827017628692019]}}
6
+ {"id": "v02-test-006", "group_id": "v02-test-006", "target": [1, 0, 1, 1, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 1.0, 0.0], "frozen_logistic": [0.9993275066771327, 0.0001762160657397252, 0.07373839405652131, 0.002362703910618491, 2.926782994966875e-06], "bert_finetuned": [0.7018430829048157, 0.369845449924469, 0.20129385590553284, 0.25636059045791626, 0.17434532940387726], "bert_finetuned_temperature": [0.7081218745284434, 0.3654766117009729, 0.1935930299580822, 0.24926664048040473, 0.16659132467563031], "frozen_logistic_temperature": [0.8612799130414978, 0.10331650047842911, 0.3469080270372313, 0.18073203180099937, 0.03971882249101586]}}
7
+ {"id": "v02-test-007", "group_id": "v02-test-007", "target": [1, 1, 1, 1, 1], "scores": {"heuristic": [1.0, 0.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.9940351021970238, 0.982725495543386, 0.15634284984032346, 0.7417396612562518, 0.0002866554646927859], "bert_finetuned": [0.6827539801597595, 0.49657171964645386, 0.17849388718605042, 0.21988722681999207, 0.11878994852304459], "bert_finetuned_temperature": [0.6885793685600393, 0.49645082559284315, 0.1707360182134059, 0.2123228191146901, 0.11158939697284684], "frozen_logistic_temperature": [0.7822744220703375, 0.7330738730245208, 0.396176119033327, 0.5655597542033401, 0.11514457987275252]}}
8
+ {"id": "v02-test-008", "group_id": "v02-test-008", "target": [1, 1, 0, 1, 1], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9985283354754864, 0.979916154021924, 4.6289220618895245e-06, 0.998817805467557, 0.3823155393893366], "bert_finetuned": [0.7310488820075989, 0.7015270590782166, 0.14630109071731567, 0.5702096819877625, 0.27241042256355286], "bert_finetuned_temperature": [0.7379254632773534, 0.707798723978964, 0.13870161633808978, 0.572651216041354, 0.2655980322400387], "frozen_logistic_temperature": [0.8361658181146124, 0.7254956164995233, 0.044328116514132224, 0.8435390812949524, 0.47005267183281335]}}
9
+ {"id": "v02-test-009", "group_id": "v02-test-009", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.00025749749068669243, 0.31860459774207195, 0.98451229621885, 0.004748483444842646, 0.00869340941296073], "bert_finetuned": [0.19345347583293915, 0.28200820088386536, 0.26120758056640625, 0.18738427758216858, 0.3318272829055786], "bert_finetuned_temperature": [0.1857186379344061, 0.27538350703727177, 0.2541942260828522, 0.17963329448253298, 0.326377506306121], "frozen_logistic_temperature": [0.11243956245155216, 0.4526304939172977, 0.7384687479627923, 0.2081204087881456, 0.2343131751493734]}}
10
+ {"id": "v02-test-010", "group_id": "v02-test-010", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [1.9127427972508924e-07, 0.0001747180283075282, 0.08395887131160537, 2.927052802142379e-05, 0.048506044281885576], "bert_finetuned": [0.13432180881500244, 0.3624287545681, 0.3026103079319, 0.2326580286026001, 0.6138076186180115], "bert_finetuned_temperature": [0.12686318947826317, 0.35783872448135645, 0.29643315995707264, 0.22522954408074847, 0.617673671172027], "frozen_logistic_temperature": [0.020484505056533108, 0.10311890043157383, 0.3549310756375551, 0.0685151500271267, 0.32211124480607195]}}
11
+ {"id": "v02-test-011", "group_id": "v02-test-011", "target": [0, 0, 0, 0, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.00012151808744622471, 0.0010769000795900552, 3.373458912901062e-07, 1.1735724168162851e-05, 0.2288359245982588], "bert_finetuned": [0.2029952108860016, 0.2958974540233612, 0.16034601628780365, 0.17906945943832397, 0.551354169845581], "bert_finetuned_temperature": [0.19530366613176986, 0.2895680975198806, 0.15264013575617458, 0.17131141592938084, 0.5531517285796552], "frozen_logistic_temperature": [0.09501948147596433, 0.15340410957747447, 0.0235329560216624, 0.055293688841473544, 0.42464737994837726]}}
12
+ {"id": "v02-test-012", "group_id": "v02-test-012", "target": [0, 1, 0, 0, 1], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.00041667121382139713, 0.2977258860847273, 4.432014525683255e-06, 1.2999403426905096e-05, 0.20199288029264978], "bert_finetuned": [0.3286590278148651, 0.3949943780899048, 0.09364376217126846, 0.08195623010396957, 0.30710598826408386], "bert_finetuned_temperature": [0.32312562063266415, 0.39140695373265505, 0.08706706968478228, 0.0757697630255573, 0.30103405403845424], "frozen_logistic_temperature": [0.125023086816643, 0.4465703625288308, 0.04387000826873616, 0.05664448832253359, 0.41496651197033185]}}
13
+ {"id": "v02-test-013", "group_id": "v02-test-013", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [1.4382816197627087e-06, 0.6681401359917276, 0.7514383598117317, 0.02644638057063265, 0.06861698612104926], "bert_finetuned": [0.25115954875946045, 0.5501071214675903, 0.16272364556789398, 0.24216392636299133, 0.6274549961090088], "bert_finetuned_temperature": [0.24398355876356875, 0.5518616598979246, 0.15500565244852313, 0.23485729423771431, 0.631742209707103], "frozen_logistic_temperature": [0.03347154678029388, 0.5436253615228502, 0.5687062372525354, 0.28875088827226025, 0.3425316374596742]}}
14
+ {"id": "v02-test-014", "group_id": "v02-test-014", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.0034659069720580993, 0.006645454323032247, 2.673843888781017e-06, 3.4967891035520645e-08, 0.000757351688485101], "bert_finetuned": [0.19498668611049652, 0.17610125243663788, 0.11378125846385956, 0.07266011834144592, 0.11443659663200378], "bert_finetuned_temperature": [0.18725734982135003, 0.16834505013568735, 0.1066835602518857, 0.06683653121018135, 0.10732486905845277], "frozen_logistic_temperature": [0.19539516865430775, 0.2223906691815778, 0.03886586207715359, 0.017472091924003903, 0.1423104460205682]}}
15
+ {"id": "v02-test-015", "group_id": "v02-test-015", "target": [0, 0, 1, 0, 1], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.0016732590686097152, 0.03684201883474198, 1.9654077619787878e-05, 0.0003616336091043034, 0.36381821732672237], "bert_finetuned": [0.18565422296524048, 0.18478454649448395, 0.1265103965997696, 0.08817455172538757, 0.11162567883729935], "bert_finetuned_temperature": [0.1779003147363468, 0.17702945360662928, 0.11917041721207099, 0.08177178982737775, 0.104575364597811], "frozen_logistic_temperature": [0.16828556328614952, 0.30663581451541955, 0.06242672074104772, 0.12119850295629452, 0.4651298231680204]}}
16
+ {"id": "v02-test-016", "group_id": "v02-test-016", "target": [1, 0, 0, 1, 0], "scores": {"heuristic": [1.0, 0.0, 0.0, 1.0, 0.0], "frozen_logistic": [0.9985893493695264, 0.006251289429580146, 7.208003113800773e-05, 0.0005339989389913486, 0.00018561672682541102], "bert_finetuned": [0.4744012653827667, 0.24418726563453674, 0.10836713761091232, 0.11004621535539627, 0.1652825027704239], "bert_finetuned_temperature": [0.47350019062121157, 0.23690874657246316, 0.10139211504643016, 0.10303184005395268, 0.157553307972686], "frozen_logistic_temperature": [0.8376129107590026, 0.21974137402001767, 0.08436884951706032, 0.1319706886034282, 0.10452666424119378]}}
17
+ {"id": "v02-test-017", "group_id": "v02-test-017", "target": [0, 0, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.002977744574842706, 5.491085295264822e-05, 0.6751912711298593, 1.2619473150428587e-05, 0.0005923573916680855], "bert_finetuned": [0.27174848318099976, 0.22513815760612488, 0.48317423462867737, 0.14866825938224792, 0.21042104065418243], "bert_finetuned_temperature": [0.2649236652284553, 0.21762565784409973, 0.4825813473169958, 0.14104654750519371, 0.2027776893386262], "frozen_logistic_temperature": [0.1894785879964136, 0.07926058010991777, 0.5456078452113116, 0.05624952499624698, 0.13497113126483562]}}
18
+ {"id": "v02-test-018", "group_id": "v02-test-018", "target": [0, 0, 0, 1, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.007440200348120013, 0.004850743147198689, 6.449446567795034e-05, 6.116631798761447e-05, 2.5562165812250474e-06], "bert_finetuned": [0.3308323323726654, 0.42209118604660034, 0.14272595942020416, 0.4567778408527374, 0.22310307621955872], "bert_finetuned_temperature": [0.3253561756809943, 0.4193907850221649, 0.1351635056190094, 0.45526162467114367, 0.21556978741728333], "frozen_logistic_temperature": [0.22734791192791326, 0.2090038870835258, 0.08224584627609315, 0.08125149682251295, 0.038447890316094004]}}
19
+ {"id": "v02-test-019", "group_id": "v02-test-019", "target": [0, 0, 0, 1, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.0002580820614238448, 0.015382874806728002, 5.170758392491428e-05, 0.7691984445207325, 0.0005337738929200008], "bert_finetuned": [0.40394842624664307, 0.5490493774414062, 0.26060950756073, 0.680681049823761, 0.16445240378379822], "bert_finetuned_temperature": [0.400649533319768, 0.5507673895697692, 0.25358599615614064, 0.6864545160535347, 0.15672663622192823], "frozen_logistic_temperature": [0.11249616501145662, 0.26119833118818014, 0.07817081324698072, 0.5746741685449003, 0.13195861075634538]}}
20
+ {"id": "v02-test-020", "group_id": "v02-test-020", "target": [0, 1, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.004923767104108067, 0.9999829498656184, 0.00023539466304483533, 0.08926370030936795, 0.0003413120411672475], "bert_finetuned": [0.1732296645641327, 0.8563073873519897, 0.155363067984581, 0.2857072055339813, 0.1186915785074234], "bert_finetuned_temperature": [0.1654774891681302, 0.8638802630885675, 0.1476880090465666, 0.27915849745223686, 0.1114929511913496], "frozen_logistic_temperature": [0.2096251550719405, 0.9396209214518608, 0.11021931050820327, 0.35877967900355945, 0.11966640443735646]}}
21
+ {"id": "v02-test-021", "group_id": "v02-test-021", "target": [1, 1, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9999839798112907, 0.5441715754488669, 0.004608778867875916, 0.008496704264779246, 0.0014564537923027557], "bert_finetuned": [0.7074934244155884, 0.28651002049446106, 0.29870539903640747, 0.13857541978359222, 0.10898805409669876], "bert_finetuned_temperature": [0.7138973703356218, 0.2799780646794935, 0.2924389848192001, 0.13106124731642552, 0.10199834029869664], "frozen_logistic_temperature": [0.9404986495609448, 0.5110699480064889, 0.20688695564238171, 0.23327932890359876, 0.16347815008472824]}}
22
+ {"id": "v02-test-022", "group_id": "v02-test-022", "target": [1, 0, 1, 0, 0], "scores": {"heuristic": [0.0, 0.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.9955322675386659, 0.0016117777095893753, 0.004445425148298423, 0.07028976520425222, 2.793466462993978e-06], "bert_finetuned": [0.502049446105957, 0.3196445107460022, 0.1910327821969986, 0.15558254718780518, 0.12305872142314911], "bert_finetuned_temperature": [0.502121718813966, 0.3138792447178212, 0.18329041839069074, 0.14790597338603362, 0.11577827859097359], "frozen_logistic_temperature": [0.7943909440633125, 0.16697756452523557, 0.20540382531300602, 0.3439903960842907, 0.03927665662580283]}}
23
+ {"id": "v02-test-023", "group_id": "v02-test-023", "target": [1, 1, 0, 1, 0], "scores": {"heuristic": [0.0, 1.0, 0.0, 1.0, 0.0], "frozen_logistic": [0.8282221471394999, 0.9845709168179304, 2.016624985431022e-06, 0.8947080179536601, 0.0001813581509353625], "bert_finetuned": [0.3143167793750763, 0.5414893627166748, 0.08448699861764908, 0.15947358310222626, 0.11209365725517273], "bert_finetuned_temperature": [0.3084188867813113, 0.5429453979444429, 0.07821004935716602, 0.15177256377530707, 0.10503289358549268], "frozen_logistic_temperature": [0.5970695960523803, 0.7386546774653153, 0.036315447675317185, 0.6306345587561704, 0.10398468812953303]}}
24
+ {"id": "v02-test-024", "group_id": "v02-test-024", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9977964012878048, 0.0036404527648541333, 0.01070127409653441, 0.05252945748609143, 5.1150152433725374e-05], "bert_finetuned": [0.6377586126327515, 0.3856506645679474, 0.13143189251422882, 0.16196748614311218, 0.3110509216785431], "bert_finetuned_temperature": [0.6423541708719742, 0.38176763591026547, 0.12401461496524963, 0.15425316595058303, 0.30507341097731583], "frozen_logistic_temperature": [0.821840096004412, 0.19734048338098986, 0.2438551823556841, 0.32670951190084346, 0.07797576152624572]}}
25
+ {"id": "v02-test-025", "group_id": "v02-test-025", "target": [1, 0, 0, 0, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9999999600511575, 1.6235657147109723e-06, 3.493737234898176e-05, 1.1097207809618926e-05, 0.21342012327149604], "bert_finetuned": [0.6963245272636414, 0.2004145234823227, 0.20229876041412354, 0.14747267961502075, 0.3009503185749054], "bert_finetuned_temperature": [0.7024769807705444, 0.1927091627966732, 0.19460333582990322, 0.13986197502072165, 0.2947349791649423], "frozen_logistic_temperature": [0.9825279080782552, 0.03446556568810028, 0.07139340823690497, 0.05456763125228556, 0.4191879286002343]}}
26
+ {"id": "v02-test-026", "group_id": "v02-test-026", "target": [1, 0, 1, 0, 1], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9605030109717025, 1.1331109356387758e-05, 0.0065791195286332115, 9.270580417740388e-05, 0.007895733949071882], "bert_finetuned": [0.6647400856018066, 0.2108502984046936, 0.22829367220401764, 0.11877178400754929, 0.1551763117313385], "bert_finetuned_temperature": [0.6700980396648097, 0.2032101084189467, 0.22081506103174445, 0.11157158749155781, 0.14750255333943885], "frozen_logistic_temperature": [0.6895054320565497, 0.05483728195275614, 0.22195436633249438, 0.08935819374550286, 0.22998845426617903]}}
27
+ {"id": "v02-test-027", "group_id": "v02-test-027", "target": [1, 0, 0, 1, 0], "scores": {"heuristic": [1.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.9880581772776926, 2.3526456633266608e-05, 9.157363135625294e-05, 0.9998501238736295, 3.7448537560895092e-06], "bert_finetuned": [0.7156469821929932, 0.3866877257823944, 0.14817868173122406, 0.5246163010597229, 0.21844382584095], "bert_finetuned_temperature": [0.7222237382868475, 0.38283721405020166, 0.14056142213775683, 0.5254829146043128, 0.21086614922144167], "frozen_logistic_temperature": [0.7509945679001963, 0.0651106312788694, 0.08910851279402086, 0.9003740742373325, 0.042136898493908524]}}
28
+ {"id": "v02-test-028", "group_id": "v02-test-028", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.0023149000701760156, 0.001526320823068426, 0.0008117706297189965, 0.0003254461983598269, 1.8058862493870036e-08], "bert_finetuned": [0.25692856311798096, 0.2303018867969513, 0.18274880945682526, 0.17580533027648926, 0.08525249361991882], "bert_finetuned_temperature": [0.24984385299998102, 0.22284587601396386, 0.17499169786947974, 0.16804944022627796, 0.07894884556221132], "frozen_logistic_temperature": [0.17997486444264255, 0.16508879311859587, 0.14444270272678508, 0.118418032136867, 0.017472091924003903]}}
29
+ {"id": "v02-test-029", "group_id": "v02-test-029", "target": [0, 0, 0, 0, 0], "scores": {"heuristic": [0.0, 0.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.3906012721782041, 0.6493248068216494, 0.002435876534849802, 0.04783492471646367, 6.141682611660552e-06], "bert_finetuned": [0.23970133066177368, 0.5143179297447205, 0.0915641114115715, 0.2022460550069809, 0.1451743096113205], "bert_finetuned_temperature": [0.2323614995270966, 0.5148225596055969, 0.0850518125501947, 0.19455034134547133, 0.13758605355009323], "frozen_logistic_temperature": [0.4722295144581351, 0.5384286046696815, 0.181866527275605, 0.32131272143950934, 0.04742129167652524]}}
30
+ {"id": "v02-test-030", "group_id": "v02-test-030", "target": [0, 1, 0, 0, 0], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.06461585056130915, 0.03478556379564218, 5.8194590546257e-07, 1.871724029178323e-05, 0.0006434893962862465], "bert_finetuned": [0.187565878033638, 0.36011388897895813, 0.0794515311717987, 0.07296907901763916, 0.13529056310653687], "bert_finetuned_temperature": [0.1798152456212628, 0.355455772342674, 0.07335803000812544, 0.06713262770258074, 0.12781874181609082], "frozen_logistic_temperature": [0.3389169486963735, 0.303478698233504, 0.026877461520182687, 0.06171587018882924, 0.13740763013033938]}}
31
+ {"id": "v02-test-031", "group_id": "v02-test-031", "target": [1, 1, 1, 1, 0], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 0.0], "frozen_logistic": [0.999923882693348, 0.9998286705976783, 0.03733281458519672, 0.6752016418855595, 0.0002811809995026584], "bert_finetuned": [0.8470076322555542, 0.900461733341217, 0.5009656548500061, 0.82851243019104, 0.19903962314128876], "bert_finetuned_temperature": [0.8546653901476096, 0.9072097205656782, 0.5009997085055373, 0.8362610699287686, 0.1913275328326451], "frozen_logistic_temperature": [0.9145725792818595, 0.8973331387129141, 0.30736679527092287, 0.545610776176743, 0.11465419736206725]}}
32
+ {"id": "v02-test-032", "group_id": "v02-test-032", "target": [0, 0, 0, 1, 0], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 0.0], "frozen_logistic": [0.00015055771061847688, 0.0058333474174849095, 0.024382054372540884, 0.03370099190617299, 1.618012009225589e-05], "bert_finetuned": [0.2161719799041748, 0.32907217741012573, 0.14502280950546265, 0.2534151077270508, 0.4113178849220276], "bert_finetuned_temperature": [0.20857430667851776, 0.32354961408076943, 0.13743609318717598, 0.24627412328908477, 0.40825999182541567], "frozen_logistic_temperature": [0.09972773784282547, 0.21677187610965154, 0.284488280511586, 0.30174827920022257, 0.05964047837984601]}}
33
+ {"id": "v02-test-probe-1-1", "group_id": "v02-test-probe-1", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9957928604297406, 0.9594405303794128, 0.9984078861746382, 0.0421659786312006, 0.9999027128253356], "bert_finetuned": [0.8766889572143555, 0.8300089836120605, 0.7650894522666931, 0.5152286887168884, 0.903197169303894], "bert_finetuned_temperature": [0.8839739038843808, 0.837753919011617, 0.7724906136666769, 0.5157653773109095, 0.9098676947767446], "frozen_logistic_temperature": [0.796844696483201, 0.688023528519906, 0.8334495392226419, 0.3141549910942998, 0.9096555582559445]}}
34
+ {"id": "v02-test-probe-1-0", "group_id": "v02-test-probe-1", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.9961517560415925, 0.9989023415415964, 0.0961015109567696, 0.020723767745614737, 0.0030992287763682994], "bert_finetuned": [0.7320082187652588, 0.8017426133155823, 0.20784229040145874, 0.21279653906822205, 0.18734902143478394], "bert_finetuned_temperature": [0.7389022679427338, 0.8094583348273144, 0.2001808033697028, 0.2051711878363088, 0.17959797121025436], "frozen_logistic_temperature": [0.8004438395422997, 0.8459742916518381, 0.363471568821919, 0.2761014016331555, 0.19102333411908695]}}
35
+ {"id": "v02-test-probe-2-1", "group_id": "v02-test-probe-2", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 0.0, 0.0, 1.0], "frozen_logistic": [0.9898451503808978, 0.9895130707158091, 0.9891871311023418, 0.07089452323268775, 0.9996099544910093], "bert_finetuned": [0.8787729740142822, 0.8646955490112305, 0.7731937766075134, 0.6046066880226135, 0.9289759397506714], "bert_finetuned_temperature": [0.8860199953278158, 0.8721675571868821, 0.7806886110310269, 0.6081813632071862, 0.9347304465487791], "frozen_logistic_temperature": [0.7585780172526876, 0.7570862664056713, 0.755661069532968, 0.34451060033067216, 0.8767723857351698]}}
36
+ {"id": "v02-test-probe-2-0", "group_id": "v02-test-probe-2", "target": [1, 1, 1, 0, 1], "scores": {"heuristic": [0.0, 1.0, 1.0, 0.0, 1.0], "frozen_logistic": [0.997462726840398, 0.9992383757492528, 0.020218051913647592, 0.09625914922368545, 0.0013164596717407126], "bert_finetuned": [0.7875357270240784, 0.8782206177711487, 0.33769944310188293, 0.3592977523803711, 0.18327492475509644], "bert_finetuned_temperature": [0.7951636699547685, 0.8854778524929144, 0.3324074975531124, 0.3546157418428519, 0.17551823311350087], "frozen_logistic_temperature": [0.8166076962729538, 0.8575176744544458, 0.27484292276100214, 0.3635764623812593, 0.16004773190629273]}}
evaluations/v02/test/results.json ADDED
The diff for this file is too large to render. See raw diff
 
evaluations/v02/verification.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "generated_at": "2026-11-07T13:59:03.905462+00:00",
3
+ "software_version": "0.2.0",
4
+ "state": "local_working_tree_not_published",
5
+ "checkpoint_version": "0.1.0",
6
+ "python": "3.11.14",
7
+ "tests": {
8
+ "tests": 25,
9
+ "errors": 0,
10
+ "failures": 0,
11
+ "skipped": 0,
12
+ "passed": 25
13
+ },
14
+ "core_without_ml": {
15
+ "tests": 19,
16
+ "errors": 0,
17
+ "failures": 0,
18
+ "skipped": 3,
19
+ "passed": 16
20
+ },
21
+ "junit_sha256": "18cd5924ec546d3c50c563d3372cc0d59fd2c6441cda31179435253aeaddb0d7",
22
+ "core_junit_sha256": "dfc11aca54e67ba699ee6d37fc9f5248fd47783c864a2be1d59b784afbbbe091",
23
+ "python_311_syntax_files": 26,
24
+ "source_sha256": {
25
+ "scripts/build_dataset.py": "bf4b0ad5650f99d635e658d2eb81668964ce7d205a9d3aeba8a6b61c2ed04497",
26
+ "scripts/build_v02_suite.py": "c2d3a1c4d617d1ed9680c5f5d991e2cc44a4243b7ec07827a23808fc042a11e8",
27
+ "scripts/package_release.py": "d9d914d866b50b4f27be1a7d6488f469e2557e93e5fb8f5cb3e4393fba1bd17b",
28
+ "scripts/prepare_hub.py": "5145f7426229e09b427e01200a9415a8a5f2fbb2053ca73fee1db8a85320f46c",
29
+ "scripts/summarize_v02.py": "3427f9d705a8d7bc061e3da3386c3fd3cddbd8e2b90824cf539d0eecd42d0e40",
30
+ "scripts/verify_local.py": "f46627d3713e05d5067a017e14e7cfc6098d40441b82cd73a4c176035206c5f5",
31
+ "src/patchinsight/__init__.py": "3d499b49e5fa937ecc39186f714f271b94e1baba7a98950b8ad8f0c7787b8949",
32
+ "src/patchinsight/__main__.py": "935a1c1166b0c1ea35a82256345000bf2c73ded718d77773bc27a71ecce28f7d",
33
+ "src/patchinsight/assessment.py": "0ab401c13f04752bcf4046ac1ff10c6ae8339cbfeb113f68406a7379674df4e9",
34
+ "src/patchinsight/cli.py": "e4ab82eb9ac1f63d9cf1c8e8844c09087f3a45db1cd1acb444883ab05fcd6277",
35
+ "src/patchinsight/data.py": "533b9618df7d41c1402a9fa6b02e6cd9f1ac0fdaad549d93cce98784070d52de",
36
+ "src/patchinsight/demo.py": "6f295c1595e96b68af894c3232b662e1e51135b832a40a6bb813684f89a682b4",
37
+ "src/patchinsight/evaluate.py": "386dc2f86c890a3484b714e8311ce95cb771adae8a5cc91ecb266cba4e08712e",
38
+ "src/patchinsight/experiment.py": "683db32333171a30d6747980b705791ac17db70f6a90a8af82b6da5186b22c0e",
39
+ "src/patchinsight/metrics.py": "a1374b9fa54c1ae278a5b81c52317e06b6b1f97726a726afe5cfc7d924c232e3",
40
+ "src/patchinsight/model.py": "4c4d4e5c044168ba7ff657d51e213fec81005bcccbcbbbc8848c3a4ea30b9e6f",
41
+ "src/patchinsight/research.py": "f113257da11d1b357a588eea9175916c8deb16773f3306cd1dbfc0645be23ede",
42
+ "src/patchinsight/rules.py": "0bed977e7b005bf37e235615760cc9a3eaa950d86a8da65738bc2d99d54e37a7",
43
+ "src/patchinsight/schema.py": "1dac19929fd05adf72e5928c27156253f566aa1ead17c59ef4b20d85f9175343",
44
+ "src/patchinsight/service.py": "aa150c81ff2025a3252f5f0ed0237073cd9af295752283a770a327fa3e357299",
45
+ "src/patchinsight/text.py": "67132ac951f1b81972229e75ca311ef8dab8dc810992f8059717528ed79bc43e",
46
+ "tests/test_assessment.py": "3a570ab01bda1d9a7a8d77c221a03377a659afae5ab1c0219b327b832791f8dd",
47
+ "tests/test_contract.py": "6d08b7de9b26df6e9164bec73289051959d128f4710af761b0e120affde63684",
48
+ "tests/test_core.py": "0109d2744face0d65d769f1708511c2643d592db41eb9d4dc30a204e6c74cfe8",
49
+ "tests/test_model.py": "c51c5535b4e1c122aa7bc570ae0ec8311bad1b8aac1327ce4eb41367208422cb",
50
+ "tests/test_v02.py": "6b2986f20de7f80fca45336d7ed72a2cef043075671040cc81e3e208a6f78f2a"
51
+ },
52
+ "v01_preservation": {
53
+ "base_commit": "21979dbac1d644546dce5631deee49d1df9c95ed",
54
+ "unchanged_files": {
55
+ "data/README.md": "bee45d1e6e4774bde5954598e192a7a5f98ece480469a90fdebfc123e22bdca7",
56
+ "data/dataset.jsonl": "054c0a19f2fb886c32018c1d1e8bf9b3c2ee6d32ad8f9acda58619ff5f94a9eb",
57
+ "data/freeze.json": "19b28387c1084c074ae4fe88c972335022ef9c1d8fe9958ff6bd86e1ccdc1e03",
58
+ "data/source/development.tsv": "05a302da15ff7f13795b1b9df4bfb20928c05820b0f7c83fffeaac7687f791b8",
59
+ "data/source/prompts.json": "56788c27df679e38ef5930a1345d17b029ca4c7ea3a5a66aa589ccd9727eabe1",
60
+ "data/source/test.tsv": "10d852d417b4b9b80538e807255716f566dffa0fed00dfec4f9b35e6ead72432",
61
+ "data/splits/test.jsonl": "67c5244e4633f226f9d5453bac22a39e21d537d59e9b61d0ced823f97e96f176",
62
+ "data/splits/train.jsonl": "148466e584ac72e39e5307b6a7ab09dd7a7f2f852c51493eeb1f3bce2b13e4f0",
63
+ "data/splits/validation.jsonl": "fab146a33a5ed52e73407b687b2344b516fe1fb099b96b5b554aff00daa86306",
64
+ "reports/final/README.md": "afbec50baea342a022851e8129ab059f2d4fc2b67a9c860421b366f9c96ecee3",
65
+ "reports/final/benchmark.json": "97c56082c4fd2767baae99cc79ce239437d959c5876c81754e2f2e7020deb5ee",
66
+ "reports/final/error-analysis.md": "e6b09c9a9cd63c5f04f08838a7d5bae895f074ac7a5c887b0c5728cdb12ec42e",
67
+ "reports/final/predictions.jsonl": "e10149701fb267a3269b062e8e56dbf2156132362ba843e2908523f5933142b5",
68
+ "reports/final/uncertainty.json": "4513a288fe59a637736fcff71d1b373e2dc25af6df8230f653709a5f2ec2b254"
69
+ },
70
+ "weights_sha256": "3a11fc1a543890444f28287a9ac55768f3560100175d149356209d0ccbc26f26"
71
+ },
72
+ "suite_freeze_sha256": "6a3b01f29aa7aa3cc0a34be30da0dbb5f1a28bb64a54f85a65ae9a7689eb930d",
73
+ "policy_selection_sha256": "e9421da721954cee5dc699f3a38a90392da46c4553b4c61f8c8ee2060f0c787c",
74
+ "schema_matches_pydantic": true,
75
+ "browser": {
76
+ "browser": "Firefox headless",
77
+ "real_backend": "bert",
78
+ "checks": [
79
+ "analysis",
80
+ "sample_buttons",
81
+ "empty_input_error",
82
+ "mobile_no_overflow",
83
+ "metric_ranking",
84
+ "dataset_switch"
85
+ ],
86
+ "screenshots": [
87
+ "artifacts/v02-demo-desktop.png",
88
+ "artifacts/v02-demo-mobile.png"
89
+ ]
90
+ },
91
+ "wheel_install": {
92
+ "environment": "/tmp/patchinsight-v02-wheel",
93
+ "version": "0.2.0",
94
+ "checks": [
95
+ "installed non-editable package",
96
+ "loopback HTTP",
97
+ "bundled HTML",
98
+ "bundled comparison JSON"
99
+ ],
100
+ "wheel_sha256": "63f39c9d1a95c4c37a3f16b0feccfc46c2d81c1f584fa1b922023556e541fc7d"
101
+ },
102
+ "batch_real_backend": {
103
+ "valid_items": 2,
104
+ "item_errors": 1,
105
+ "order_preserved": true,
106
+ "observed_exit_code": 1
107
+ },
108
+ "docker": {
109
+ "image_id": "sha256:3ef502f14426852413971d84ee9677a55eb7e2a8bbdc1b8a0e8d766afe790b31",
110
+ "tag": "patchinsight:0.2.0",
111
+ "network": "none",
112
+ "read_only": true,
113
+ "user": "65532:65532",
114
+ "prediction_sha256": "73b2150db1002ea0fd4af22fa053d541fdbb9a599a02df0ab8a41015e2fe4319",
115
+ "real_checkpoint": true
116
+ },
117
+ "limitations": [
118
+ "AI self review, no human or independent annotation",
119
+ "No new fine-tuning or external validation",
120
+ "No abstention cutoff met development criteria",
121
+ "Latency: 12 repetitions; process CUDA memory with both encoders resident",
122
+ "v0.2 not pushed, deployed externally, or released; artifacts paths are local evidence"
123
+ ]
124
+ }
manifest.json CHANGED
@@ -1,13 +1,41 @@
1
  {
2
  "sha256": {
 
3
  "BERTIMBAU-MIT.txt": "f52509e0695fdc19752f725f3d58ba06cc7842d5dc8d828b8d821c8ee2c92e67",
4
  "LICENSE": "30db8f0114b859f92c7dad3bbdc76688b147d4530a85988daa7447d1e222ec58",
5
- "README.md": "a33329790fc81cfad91e8286f817cb3b8dd8cb016f017ecc057b3ff84cdbcdf1",
6
  "baselines/frozen.json": "07bf28b9c3349024949f89af59c3a8e3e0a126527d3de57b9c2b69064228e8a2",
7
  "benchmark.json": "97c56082c4fd2767baae99cc79ce239437d959c5876c81754e2f2e7020deb5ee",
8
  "config.json": "a9b4553fe60fbb23a2a0cb31cf3f4a0d5b1535e60e5c76154786bbfc2c1f9aad",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  "model.safetensors": "3a11fc1a543890444f28287a9ac55768f3560100175d149356209d0ccbc26f26",
10
  "patchinsight.json": "df23f5737ff244f7a5c56434bad15123e2d196ac2c863871f67e208e8ba153fb",
 
 
 
 
 
 
 
 
 
 
 
11
  "special_tokens_map.json": "b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3",
12
  "tokenizer.json": "319b8f3b70e79290ef9e4f8ecece99596212fc55937d8c2e7f5285afec299c6f",
13
  "tokenizer_config.json": "8ab044e4a71cdb2a5cff548e16d3bcd46a757848ef861743426c44a134b00da1",
 
1
  {
2
  "sha256": {
3
+ ".gitattributes": "11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361",
4
  "BERTIMBAU-MIT.txt": "f52509e0695fdc19752f725f3d58ba06cc7842d5dc8d828b8d821c8ee2c92e67",
5
  "LICENSE": "30db8f0114b859f92c7dad3bbdc76688b147d4530a85988daa7447d1e222ec58",
6
+ "README.md": "5c046478925a1afc7602c89f4eaa0dc388650fb368055e9b63f362467bcb3e03",
7
  "baselines/frozen.json": "07bf28b9c3349024949f89af59c3a8e3e0a126527d3de57b9c2b69064228e8a2",
8
  "benchmark.json": "97c56082c4fd2767baae99cc79ce239437d959c5876c81754e2f2e7020deb5ee",
9
  "config.json": "a9b4553fe60fbb23a2a0cb31cf3f4a0d5b1535e60e5c76154786bbfc2c1f9aad",
10
+ "evaluations/v02/comparison.json": "98e1cebfc07f37c679e3de706aa26f1b5ba39a725a339ef557dc7a7690ecfc91",
11
+ "evaluations/v02/core-tests.xml": "dfc11aca54e67ba699ee6d37fc9f5248fd47783c864a2be1d59b784afbbbe091",
12
+ "evaluations/v02/development/README.md": "5aa816669e748aaf0a2fd71d5eb212613eb7f4228032e6f23ecf408f11df1b43",
13
+ "evaluations/v02/development/bert_finetuned-policy.json": "0b144015e0bcb2808ab507b10018fd38ca5e8f5184bca7b110975135410638a9",
14
+ "evaluations/v02/development/frozen_logistic-policy.json": "bae8c8ae9687001a610b16030cd25c98c8ceefd94732055bca54008230674a1e",
15
+ "evaluations/v02/development/predictions.jsonl": "7b4ce55abc78c31025099e49fa18097ceec01ec6f0a6b2eca2952f4b1091a7a1",
16
+ "evaluations/v02/development/results.json": "e5317a50eb668c90b4928c2d42808c2ce46ed2be093692a9d4368f4d0e18a6a3",
17
+ "evaluations/v02/development/selection.json": "e9421da721954cee5dc699f3a38a90392da46c4553b4c61f8c8ee2060f0c787c",
18
+ "evaluations/v02/error-analysis.md": "4fa127769194e1e71d399296ddf1a71c59577ef35e209021df151af1c9aeacea",
19
+ "evaluations/v02/historical/README.md": "c65568be43537fbcd7c184bf281305836a5ae25e2748168745db9e51606a03bd",
20
+ "evaluations/v02/historical/results.json": "f13f28eece03c7a9367698d1ac19ffb4cc7aac85db7b20fddd6268885dd6406a",
21
+ "evaluations/v02/latency/results.json": "a413f60c7c9ee4c7b8871aed5eba085eff2acb3586237879f3d92acd0a53fef9",
22
+ "evaluations/v02/test/README.md": "02471f79884a25edff165a67929c765467f4dee74b07afaaee74fd10ade5e3a4",
23
+ "evaluations/v02/test/predictions.jsonl": "5588692f6874abaf2db31101d53539b6f9d9c6f637f951c6db7582e286990904",
24
+ "evaluations/v02/test/results.json": "145caee680e8de41dfa16f27a685a3a678b58c4b26478067f51e82b507f6fdad",
25
+ "evaluations/v02/verification.json": "a7d8d169b21299a86e97389340ec9e16b547cd5b5c0d6f6aa53b90300889853b",
26
  "model.safetensors": "3a11fc1a543890444f28287a9ac55768f3560100175d149356209d0ccbc26f26",
27
  "patchinsight.json": "df23f5737ff244f7a5c56434bad15123e2d196ac2c863871f67e208e8ba153fb",
28
+ "project-docs/MODEL_CARD.md": "a2478ce35bdf7608d4b1d562edf9f6eafed34832a47fd1cc8a2405798269958c",
29
+ "project-docs/annotation-guide.md": "373eb8b2b0bcb89c2b1b6aa59ba69bc06e80054e47efe06757bd75bd6fc7c102",
30
+ "project-docs/article.pt-BR.md": "0d07330c978238d48ea0e24ae523571978f63db70456839c7d8498e7a8779ba0",
31
+ "project-docs/contract.md": "e37ea16a477323c98003939a51085efc3cf81d684f859b81d6a79a01447a37bc",
32
+ "project-docs/data-review.md": "5cae38058a5ced913d71e3a7c4ab9dd0b7981f94a7a3d78f6191e866535b2efb",
33
+ "project-docs/experiments.md": "2510bdd1916739916b24591bffb1bba407dfc10f66e1c28babc034cddfaf6e9e",
34
+ "project-docs/publication.md": "a46f18232312459a5400ea3b89687c4c13d9a52f480840ef8b537c3bcef6f23e",
35
+ "project-docs/status.md": "e25949948ac70e58a2f544109a7e8a85dc9a790a1d049f4ffb0d4ef87231f7bd",
36
+ "project-docs/v02-data-review.md": "40029951458b49399e62692e35124a8279ae12572a1ea271c2f40a2d06ea3e6e",
37
+ "project-docs/v02.md": "70906db31c3080e7ad858d231dabfa3308ddd39a396aa3140d133583b1e61408",
38
+ "software-release.json": "b1edcdf19e435d6e49c47b6370c9451f75656169f38245ce10e7cd27fdcf4800",
39
  "special_tokens_map.json": "b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3",
40
  "tokenizer.json": "319b8f3b70e79290ef9e4f8ecece99596212fc55937d8c2e7f5285afec299c6f",
41
  "tokenizer_config.json": "8ab044e4a71cdb2a5cff548e16d3bcd46a757848ef861743426c44a134b00da1",
project-docs/MODEL_CARD.md ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - pt
4
+ license: mit
5
+ base_model: neuralmind/bert-base-portuguese-cased
6
+ pipeline_tag: text-classification
7
+ tags:
8
+ - multilabel-classification
9
+ - synthetic-data
10
+ ---
11
+
12
+ # PatchInsight 0.1 — Model Card em preparação
13
+
14
+ **Status: template de Model Card usado antes de preparar uma publicação.**
15
+ A card com os resultados reais está no [modelo publicado](https://huggingface.co/enzoferracini/patchinsight-bertimbau-ptbr).
16
+ O treinamento copia este template para cada novo bundle; `prepare_hub.py`
17
+ preenche os resultados do respectivo run antes da publicação.
18
+
19
+ O modelo proposto é BERTimbau Base com ajuste completo dos pesos e cabeça de
20
+ cinco saídas sigmoid na ordem `action`, `context`, `method`, `result`,
21
+ `measurement`. Modelo base: `neuralmind/bert-base-portuguese-cased`, revisão
22
+ `94d69c95f98f7d5b2a8700c420230ae10def0baa`. A Model Card do base declara MIT;
23
+ o aviso original está em `licenses/BERTIMBAU-MIT.txt`.
24
+
25
+ Treino previsto: seed 42, até cinco épocas, AdamW, learning rate 2e-5, máximo
26
+ de 192 tokens, batch 8 e acumulação 2. Seleção por macro-F1 de validação;
27
+ empate mantém a época mais antiga. Limiar 0,5 para todos os rótulos, sem ajuste
28
+ usando teste. `patchinsight.json` registra a configuração efetiva, a época
29
+ selecionada, hashes dos dados e ambiente. Sigmoid não representa probabilidade
30
+ calibrada nem qualidade do texto.
31
+
32
+ Dados: PatchInsight Synthetic pt-BR 0.1, 280/60/60 variantes, 70/15/15 cenários.
33
+ São exemplos sintéticos anotados e revisados pela mesma IA, sem revisão humana.
34
+ O teste é fixado antes dos experimentos e fica fora de seleção e ajuste.
35
+
36
+ Avaliação pendente: heurísticas, encoder congelado com regressão logística por
37
+ rótulo, BERTimbau ajustado, no mesmo teste. Relatar macro/micro-F1, exact match,
38
+ precision/recall/F1, suporte e TP/FP/FN/TN de cada rótulo. Nenhuma métrica de
39
+ fine-tuning foi produzida. Publicar resultado negativo se não superar baselines.
40
+
41
+ Inferência: `patchinsight predict --model ./model --text '...' --json`.
42
+ O bundle é carregado localmente com hashes verificados. O retorno sinaliza
43
+ truncamento; componentes negativos no prefixo truncado viram `unknown` para
44
+ evitar afirmar ausência no texto completo. O score desses componentes é `null`.
45
+ O modelo não extrai spans nem comprova causalidade entre ação e efeito.
46
+
47
+ Limitações: dados pequenos, composicionais, com atalhos lexicais e estilísticos;
48
+ domínio concentrado em software/dados/IA; avaliação sem anotação humana;
49
+ generalização externa desconhecida. Estruturas são regras de coocorrência e
50
+ fixtures, não um benchmark humano de XYZ ou STAR.
51
+
52
+ Uso pretendido: experimento aberto de classificação de componentes textuais.
53
+ Não usar para ranking de pessoas, contratação automática ou atribuir qualidade
54
+ universal a textos profissionais. O projeto é autoral, independente, motivado
55
+ por candidatura; não é patrocinado, supervisionado ou endossado por empresa.
56
+
57
+ Referência do encoder: Souza, Nogueira e Lotufo (2020), *BERTimbau: Pretrained
58
+ BERT Models for Brazilian Portuguese*, BRACIS.
project-docs/annotation-guide.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Guia de anotação — 0.1.0
2
+
3
+ Cada exemplo recebe cinco booleanos independentes. A referência é o que o texto
4
+ afirma, sem inferir experiência a partir de cargo, empresa ou tecnologia.
5
+
6
+ | Rótulo | Positivo | Negativo / fronteira |
7
+ |---|---|---|
8
+ | `action` | Contribuição identificável realizada: “Investiguei os timeouts.” | “Atuei com tecnologia”, intenções futuras e ações negadas. |
9
+ | `context` | Situação, domínio, equipe ou problema explícito: “Na equipe de pagamentos havia falhas.” | Nome de ferramenta isolado; não inferir o domínio. |
10
+ | `method` | Meio, técnica, processo ou ferramenta usado/indicado como abordagem: “Abordagem: revisão por pares.” | Lista de competências sem relação com uma abordagem. |
11
+ | `result` | Efeito ou entrega identificável: “O acesso foi restabelecido”, “Entreguei o painel.” | Investigação sem conclusão, “bons resultados”, propósito futuro. Não exige números. |
12
+ | `measurement` | Quantidade com referente: “Escopo: 12 serviços”, “redução de 20%”, “duas horas”. | “OAuth 2.0”, “Python 3.11”, “2026”, “INC-42”. Número pode medir escopo, sem resultado. |
13
+
14
+ “Entreguei três relatórios” tem `action`, `result` e `measurement`.
15
+ “Investiguei a lentidão” tem `action`, sem entrega ou efeito afirmado.
16
+ “O tempo de espera caiu” tem `result`, sem ação pessoal explícita.
17
+ “Não implementei cache; corrigi o timeout” contém uma ação realizada na segunda
18
+ oração; não aplicar negação à frase inteira. “Pretendo reduzir 20% usando SQL”
19
+ tem método e medida explícitos, sem ação realizada nem resultado realizado.
20
+ “Trabalho há dois anos com dados” contém medida e contexto, mas uma atividade
21
+ vaga não estabelece contribuição específica. A anotação é descritiva; falsidade
22
+ ou causalidade de uma alegação não podem ser verificadas por este dataset.
23
+
24
+ As cláusulas de contexto, abordagem, efeito e escopo podem ocorrer isoladamente
25
+ nos exemplos composicionais. “Escopo: 8 jobs” é uma medida, sem presumir entrega
26
+ ou situação de negócio. Uma abordagem nominal conta como método mesmo sem verbo
27
+ de realização; essa convenção limita a interpretação dos dados.
28
+
29
+ ## Piloto e lotes
30
+
31
+ O piloto são os primeiros 50 registros do lote 1. O guia foi fixado antes dos
32
+ experimentos; o piloto usa as mesmas definições dos demais registros. A geração
33
+ é composicional, com 100 cenários originais e quatro variantes controladas por
34
+ cenário. A variante completa e as remoções/negações são deliberadamente
35
+ correlacionadas e permanecem no mesmo split. Não são 400 origens independentes.
36
+
37
+ Revisão feita pela mesma IA: inspecionar as cláusulas de cada cenário quanto a
38
+ efeito concreto, contribuição, quantidades, negação e intenção; revisar os
39
+ textos renderizados e auditar duplicatas, cobertura e grupos. Histórico por
40
+ registro descreve o procedimento realizado, sem alegar um segundo anotador.
41
+ Não houve revisão humana nem medida de concordância.
42
+
43
+ O teste tem arquivo de cenários separado, produzido antes dos experimentos.
44
+ Congelar hashes de textos e rótulos; usar só treino/validação em decisões.
45
+ O teste final poderá ser lido para relatar erros, nunca para orientar novos dados
46
+ ou ajustes da v0.1. Mudanças posteriores exigem outra versão e outro teste.
project-docs/article.pt-BR.md ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PatchInsight: componentes textuais, dados sintéticos e um experimento auditável
2
+
3
+ O PatchInsight compara regras, embeddings fixos e fine-tuning completo de um
4
+ encoder em descrições profissionais em português. No teste sintético congelado,
5
+ o BERTimbau ajustado obteve macro-F1 de 0,9911 e a regressão sobre embeddings,
6
+ 0,9888. A diferença foi pequena e seu intervalo por reamostragem inclui zero;
7
+ a experiência não sustenta uma alegação de superioridade robusta do fine-tuning.
8
+ Há código, dados, checkpoint e relatórios para auditar a execução.
9
+
10
+ ## O problema
11
+
12
+ Uma descrição pode dizer o que foi feito, em que contexto, por qual meio, com
13
+ qual efeito e em que quantidade. Esses componentes podem aparecer juntos ou
14
+ separados. “Revisei as consultas” descreve uma ação; “a espera diminuiu” descreve
15
+ um efeito sem números. “OAuth 2.0” contém dígitos, mas não mede uma realização.
16
+
17
+ O projeto usa cinco rótulos independentes: action, context, method, result e
18
+ measurement. Reconhecer sua presença ajuda a descrever a construção textual.
19
+ Não permite concluir que a pessoa é mais competente ou que precisa seguir
20
+ uma fórmula narrativa. Por isso a interface não retorna notas nem ranking.
21
+
22
+ ## Arquitetura e hipótese
23
+
24
+ O classificador é BERTimbau Base, encoder pré-treinado para português,
25
+ com uma cabeça de cinco saídas sigmoid. O treinamento atualiza todos os pesos
26
+ com perda binária por rótulo. A revisão do encoder é fixada e os parâmetros
27
+ constam de `configs/experiment.json`.
28
+
29
+ Dois controles tornam a hipótese comparável. O primeiro usa regex e um léxico
30
+ de tecnologias; o segundo extrai embeddings do encoder congelado e ajusta uma
31
+ regressão logística por rótulo. A hipótese é que o fine-tuning melhore macro-F1
32
+ contra as mesmas referências sintéticas. Um resultado negativo será igualmente
33
+ informativo e deve ser publicado.
34
+
35
+ As estruturas XYZ, STAR, Action–Result e Action–Technology são regras sobre
36
+ componentes e sinais auxiliares. STAR exige objetivo ou responsabilidade
37
+ explícitos; sem evidência, Task fica desconhecida. Coocorrência não demonstra
38
+ causalidade ou qualidade, e essas regras são avaliadas por fixtures documentadas.
39
+
40
+ ## O que os dados permitem concluir
41
+
42
+ O conjunto tem 400 textos sintéticos, criados, anotados e revisados pela mesma
43
+ IA. Não houve revisão humana nem independência entre geração e revisão. Há
44
+ 100 cenários originais e quatro variantes controladas por cenário: completa,
45
+ remoções de componentes e negação ou intenção futura. Essa construção permite
46
+ controlar rótulos, mas restringe a diversidade e pode criar atalhos.
47
+
48
+ Treino, validação e teste têm 280, 60 e 60 textos, respectivamente. Todas as
49
+ variantes de um cenário ficam no mesmo split. O teste foi criado em arquivo
50
+ separado antes dos experimentos, e seus textos e rótulos possuem hashes de
51
+ congelamento. O PDF privado do currículo não foi usado nem será publicado.
52
+
53
+ Prefixos como “Abordagem” e “Escopo” tornam parte da tarefa explícita. O léxico
54
+ e o estilo também se repetem entre splits. Portanto, mesmo um F1 elevado não
55
+ comprovaria generalização para currículos reais. A separação de grupos protege
56
+ contra derivações da mesma origem, sem garantir independência semântica.
57
+
58
+ ## Resultado disponível: baseline de desenvolvimento
59
+
60
+ A execução do baseline heurístico em 60 exemplos de **validação**, com limiar
61
+ binário fixo, produziu:
62
+
63
+ | Métrica | Valor |
64
+ |---|---:|
65
+ | Macro-F1 | 0,8530 |
66
+ | Micro-F1 | 0,8623 |
67
+ | Exact match multilabel | 0,5333 |
68
+
69
+ | Rótulo | Precision | Recall | F1 | Suporte |
70
+ |---|---:|---:|---:|---:|
71
+ | action | 1,0000 | 0,5313 | 0,6939 | 32 |
72
+ | context | 0,9677 | 0,8571 | 0,9091 | 35 |
73
+ | method | 1,0000 | 0,9063 | 0,9508 | 32 |
74
+ | result | 1,0000 | 0,6923 | 0,8182 | 26 |
75
+ | measurement | 1,0000 | 0,8065 | 0,8929 | 31 |
76
+
77
+ A evidência está em `reports/development/heuristic-validation.json`. São números
78
+ de desenvolvimento, sem comparação neural e sem avaliação do teste. O recall
79
+ de ação indica a fragilidade da cobertura lexical; as precisões elevadas
80
+ devem ser lidas junto à regularidade artificial dos dados.
81
+
82
+ ## Comparação final e incerteza
83
+
84
+ Após encerrar a seleção pela validação, os três métodos foram avaliados nos
85
+ mesmos 60 textos de teste. O checkpoint escolhido foi o da época 5, com macro-F1
86
+ de validação 0,996923. Os limiares permaneceram em 0,5; não houve ajuste pelo teste.
87
+
88
+ | Método | Macro-F1 | Micro-F1 | Exact match |
89
+ |---|---:|---:|---:|
90
+ | Heurísticas | 0,6791 | 0,7634 | 0,3333 |
91
+ | Encoder congelado + regressão | 0,9888 | 0,9878 | 0,9333 |
92
+ | BERTimbau ajustado | 0,9911 | 0,9908 | 0,9500 |
93
+
94
+ A heurística não reconheceu nenhuma das ações positivas do teste, cujo vocabulário
95
+ não estava coberto por seus verbos. Esse resultado negativo foi preservado;
96
+ não foram ampliadas as regras para melhorar o teste. A baseline congelada ficou
97
+ próxima do fine-tuning, mostrando que o ajuste completo acrescentou pouco nesta
98
+ amostra. Os três erros binários do modelo ajustado foram falsos positivos de
99
+ contexto, método e resultado, um de cada.
100
+
101
+ A diferença de macro-F1 entre fine-tuning e regressão foi 0,002275. Um bootstrap
102
+ pareado pelas 15 origens, com 2.000 reamostragens e seed 42, produziu intervalo
103
+ percentil de 95% de −0,010818 a 0,014463. O intervalo descreve essa amostra
104
+ sintética, que ainda compartilha moldes; não é uma validação populacional de
105
+ currículos reais. Nem o ponto estimado nem os F1 elevados justificam extrapolar
106
+ para avaliação de profissionais.
107
+
108
+ As métricas por rótulo, contagens TP/FP/FN/TN e previsões por ID estão em
109
+ `reports/final/benchmark.json` e `predictions.jsonl`. A análise de erros está em
110
+ `reports/final/error-analysis.md`. Esses erros foram usados somente para relatar
111
+ limites, sem novo treino, ajuste de limiar ou geração de dados da v0.1.
112
+
113
+ ## Reprodução
114
+
115
+ O treino foi executado em uma GPU local NVIDIA RTX A1000 de 6 GB, com Python
116
+ 3.11.14 e dependências fixadas por uv.lock. O notebook chama os mesmos módulos
117
+ versionados para reprodução em Kaggle/Colab gratuitos; não se alega que a
118
+ execução publicada ocorreu nessas plataformas. Nenhuma computação paga foi
119
+ contratada. A impossibilidade inicial de rede e acesso ao hardware foi resolvida
120
+ antes dos experimentos reais.
121
+
122
+ Quinze testes passaram, incluindo contratos, regras, dados, atualização de pesos
123
+ em BERT minúsculo e carregamento do checkpoint real. O BERT minúsculo é apenas
124
+ um teste técnico e não entra no benchmark. O PyTorch emitiu aviso de atenção
125
+ backward não determinística; seeds e ambiente estão registrados, mas não se
126
+ promete identidade bit a bit entre retreinos. A evidência de reprodução em
127
+ ambiente separado e de container está em `docs/status.md` e `reports/`.
128
+
129
+ O projeto é independente e motivado por uma candidatura profissional. A
130
+ contribuição pretendida é demonstrar o ciclo experimental com evidência do
131
+ tamanho das afirmações, incluindo limitações e resultados negativos.
132
+
133
+ ## Referências e licença
134
+
135
+ - Souza, Nogueira e Lotufo, [BERTimbau Base](https://huggingface.co/neuralmind/bert-base-portuguese-cased).
136
+ - [Guia e protocolo locais](annotation-guide.md), [experimentos](experiments.md), [Dataset Card](../data/README.md).
137
+ - Código: MIT. Este artigo e os dados: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
138
+
139
+ ## Continuação experimental: avaliação 0.2
140
+
141
+ Os resultados anteriores pertencem à v0.1. Na continuação, os mesmos checkpoints
142
+ foram avaliados sem retreino em 36 textos novos, de 34 origens, com outro conjunto
143
+ de 36 textos usado somente em desenvolvimento. O próprio assistente escreveu,
144
+ anotou e revisou os dados, conforme solicitado pelo responsável; não houve
145
+ revisão humana, independência entre geração e revisão ou concordância medida.
146
+
147
+ No novo teste, macro-F1 foi 0,6910 para heurísticas, 0,6196 para regressão e
148
+ 0,5584 para o BERT ajustado. A regressão teve AP macro de 0,8401, contra 0,7768
149
+ do BERT. Os testes têm composições distintas e ambos são sintéticos; a queda
150
+ não equivale a medir generalização em currículos reais. Ela mostra que o
151
+ resultado original próximo do teto era restrito ao seu desenho experimental.
152
+
153
+ A temperatura global foi ajustada somente no novo desenvolvimento e congelada
154
+ antes do teste. Na regressão, Brier caiu de 0,1601 para 0,1355 e log loss de
155
+ 0,8540 para 0,4292, mantendo decisões no limiar 0,5. Isso melhora a avaliação
156
+ probabilística neste conjunto, sem demonstrar calibração externa. Nenhum cutoff
157
+ cumpriu erro observado de até 5% com pelo menos 50% de cobertura de decisões em
158
+ desenvolvimento; a abstenção permanece desativada nas políticas fornecidas.
159
+
160
+ A v0.2 também acrescenta inferência em lote, Action–Method e demonstração local
161
+ com checkpoint real e comparação por métricas. Protocolo, recortes, scores,
162
+ confiabilidade, incerteza e limitações: [avaliação 0.2](v02.md). Pesos, splits e
163
+ relatórios finais da v0.1 foram preservados; não houve ajuste orientado pelos erros do novo teste.
project-docs/contract.md ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contrato CLI/JSON 0.2.0
2
+
3
+ `patchinsight predict --text '...' --json` usa BERT e exige um bundle local
4
+ ajustado. `--backend heuristic` seleciona explicitamente o baseline de regras.
5
+ Não existe fallback silencioso quando o modelo não carrega.
6
+
7
+ Entrada: string Unicode normalizada em NFC, espaços condensados, preservando
8
+ maiúsculas e acentos. Vazio, controle não espacial e mais de 20.000 caracteres
9
+ geram erro. O encoder limita a 192 tokens, incluindo tokens especiais.
10
+
11
+ Saída: um objeto JSON em stdout, validado por Pydantic. Erros de execução e
12
+ entrada retornam código 2 e JSON em stderr; erros de argumentos usam o formato
13
+ padrão do argparse em stderr. Logs das bibliotecas também podem ir para stderr.
14
+
15
+ | Campo | Significado |
16
+ |---|---|
17
+ | `components` | Exatamente os cinco rótulos; cada um com `state` e `score` |
18
+ | `state` | `present`, `absent` ou `unknown` |
19
+ | `score` | Sigmoid não calibrada por padrão; temperatura experimental opt-in; regra binária no baseline; `null` para desconhecido |
20
+ | `structures` | Zero ou mais de `XYZ`, `STAR`, `Action–Result`, `Action–Technology`, `Action–Method` |
21
+ | `task` | `present` se há objetivo/responsabilidade explícito, senão `unknown` |
22
+ | `technologies` | Nomes canônicos encontrados no léxico, sem extração de spans |
23
+ | `diagnostics` | Componentes ausentes/desconhecidos, `task_unknown`, `unclassified`, truncamento |
24
+ | `truncated` / `tokens` | Corte pelo tokenizer; tokens totais antes do corte; `null` no baseline |
25
+ | `versions` | `schema_version`, `model_version`, `rules_version` |
26
+ | `backend` / `score_kind` | Método efetivo e interpretação de seus valores |
27
+
28
+ Se houver truncamento, uma previsão negativa no prefixo fica `unknown` com
29
+ score `null`. Predições positivas referem-se ao trecho observado. A detecção
30
+ lexical de tecnologias e objetivo lê o texto normalizado completo; os
31
+ componentes semânticos do BERT leem o prefixo. Essa diferença pode limitar
32
+ a interpretação das combinações em entradas longas.
33
+
34
+ Regras, sempre exigindo componentes `present`:
35
+
36
+ | Estrutura | Componentes e auxiliares |
37
+ |---|---|
38
+ | XYZ | action + result + measurement + method |
39
+ | STAR | context + action + result + objetivo/responsabilidade explícito |
40
+ | Action–Result | action + result |
41
+ | Action–Technology | action + tecnologia do léxico |
42
+ | Action–Method | action + method |
43
+
44
+ Estas combinações verificam coocorrência, sem validar alinhamento causal,
45
+ ordem narrativa, qualidade ou adequação universal da estrutura. `context`
46
+ aproxima Situation; Task só é detectada por padrões explícitos como “meu
47
+ objetivo era” e “fui encarregado de”. A ausência desses padrões permanece
48
+ desconhecida. Não há score de qualidade ou ranking de pessoas. Na v0.2, a demo e o endpoint
49
+ HTTP são locais e restritos a loopback; não há API publicada.
50
+
51
+ O léxico usa limites de palavras, aliases como Postgres/K8s/sklearn e evita
52
+ Java dentro de JavaScript. Uma menção lexical não prova uso da tecnologia
53
+ pela pessoa; a estrutura Action–Technology é somente coocorrência.
54
+
55
+ ## Extensões da v0.2
56
+
57
+ `versions.schema_version` e `rules_version` são 0.2.0; model_version continua a
58
+ identificar o checkpoint efetivo, inclusive 0.1.0 para os pesos preservados.
59
+ `score_kind` aceita binary_rule, sigmoid_uncalibrated e
60
+ temperature_scaled_experimental. A política opt-in exige método BERT e hash de
61
+ manifest do mesmo bundle; sua identificação aparece em diagnostics.
62
+
63
+ Quando uma política de confiança válida encaminhar componente para revisão,
64
+ state é unknown e score é null; nenhum match de estrutura pode usar unknown.
65
+ A política fornecida nesta rodada não atingiu a meta de desenvolvimento e tem
66
+ cutoff null, sem abstenção por confiança. Truncamento continua independente.
67
+
68
+ `batch` lê JSONL com text e id opcional; retorna envelope por linha com line,
69
+ id e prediction ou error. Código 1 indica erro por item; 2 erro global. O
70
+ carregamento ocorre uma vez e as previsões válidas são agrupadas. Limites,
71
+ timeout cooperativo e formato HTTP: [v02.md](v02.md).
72
+
73
+ A inferência em lote usa o mesmo contrato de componentes da inferência única.
74
+ O timeout entre lotes não interrompe inferência ativa ou stdin bloqueado.
project-docs/data-review.md ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Revisão dos dados sintéticos
2
+
3
+ As cláusulas em `data/source/*.tsv` foram escritas e inspecionadas pelo mesmo
4
+ assistente IA desta implementação. As variantes são renderizadas por código;
5
+ os rótulos acompanham as cláusulas incluídas. Não houve anotação independente,
6
+ votação entre modelos ou revisão humana. O identificador exato do modelo gerador
7
+ não está disponível de forma verificável; não é inferido a partir da interface.
8
+
9
+ | Lote | Registros | Origens | Verificação |
10
+ |---|---:|---:|---|
11
+ | 1 | 100 | 25 | Piloto de 50; ação de processo versus efeito, método nominal, medida de escopo |
12
+ | 2 | 100 | 25 | Negação, intenção futura, efeitos sem números, separação de origem |
13
+ | 3 | 100 | 25 | Amplitude de software/dados/IA, cobertura dos rótulos |
14
+ | 4 | 100 | 25 | 40 exemplos de desenvolvimento e 60 de teste de origens separadas |
15
+
16
+ O teste foi escrito em arquivo separado antes de rodar qualquer baseline. Não
17
+ foi composto a partir de erros do modelo. Cada cenário possui uma variante
18
+ completa, duas remoções de componentes e uma ação negada ou intenção futura.
19
+ Os textos de saída foram inspecionados em conjunto com os testes das regras de
20
+ composição; o histórico não representa uma avaliação cega texto a texto.
21
+
22
+ A auditoria é reproduzível por `python -m patchinsight.data`. Há 26 combinações
23
+ de rótulos, 100 grupos, zero duplicatas exatas e nenhum grupo entre splits.
24
+ O algoritmo de similaridade em desenvolvimento (SequenceMatcher ≥ 0,85)
25
+ sinalizou `pi-0216` e `pi-0312`: “Não cheguei a analisar os passos da instalação”
26
+ e “Não cheguei a analisar os passos da rotina diária”. Foram mantidos: os
27
+ objetos são diferentes, mas o molde é o mesmo. Esse caso evidencia a limitação
28
+ de diversidade da geração composicional; não constitui prova de independência.
29
+
30
+ Revisão semântica: as ações de análise/revisão/investigação não afirmam entrega;
31
+ os efeitos impessoais afirmam mudança identificável; a cláusula “Escopo” mede
32
+ volume sem presumir resultado. As variantes negativas preservam método,
33
+ contexto ou medida quando esses componentes são explicitamente incluídos.
34
+ “OAuth 2.0” aparece como tecnologia, não como medida; quantidades adjacentes
35
+ continuam válidas. A distinção está coberta por fixtures externas ao dataset.
36
+
37
+ Esta versão não contém narrativas livres suficientes para estimar desempenho
38
+ em currículos reais. Prefixos como “Abordagem” e “Escopo” podem tornar a tarefa
39
+ artificialmente fácil. Há vocabulário compartilhado entre splits, mesmo sem
40
+ origens compartilhadas. Esses atalhos devem ser relatados junto às métricas.
project-docs/experiments.md ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > Protocolo histórico da v0.1. A avaliação exploratória posterior, sem retreino,
2
+ > tem protocolo próprio em [data/v02/README.md](../data/v02/README.md) e resultados
3
+ > em [v02.md](v02.md). A métrica primária e a seleção originais não foram alteradas.
4
+
5
+ # Protocolo experimental 0.1
6
+
7
+ Pergunta: fine-tuning completo de BERTimbau melhora a classificação de cinco
8
+ componentes em relação a regras e embeddings fixos, contra referências
9
+ sintéticas revisadas por IA?
10
+
11
+ ## Dados e isolamento
12
+
13
+ Congelamento em `data/freeze.json`; 280/60/60 registros e 70/15/15 cenários.
14
+ Cada cenário é uma origem com quatro variantes correlacionadas. Separação por
15
+ origem impede derivados literais em splits diferentes, mas não elimina moldes
16
+ compartilhados. Ver `reports/data-audit.json` e `docs/data-review.md`.
17
+
18
+ Só treino e validação orientam configuração e complementação. O módulo
19
+ `experiment` não abre o teste; a verificação dos hashes lê bytes de integridade,
20
+ sem usar textos ou rótulos do teste no treinamento. `evaluate --final` é o
21
+ único fluxo de métricas de teste. Após o primeiro benchmark, os erros não
22
+ podem orientar a v0.1; uma nova pesquisa exige outro teste e outra versão.
23
+
24
+ ## Métodos fixados
25
+
26
+ | Método | Representação | Aprendizado | Decisão |
27
+ |---|---|---|---|
28
+ | Heurístico | Regex e léxico curado | Nenhum | Regras binárias |
29
+ | Congelado + regressão | Média dos estados do encoder com máscara | StandardScaler e uma LogisticRegression por rótulo | 0,5 |
30
+ | Fine-tuned | BERTimbau Base + cabeça multilabel | Todos os pesos, BCE com logits | 0,5 |
31
+
32
+ O scaler e a regressão são ajustados apenas em treino. C=1 e max_iter=2000;
33
+ não há busca de hiperparâmetros. Encoder congelado tem `requires_grad=False`
34
+ e modo eval. Pooling usa média mascarada, incluindo tokens especiais, fixado
35
+ para todas as execuções da baseline. Regressão serializada em JSON com pesos,
36
+ interceptos, média e escala; não é necessário carregar pickle.
37
+
38
+ Fine-tuning: seed 42 antes de inicializar a cabeça; até cinco épocas, AdamW
39
+ lr 2e-5 e weight decay 0,01; batch 8; acumulação 2; clipping 1; max_length 192.
40
+ O melhor macro-F1 de validação determina o checkpoint; empate mantém a época
41
+ mais antiga. Não há tuning de limiar nesta versão. Menor batch por falta de
42
+ memória deve ser registrado em uma nova configuração antes da avaliação final.
43
+
44
+ Reprodutibilidade não garante identidade bit a bit entre GPUs e versões de
45
+ drivers. Seeds, determinismo solicitado, ambiente, revisão e hashes devem
46
+ acompanhar os resultados; avisos de operações não determinísticas permanecem
47
+ visíveis. Preservar artefatos fora da sessão Kaggle/Colab ao concluir o treino.
48
+
49
+ ## Avaliação
50
+
51
+ Métrica primária: macro-F1. Secundárias: micro-F1 e exact match multilabel.
52
+ Por rótulo: precision, recall, F1, suporte positivo, TP, FP, FN e TN.
53
+ Divisão por zero resulta em zero. Os três métodos compartilham a implementação
54
+ `metrics.py` e o mesmo teste. Guardar previsões por ID para auditar erros.
55
+
56
+ O JSON final registra hashes dos bundles e dos dados, ambiente e limiares.
57
+ Publicar os três métodos mesmo quando fine-tuning perde. Não atribuir melhora
58
+ a pessoas reais ou a recrutamento; o alvo é consistência com anotações
59
+ sintéticas dependentes do gerador e do guia.
60
+
61
+ ## Evidência disponível
62
+
63
+ `reports/development/heuristic-validation.json` contém a execução real do
64
+ baseline na validação: macro-F1 0,852965, micro-F1 0,862319, exact match
65
+ 0,533333, n=60. Essa execução não exigiu bibliotecas de ML. Nenhuma alteração
66
+ de regra foi feita com base em erros do teste; o teste não foi pontuado.
67
+
68
+ A baseline congelada e o fine-tuning foram executados na GPU local NVIDIA RTX
69
+ A1000 6 GB, com Python 3.11.14. Seleção: época 5, macro-F1 de validação 0,996923.
70
+ O teste final está em `reports/final/benchmark.json`; modelos ajustado e congelado
71
+ obtiveram macro-F1 0,991101 e 0,988825. O bootstrap pareado por origem inclui zero
72
+ no intervalo de ganho; ver `reports/final/uncertainty.json`.
73
+
74
+ O retreino de reprodução usa a mesma configuração, sem decisões adicionais
75
+ baseadas no teste; é uma verificação do pipeline, não um novo candidato. Logs
76
+ de treinamento, ambiente e aviso de atenção não determinística estão em
77
+ `reports/training`. A identidade bit a bit dos pesos entre retreinos não é
78
+ prometida. Testes com BERT minúsculo validam somente o fluxo técnico e não
79
+ entram no benchmark. O teste de checkpoint real passou após o ajuste completo.
project-docs/publication.md ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Publicação e progressão
2
+
3
+ Código: https://github.com/octopus-synapse/patch-insight . Commits em inglês,
4
+ Conventional Commits, sem trailer Co-authored-by. Nenhum push é considerado
5
+ concluído sem conferir o SHA e os arquivos remotos. O PDF fica fora da publicação.
6
+
7
+ Artefatos publicados e revisões conferidas em `reports/publication.json`:
8
+ dataset `enzoferracini/patchinsight-synthetic-ptbr` e modelo
9
+ `enzoferracini/patchinsight-bertimbau-ptbr`. O histórico preserva a Model Card
10
+ inicial sem pesos e o commit posterior com o checkpoint avaliado.
11
+
12
+ No Hugging Face, há dois repositórios de artefatos. Isso permite manter pesos e
13
+ dados com seus respectivos históricos e licenças, enquanto o código permanece
14
+ em um único GitHub. Criar os espaços agora é útil para documentar a progressão;
15
+ uma página sem pesos deve dizer claramente “treinamento pendente”.
16
+
17
+ 1. Acessar https://huggingface.co/new com login. Proprietário: seu usuário;
18
+ nome sugerido `patchinsight-bertimbau-ptbr`; licença MIT; Public.
19
+ 2. Acessar https://huggingface.co/new-dataset. Nome sugerido
20
+ `patchinsight-synthetic-ptbr`; licença CC BY 4.0; Public.
21
+ 3. Não criar Space nem contratar computação. A política vigente treina localmente;
22
+ Kaggle e Colab gratuitos são reservas.
23
+
24
+ O Hub permite iniciar com README/Model Card e adicionar arquivos em commits
25
+ posteriores. Guia: https://huggingface.co/docs/hub/repositories-getting-started .
26
+ Não é necessário publicar pesos inexistentes para reservar o nome.
27
+
28
+ ## Antes de publicar o dataset
29
+
30
+ Conferir `data/freeze.json`, auditoria, guia, declaração de revisão pela mesma IA
31
+ e licença. Copiar a pasta `data` como artefato do dataset. A Dataset Card usa
32
+ links relativos ao repositório de código; ao publicar no Hub, substituir
33
+ esses links por URLs do GitHub e incluir uma cópia do guia e da revisão.
34
+ Os JSONL contêm os splits, IDs e proveniência; não enviar o PDF.
35
+
36
+ ## Antes de publicar o modelo
37
+
38
+ Executar treino real, teste `real_model`, benchmark dos três métodos, inferência
39
+ da imagem sem rede e reprodução limpa em Python 3.11 com lock. Atualizar a
40
+ Model Card com dataset e revisões reais, métricas finais, ambiente e links.
41
+ Remover o status de preparação somente quando houver evidência.
42
+
43
+ O diretório ajustado contém `model.safetensors`, configuração, tokenizer,
44
+ `patchinsight.json`, `manifest.json`, licença MIT e aviso NeuralMind. Não enviar
45
+ somente os pesos do encoder base como se fossem um modelo treinado da tarefa.
46
+ Ao modificar a Model Card dentro do bundle, regenerar seu manifest.
47
+
48
+ Com Hugging Face autenticado localmente, preparar e enviar uma nova publicação:
49
+
50
+ ```bash
51
+ hf auth whoami
52
+ python3 scripts/prepare_hub.py --namespace enzoferracini --stage trained \
53
+ --output artifacts/hub-next
54
+ hf upload enzoferracini/patchinsight-synthetic-ptbr artifacts/hub-next/dataset . \
55
+ --type dataset --commit-message 'feat(data): publish frozen synthetic dataset'
56
+ hf upload enzoferracini/patchinsight-bertimbau-ptbr artifacts/hub-next/model . \
57
+ --type model --commit-message 'feat(model): publish evaluated multilabel checkpoint'
58
+ ```
59
+
60
+ Não colar tokens no chat nem versioná-los. Conferir os SHAs retornados pelo Hub,
61
+ baixar a revisão fixa em um ambiente limpo e testar o carregamento real.
62
+ Atualizar README, artigo e links somente com os destinos efetivos.
63
+
64
+ ## Estado local da v0.2
65
+
66
+ A versão 0.2.0 do software e seus novos relatórios estão preparados localmente.
67
+ Não foram enviados ao GitHub/Hub nem transformados em release pública nesta
68
+ rodada. O checkpoint avaliado continua o da v0.1. Uma publicação posterior deve
69
+ preservar essa distinção, os hashes históricos e a autoria/revisão por IA da
70
+ nova suite. A demo é local, sem hospedagem externa ou Space.
project-docs/status.md ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Estado da v0.2 — 07/11/2026
2
+
3
+ Implementada e verificada localmente, sem retreino ou republicação de checkpoint.
4
+ Detalhes, resultados e comandos: [v02.md](v02.md). Revisão dos novos dados feita
5
+ pelo próprio assistente IA, conforme solicitado, sem revisão humana independente.
6
+
7
+ - 72 textos novos congelados: 36 desenvolvimento e 36 teste, 34 origens por split.
8
+ - Macro-F1 no novo teste: heurística 0,6910; regressão 0,6196; BERT 0,5584.
9
+ - Avaliação por F1, AP, ROC-AUC, MCC, Hamming, exact match, Brier e log loss;
10
+ confiabilidade, recortes, risco/cobertura e bootstrap por origem.
11
+ - Temperatura ajustada só em desenvolvimento; melhora probabilística da regressão.
12
+ Nenhum cutoff atingiu o critério de abstenção; confiança não vira promessa de risco.
13
+ - Inferência JSONL em lote, Action–Method e demo local com checkpoint real;
14
+ comparação interativa por métrica e acesso ao JSON versionado.
15
+ - Pesos e dados/relatórios finais da v0.1 preservados; software/schema/regras 0.2.0.
16
+ - Sem publicação externa da v0.2, integração ao Patch Careers ou computação paga.
17
+
18
+ A evidência de verificação desta rodada está em `reports/v02/verification.json`.
19
+ O registro histórico abaixo se refere exclusivamente à v0.1.
20
+
21
+ ---
22
+
23
+ # Estado da v0.1 — 07/11/2026
24
+
25
+ Implementação, treino, avaliação, publicação dos artefatos e verificações locais
26
+ concluídos. O experimento usa referências sintéticas revisadas pela mesma IA;
27
+ não há validação humana ou evidência de generalização para currículos reais.
28
+
29
+ | Entregável | Evidência |
30
+ |---|---|
31
+ | Código e histórico | GitHub `octopus-synapse/patch-insight`; Conventional Commits em inglês, sem Co-authored-by |
32
+ | Dataset | 400 variantes de 100 origens, quatro lotes; 280/60/60; hashes em `data/freeze.json` |
33
+ | Guia e auditoria | `annotation-guide.md`, `data-review.md`, `reports/data-audit.json` |
34
+ | Heurísticas | Validação e teste final registrados |
35
+ | Encoder congelado + regressão | Executado, macro-F1 de teste 0,988825 |
36
+ | Fine-tuning completo | Cinco épocas, seleção da época 5 por validação; macro-F1 de teste 0,991101 |
37
+ | Checkpoint real | Hugging Face `enzoferracini/patchinsight-bertimbau-ptbr` |
38
+ | Dataset publicado | Hugging Face `enzoferracini/patchinsight-synthetic-ptbr` |
39
+ | Benchmark | `reports/final`: três métodos, suportes, contagens, previsões, erros e incerteza |
40
+ | CLI JSON | Pydantic, schema em `configs/output.schema.json`, componentes e estruturas versionados |
41
+ | Testes | 15 passaram em Python 3.11.14, incluindo modelo real; `reports/verification.json` |
42
+ | Lock | `uv.lock` resolvido; instalação com `uv sync --frozen` |
43
+ | Docker | Build e inferência sem rede passaram; `reports/docker.json` |
44
+ | Reprodução limpa | Clone SSH novo e nova virtualenv; treino, avaliação e carga real repetidos; `reports/clean-room.json` |
45
+ | Artigo e cards | `article.pt-BR.md`, Dataset Card e Model Card publicada com resultados reais |
46
+
47
+ ## Desvios e limites
48
+
49
+ O ambiente inicialmente restringia rede, GPU, Docker e escrita em `.git`.
50
+ Depois da liberação, os impedimentos foram resolvidos. A execução ocorreu
51
+ na GPU local NVIDIA RTX A1000 6 GB, sem contratação de computação. O notebook
52
+ de reprodução para Kaggle/Colab foi preparado, mas não se alega execução nessas
53
+ plataformas. Os checkpoints estão também no Hub, fora da sessão de treino.
54
+
55
+ O teste tem apenas 15 origens e variantes dependentes. O ganho de macro-F1 do
56
+ fine-tuning frente à regressão foi 0,002275; intervalo bootstrap por origem
57
+ de 95%: [−0,010818; 0,014463]. A baseline congelada permanece competitiva.
58
+ Prefixos e moldes artificiais podem facilitar atalhos. Não há benchmark humano
59
+ das estruturas nem revisão humana dos dados.
60
+
61
+ O PyTorch emitiu aviso de atenção backward não determinística. Nesta máquina,
62
+ o retreino com a mesma configuração reproduziu inclusive o hash dos pesos;
63
+ isso não garante identidade em outro hardware. A reprodução reutilizou caches
64
+ de pacotes e downloads, mas criou clone e ambiente Python separados.
65
+
66
+ O Docker foi validado localmente; não foi enviado a um registry. O código
67
+ permite reconstruir a imagem com a revisão publicada. A documentação local
68
+ `MODEL_CARD.md` é um template para novos runs; a card efetiva está no Hub.
69
+ Demo visual, API REST e integração com Patch Careers permanecem fora do escopo.
project-docs/v02-data-review.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Revisão por IA da avaliação 0.2
2
+
3
+ Revisão realizada pelo próprio assistente autor, antes dos scores dos modelos.
4
+ Não há revisão humana, cegamento, independência ou medida de concordância.
5
+ Cada texto livre foi relido contra as cinco definições do guia, com uma
6
+ justificativa específica em `review_note`. Os pares foram conferidos quanto à
7
+ preservação de rótulos e mantidos na mesma origem. A auditoria mecânica verifica
8
+ schema, duplicatas, suportes positivos/negativos e separação de origens.
9
+
10
+ Decisões de fronteira adotadas antes do congelamento:
11
+
12
+ - Investigar/inspecionar/comparar não afirma por si só solução ou entrega.
13
+ - Entrega explícita e disponibilidade de artefato contam como result.
14
+ - Perguntas e condicionais contrafactuais não afirmam contribuição realizada.
15
+ - Em futuro e negação, método/medida/contexto explicitamente presentes podem
16
+ permanecer positivos. A negação da primeira oração não suprime a segunda.
17
+ - “Doze relatórios” e “sete serviços” contêm medidas mesmo sem algarismos.
18
+ - Anos e versões isolados não são medidas; listas de competências não são método.
19
+ - Equipe, setor e problema declarado fornecem contexto. Objeto de uma inspeção
20
+ isolada não recebe context automaticamente.
21
+ - Linguagem informal pode descrever atividade concreta. Adjetivos genéricos e
22
+ “gerei muito valor” não estabelecem contribuição nem resultado identificável.
23
+ - Pares com “Abordagem/Escopo” e equivalentes livres mantêm método e volume,
24
+ sem acrescentar resultado. São sondagens pequenas, não prova causal geral.
25
+
26
+ Limites: as justificativas não eliminam ambiguidade de autoria única. Entregas,
27
+ contextos e meios podem se sobrepor semanticamente. O resultado mede aderência
28
+ à interpretação deste guia pela mesma IA. Novos erros serão relatados sem
29
+ corrigir os rótulos ou ampliar regras após observar o teste.
project-docs/v02.md ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PatchInsight 0.2 — avaliação ampliada e inferência local
2
+
3
+ A v0.2 avalia os checkpoints da v0.1 em um novo conjunto exploratório, adiciona
4
+ métricas probabilísticas, calibração experimental, inferência em lote,
5
+ Action–Method e uma demo local. Não houve novo fine-tuning nem alteração dos
6
+ pesos, dados congelados ou resultados finais da v0.1. A versão do software é
7
+ 0.2.0; o checkpoint continua identificado como 0.1.0.
8
+
9
+ ## Resultado que muda a interpretação
10
+
11
+ | Conjunto / método | Macro-F1 | Exact match | AP macro | Brier ↓ | Log loss ↓ |
12
+ |---|---:|---:|---:|---:|---:|
13
+ | Original v0.1 — regressão | 0,9888 | 0,9333 | 1,0000 | 0,0089 | 0,0297 |
14
+ | Original v0.1 — BERT ajustado | 0,9911 | 0,9500 | 1,0000 | 0,0383 | 0,1941 |
15
+ | Novo teste — heurísticas | 0,6910 | 0,3056 | 0,7441 | 0,1833 | 2,9550 |
16
+ | Novo teste — regressão | 0,6196 | 0,3056 | 0,8401 | 0,1601 | 0,8540 |
17
+ | Novo teste — BERT ajustado | 0,5584 | 0,2500 | 0,7768 | 0,1648 | 0,5053 |
18
+ | Novo teste — regressão com temperatura | 0,6196 | 0,3056 | 0,8401 | 0,1355 | 0,4292 |
19
+ | Novo teste — BERT com temperatura | 0,5584 | 0,2500 | 0,7768 | 0,1647 | 0,5051 |
20
+
21
+ A ordenação depende da pergunta. No novo teste, heurísticas têm maior macro-F1
22
+ entre os três métodos originais; a regressão ordena melhor os positivos por AP.
23
+ Após temperatura, a regressão tem menor Brier/log loss entre as variantes
24
+ avaliadas. O resultado original próximo do teto não se sustenta neste desafio.
25
+ Os dois testes têm composições distintas; a queda não mede desempenho em
26
+ currículos reais nem permite atribuir toda a diferença a um único fator.
27
+
28
+ O ganho macro-F1 de BERT menos regressão no novo teste foi −0,0612. Bootstrap
29
+ pareado de 34 origens, 1.000 reamostragens, seed 42: IC percentil 95%
30
+ [−0,1642; 0,0372]. A amostra continua pequena e sintética; não há evidência
31
+ robusta de superioridade do BERT.
32
+
33
+ Brier e log loss avaliam previsões probabilísticas e combinam calibração e
34
+ capacidade discriminativa. Confiabilidade é examinada também em cinco bins por
35
+ rótulo, com contagens explícitas. Não há alegação de probabilidades externamente
36
+ calibradas. A AP implementada é Average Precision, não integração trapezoidal
37
+ genericamente chamada de PR-AUC. ROC-AUC e MCC complementam a comparação;
38
+ ROC-AUC/AP indefinidas ficam null. Log loss usa clipping em 1e-7 para todos os
39
+ métodos, inclusive decisões heurísticas binárias que não são probabilidades
40
+ validadas.
41
+
42
+ ## Dados e revisão solicitada
43
+
44
+ O próprio assistente escreveu, anotou e revisou os 72 textos, com justificativa
45
+ semântica por registro antes dos scores. Sem revisão humana, anotador
46
+ independente, cegamento ou concordância interavaliadores. O nome exato do
47
+ modelo gerador não foi inferido. Não há currículos reais nem dados pessoais.
48
+
49
+ São 36 textos e 34 origens por split: desenvolvimento e teste. Cada split tem
50
+ 32 descrições livres e dois pares com/sem marcadores. Temas e formatos ainda
51
+ se repetem; o teste não é semanticamente independente da autoria do
52
+ desenvolvimento. As tags cobrem versões, medidas por extenso, futuro, negação,
53
+ perguntas, contrafactuais, resultados qualitativos e escrita informal.
54
+
55
+ Fontes, textos, rótulos, gerador determinístico e protocolo foram congelados
56
+ antes dos scores. Dados e artigo: CC BY 4.0. A nova suite fica em `data/v02`,
57
+ separada dos splits de treinamento da v0.1. Detalhes: [protocolo](../data/v02/README.md)
58
+ e [revisão por IA](v02-data-review.md).
59
+
60
+ ## Calibração e abstenção
61
+
62
+ Somente desenvolvimento ajusta uma temperatura global por modelo na grade
63
+ predefinida. BERT: T=0,965936; regressão: T=4,0, o extremo superior da grade.
64
+ Esse extremo é relatado como limitação; a grade não foi ampliada após os scores.
65
+ A temperatura não muda as decisões no limiar 0,5, por isso F1 e Hamming são
66
+ iguais antes/depois. Os scores podem mudar e afetar probabilidades e cobertura.
67
+
68
+ Nenhum cutoff predefinido conseguiu erro observado de até 5% mantendo pelo
69
+ menos 50% das decisões em desenvolvimento. As políticas registram cutoff null:
70
+ a abstenção por confiança permanece desativada. A infraestrutura aceita
71
+ abstenção quando um experimento futuro atender a seus critérios. Truncamento
72
+ continua marcando negativos como unknown independentemente disso.
73
+
74
+ As políticas são opt-in, ligadas por hash ao bundle e identificadas nos
75
+ diagnósticos. Não se tornam padrão. O novo teste usa as políticas congeladas,
76
+ sem reestimá-las. Curvas de risco/cobertura de teste são descritivas; não escolher
77
+ um cutoff a partir delas. Nenhum score é nota de escrita ou competência.
78
+
79
+ ## Reproduzir a avaliação
80
+
81
+ Com a stack ML instalada pelo lock e os artefatos originais em `artifacts/run-42`:
82
+
83
+ ```bash
84
+ python3 scripts/build_v02_suite.py
85
+ uv run --frozen --extra ml python -m patchinsight.research historical
86
+ uv run --frozen --extra ml python -m patchinsight.research development --device cuda
87
+ uv run --frozen --extra ml python -m patchinsight.research test --device cuda
88
+ uv run --frozen --extra ml python -m patchinsight.research latency --device cuda
89
+ ```
90
+
91
+ Esses relatórios já existem e os comandos recusam sobrescrita. Para uma
92
+ reprodução, acrescente `--root-output artifacts/v02-reproduction` a cada comando,
93
+ usando a mesma pasta em desenvolvimento e teste. CPU também é suportada.
94
+ O encoder base é carregado apenas do cache local, com revisão fixa; preparar o
95
+ cache pelo treino/reprodução original antes de desconectar a rede. `--run`
96
+ seleciona a pasta com `model/` e `frozen.json`; não basta baixar apenas o BERT.
97
+
98
+ Relatórios: [histórico posterior](../reports/v02/historical/README.md),
99
+ [desenvolvimento](../reports/v02/development/README.md),
100
+ [novo teste](../reports/v02/test/README.md), [erros](../reports/v02/error-analysis.md).
101
+ Os JSON incluem versões, ambiente, hashes, métricas por componente, recortes,
102
+ risco/cobertura e confiabilidade. Macro-F1 em recortes com rótulos sem positivos
103
+ usa zero_division=0: pode ser zero mesmo com previsões negativas corretas.
104
+ Comparar esses recortes também por Hamming, suportes e FP/FN, não só macro-F1.
105
+
106
+ ## Inferência em lote
107
+
108
+ ```bash
109
+ printf '%s\n' '{"id":"a","text":"Revisei as consultas com SQL."}' \
110
+ '{"id":"b","text":"OAuth 2.0"}' | \
111
+ uv run --frozen --extra ml patchinsight batch --model artifacts/model --batch-size 8
112
+ ```
113
+
114
+ JSONL de entrada com text e id opcional (string até 200 caracteres). Um envelope
115
+ por linha de saída conserva ordem, número de linha, id e prediction ou error.
116
+ O modelo é carregado uma vez e os itens válidos são inferidos juntos. Linhas
117
+ inválidas não impedem os demais itens. Exit 0: todos válidos; 1: erros por linha;
118
+ 2: erro de configuração, limite global ou inferência.
119
+
120
+ Batch de 1–64, máximo padrão 10.000 itens; `--max-items` ajusta esse total.
121
+ Entradas excedendo 100.000 caracteres por linha encerram o fluxo. Textos seguem
122
+ o limite de 20.000 caracteres e as regras de truncamento do contrato.
123
+ `--timeout` padrão 300 segundos é cooperativo: verificado entre lotes após
124
+ leitura. Não interrompe uma inferência ativa nem uma leitura stdin bloqueada.
125
+ Saída anterior continua válida em interrupções. `--input arquivo.jsonl` lê arquivo.
126
+
127
+ ## Demo local
128
+
129
+ ```bash
130
+ uv run --frozen --extra ml patchinsight serve --model artifacts/model --device cuda
131
+ ```
132
+
133
+ Abrir `http://127.0.0.1:8765`. Texto livre, exemplos editáveis, cinco componentes,
134
+ combinações, scores, truncamento e JSON versionado. A inferência usa o checkpoint
135
+ real. `--backend heuristic` seleciona explicitamente regras. Não há fallback.
136
+
137
+ [Captura da demo verificada no Firefox](images/v02-demo-desktop.png).
138
+
139
+ A interface e o endpoint POST `/v1/analyze` ficam restritos a loopback; não é um
140
+ serviço publicado. O endpoint aceita apenas `{"text":"..."}`. Modelo carregado
141
+ uma vez, inferência serializada, máximo de 100.000 bytes por body, sem persistir
142
+ textos ou registrar requests. `/healthz` informa backend pronto e política.
143
+ Host/origem são limitados à demo local. CPU: omitir `--device cuda`.
144
+
145
+ Calibração experimental opt-in, com o bundle usado no experimento:
146
+
147
+ ```bash
148
+ uv run --frozen --extra ml patchinsight serve --model artifacts/run-42/model \
149
+ --policy reports/v02/development/bert_finetuned-policy.json
150
+ ```
151
+
152
+ Uma política de outro método ou bundle é rejeitada. A política fornecida tem
153
+ abstenção desativada por não cumprir os critérios em desenvolvimento.
154
+
155
+ Action–Method exige action e method presentes; qualquer unknown impede o match.
156
+ Assim como as demais estruturas, isso indica coocorrência, não vínculo causal.
157
+ Schema e regras: 0.2.0. Não usar um validador JSON 0.1.0 para as novas saídas.
158
+
159
+ ## Escopo concluído e continuidade
160
+
161
+ SHOULD atendidos nesta rodada: testes adversariais (ML-15), experimento de
162
+ calibração (ML-12), inferência em lote (ENG-06), mecanismo de incerteza com
163
+ critério explícito (ENG-08), Action–Method (STR-06) e demo (PUB-06). A meta
164
+ empírica de abstenção não foi atingida. Tracking continua em arquivos locais;
165
+ não foi adicionada infraestrutura de experimentos nem contratada computação.
166
+
167
+ A revisão permanece por IA conforme solicitado. Spans, task/challenge como novos
168
+ rótulos, CAR, vagueza/especificidade supervisionadas e inglês exigem novos dados
169
+ e avaliações. A próxima rodada pode trabalhar com escrita livre e novas fontes
170
+ ou revisão independente, mantendo um novo teste sem consulta durante ajustes.
171
+
172
+ ## Medição local de inferência
173
+
174
+ RTX A1000 6 GB, CUDA, revisão fixa dos mesmos encoders; três lotes de aquecimento
175
+ e 12 repetições por método/tamanho. Inclui tokenização, modelo e scores; exclui
176
+ JSON, regras e I/O. Inferências foram medidas sem inicialização concorrente de
177
+ outro modelo na GPU. Uma primeira medição com inicialização concorrente da demo
178
+ foi descartada e mantida somente em artifacts, fora do relatório publicado.
179
+
180
+ | Método | Lote 1 p50 / p95 (ms) | Lote 8 p50 / p95 (ms) | Textos/s no lote 8 |
181
+ |---|---:|---:|---:|
182
+ | Heurísticas | 0,08 / 0,08 | 1,48 / 1,81 | 5.156 |
183
+ | Regressão | 5,44 / 5,56 | 15,43 / 16,41 | 514 |
184
+ | BERT ajustado | 4,66 / 4,85 | 14,88 / 15,57 | 537 |
185
+
186
+ São medições pequenas sobre textos de desenvolvimento, não uma promessa de
187
+ latência para qualquer entrada. O tamanho de lote altera também a composição
188
+ dos textos, por isso não isola seu efeito. O JSON registra pico de memória CUDA
189
+ do processo com ambos os encoders residentes, não consumo isolado por método.
190
+ Memória CPU não foi medida. Evidência: [latência](../reports/v02/latency/results.json).
191
+
192
+ ## Verificações concluídas
193
+
194
+ 25 testes passaram com a stack ML e checkpoint real. Em ambiente separado sem
195
+ ML, 16 passaram e três testes dependentes de ML foram explicitamente pulados.
196
+ Wheel instalado em outra virtualenv: HTML, comparação JSON e inferência
197
+ heurística funcionaram sem dependências de ML. Lock conferido com `uv lock --check`.
198
+
199
+ Firefox headless validou inferência BERT, exemplos, erro de entrada vazia,
200
+ ordenação por métrica, troca de conjunto e ausência de overflow horizontal em
201
+ tela estreita. A imagem Docker 0.2.0 carregou o modelo real e inferiu sem rede,
202
+ com filesystem somente leitura e usuário 65532. A imagem anterior não foi
203
+ retagueada. A verificação compara os dados originais e relatórios finais com a
204
+ tag v0.1.0, além de conferir o hash dos pesos preservados.
205
+
206
+ Registro: [verification.json](../reports/v02/verification.json). Binários e logs
207
+ em `artifacts/` são evidências locais, não foram enviados a registry, GitHub ou
208
+ Hub. Screenshot incluída na documentação. O pacote de fontes usa allowlist e
209
+ exclui PDF, credenciais e `docs.md` privado.
software-release.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "tag": "v0.2.0",
3
+ "code_commit": "132ec004016703500d3c872eb7a7eaa41d5b3405",
4
+ "checkpoint_version": "0.1.0"
5
+ }