onnx-diagnostic 0.8.3__py3-none-any.whl → 0.8.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. onnx_diagnostic/__init__.py +1 -1
  2. onnx_diagnostic/_command_lines_parser.py +47 -10
  3. onnx_diagnostic/export/api.py +81 -50
  4. onnx_diagnostic/export/control_flow_research.py +10 -5
  5. onnx_diagnostic/export/onnx_plug.py +250 -61
  6. onnx_diagnostic/ext_test_case.py +99 -53
  7. onnx_diagnostic/helpers/dot_helper.py +37 -25
  8. onnx_diagnostic/helpers/helper.py +44 -38
  9. onnx_diagnostic/helpers/onnx_helper.py +441 -18
  10. onnx_diagnostic/helpers/ort_session.py +8 -8
  11. onnx_diagnostic/helpers/torch_helper.py +28 -2
  12. onnx_diagnostic/reference/ort_evaluator.py +6 -29
  13. onnx_diagnostic/torch_export_patches/patches/_patch_transformers_attention.py +1 -0
  14. onnx_diagnostic/torch_export_patches/patches/_patch_transformers_masking_utils.py +10 -1
  15. onnx_diagnostic/torch_export_patches/patches/_patch_transformers_qwen2_5.py +168 -113
  16. onnx_diagnostic/torch_models/code_sample.py +2 -1
  17. onnx_diagnostic/torch_models/hghub/model_inputs.py +34 -7
  18. onnx_diagnostic/torch_models/validate.py +14 -1
  19. onnx_diagnostic/torch_onnx/runtime_info.py +1 -24
  20. onnx_diagnostic/torch_onnx/sbs.py +11 -5
  21. onnx_diagnostic/torch_onnx/sbs_dataclasses.py +48 -4
  22. {onnx_diagnostic-0.8.3.dist-info → onnx_diagnostic-0.8.5.dist-info}/METADATA +1 -1
  23. {onnx_diagnostic-0.8.3.dist-info → onnx_diagnostic-0.8.5.dist-info}/RECORD +26 -26
  24. {onnx_diagnostic-0.8.3.dist-info → onnx_diagnostic-0.8.5.dist-info}/WHEEL +0 -0
  25. {onnx_diagnostic-0.8.3.dist-info → onnx_diagnostic-0.8.5.dist-info}/licenses/LICENSE.txt +0 -0
  26. {onnx_diagnostic-0.8.3.dist-info → onnx_diagnostic-0.8.5.dist-info}/top_level.txt +0 -0
@@ -349,13 +349,15 @@ def _prepare_validation(
349
349
  verbose,
350
350
  output_names,
351
351
  dump_folder,
352
+ submodule,
352
353
  ):
353
354
  main_validation_begin = time.perf_counter()
354
- model_id, subfolder, same_as_pretrained, use_pretrained = _preprocess_model_id(
355
+ model_id, subfolder, same_as_pretrained, use_pretrained, submodule = _preprocess_model_id(
355
356
  model_id,
356
357
  subfolder,
357
358
  same_as_pretrained=same_as_pretrained,
358
359
  use_pretrained=use_pretrained,
360
+ submodule=submodule,
359
361
  )
360
362
  time_preprocess_model_id = time.perf_counter() - main_validation_begin
361
363
  patch_kwargs = make_patch_kwargs(patch=patch, rewrite=rewrite)
@@ -364,6 +366,7 @@ def _prepare_validation(
364
366
  summary.update(
365
367
  dict(
366
368
  version_model_id=model_id,
369
+ version_submodule=submodule,
367
370
  version_do_run=str(do_run),
368
371
  version_dtype=str(dtype or ""),
369
372
  version_device=str(device or ""),
@@ -444,6 +447,7 @@ def _prepare_validation(
444
447
  dump_folder,
445
448
  folder_name,
446
449
  patch_kwargs,
450
+ submodule,
447
451
  )
448
452
 
449
453
 
@@ -460,6 +464,7 @@ def _get_untrained_model_with_inputs(
460
464
  inputs2,
461
465
  quiet,
462
466
  dump_folder,
467
+ submodule,
463
468
  ):
464
469
  iop = input_options or {}
465
470
  mop = model_options or {}
@@ -480,6 +485,7 @@ def _get_untrained_model_with_inputs(
480
485
  model_kwargs=mop,
481
486
  subfolder=sub,
482
487
  add_second_input=i2,
488
+ submodule=submodule,
483
489
  )
484
490
  )
485
491
  ),
@@ -842,6 +848,7 @@ def validate_model(
842
848
  ort_logs: bool = False,
843
849
  quiet_input_sets: Optional[Set[str]] = None,
844
850
  save_ep: Optional[str] = None,
851
+ submodule: Optional[str] = None,
845
852
  ) -> Tuple[Dict[str, Union[int, float, str]], Dict[str, Any]]:
846
853
  """
847
854
  Validates a model.
@@ -902,6 +909,7 @@ def validate_model(
902
909
  even if quiet is False
903
910
  :param save_ep: if not empty, this can be used to save the input sets and
904
911
  the exported program
912
+ :param submodule: to test not the model but a submodule of this model
905
913
  :return: two dictionaries, one with some metrics,
906
914
  another one with whatever the function produces
907
915
 
@@ -966,6 +974,7 @@ def validate_model(
966
974
  use_pretrained=use_pretrained,
967
975
  same_as_pretrained=same_as_pretrained,
968
976
  save_ep=save_ep,
977
+ submodule=submodule,
969
978
  )
970
979
  if dump_folder:
971
980
  with open(dump_stats, "w") as f:
@@ -1053,6 +1062,7 @@ def _validate_model_step1(
1053
1062
  use_pretrained,
1054
1063
  same_as_pretrained,
1055
1064
  save_ep,
1065
+ submodule,
1056
1066
  ):
1057
1067
  assert not do_same or do_run, (
1058
1068
  f"Discrepancies cannot be measured if the model is not run, "
@@ -1067,6 +1077,7 @@ def _validate_model_step1(
1067
1077
  dump_folder,
1068
1078
  folder_name,
1069
1079
  patch_kwargs,
1080
+ submodule,
1070
1081
  ) = _prepare_validation(
1071
1082
  model_id=model_id,
1072
1083
  subfolder=subfolder,
@@ -1093,6 +1104,7 @@ def _validate_model_step1(
1093
1104
  verbose=verbose,
1094
1105
  output_names=output_names,
1095
1106
  dump_folder=dump_folder,
1107
+ submodule=submodule,
1096
1108
  )
1097
1109
 
1098
1110
  data, iop, mop = _get_untrained_model_with_inputs(
@@ -1108,6 +1120,7 @@ def _validate_model_step1(
1108
1120
  inputs2=inputs2,
1109
1121
  quiet=quiet,
1110
1122
  dump_folder=dump_folder,
1123
+ submodule=submodule,
1111
1124
  )
1112
1125
 
1113
1126
  second_input_keys = [k for k in data if k.startswith("inputs") and k != "inputs"]
@@ -4,6 +4,7 @@ import onnx
4
4
  import torch
5
5
  from ..api import TensorLike
6
6
  from ..helpers import string_type
7
+ from ..helpers.onnx_helper import get_hidden_inputs
7
8
 
8
9
 
9
10
  class RuntimeValueKind(enum.IntEnum):
@@ -151,30 +152,6 @@ class RuntimeValue:
151
152
  return self.kind == RuntimeValueKind.INITIALIZER
152
153
 
153
154
 
154
- def get_hidden_inputs(graph: onnx.GraphProto) -> Set[str]:
155
- """
156
- Returns the hidden inputs (inputs coming from an upper context)
157
- used by a subgraph.
158
- """
159
- hidden = set()
160
- memo = (
161
- set(i.name for i in graph.initializer)
162
- | set(i.name for i in graph.sparse_initializer)
163
- | set(i.name for i in graph.input)
164
- )
165
- for node in graph.node:
166
- for i in node.input:
167
- if i not in memo:
168
- hidden.add(i)
169
- for att in node.attribute:
170
- if att.type == onnx.AttributeProto.GRAPH and att.g:
171
- hid = get_hidden_inputs(att.g)
172
- less = set(h for h in hid if h not in memo)
173
- hidden |= less
174
- memo |= set(node.output)
175
- return hidden
176
-
177
-
178
155
  def set_is_shape(
179
156
  node: onnx.NodeProto, values: Dict[str, RuntimeValue], drop: Optional[Set[str]] = None
180
157
  ) -> List[str]:
@@ -7,7 +7,12 @@ import numpy as np
7
7
  import torch
8
8
  from ..helpers import string_type, string_diff, max_diff, flatten_object
9
9
  from ..helpers.onnx_helper import pretty_onnx
10
- from ..helpers.torch_helper import to_numpy, from_numpy, to_tensor, torch_dtype_to_onnx_dtype
10
+ from ..helpers.torch_helper import (
11
+ to_numpy,
12
+ from_numpy,
13
+ to_tensor,
14
+ torch_dtype_to_onnx_dtype,
15
+ )
11
16
  from ..helpers.torch_fx_graph_helper import prepare_args_kwargs, run_fx_node
12
17
  from ..reference.ort_evaluator import OnnxList, OnnxruntimeEvaluator
13
18
  from .sbs_dataclasses import (
@@ -381,7 +386,8 @@ def _preparation_with_fx_graph(
381
386
  assert len(torch_input_names) < len(onx.graph.input), (
382
387
  f"torch_input_names={torch_input_names!r}, "
383
388
  f"onnx_input_names={[n.name for n in onx.graph.input]}, "
384
- f"node.name={node.name!r} cannot be an input"
389
+ f"node.name={node.name!r} cannot be an input, "
390
+ f"placeholders_to_state_dict={sorted(placeholders_to_state_dict)}"
385
391
  )
386
392
  assert node.name not in skip_mapping_torch_onnx, (
387
393
  f"{node.name!r} is ambiguous, cannot be mapped due to "
@@ -772,9 +778,9 @@ def run_aligned(
772
778
  # preparation with ep.graph.nodes
773
779
  ep_state_dict = {**ep.state_dict, **dict(ep.named_buffers(), **ep.tensor_constants)}
774
780
  placeholders_to_state_dict = {
775
- **{f"p_{name.replace('.', '_')}": name for name in ep.state_dict},
776
- **{f"b_{name.replace('.', '_')}": name for name, _ in ep.named_buffers()},
777
- **{f"c_{name.replace('.', '_')}": name for name in ep.tensor_constants},
781
+ **{f"p_{name.replace('.', '_').lower()}": name for name in ep.state_dict},
782
+ **{f"b_{name.replace('.', '_').lower()}": name for name, _ in ep.named_buffers()},
783
+ **{f"c_{name.replace('.', '_').lower()}": name for name in ep.tensor_constants},
778
784
  }
779
785
  skip_mapping_torch_onnx = _duplicated_values(placeholders_to_state_dict)
780
786
  placeholders = {}
@@ -11,7 +11,12 @@ except ImportError:
11
11
  import onnx
12
12
  import numpy as np
13
13
  import torch
14
- from ..helpers.onnx_helper import extract_subset_of_nodes, make_submodel, from_array_extended
14
+ from ..helpers.onnx_helper import (
15
+ extract_subset_of_nodes,
16
+ make_submodel,
17
+ from_array_extended,
18
+ select_model_inputs_outputs,
19
+ )
15
20
  from ..helpers.torch_helper import torch_dtype_to_onnx_dtype
16
21
 
17
22
 
@@ -61,12 +66,16 @@ class ReplayConfiguration:
61
66
  :param selected_names: list of results names to dump
62
67
  :param selected_op_types: list of onnx operators to dump
63
68
  :param threshold: only keep those whose discrepancies is greater than that threshold
69
+ :param dump_prefix_model: after dumping the smallest model able to replicate
70
+ one given output, if also dumps the models producing the inputs
71
+ and the outputs truncated from the big one
64
72
  """
65
73
 
66
74
  dump_folder: str
67
75
  selected_names: Optional[Set[str]] = None
68
76
  selected_op_types: Optional[Set[str]] = None
69
77
  threshold: float = 0.1
78
+ dump_prefix_model: bool = False
70
79
 
71
80
  def __post_init__(self):
72
81
  assert self.dump_folder, "dump_folder is empty and this is not allowed for the replay"
@@ -243,7 +252,17 @@ class ReplayConfiguration:
243
252
  :return: the folder created to dump everything
244
253
  """
245
254
  if verbose:
246
- print(f"[ReplayConfiguration.dump] extract subset of node for {name!r}")
255
+ print(
256
+ f"[ReplayConfiguration.dump] extract subset of nodes for "
257
+ f"{name!r} (onnx_id_node={onnx_id_node})"
258
+ )
259
+ if verbose >= 10:
260
+ print(f"[ReplayConfiguration.dump] onnx_results={sorted(onnx_results)}")
261
+ print(f"[ReplayConfiguration.dump] torch_results={sorted(torch_results)}")
262
+ print(
263
+ f"[ReplayConfiguration.dump] onnx_name_to_ep_name="
264
+ f"{sorted(onnx_name_to_ep_name)}"
265
+ )
247
266
  nodes = extract_subset_of_nodes(
248
267
  model=model,
249
268
  name=name,
@@ -253,7 +272,8 @@ class ReplayConfiguration:
253
272
  if not nodes:
254
273
  if verbose:
255
274
  print(
256
- f"[ReplayConfiguration.dump] could not extract subset of node for {name!r}"
275
+ f"[ReplayConfiguration.dump] could not extract subset of "
276
+ f"nodes for {name!r}"
257
277
  )
258
278
  return None
259
279
  if verbose:
@@ -286,7 +306,7 @@ class ReplayConfiguration:
286
306
  del submodel.graph.input[:]
287
307
  submodel.graph.input.extend(new_inputs)
288
308
  if verbose:
289
- print(f"[ReplayConfiguration.dump] removed input {removed_inputs}")
309
+ print(f"[ReplayConfiguration.dump] removed inputs {removed_inputs}")
290
310
  print(f"[ReplayConfiguration.dump] final model inputs {input_names}")
291
311
 
292
312
  onnx.save(submodel, os.path.join(folder, "model.onnx"))
@@ -307,6 +327,30 @@ class ReplayConfiguration:
307
327
  )
308
328
  with open(os.path.join(folder, "replay.py"), "w") as f:
309
329
  f.write(self.get_replay_code())
330
+
331
+ if self.dump_prefix_model:
332
+ main_inputs = {
333
+ i.name: onnx_inputs.get(i.name, torch_inputs.get(i.name, None))
334
+ for i in model.graph.input
335
+ }
336
+ # only saving onnx inputs, torch should be the same
337
+ torch.save(main_inputs, os.path.join(folder, "onnx_main_inputs.pt"))
338
+
339
+ model_inputs_file = os.path.join(folder, "model.inputs.onnx")
340
+ exclude = {i.name for i in model.graph.input} | {
341
+ i.name for i in model.graph.initializer
342
+ }
343
+ model_inputs = select_model_inputs_outputs(
344
+ model, outputs=[i.name for i in submodel.graph.input if i.name not in exclude]
345
+ )
346
+ onnx.save(model_inputs, model_inputs_file)
347
+
348
+ model_outputs_file = os.path.join(folder, "model.outputs.onnx")
349
+ model_outputs = select_model_inputs_outputs(
350
+ model, outputs=[i.name for i in submodel.graph.output]
351
+ )
352
+ onnx.save(model_outputs, model_outputs_file)
353
+
310
354
  if verbose:
311
355
  print(f"[ReplayConfiguration.dump] done {folder!r}")
312
356
  return folder
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onnx-diagnostic
3
- Version: 0.8.3
3
+ Version: 0.8.5
4
4
  Summary: Tools to help converting pytorch models into ONNX.
5
5
  Home-page: https://github.com/sdpython/onnx-diagnostic
6
6
  Author: Xavier Dupré
@@ -1,16 +1,16 @@
1
- onnx_diagnostic/__init__.py,sha256=q-JGXWdB5HIHrAPUbiGuZ3aflvcrMyhNffVzOd5xO-8,173
1
+ onnx_diagnostic/__init__.py,sha256=dCiBK_S7EOo_rAsmsgv-laLhtKzE2uny0XIR5aO4eDk,173
2
2
  onnx_diagnostic/__main__.py,sha256=YmyV_Aq_ianDlHyKLHMa6h8YK3ZmFPpLVHLKjM91aCk,79
3
- onnx_diagnostic/_command_lines_parser.py,sha256=KFKyH254F7FdcKKc2QrtAjpGLpLwnduflPvqm3FM0UI,51441
3
+ onnx_diagnostic/_command_lines_parser.py,sha256=ZFJdQP1Ee8D5a_xUch-0CHaYbbILztejTjVdyc9KrMw,52667
4
4
  onnx_diagnostic/api.py,sha256=BhCl_yCd78N7TlVtPOHjeYv1QBEy39TjZ647rcHqLh0,345
5
5
  onnx_diagnostic/doc.py,sha256=t3RELgfooYnVMAi0JSpggWkQEgUsREz8NmRvn0TnLI8,2829
6
- onnx_diagnostic/ext_test_case.py,sha256=bA4oK1mnccbt5Ien24I9nhiDgay0IjCxOeH1lPU5E-g,47798
6
+ onnx_diagnostic/ext_test_case.py,sha256=rVZWqFEfnvwnsD3wF4jeDblh5uj5ckZ8C6DZQ0RGb_E,49599
7
7
  onnx_diagnostic/export/__init__.py,sha256=yEIoWiOeTwBsDhyYt2fTKuhtA0Ya1J9u9ZzMTOTWaWs,101
8
- onnx_diagnostic/export/api.py,sha256=xivxtvjFAIbKquAsGLjVp9J_CZl6KWeO8IT4wii9FOI,9649
8
+ onnx_diagnostic/export/api.py,sha256=BX4c99gMlRYsBWk3P15FMRogArxjP4dXYXP5gILjgIk,10626
9
9
  onnx_diagnostic/export/control_flow.py,sha256=zU5n_QYhNcBllyMsl1_i6ohZt2CshqG2MokJghrvA60,7751
10
10
  onnx_diagnostic/export/control_flow_onnx.py,sha256=sODOD4v7EJj6LWhrfcdCW68r9nYKsRM4SRnqDw4TrSI,18049
11
- onnx_diagnostic/export/control_flow_research.py,sha256=UMAlriHKBLoYJzdq3kCmsUIKOlYQE0OjFbJ8zkuvuwI,5220
11
+ onnx_diagnostic/export/control_flow_research.py,sha256=RuYz9_eM42Bk6TKSiPV6dS68LIMZu-6WBCFCKoSvjrk,5422
12
12
  onnx_diagnostic/export/dynamic_shapes.py,sha256=M2hlpHSTbkzZwGKAbrpQXng5HQrwjF5Z6wGGxEgnp74,42061
13
- onnx_diagnostic/export/onnx_plug.py,sha256=vwUyOtF5aihAO-98QSmY_sD9w0hNMnGKaSxG0cF0ZCo,14660
13
+ onnx_diagnostic/export/onnx_plug.py,sha256=U13fL0BjnhMzcDGxaAOqM4TQte5Z4zKDg4ESS0iktjM,22704
14
14
  onnx_diagnostic/export/shape_helper.py,sha256=m628y0oRCQbeZkeh8JDHIfWMsSjoJoeX-IPiPGDHT-w,11273
15
15
  onnx_diagnostic/export/validate.py,sha256=_PGUql2DJhIgGKo0WjTGUc5AgsZUx8fEs00MePy-w98,6043
16
16
  onnx_diagnostic/helpers/__init__.py,sha256=GJ2GT7cgnlIveVUwMZhuvUwidbTJaKv8CsSIOpZDsJg,83
@@ -20,22 +20,22 @@ onnx_diagnostic/helpers/bench_run.py,sha256=CGA6VMJZMH2gDhVueT9ypNm4PMcjGrrGFYp0
20
20
  onnx_diagnostic/helpers/cache_helper.py,sha256=OLghsSUuZ8cWGkua8eH75KBF-mbVqejnNUYfFo5lRf0,28498
21
21
  onnx_diagnostic/helpers/config_helper.py,sha256=cWRETgFhZ7tayIZPnMqF8BF5AvTU64G2BMqyzgO7lzs,5670
22
22
  onnx_diagnostic/helpers/doc_helper.py,sha256=pl5MZd3_FaE8BqQnqoBuSBxoNCFcd2OJd3eITUSku5c,5897
23
- onnx_diagnostic/helpers/dot_helper.py,sha256=Ii6jg-1YUJPI6cPhhTeD8rc5PJR0GIiGa2PLOdWJyA8,7798
23
+ onnx_diagnostic/helpers/dot_helper.py,sha256=hwgTJsbsUv0qq7euyPDnc1NsBZDGOwv32JXSZxIHJkE,8118
24
24
  onnx_diagnostic/helpers/fake_tensor_helper.py,sha256=J7wnK3WTuVKnYiMzLVTAPkdJr3hQfIfMC9ZlOu7oGmI,11024
25
25
  onnx_diagnostic/helpers/graph_helper.py,sha256=hevQT5a7_QuriVPQcbT5qe18n99Doyl5h3-qshx1-uk,14093
26
- onnx_diagnostic/helpers/helper.py,sha256=aCPkAU6iNmHA3Glt_uehEiBOIIZtXDgq9hjhdG5Ol3Y,65568
26
+ onnx_diagnostic/helpers/helper.py,sha256=x8EYQmgrz_G5QS_IsbeFIoDcN_sUs-CslJMHseBj1Fw,65482
27
27
  onnx_diagnostic/helpers/log_helper.py,sha256=0lJiTF87lliI-LmgpUH_V2N8NuzJ0LryH0mSYpkRaL8,93272
28
28
  onnx_diagnostic/helpers/memory_peak.py,sha256=M3m4_thWFIwP5HytbJYEqaijXIv5v5BW_vlcJowIYI4,6434
29
29
  onnx_diagnostic/helpers/mini_onnx_builder.py,sha256=jR2lkRZEQ0N30H0FqeBwaxJd_w_6kyxFagrnulqFjhE,23883
30
30
  onnx_diagnostic/helpers/model_builder_helper.py,sha256=qKIq4Naqq03gk6NfqXLQjSDiKL5FFNc1AEyVX0R8GmA,18540
31
- onnx_diagnostic/helpers/onnx_helper.py,sha256=BCf1djXB--eY_FJv9ldD85bQ--OMI_uPDJN6SumdbdM,43057
32
- onnx_diagnostic/helpers/ort_session.py,sha256=TFCDgcG3Nvj_1S0xTIUqDw0WTSeav0NMJFYCfT_W-dw,30505
31
+ onnx_diagnostic/helpers/onnx_helper.py,sha256=MshvqMSTNUUZIpkkRYGDymdW2t2KtB2BgYtOPHIDwvQ,57508
32
+ onnx_diagnostic/helpers/ort_session.py,sha256=XvRazj7yyepaQwYHpPkKKi9v8u_h9A4ZiFH6IxjqPKs,30502
33
33
  onnx_diagnostic/helpers/rt_helper.py,sha256=OOxHSCKZup2u7zTvVJxPkRHb4jQZ03KpkiDGrfwibMM,38135
34
34
  onnx_diagnostic/helpers/torch_fx_graph_helper.py,sha256=7xFe4svdbr4gV3OTNcx8eJejjDyHAv4hD_RNNKSxL0c,6571
35
- onnx_diagnostic/helpers/torch_helper.py,sha256=gtkk31BptY5JvNOvbx_1Bfyuns_mQu9gEO0upoUTdy4,38294
35
+ onnx_diagnostic/helpers/torch_helper.py,sha256=ADV81WWCskQ-jmzn1GI_LU8GqBtufCHS3oeLG-3Uw0E,38954
36
36
  onnx_diagnostic/reference/__init__.py,sha256=rLZsxOlnb7-81F2CzepGnZLejaROg4JvgFaGR9FwVQA,208
37
37
  onnx_diagnostic/reference/evaluator.py,sha256=RzNzjFDeMe-4X51Tb22N6aagazY5ktNq-mRmPcfY5EU,8848
38
- onnx_diagnostic/reference/ort_evaluator.py,sha256=RsTboIAL1QqudV6X3P3VxBPxLtJJF8TsxNdyy0L5epE,34773
38
+ onnx_diagnostic/reference/ort_evaluator.py,sha256=q7Dn0yC3LPadlfRnhiRzVn32k9ma_IivdYyhyecgNgc,33930
39
39
  onnx_diagnostic/reference/quantized_tensor.py,sha256=5u67uS2uGacdMD5VYCbpojNjiesDlV_kO0fAJ0vUWGE,1098
40
40
  onnx_diagnostic/reference/report_results_comparison.py,sha256=OsyQN8EHZZoj97u74RQP-7WFpebPOso5GEDpdkLWu6M,3645
41
41
  onnx_diagnostic/reference/torch_evaluator.py,sha256=Tx1teWvfGEX5RmkDnI83UiOlo5eBOC72vPhgTWdFUF0,27689
@@ -110,16 +110,16 @@ onnx_diagnostic/torch_export_patches/patch_module_helper.py,sha256=2U0AdyZuU0W54
110
110
  onnx_diagnostic/torch_export_patches/eval/__init__.py,sha256=YQoOGt9XQLWqnJ15NnT7ri_jDevfvpuQwEJo38E-VRU,25056
111
111
  onnx_diagnostic/torch_export_patches/eval/model_cases.py,sha256=9h4yo9vKiK-E6zaXyAsxXGM-lCjd88ONybA1F3YcTI4,27988
112
112
  onnx_diagnostic/torch_export_patches/patches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- onnx_diagnostic/torch_export_patches/patches/_patch_transformers_attention.py,sha256=kI0qgAGFxkyvx8wikQtPcik_zpPpTAQypQ1cMQsjetw,7730
113
+ onnx_diagnostic/torch_export_patches/patches/_patch_transformers_attention.py,sha256=5JOyT95BNwHIuxaSFJDSEGsoI-6IwbgNnFwg2q3UM-Q,7731
114
114
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_cache_utils.py,sha256=UdxLii-od2OpQmUJbmXmZinXeLBItVFrr75BVT1Y0zw,2041
115
115
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_causal_mask.py,sha256=h37DPVxsq8iAWECnTlKW5tVqSBgPBF52xr3uxsjdi2k,3113
116
116
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_dynamic_cache.py,sha256=lEdYqX60pyi_w6PrbCTk7NC96nB8FFcFRf_JMjXSAZE,7961
117
117
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_gemma3.py,sha256=nVgYQk0xXpHiictN1wOHVMN2lTH9b0vfIJ4ie-uKopg,1999
118
118
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_generation_mixin.py,sha256=VIZsVHgR8NmAcBQalPl5I6ZzNgcBxjGb6ars31m9gRg,21936
119
119
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_idefics.py,sha256=kTjuTRsfkGGGhspJnMxAMQSchZgGC_IruJzpHh_FmI8,6348
120
- onnx_diagnostic/torch_export_patches/patches/_patch_transformers_masking_utils.py,sha256=R4YwnN9ktxjjImiJtLRxiKtKLr9LuFlwkPXkTJ6BTIo,6895
120
+ onnx_diagnostic/torch_export_patches/patches/_patch_transformers_masking_utils.py,sha256=HE3fovyvMiYe9EPz1UjdD9AWopX3H188SMwPb8w5mzM,7111
121
121
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_qwen2.py,sha256=OxYdlLrwtd_KGHt3E17poduxvWFg-CfGS57-yN1i6gI,3827
122
- onnx_diagnostic/torch_export_patches/patches/_patch_transformers_qwen2_5.py,sha256=-THcoMvJ1MhLZFQP6c2IEGqpkY7sTg_xYyAwCE7_91o,29511
122
+ onnx_diagnostic/torch_export_patches/patches/_patch_transformers_qwen2_5.py,sha256=GS7IDHyRaLAsbZE5k7KN-ZT5-ezbmEUzXPJ_xG4SulA,31601
123
123
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_qwen3.py,sha256=cND9Iqo1aKdlX-BXGr9Qlq_Y4EW1L5VWSwZfqYTVazU,4888
124
124
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_rotary_embedding.py,sha256=4bJ_z2gizZQla_fcCVt0dmuhzO9Vu-D7CCMWdxMlrKM,16893
125
125
  onnx_diagnostic/torch_export_patches/patches/_patch_transformers_sam_mask_decoder.py,sha256=-6TuBm3sLAFEGuW3vRfOTtE5uP6aINFfu7xMnl27Dws,5703
@@ -130,24 +130,24 @@ onnx_diagnostic/torch_export_patches/serialization/__init__.py,sha256=BHLdRPtNAt
130
130
  onnx_diagnostic/torch_export_patches/serialization/diffusers_impl.py,sha256=drq3EH_yjcSuIWYsVeUWm8Cx6YCZFU6bP_1PLtPfY5I,945
131
131
  onnx_diagnostic/torch_export_patches/serialization/transformers_impl.py,sha256=sIHFvUQoMK8ytXQYB-k7OL62z8A3f5uDaq-S5R5uN-M,10034
132
132
  onnx_diagnostic/torch_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
- onnx_diagnostic/torch_models/code_sample.py,sha256=PWf7piGx7Eiv7BOTpL2bLUtWwaVcw7SMBvkSpEzZDPs,12883
133
+ onnx_diagnostic/torch_models/code_sample.py,sha256=rCDZY64pkn6uIbJJSBuC5TlU_-uleI73I9GlbXtJd54,12923
134
134
  onnx_diagnostic/torch_models/llms.py,sha256=soyg4yC87ptGoeulJhKqw5opGmuLvH1pn_ZDXZ4Jr8E,90
135
- onnx_diagnostic/torch_models/validate.py,sha256=yhcCjZJ7pgjeHQBV-rCbQJ-ot_tngEwSYoonyNhEH5g,94426
135
+ onnx_diagnostic/torch_models/validate.py,sha256=fnbTl5v1n5nM2MpmCgCMaWa6c7DGpb5mZYSuHXXCJEs,94829
136
136
  onnx_diagnostic/torch_models/hghub/__init__.py,sha256=vi1Q7YHdddj1soiBN42MSvJdFqe2_KUoWafHISjwOu8,58
137
137
  onnx_diagnostic/torch_models/hghub/hub_api.py,sha256=rFbiPNLET-KdBpnv-p0nKgwHX6d7C_Z0s9zZ86_92kQ,14307
138
138
  onnx_diagnostic/torch_models/hghub/hub_data.py,sha256=8V_pAgACPLPsLRYUododg7MSL6str-T3tBEGY4OaeYQ,8724
139
139
  onnx_diagnostic/torch_models/hghub/hub_data_cached_configs.py,sha256=GimzkI8W3guATkDx7RQ-w2xNGVaFDVegfTnnmNxf4iE,292068
140
- onnx_diagnostic/torch_models/hghub/model_inputs.py,sha256=bVjf7Tm8tTi0dbqQZbcbNXDWuS5g6YBfR3xyeQ-NAWM,16285
140
+ onnx_diagnostic/torch_models/hghub/model_inputs.py,sha256=tCGqigRyY1omxm2rczRUvCTsweZGbF1MccWI3MmCH20,17423
141
141
  onnx_diagnostic/torch_models/hghub/model_specific.py,sha256=j50Nu7wddJMoqmD4QzMbNdFDUUgUmSBKRzPDH55TlUQ,2498
142
142
  onnx_diagnostic/torch_models/untrained/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
143
  onnx_diagnostic/torch_models/untrained/llm_phi2.py,sha256=y_akbdApi136qHcEQgykwIAYVw0Yfi0lbjb3DNuafaU,3948
144
144
  onnx_diagnostic/torch_models/untrained/llm_tiny_llm.py,sha256=QXw_Bs2SzfeiQMf-tmtVl83SmVOL4-Um7Qy-f0E48QI,2507
145
145
  onnx_diagnostic/torch_onnx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- onnx_diagnostic/torch_onnx/runtime_info.py,sha256=1g9F_Jf9AAgYQU4stbsrFXwQl-30mWlQrFbQ7val8Ps,9268
147
- onnx_diagnostic/torch_onnx/sbs.py,sha256=Q2nbj1Ovasf_HDFc5_tNVH8taJhzhgUXPY6N1uajayk,40615
148
- onnx_diagnostic/torch_onnx/sbs_dataclasses.py,sha256=ctJitdW09gLhg900yjT-Zqbx8SU2n4ZdgyVZ47dmlvQ,18475
149
- onnx_diagnostic-0.8.3.dist-info/licenses/LICENSE.txt,sha256=Vv6TXglX6Rc0d-f8aREhayhT-6PMQXEyOmI2NKlUCMc,1045
150
- onnx_diagnostic-0.8.3.dist-info/METADATA,sha256=MsLK613cwgCcvJ4JkLvP2ysF48KEgTmzqm83IBUO5JM,6734
151
- onnx_diagnostic-0.8.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
152
- onnx_diagnostic-0.8.3.dist-info/top_level.txt,sha256=KwNkXewmcobM3ZT1DJLVWH6ebJzA5qKg7cWqKfpGNT4,16
153
- onnx_diagnostic-0.8.3.dist-info/RECORD,,
146
+ onnx_diagnostic/torch_onnx/runtime_info.py,sha256=u1bD6VXqzBCRmqmbzQtDswaPs1PH_ygr1r-CrcfXpNU,8562
147
+ onnx_diagnostic/torch_onnx/sbs.py,sha256=8okBEIupMgw7TtKc80YFimMtwnY3GchdY05FsA9ooa0,40749
148
+ onnx_diagnostic/torch_onnx/sbs_dataclasses.py,sha256=UctdBjzoPTQG1LS0tZ8A6E9hpoq5HWUYaJLPOPJc9FI,20299
149
+ onnx_diagnostic-0.8.5.dist-info/licenses/LICENSE.txt,sha256=Vv6TXglX6Rc0d-f8aREhayhT-6PMQXEyOmI2NKlUCMc,1045
150
+ onnx_diagnostic-0.8.5.dist-info/METADATA,sha256=A54IonPIcnualwiRJhvjRMfhF3p3jdXhEH1vTtZBgyE,6734
151
+ onnx_diagnostic-0.8.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
152
+ onnx_diagnostic-0.8.5.dist-info/top_level.txt,sha256=KwNkXewmcobM3ZT1DJLVWH6ebJzA5qKg7cWqKfpGNT4,16
153
+ onnx_diagnostic-0.8.5.dist-info/RECORD,,