ai-edge-torch-nightly 0.7.0.dev20250929__py3-none-any.whl → 0.8.0.dev20251206__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.

Potentially problematic release.


This version of ai-edge-torch-nightly might be problematic. Click here for more details.

Files changed (57) hide show
  1. ai_edge_torch/_convert/conversion.py +2 -1
  2. ai_edge_torch/fx_infra/_safe_run_decompositions.py +36 -1
  3. ai_edge_torch/generative/examples/amd_llama_135m/convert_to_tflite.py +1 -20
  4. ai_edge_torch/generative/examples/deepseek/convert_to_tflite.py +1 -20
  5. ai_edge_torch/generative/examples/gemma/convert_gemma1_to_tflite.py +1 -20
  6. ai_edge_torch/generative/examples/gemma/convert_gemma2_to_tflite.py +1 -20
  7. ai_edge_torch/generative/examples/gemma3/convert_gemma3_to_tflite.py +3 -27
  8. ai_edge_torch/generative/examples/hammer/convert_to_tflite.py +1 -20
  9. ai_edge_torch/generative/examples/llama/convert_to_tflite.py +1 -20
  10. ai_edge_torch/generative/examples/openelm/convert_to_tflite.py +1 -20
  11. ai_edge_torch/generative/examples/phi/convert_phi3_to_tflite.py +1 -20
  12. ai_edge_torch/generative/examples/phi/convert_phi4_to_tflite.py +1 -20
  13. ai_edge_torch/generative/examples/phi/convert_to_tflite.py +1 -20
  14. ai_edge_torch/generative/examples/qwen/convert_to_tflite.py +1 -20
  15. ai_edge_torch/generative/examples/qwen/convert_v3_to_tflite.py +1 -20
  16. ai_edge_torch/generative/examples/smollm/convert_to_tflite.py +1 -30
  17. ai_edge_torch/generative/examples/smollm/convert_v2_to_tflite.py +1 -30
  18. ai_edge_torch/generative/examples/stable_diffusion/convert_to_tflite.py +1 -3
  19. ai_edge_torch/generative/examples/stable_diffusion/samplers/k_lms.py +1 -1
  20. ai_edge_torch/generative/examples/tiny_llama/convert_to_tflite.py +1 -20
  21. ai_edge_torch/generative/layers/attention.py +25 -2
  22. ai_edge_torch/generative/layers/attention_test.py +13 -1
  23. ai_edge_torch/generative/layers/attention_utils.py +62 -1
  24. ai_edge_torch/generative/layers/attention_utils_test.py +20 -0
  25. ai_edge_torch/generative/layers/builder.py +4 -2
  26. ai_edge_torch/generative/layers/model_config.py +5 -0
  27. ai_edge_torch/generative/layers/normalization.py +8 -2
  28. ai_edge_torch/generative/layers/scaled_dot_product_attention.py +35 -5
  29. ai_edge_torch/generative/layers/sdpa_with_kv_update.py +8 -3
  30. ai_edge_torch/generative/quantize/example.py +1 -1
  31. ai_edge_torch/generative/quantize/quant_attrs.py +8 -1
  32. ai_edge_torch/generative/quantize/quant_recipe.py +0 -13
  33. ai_edge_torch/generative/quantize/quant_recipe_utils.py +12 -19
  34. ai_edge_torch/generative/quantize/quant_recipes.py +16 -21
  35. ai_edge_torch/generative/quantize/supported_schemes.py +4 -1
  36. ai_edge_torch/generative/test/test_kv_cache.py +18 -6
  37. ai_edge_torch/generative/test/test_quantize.py +17 -26
  38. ai_edge_torch/generative/utilities/converter.py +183 -28
  39. ai_edge_torch/generative/utilities/export_config.py +2 -0
  40. ai_edge_torch/generative/utilities/litertlm_builder.py +61 -8
  41. ai_edge_torch/generative/utilities/loader.py +2 -1
  42. ai_edge_torch/lowertools/translate_recipe.py +8 -3
  43. ai_edge_torch/odml_torch/experimental/__init__.py +14 -0
  44. ai_edge_torch/odml_torch/experimental/torch_tfl/__init__.py +20 -0
  45. ai_edge_torch/odml_torch/experimental/torch_tfl/_decomps.py +438 -0
  46. ai_edge_torch/odml_torch/experimental/torch_tfl/_lowerings.py +728 -0
  47. ai_edge_torch/odml_torch/experimental/torch_tfl/_ops.py +371 -0
  48. ai_edge_torch/odml_torch/experimental/torch_tfl/torch_library_utils.py +37 -0
  49. ai_edge_torch/odml_torch/export.py +24 -7
  50. ai_edge_torch/odml_torch/lowerings/_basic.py +155 -0
  51. ai_edge_torch/odml_torch/lowerings/_jax_lowerings.py +255 -5
  52. ai_edge_torch/version.py +1 -1
  53. {ai_edge_torch_nightly-0.7.0.dev20250929.dist-info → ai_edge_torch_nightly-0.8.0.dev20251206.dist-info}/METADATA +15 -3
  54. {ai_edge_torch_nightly-0.7.0.dev20250929.dist-info → ai_edge_torch_nightly-0.8.0.dev20251206.dist-info}/RECORD +57 -51
  55. {ai_edge_torch_nightly-0.7.0.dev20250929.dist-info → ai_edge_torch_nightly-0.8.0.dev20251206.dist-info}/WHEEL +1 -1
  56. {ai_edge_torch_nightly-0.7.0.dev20250929.dist-info → ai_edge_torch_nightly-0.8.0.dev20251206.dist-info/licenses}/LICENSE +0 -0
  57. {ai_edge_torch_nightly-0.7.0.dev20250929.dist-info → ai_edge_torch_nightly-0.8.0.dev20251206.dist-info}/top_level.txt +0 -0
@@ -21,6 +21,7 @@ from ai_edge_torch.odml_torch.lowerings import registry
21
21
  import jax
22
22
  import jax.numpy as jnp
23
23
  from jax._src.lib.mlir import ir
24
+ import numpy as np
24
25
  import torch
25
26
  import torch_xla2.ops.jaten # Import to load torch_xla2 ops
26
27
  import torch_xla2.ops.ops_registry # Import to load torch_xla2 ops
@@ -71,8 +72,6 @@ lower_by_torch_xla2(torch.ops.aten._cdist_forward)
71
72
  lower_by_torch_xla2(torch.ops.aten._local_scalar_dense)
72
73
  lower_by_torch_xla2(torch.ops.aten._local_scalar_dense)
73
74
  lower_by_torch_xla2(torch.ops.aten._log_softmax)
74
- lower_by_torch_xla2(torch.ops.aten._native_batch_norm_legit)
75
- lower_by_torch_xla2(torch.ops.aten._native_batch_norm_legit_no_training)
76
75
  lower_by_torch_xla2(torch.ops.aten._pdist_forward)
77
76
  lower_by_torch_xla2(torch.ops.aten._softmax)
78
77
  lower_by_torch_xla2(torch.ops.aten._unsafe_index)
@@ -158,10 +157,8 @@ lower_by_torch_xla2(torch.ops.aten.logical_not)
158
157
  lower_by_torch_xla2(torch.ops.aten.logical_or)
159
158
  lower_by_torch_xla2(torch.ops.aten.logical_xor)
160
159
  lower_by_torch_xla2(torch.ops.aten.max)
161
- lower_by_torch_xla2(torch.ops.aten.max_pool2d_with_indices)
162
160
  lower_by_torch_xla2(torch.ops.aten.max_pool2d_with_indices_backward)
163
161
  lower_by_torch_xla2(torch.ops.aten.max_pool2d_with_indices_backward)
164
- lower_by_torch_xla2(torch.ops.aten.max_pool3d_with_indices)
165
162
  lower_by_torch_xla2(torch.ops.aten.maximum)
166
163
  lower_by_torch_xla2(torch.ops.aten.mean)
167
164
  lower_by_torch_xla2(torch.ops.aten.min)
@@ -175,7 +172,6 @@ lower_by_torch_xla2(torch.ops.aten.nonzero)
175
172
  lower_by_torch_xla2(torch.ops.aten.outer)
176
173
  lower_by_torch_xla2(torch.ops.aten.permute)
177
174
  lower_by_torch_xla2(torch.ops.aten.permute_copy)
178
- lower_by_torch_xla2(torch.ops.aten.pixel_shuffle)
179
175
  lower_by_torch_xla2(torch.ops.aten.pow)
180
176
  lower_by_torch_xla2(torch.ops.aten.prod)
181
177
  lower_by_torch_xla2(torch.ops.aten.reciprocal)
@@ -240,6 +236,249 @@ lower_by_torch_xla2(torch.ops.prims.broadcast_in_dim)
240
236
  lower_by_torch_xla2(torch.ops.prims.var)
241
237
 
242
238
 
239
+ def _ceil_mode_padding(
240
+ padding: list[int],
241
+ input_shape: list[int],
242
+ kernel_size: list[int],
243
+ stride: list[int],
244
+ dilation: list[int],
245
+ ceil_mode: bool,
246
+ ):
247
+ """Creates low and high padding specification for ceil mode.
248
+
249
+ This is for the given padding (which is symmetric). Additional high padding
250
+ could be required when ceil mode is set.
251
+ """
252
+ ceil_mode_padding = []
253
+ for i in range(len(padding)):
254
+ left_padding = padding[i]
255
+ right_padding = left_padding
256
+
257
+ input_size = input_shape[2 + i]
258
+ output_size_rem = (
259
+ input_size + 2 * left_padding - (kernel_size[i] - 1) * dilation[i] - 1
260
+ ) % stride[i]
261
+ if ceil_mode and output_size_rem != 0:
262
+ extra_padding = stride[i] - output_size_rem
263
+ new_output_size = (
264
+ input_size
265
+ + left_padding
266
+ + right_padding
267
+ + extra_padding
268
+ - (kernel_size[i] - 1) * dilation[i]
269
+ - 1
270
+ + stride[i]
271
+ - 1
272
+ ) // stride[i] + 1
273
+ # Ensure that the last pooling starts inside the image.
274
+ size_to_compare = input_size + left_padding
275
+
276
+ if (new_output_size - 1) * stride[i] < size_to_compare:
277
+ right_padding += extra_padding
278
+
279
+ ceil_mode_padding.append((left_padding, right_padding))
280
+ return ceil_mode_padding
281
+
282
+
283
+ def max_pool(
284
+ inputs,
285
+ kernel_size,
286
+ strides=None,
287
+ padding=0,
288
+ dilation=1,
289
+ ceil_mode=False,
290
+ with_index=False,
291
+ ):
292
+ num_spatial_dims = len(kernel_size)
293
+ num_batch_dims = inputs.ndim - num_spatial_dims - 1
294
+ kernel_size_tup = tuple(kernel_size)
295
+ # Default stride is kernel_size
296
+ strides_tup = tuple(strides) if strides else kernel_size_tup
297
+ if isinstance(padding, int):
298
+ padding_list = [padding for _ in range(num_spatial_dims)]
299
+ elif not padding: # padding can be [], meaning all zeros.
300
+ padding_list = [0 for _ in range(num_spatial_dims)]
301
+ else:
302
+ padding_list = padding
303
+
304
+ if isinstance(dilation, int):
305
+ dilation_tup = tuple(dilation for _ in range(num_spatial_dims))
306
+ elif not dilation:
307
+ dilation_tup = tuple(1 for _ in range(num_spatial_dims))
308
+ elif isinstance(dilation, list):
309
+ dilation_tup = tuple(dilation)
310
+ else:
311
+ dilation_tup = dilation
312
+
313
+ input_shape_for_ceil = inputs.shape
314
+ if num_batch_dims == 0:
315
+ input_shape_for_ceil = [1, *input_shape_for_ceil]
316
+ padding_pairs = _ceil_mode_padding(
317
+ padding_list,
318
+ input_shape_for_ceil,
319
+ kernel_size_tup,
320
+ strides_tup,
321
+ dilation_tup,
322
+ ceil_mode,
323
+ )
324
+
325
+ assert len(kernel_size_tup) == len(
326
+ strides_tup
327
+ ), f"len({kernel_size_tup=}) must equal len({strides_tup=})"
328
+ assert len(kernel_size_tup) == len(
329
+ dilation_tup
330
+ ), f"len({kernel_size_tup=}) must equal len({dilation_tup=})"
331
+
332
+ is_single_input = False
333
+ if num_batch_dims == 0:
334
+ inputs = inputs[None]
335
+ is_single_input = True
336
+
337
+ reduce_window_strides = (1,) * (inputs.ndim - num_spatial_dims) + strides_tup
338
+ reduce_window_dims = (1,) * (inputs.ndim - num_spatial_dims) + kernel_size_tup
339
+ reduce_window_dilation = (1,) * (
340
+ inputs.ndim - num_spatial_dims
341
+ ) + dilation_tup
342
+
343
+ assert inputs.ndim == len(
344
+ reduce_window_dims
345
+ ), f"len({inputs.shape}) != len({reduce_window_dims})"
346
+ if not isinstance(padding_pairs, str):
347
+ padding_pairs_tup = tuple(padding_pairs)
348
+ assert all(
349
+ [len(x) == 2 for x in padding_pairs_tup]
350
+ ), f"each entry in padding {padding_pairs_tup} must be length 2"
351
+ padding_lax = ((0, 0),) * (
352
+ inputs.ndim - len(padding_pairs_tup)
353
+ ) + padding_pairs_tup
354
+ else:
355
+ padding_lax = padding_pairs
356
+
357
+ indices = jnp.arange(
358
+ np.prod(inputs.shape[-num_spatial_dims:]), dtype=jnp.int64
359
+ )
360
+ indices = indices.reshape(inputs.shape[-num_spatial_dims:])
361
+ indices_shape = (1,) * (inputs.ndim - indices.ndim) + indices.shape
362
+ indices = jnp.broadcast_to(indices.reshape(indices_shape), inputs.shape)
363
+
364
+ return_dtype = inputs.dtype
365
+ if jnp.issubdtype(inputs.dtype, jnp.integer):
366
+ init_val = jnp.int32(jnp.iinfo(jnp.int32).min)
367
+ inputs = inputs.astype(jnp.int32)
368
+ else:
369
+ init_val = jnp.float32(-jnp.inf)
370
+ inputs = inputs.astype(jnp.float32)
371
+
372
+ if not with_index:
373
+ y = jax.lax.reduce_window(
374
+ inputs,
375
+ init_val,
376
+ jax.lax.max,
377
+ reduce_window_dims,
378
+ reduce_window_strides,
379
+ padding_lax,
380
+ window_dilation=reduce_window_dilation,
381
+ )
382
+ if is_single_input:
383
+ y = jnp.squeeze(y, axis=0)
384
+ return y.astype(return_dtype)
385
+ else:
386
+
387
+ def reduce_fn(a, b):
388
+ ai, av = a
389
+ bi, bv = b
390
+ which = av >= bv
391
+ return jnp.where(which, ai, bi), jnp.where(which, av, bv)
392
+
393
+ indices, y = jax.lax.reduce_window(
394
+ (indices, inputs),
395
+ (jnp.int64(0), init_val),
396
+ reduce_fn,
397
+ reduce_window_dims,
398
+ reduce_window_strides,
399
+ padding_lax,
400
+ window_dilation=reduce_window_dilation,
401
+ )
402
+ if is_single_input:
403
+ indices = jnp.squeeze(indices, axis=0)
404
+ y = jnp.squeeze(y, axis=0)
405
+ y = y.astype(return_dtype)
406
+ return y, indices
407
+
408
+
409
+ @lower_by_jax(torch.ops.aten.max_pool2d_with_indices)
410
+ def _aten_max_pool2d_with_indices(
411
+ self, kernel_size, stride=None, padding=0, dilation=1, ceil_mode=False
412
+ ):
413
+ stride = stride if stride is not None else []
414
+ y = max_pool(
415
+ self,
416
+ kernel_size,
417
+ strides=stride,
418
+ padding=padding,
419
+ dilation=dilation,
420
+ ceil_mode=ceil_mode,
421
+ with_index=False,
422
+ )
423
+ # TFLite's reduce_window kernel doesn't support multiple inputs/outputs,
424
+ # so we emit reduce_window with a single output and return dummy indices.
425
+ return y, jnp.zeros_like(y, dtype=jnp.int64)
426
+
427
+
428
+ @lower_by_jax(torch.ops.aten.max_pool3d_with_indices.default)
429
+ def _aten_max_pool3d_with_indices(
430
+ self, kernel_size, stride=None, padding=0, dilation=1, ceil_mode=False
431
+ ):
432
+ stride = stride if stride is not None else []
433
+ y = max_pool(
434
+ self,
435
+ kernel_size,
436
+ strides=stride,
437
+ padding=padding,
438
+ dilation=dilation,
439
+ ceil_mode=ceil_mode,
440
+ with_index=False,
441
+ )
442
+ # TFLite's reduce_window kernel doesn't support multiple inputs/outputs,
443
+ # so we emit reduce_window with a single output and return dummy indices.
444
+ return y, jnp.zeros_like(y, dtype=jnp.int64)
445
+
446
+
447
+ @lower_by_jax(torch.ops.aten.pixel_shuffle)
448
+ def _aten_pixel_shuffle(x, upscale_factor):
449
+ """PixelShuffle implementation in JAX lowering.
450
+
451
+ Args:
452
+ x: Input tensor. Typically a feature map.
453
+ upscale_factor: Integer by which to upscale the spatial dimensions.
454
+
455
+ Returns:
456
+ Tensor after PixelShuffle operation.
457
+ """
458
+
459
+ batch_size, channels, height, width = x.shape
460
+
461
+ if channels % (upscale_factor**2) != 0:
462
+ raise ValueError(
463
+ "Number of channels must be divisible by the square of the upscale"
464
+ " factor."
465
+ )
466
+
467
+ new_channels = channels // (upscale_factor**2)
468
+ new_height = height * upscale_factor
469
+ new_width = width * upscale_factor
470
+
471
+ x = x.reshape(
472
+ batch_size, new_channels, upscale_factor, upscale_factor, height, width
473
+ )
474
+ x = jnp.transpose(
475
+ x, (0, 1, 4, 2, 5, 3)
476
+ ) # Move channels to spatial dimensions
477
+ x = x.reshape(batch_size, new_channels, new_height, new_width)
478
+
479
+ return x
480
+
481
+
243
482
  @lower_by_jax(torch.ops.aten.unbind)
244
483
  def _aten_copy(self, *args, **kwargs):
245
484
  return _TORCH_XLA2_IMPLS[torch.ops.aten.unbind_copy](self, *args, **kwargs)
@@ -250,6 +489,17 @@ def _aten_copy(self, src, **kwargs):
250
489
  return _TORCH_XLA2_IMPLS[torch.ops.aten.copy](self, src)
251
490
 
252
491
 
492
+ @lower_by_jax(torch.ops.aten.elu.default)
493
+ def _aten_elu(self, alpha=1.0, scale=1.0, input_scale=1.0):
494
+ pos_coef = scale
495
+ neg_coef = alpha * scale
496
+ neg_input_coef = input_scale
497
+
498
+ pos_branch = self * pos_coef
499
+ neg_branch = jnp.expm1(self * neg_input_coef) * neg_coef
500
+ return jnp.where(self >= 0, pos_branch, neg_branch)
501
+
502
+
253
503
  @registry.lower(torch.ops.aten.add.Scalar)
254
504
  def _aten_add_scalar(lctx: LoweringContext, self, other):
255
505
  _log_usage(torch.ops.aten.add.Scalar)
ai_edge_torch/version.py CHANGED
@@ -15,4 +15,4 @@
15
15
 
16
16
  # The next version of ai-edge-torch.
17
17
  # The minor version code should be bumped after every release.
18
- __version__ = "0.7.0.dev20250929"
18
+ __version__ = "0.8.0.dev20251206"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: ai-edge-torch-nightly
3
- Version: 0.7.0.dev20250929
3
+ Version: 0.8.0.dev20251206
4
4
  Summary: Supporting PyTorch models with the Google AI Edge TFLite runtime.
5
5
  Home-page: https://github.com/google-ai-edge/ai-edge-torch
6
6
  Keywords: On-Device ML,AI,Google,TFLite,PyTorch,LLMs,GenAI
@@ -13,6 +13,8 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3 :: Only
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
16
18
  Classifier: Topic :: Scientific/Engineering
17
19
  Classifier: Topic :: Scientific/Engineering :: Mathematics
18
20
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -37,7 +39,17 @@ Requires-Dist: ai-edge-quantizer-nightly
37
39
  Requires-Dist: jax
38
40
  Requires-Dist: torch-xla2[odml]>=0.0.1.dev20241201
39
41
  Provides-Extra: torch-xla
40
- Requires-Dist: torch-xla>=2.4.0; extra == "torch-xla"
42
+ Requires-Dist: torch_xla>=2.4.0; extra == "torch-xla"
43
+ Dynamic: classifier
44
+ Dynamic: description
45
+ Dynamic: description-content-type
46
+ Dynamic: home-page
47
+ Dynamic: keywords
48
+ Dynamic: license-file
49
+ Dynamic: provides-extra
50
+ Dynamic: requires-dist
51
+ Dynamic: requires-python
52
+ Dynamic: summary
41
53
 
42
54
  Library that supports converting PyTorch models into a .tflite format, which can
43
55
  then be run with TensorFlow Lite and MediaPipe. This enables applications for
@@ -2,9 +2,9 @@ ai_edge_torch/__init__.py,sha256=lemyLCNoGYRnJsmDuGZu7qOqLbLqG6CGDFtu3ue1syU,129
2
2
  ai_edge_torch/_config.py,sha256=AiqhbcheF7j_ozIGDLC89k1we95aVgFDa-tR6h7UI0s,2529
3
3
  ai_edge_torch/conftest.py,sha256=r0GTrhMRhlmOGrrkvumHN8hkmyug6WvF60vWq8wRIBI,758
4
4
  ai_edge_torch/model.py,sha256=A7loFu8jE9CsXsfMmHYZ-KDFJiaD8Kkqwm_9d3IVzk0,5638
5
- ai_edge_torch/version.py,sha256=Kfpfj3j3af9tnh8DVfa1oaj9-YZAfki1hWVm44kYPfU,806
5
+ ai_edge_torch/version.py,sha256=igYuweKQrisARFhIhK3eg0wnxeYvQtBYWgM2qt2tV7M,806
6
6
  ai_edge_torch/_convert/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
7
- ai_edge_torch/_convert/conversion.py,sha256=iQk3R-pLq4c1nfLqPB4xTRj78gghxPGzJCJtILLdg5o,6123
7
+ ai_edge_torch/_convert/conversion.py,sha256=JqGZZGbpTmYiT-ta07IQbJ9-gFm-3Vip2aSzW9ulIng,6117
8
8
  ai_edge_torch/_convert/conversion_utils.py,sha256=Sr8qXVcTwc-ZnZmK7yxVrIOOp1S_vNrwzC0zUvLTI2o,2160
9
9
  ai_edge_torch/_convert/converter.py,sha256=6MLKELzAwFoiXv-b7KRYi7gc7Z57XOeowcz9ArIl9TM,12100
10
10
  ai_edge_torch/_convert/signature.py,sha256=-YKJdLk-eNEHfhdPCtcQVtZf915SoVePEFxKXPPf16c,2572
@@ -43,7 +43,7 @@ ai_edge_torch/examples/selfie_segmentation/model.py,sha256=5otCH1MzNgSP0fikYq53h
43
43
  ai_edge_torch/experimental/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
44
44
  ai_edge_torch/fx_infra/__init__.py,sha256=APjkSqEfwDxcnI8k53rGi3Ef-G2L-M8fdaPGpxXtuiI,1347
45
45
  ai_edge_torch/fx_infra/_canonicalize_pass.py,sha256=GDRoDdPVQw--QQFTT5J_C3TVuphL31m6K6F1-67SE4s,1097
46
- ai_edge_torch/fx_infra/_safe_run_decompositions.py,sha256=ZbWheeZ8ydsxCk2aVGUgUynrkEkBOMjBCzPhS5uq4sU,2595
46
+ ai_edge_torch/fx_infra/_safe_run_decompositions.py,sha256=V-vhvScNrE3nTenT1LIULbWIU-2FD_OHthFZCPuxtzk,3480
47
47
  ai_edge_torch/fx_infra/decomp.py,sha256=S58SCgwMHYVFl_hJwlJxvu2wcI-AGNn82gel3qmTPrU,2500
48
48
  ai_edge_torch/fx_infra/graph_utils.py,sha256=nqGe-xIJ77RamSUh0UYyI2XHOsZqFDWax-vpRAtVR_E,2796
49
49
  ai_edge_torch/fx_infra/pass_base.py,sha256=Ic2AlhSoRFscz6l7gJKvWVNMDLQFfAw5kRf84-ZR9qM,2904
@@ -54,36 +54,36 @@ ai_edge_torch/generative/custom_ops/dynamic_update_slice.py,sha256=ZGAq2CfWZsfef
54
54
  ai_edge_torch/generative/examples/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
55
55
  ai_edge_torch/generative/examples/amd_llama_135m/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
56
56
  ai_edge_torch/generative/examples/amd_llama_135m/amd_llama_135m.py,sha256=Z2oUQ--pXPgNQyGLdWDNdyC90cSZzDN9YnSclRrPWAg,2703
57
- ai_edge_torch/generative/examples/amd_llama_135m/convert_to_tflite.py,sha256=ze0MPZsUJpIBSCMJB4BrnJT5MFomRcffvuZEqKG20AM,1848
57
+ ai_edge_torch/generative/examples/amd_llama_135m/convert_to_tflite.py,sha256=Mk_wGuQmdET3VCxD-QbAyDVSj8J5pKwS4Nq1jZ1gu2Y,1109
58
58
  ai_edge_torch/generative/examples/amd_llama_135m/verify.py,sha256=uyBg5-trxQEjEHDZMX4qojkcsZgERUiPqIgR9n0_AY4,1311
59
59
  ai_edge_torch/generative/examples/amd_llama_135m/verify_util.py,sha256=J_FwH5KzS1tlyxcICSPir35gP2tWqRQ5wyVTsV9Uk8w,3018
60
60
  ai_edge_torch/generative/examples/deepseek/__init__.py,sha256=JaAnrFoXTl3RJX97XspklkTyqOHVyAgRJsZtzNDd10c,671
61
- ai_edge_torch/generative/examples/deepseek/convert_to_tflite.py,sha256=wcAk6EgNWXzYx_vQCmMDAAYw398ztlUdk_Gj9CYTsOg,1883
61
+ ai_edge_torch/generative/examples/deepseek/convert_to_tflite.py,sha256=PtaBKoq-vocegiBJGk9GpHGvCreDu4WBFxsakSZgnA8,1144
62
62
  ai_edge_torch/generative/examples/deepseek/deepseek.py,sha256=cm3rLw6aHFWQswwCqfvwxr05JG0maSzNVn1pBqD19qY,2816
63
63
  ai_edge_torch/generative/examples/deepseek/verify.py,sha256=HkvgEyGb-V_f6mWfyeN7Ai5uADAVQNzWvkygaKJiLAc,1344
64
64
  ai_edge_torch/generative/examples/deepseek/verify_util.py,sha256=xf2-jhv-ORwr_-Rs2UBpO2vcAwJNZIdmOxpcuKIQaww,3028
65
65
  ai_edge_torch/generative/examples/gemma/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
66
- ai_edge_torch/generative/examples/gemma/convert_gemma1_to_tflite.py,sha256=m5N3MxNX4Yu8-0vXRszkMgfVuFKN6gskVoUIGqonJFk,1814
67
- ai_edge_torch/generative/examples/gemma/convert_gemma2_to_tflite.py,sha256=fR4869w1UZIuUVGLDdPof0IDEMDhqn2ej5kl7QW9vNA,1882
66
+ ai_edge_torch/generative/examples/gemma/convert_gemma1_to_tflite.py,sha256=jJQ43cmCu4Ys-c0WWPkJSA5U-5FgpZ30JOPWF5QUiWg,1075
67
+ ai_edge_torch/generative/examples/gemma/convert_gemma2_to_tflite.py,sha256=LlxT2fE8Sq6Cg6YY8c0HnSc-T8831xeJsMKBcKVk77Y,1143
68
68
  ai_edge_torch/generative/examples/gemma/gemma1.py,sha256=8oLB0PaSrHMy0tDT--qPIEjTm0qNT16kqRBCHqAALSc,4674
69
69
  ai_edge_torch/generative/examples/gemma/gemma2.py,sha256=E6jotWYYIx6SXUWqurKWjiZpbfj_M2jJrBc2rQ90z1s,11782
70
70
  ai_edge_torch/generative/examples/gemma/verify_gemma1.py,sha256=USyist332qZkhCBof2tJwQSqtnKjTQsKAK_jCE_CO2U,1853
71
71
  ai_edge_torch/generative/examples/gemma/verify_gemma2.py,sha256=eAM7EVVMW-QCqjeZEss7TOkVKArgUs1La51LAC-5a9A,1962
72
72
  ai_edge_torch/generative/examples/gemma/verify_util.py,sha256=977W4szm0gklhsVduiqHpkgc4QjpMn_IkRRvaqQC7ac,8422
73
73
  ai_edge_torch/generative/examples/gemma3/__init__.py,sha256=JaAnrFoXTl3RJX97XspklkTyqOHVyAgRJsZtzNDd10c,671
74
- ai_edge_torch/generative/examples/gemma3/convert_gemma3_to_tflite.py,sha256=b2l8R3-3xhurmXn3LRZ-C12J11C8tx77NXKze6jFYbA,2425
74
+ ai_edge_torch/generative/examples/gemma3/convert_gemma3_to_tflite.py,sha256=9oNL1rSvh4CHWsIlK-_n6FkNaPv9B1tWTXf-IBPk2jA,1475
75
75
  ai_edge_torch/generative/examples/gemma3/decoder.py,sha256=DEkOnfHZJPaxbjwegarRjGpBa7gr6IuWMf8xgZP2mtU,17951
76
76
  ai_edge_torch/generative/examples/gemma3/gemma3.py,sha256=PAtuqvBkq6TeNFImoJfCaLX5pZCBOcaQjFvwur_XQJ4,7141
77
77
  ai_edge_torch/generative/examples/gemma3/image_encoder.py,sha256=OCMIAQfNmPR4uQUAtlYL6j4xkG0dw2Ays4-lnThcWqQ,5110
78
78
  ai_edge_torch/generative/examples/gemma3/verify_gemma3.py,sha256=v8oNXFICmVOtQxfO7IhZ8GnbvotEkDi9lzYHjoQyOso,2464
79
79
  ai_edge_torch/generative/examples/gemma3/verify_util.py,sha256=5OmUwz38kVHYLA-v8U8evvDN9da2WioZtGo-XK6yq1o,10067
80
80
  ai_edge_torch/generative/examples/hammer/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
81
- ai_edge_torch/generative/examples/hammer/convert_to_tflite.py,sha256=BujBJml_ShWpKJyUgKAJqV4C6yd1uODjKg8fOgchPKI,2041
81
+ ai_edge_torch/generative/examples/hammer/convert_to_tflite.py,sha256=OudSFnxLJrQ89vUl4yFddcMS22UguYff2dmvheX_-MI,1302
82
82
  ai_edge_torch/generative/examples/hammer/hammer.py,sha256=0fz6LmZLXrVyty6w5T6LWRoqvQ-5XYREH6gFzB_gOu0,3737
83
83
  ai_edge_torch/generative/examples/hammer/verify.py,sha256=iuKFMkI1VZc9_ESUQr32cHWHsDtYOAF702TdqhD3Ns4,1589
84
84
  ai_edge_torch/generative/examples/hammer/verify_util.py,sha256=vB5kiFcDBM2G-AkTByJarxur-kJT_J2wGCW4mzf5whc,2962
85
85
  ai_edge_torch/generative/examples/llama/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
86
- ai_edge_torch/generative/examples/llama/convert_to_tflite.py,sha256=K-hke37VBMWakuqCeRmpaZBujGWRykDIaUBKJQ0nI5g,2022
86
+ ai_edge_torch/generative/examples/llama/convert_to_tflite.py,sha256=6or963hGkTmvfxhpYqNY--1aPIjPVM-V_WjhWanoiFU,1283
87
87
  ai_edge_torch/generative/examples/llama/llama.py,sha256=PpC3idSFSATjQzcLv8oXwo66_5zU-B_np2YVAs2Naog,6602
88
88
  ai_edge_torch/generative/examples/llama/verify.py,sha256=XoF_-kxdryjt0Bt_YeHnIbLfjwFxSVioTSEG75moDr8,1581
89
89
  ai_edge_torch/generative/examples/llama/verify_util.py,sha256=YVwoiQNwnwc_yx2ra3KYMCmqY-PiWm1kYZQjcw2BXws,3076
@@ -91,7 +91,7 @@ ai_edge_torch/generative/examples/moonshine/__init__.py,sha256=hHLluseD2R0Hh4W6X
91
91
  ai_edge_torch/generative/examples/moonshine/convert_moonshine_to_tflite.py,sha256=_GkaSkregS3NWN38UGXxj4pED5gtQGaaPZx5_CZ0TVM,1657
92
92
  ai_edge_torch/generative/examples/moonshine/moonshine.py,sha256=nZ2b8u4TmsB5sgdClgAuH8E78bcTv9RCnF9666HqP2M,3394
93
93
  ai_edge_torch/generative/examples/openelm/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
94
- ai_edge_torch/generative/examples/openelm/convert_to_tflite.py,sha256=C5KEMMle8v6yZWrJPYoN-1CAjeZv7GQEJvyL28DeEYs,1813
94
+ ai_edge_torch/generative/examples/openelm/convert_to_tflite.py,sha256=TAfVisvM8kcRQs2p6K_09pYN-dySdn8toS49CnYdZyE,1074
95
95
  ai_edge_torch/generative/examples/openelm/openelm.py,sha256=Zfoe0VzNHiCK3CIlp0UYzxxJuE9yZXrSCb84S24LMM0,4448
96
96
  ai_edge_torch/generative/examples/openelm/verify.py,sha256=kRoNEUEsrz51PFSeTPcrYsPBQRLtUmYM3t_-Jl0oFqM,1300
97
97
  ai_edge_torch/generative/examples/openelm/verify_util.py,sha256=3Tay96oEiV3Gtz-K2Gu2-tov2Y4mMpztPhwXfs4c5EA,2970
@@ -106,9 +106,9 @@ ai_edge_torch/generative/examples/paligemma/verify_decoder.py,sha256=Z-Xx2mpygBc
106
106
  ai_edge_torch/generative/examples/paligemma/verify_decoder2.py,sha256=ryn3OpMFeVwUXoywl73XyypivjghSBojdLDLzvF3XI4,2595
107
107
  ai_edge_torch/generative/examples/paligemma/verify_image_encoder.py,sha256=vNm-wTT8BD6zbX6GocfP1QrVoHl0zSvuVxoXN36eeiU,3540
108
108
  ai_edge_torch/generative/examples/phi/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
109
- ai_edge_torch/generative/examples/phi/convert_phi3_to_tflite.py,sha256=th7EYY2NmT4qLMtQsEIU697sGhwZi24V8OwB6xZRHEw,1802
110
- ai_edge_torch/generative/examples/phi/convert_phi4_to_tflite.py,sha256=OkqJXktzNb8VO4_gNSl1iKIXBDMx0McCOxnoEUrq_B4,1800
111
- ai_edge_torch/generative/examples/phi/convert_to_tflite.py,sha256=Ff0A2NOpcmwGi87AWdQ4X2ZXeALQVzVvAGdnBzcZgVY,1801
109
+ ai_edge_torch/generative/examples/phi/convert_phi3_to_tflite.py,sha256=X5j8Gm6BsgR26evL1JqJlGj_-ezYaICKm4Bn131MX-o,1063
110
+ ai_edge_torch/generative/examples/phi/convert_phi4_to_tflite.py,sha256=N6-NpAr3pvKlxyzeyhC_p84V3OpdaLlCwWeu3mCLRIw,1061
111
+ ai_edge_torch/generative/examples/phi/convert_to_tflite.py,sha256=uM4dYRkMJpYg_fxQCLhLTNPKM5KIMPCf7yH2z6AD1q4,1062
112
112
  ai_edge_torch/generative/examples/phi/phi2.py,sha256=CyqXhCcegY7mcsuRBg8-aXvOHTK4PZufGKBWb0mgcNE,3361
113
113
  ai_edge_torch/generative/examples/phi/phi3.py,sha256=lO9vVCTqtbVZuSjJGRlmYrh5ZmLPfrqg7RXgTsqtggg,6811
114
114
  ai_edge_torch/generative/examples/phi/phi4.py,sha256=n-LLniR-Q3Nyz4JCTvKZe9hBHVWBGtIBQdqe7_6xAyM,5596
@@ -117,8 +117,8 @@ ai_edge_torch/generative/examples/phi/verify_phi3.py,sha256=TwIu2xUPQyMUTFdz29E2
117
117
  ai_edge_torch/generative/examples/phi/verify_phi4.py,sha256=2MlgQrfRkhE7Dya8MIixGwpqEZYdPjQkUGB47Mt1hSI,1343
118
118
  ai_edge_torch/generative/examples/phi/verify_util.py,sha256=te2ws_4ZsuMr_d3CkN-vCIAnWGq7g0eDJ0RLna3E2gw,3037
119
119
  ai_edge_torch/generative/examples/qwen/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
120
- ai_edge_torch/generative/examples/qwen/convert_to_tflite.py,sha256=XQee8T78I4CqFghZw6sSsrtryWcA_NlOzg2wMfHzHwY,2064
121
- ai_edge_torch/generative/examples/qwen/convert_v3_to_tflite.py,sha256=P10_5tnuvjXNYyWTp0Fzzj-8moFWyONDBhcGi2yvdp4,2070
120
+ ai_edge_torch/generative/examples/qwen/convert_to_tflite.py,sha256=IM6JgxOuWA5XKMaXKT5j-JK2cm0hrMjrs-hN-fIQXA4,1325
121
+ ai_edge_torch/generative/examples/qwen/convert_v3_to_tflite.py,sha256=7V77Nyd3lldukopxKqru7hD3oH6zyzkRI1fzFl7uZOE,1331
122
122
  ai_edge_torch/generative/examples/qwen/qwen.py,sha256=VrrTS83q1Fzp34SjUf0pFiCoMwXehF7VJCZjbxbQ5vA,4332
123
123
  ai_edge_torch/generative/examples/qwen/qwen3.py,sha256=cJcN5nH-yAglKtm5Yc5NsLMQvkJ4Drz_IsQJzS91Veo,5329
124
124
  ai_edge_torch/generative/examples/qwen/verify_qwen2.py,sha256=ry-c2QesH-0KnrSQygfjUFs6d4kOFvJz2ts_8mP156I,1659
@@ -133,15 +133,15 @@ ai_edge_torch/generative/examples/qwen_vl/verify.py,sha256=m-SdwHlxjOHsw740_i3T6
133
133
  ai_edge_torch/generative/examples/qwen_vl/verify_decoder.py,sha256=ZuVRPLnxpaJWAvZLvJa-u1hZIkqc1D6Ew8FxdXtLlyM,2663
134
134
  ai_edge_torch/generative/examples/qwen_vl/verify_image_encoder.py,sha256=PZ392nDoJG2OmHZ_7Jet3Zu1JkN6QErxKcDc7a-PPds,3126
135
135
  ai_edge_torch/generative/examples/smollm/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
136
- ai_edge_torch/generative/examples/smollm/convert_to_tflite.py,sha256=CsXboOmzk2GB506a-Je-Js-XFlUmikVX7dhBFQAmiUs,2040
137
- ai_edge_torch/generative/examples/smollm/convert_v2_to_tflite.py,sha256=2BFScI1RbpK3YqJcsvacGz9haKR_gwGsSNHfYmlOvNg,2045
136
+ ai_edge_torch/generative/examples/smollm/convert_to_tflite.py,sha256=QJB0iDBJoxP292O60-E57AbV57YdxwL9K1ZsTzgOUe8,1069
137
+ ai_edge_torch/generative/examples/smollm/convert_v2_to_tflite.py,sha256=b7TjJZI0gN2rPv4pk5Iw3T-vTsc1UAGGRWppOskNl0E,1074
138
138
  ai_edge_torch/generative/examples/smollm/smollm.py,sha256=3QbVefwSlFjhze7ju3P6xgMex2d1AJpF6Ii_qlbfJ34,3656
139
139
  ai_edge_torch/generative/examples/smollm/verify.py,sha256=tXiAnwOnqgwyoa8dI4tCBiGUXkOMfdE9MUkkY_Bc4Ig,1603
140
140
  ai_edge_torch/generative/examples/smollm/verify_util.py,sha256=tHwmo8E474gLKAu4IrG7t2hmy-3Go_BJI1mgu0KkWOY,3076
141
141
  ai_edge_torch/generative/examples/stable_diffusion/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
142
142
  ai_edge_torch/generative/examples/stable_diffusion/attention.py,sha256=kDWG6MlIGa89zC5KSRcJlw2c4ITuw8KcchtfmF55f4g,3545
143
143
  ai_edge_torch/generative/examples/stable_diffusion/clip.py,sha256=lSCRZsoLjH_kqasRMwCy5IogkhyJdwcHKsPEfyxsXCQ,6112
144
- ai_edge_torch/generative/examples/stable_diffusion/convert_to_tflite.py,sha256=_yk6wVoZm1_FRMFJF5URaPZNNdmMR89fwmKz81BEyao,5601
144
+ ai_edge_torch/generative/examples/stable_diffusion/convert_to_tflite.py,sha256=Wba7-rEibvc7ii0uQhO87meVqdQC0_3mtYj5PRXXXbE,5584
145
145
  ai_edge_torch/generative/examples/stable_diffusion/decoder.py,sha256=afyHXc86h-ij5zTULmZnM1h313N9VWCyIVriH6pqeSo,16368
146
146
  ai_edge_torch/generative/examples/stable_diffusion/diffusion.py,sha256=ylqXOZhYc6XFCaNBKQw0jAnYrCtRFFQKzQzEsFIntvo,34890
147
147
  ai_edge_torch/generative/examples/stable_diffusion/encoder.py,sha256=CAPsW84A8f00nS6fLFeh_XUjCPsDCA5UxHOUsMrLfSU,3450
@@ -151,7 +151,7 @@ ai_edge_torch/generative/examples/stable_diffusion/util.py,sha256=XIXIB0vCvQKOGy
151
151
  ai_edge_torch/generative/examples/stable_diffusion/samplers/__init__.py,sha256=uQWKzCD_49ackNFrt50H04dkDXxfAwUCtMWWQre5SVE,830
152
152
  ai_edge_torch/generative/examples/stable_diffusion/samplers/k_euler.py,sha256=wBBNM24waZ57M1rXonwesfUkKe9DqpqO3eW6BfZkrD0,2323
153
153
  ai_edge_torch/generative/examples/stable_diffusion/samplers/k_euler_ancestral.py,sha256=c89ldwtuQ2_yspGrGa7oh7fsvTt6A86Whxa6fBK9YOQ,2526
154
- ai_edge_torch/generative/examples/stable_diffusion/samplers/k_lms.py,sha256=ZE6HyOoBJrmTh54KVFf7DjNBnBS0pT4cgviYaq8HGMU,2801
154
+ ai_edge_torch/generative/examples/stable_diffusion/samplers/k_lms.py,sha256=NDiJPreRFHW1l50Lmb1FHNQcs3wslFAhS4FEFTQKjMU,2805
155
155
  ai_edge_torch/generative/examples/stable_diffusion/samplers/sampler.py,sha256=RxR5rw0wFFm_5CfAY-3-EIz83vhM9EKye8Bb5zBb0Ok,1341
156
156
  ai_edge_torch/generative/examples/t5/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
157
157
  ai_edge_torch/generative/examples/t5/convert_to_tflite.py,sha256=HHtZTtUh3QgE4F74-ru_8n1pt6cqfbObw12xoaMJ7NQ,4596
@@ -162,56 +162,56 @@ ai_edge_torch/generative/examples/test_models/convert_toy_model.py,sha256=6-WaNH
162
162
  ai_edge_torch/generative/examples/test_models/toy_model.py,sha256=s3l__g3l0DpgXEPs1ikcJqSS7OfWzgYdkOLnEwdjcUo,5257
163
163
  ai_edge_torch/generative/examples/test_models/toy_model_with_kv_cache.py,sha256=rVTaNQxlf3-mv9e6s33V9CDd_cmVwPti1A3ARUAwSD4,4766
164
164
  ai_edge_torch/generative/examples/tiny_llama/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
165
- ai_edge_torch/generative/examples/tiny_llama/convert_to_tflite.py,sha256=dYqb9OhpZUBIdww1lUdMjFhEo3IYhpvitvrZfO0uGSs,1827
165
+ ai_edge_torch/generative/examples/tiny_llama/convert_to_tflite.py,sha256=rAVdo2U-4TInZPfZmn3-7rCmo94bY9nPN-85mTqFR_w,1088
166
166
  ai_edge_torch/generative/examples/tiny_llama/tiny_llama.py,sha256=fRuPLHwZu8Am8h0Y3dT5_1vsCEnm6euGWB_KHc3xBXk,2735
167
167
  ai_edge_torch/generative/examples/tiny_llama/verify.py,sha256=qzUsW8tJlAD9mqRxDSAcz5xSUKNlBz_DykA3PwUHMwc,1336
168
168
  ai_edge_torch/generative/examples/tiny_llama/verify_util.py,sha256=z6vPBXDWAL6gN45z-Wm1B2bnZuJf3ErruSuFaEPPEGY,2994
169
169
  ai_edge_torch/generative/fx_passes/__init__.py,sha256=PFSMsA1vfBfrV9ssBCkYJNl8Hx_bLdWjN01iyjPM5jE,1094
170
170
  ai_edge_torch/generative/fx_passes/remove_sdpa_zero_mask_pass.py,sha256=myGjal5A8yIBoqgArd2k40rZmCgD1Ya369KR7182bhI,2129
171
171
  ai_edge_torch/generative/layers/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
172
- ai_edge_torch/generative/layers/attention.py,sha256=RaXENRRQo1MsLdt3U8h3kYTCmd6imHQ-aCXtmPXCh_o,13911
173
- ai_edge_torch/generative/layers/attention_test.py,sha256=9v8v96TLyFPdqxEylU1JOAeRFAp2s0YoDHZN83SFJJA,4764
174
- ai_edge_torch/generative/layers/attention_utils.py,sha256=2qfg7Tzk9ikKph5w3geOHC1I6EyOCdDsWXMr7F7IOZM,7630
175
- ai_edge_torch/generative/layers/attention_utils_test.py,sha256=22gQ1gcRPkwqFG3_p82GZfRKVE3udEssSy58wNOqv0w,2431
176
- ai_edge_torch/generative/layers/builder.py,sha256=UiLOyvwd-bc0n5XcbVxi6JCn_qiKSC6zrDKSZT_TSDA,5030
172
+ ai_edge_torch/generative/layers/attention.py,sha256=ZjU3vX-7gOq1KQb3xSZ1NT3xryOTXbYb_vkx_DlcizA,14524
173
+ ai_edge_torch/generative/layers/attention_test.py,sha256=ON9jQRY1r2kFpVq-Qkg6b13Ob95fd4PqHo1hic3RbOQ,5057
174
+ ai_edge_torch/generative/layers/attention_utils.py,sha256=3Ox1XjW_vaqz1-RuVG9RbzRKUqCberFW8P2BQcoNm7A,9659
175
+ ai_edge_torch/generative/layers/attention_utils_test.py,sha256=IHIk39wqaPvxmkZtW27VD3_4xUpyFow_7mScf8OWdqU,3292
176
+ ai_edge_torch/generative/layers/builder.py,sha256=5QL59CbOOW_mk3mlPdcdirGcAxdLee5atbZlnu5Z3ts,5079
177
177
  ai_edge_torch/generative/layers/einsum.py,sha256=LH4CNHr-pFfLUuCpwbYL3GpoAMgHJ4nLju3XCqA4VwM,1416
178
178
  ai_edge_torch/generative/layers/einsum_test.py,sha256=ltIE773bvvNLv_9aLQxFwe1MgQ762sez0c5E2tejxuA,1079
179
179
  ai_edge_torch/generative/layers/feed_forward.py,sha256=_GmtHxwL068l9gh_F_WFcFk7La-Tl5SfoQ9v2hMabZM,5541
180
180
  ai_edge_torch/generative/layers/feed_forward_test.py,sha256=Y5l1eC9NgfYixHcfIfE1W4FGh7oC-9UGGyHdKS9tQKc,1880
181
181
  ai_edge_torch/generative/layers/kv_cache.py,sha256=A0IFXZ1HD2ZHOWRLfsDO4almgE0KQfjyBOdBFZIGnAs,10893
182
182
  ai_edge_torch/generative/layers/lora.py,sha256=hsvWLLOnW7HQ0AysOZu30x_cetMquDd1tjfyLz8HCSU,17892
183
- ai_edge_torch/generative/layers/model_config.py,sha256=HP-vu1UmAiTmdLlTyZGDUF3le0gji8a61mLCy966NZw,10261
184
- ai_edge_torch/generative/layers/normalization.py,sha256=WAhPcLbcC3SCEa6oIgdsojvN306_S8d90WyMQ7ZVP6I,7269
183
+ ai_edge_torch/generative/layers/model_config.py,sha256=y6nyydMzm7JUV7AKttcFy3tvti-nE6tRXoVbBB9dyiM,10438
184
+ ai_edge_torch/generative/layers/normalization.py,sha256=syasVh3dRDVp2Nwhl0x7zucL-chTnCqWgeV1mb87DFY,7435
185
185
  ai_edge_torch/generative/layers/normalization_test.py,sha256=zwurZly-TgFxdgVVdpzu9vCpcLbd5RYt_gKg9Lfg1jI,2248
186
186
  ai_edge_torch/generative/layers/rotary_position_embedding.py,sha256=975zR202MdIrILJ7blceAcxrNqX1ZCN0ECKG1gz-bV8,2655
187
- ai_edge_torch/generative/layers/scaled_dot_product_attention.py,sha256=2_AgwENsaOgaxgiSqgoj0V0JzQ09dFtP_nBhX-lJK2g,5648
187
+ ai_edge_torch/generative/layers/scaled_dot_product_attention.py,sha256=1zhOsJpI4CTn78weOs0uRwkRxYu6wGfBvYVFpGFl0qQ,6681
188
188
  ai_edge_torch/generative/layers/scaled_dot_product_attention_test.py,sha256=c6JBMQsq9XeMmR1XvGEIidNsoh-YIvichXo2LwVHgr4,3301
189
- ai_edge_torch/generative/layers/sdpa_with_kv_update.py,sha256=iw7D_46CFe9iRvU0UumbkIoqWQEhDroxm9ABcK-CLlM,3600
189
+ ai_edge_torch/generative/layers/sdpa_with_kv_update.py,sha256=fK_h9M-03ai5dV8ZyQzvB0y84IKlNg9h-4bt9F6bU0g,3833
190
190
  ai_edge_torch/generative/layers/unet/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
191
191
  ai_edge_torch/generative/layers/unet/blocks_2d.py,sha256=ZteHZXK6HKyxYji49DQ46sA9aIy7U3Jnz0HZp6hfevY,28996
192
192
  ai_edge_torch/generative/layers/unet/builder.py,sha256=zAqWXdimmMrQRhmE_t9XkS68mh6PSrzwb-2NZZXrR5I,1901
193
193
  ai_edge_torch/generative/layers/unet/model_config.py,sha256=pPDwLawc23pfMaPVyMJlYmxVVusjMvx-l8wBwOYOH-c,9692
194
194
  ai_edge_torch/generative/quantize/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
195
- ai_edge_torch/generative/quantize/example.py,sha256=1lfVNUd2cEyRUnoZ7BLbRJ9IN-FTKiWBtZNPFUzAiWE,1747
196
- ai_edge_torch/generative/quantize/quant_attrs.py,sha256=plMsd7JBi98r2NHsAdMdvS6TPTXAoRFLCwOXu8H3-24,2004
197
- ai_edge_torch/generative/quantize/quant_recipe.py,sha256=CEW-ewHxwb59x_GISx4jr7WMihvn-jKWVcBonllzDS4,5724
198
- ai_edge_torch/generative/quantize/quant_recipe_utils.py,sha256=h3k_na6rbR08Ip79-2JbkeH8RDk_rrnEGiytuzFDhqc,2678
199
- ai_edge_torch/generative/quantize/quant_recipes.py,sha256=mmPsgQ2vloMWflqJ6ALmD1lANacTkWotEhurb5foK30,2771
200
- ai_edge_torch/generative/quantize/supported_schemes.py,sha256=TwR2FpQuBEORy6FshEyHNBMKARWlA2MVtTfX9tXV5aE,1488
195
+ ai_edge_torch/generative/quantize/example.py,sha256=rRm5noeqnCJyaDYG6e1micwaYdA3ooXK0MBYl98neQQ,1742
196
+ ai_edge_torch/generative/quantize/quant_attrs.py,sha256=THKS82G9sR25biEk8AVRFWwB1cjVXpbjZD5IBfNOOMw,2344
197
+ ai_edge_torch/generative/quantize/quant_recipe.py,sha256=kL3UPNscWKzugiyunMn5XK6Lzpw-yXTdtM_NmCNbFUM,5330
198
+ ai_edge_torch/generative/quantize/quant_recipe_utils.py,sha256=bFvY-OnbH6fe5xhS6dfxkAl7NTGzOVtGJ_8417GwGgI,2478
199
+ ai_edge_torch/generative/quantize/quant_recipes.py,sha256=nvADL7wObxJLp651HI1xv5_HeQZ2RaY2swoRC1EOK7k,2783
200
+ ai_edge_torch/generative/quantize/supported_schemes.py,sha256=lEcqwxOIfxhTYCQUelODLky57933r372Uh7sHYNV0Ok,1712
201
201
  ai_edge_torch/generative/test/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
202
202
  ai_edge_torch/generative/test/test_custom_dus.py,sha256=MjIhTvkTko872M35XMciobvICcDWTcIDJ3rociko-wM,3267
203
- ai_edge_torch/generative/test/test_kv_cache.py,sha256=zVocQZTORIROwSYVMmy5KGPDl6kTuEGko7L1PTkua8g,5568
203
+ ai_edge_torch/generative/test/test_kv_cache.py,sha256=kdoBpyzVOjQsZkEPnbDOh33gRE0RR8tq1XCgJkSYwU0,6157
204
204
  ai_edge_torch/generative/test/test_loader.py,sha256=9mQUeeZKOVApOWSWl2cN9c10axZjMKM1-0Zd823CCS4,3449
205
205
  ai_edge_torch/generative/test/test_lora.py,sha256=sKnBixmGIXHUtOwh3SA4MIFenPbjK2n-Xknwic_KMDQ,5046
206
206
  ai_edge_torch/generative/test/test_model_conversion.py,sha256=T35zdzag2-nmy4qc6AifAjbDXAHU2vyLTE1QCabYBzk,6298
207
207
  ai_edge_torch/generative/test/test_model_conversion_large.py,sha256=NkEwrjO8vIcde3XwanpFBhNIw1GSOyJFKNjlvSJmVMY,13271
208
- ai_edge_torch/generative/test/test_quantize.py,sha256=kKJ01wscTC2t_Ylr7huO5gNKES01gm3dT1gx52z15PA,7356
208
+ ai_edge_torch/generative/test/test_quantize.py,sha256=Sh82oxDIc_vw-rCd991qMNQxzM3OkI3oiPj2g4hD5MQ,7088
209
209
  ai_edge_torch/generative/test/utils.py,sha256=tF6aCfAGJnc9dmzCnZCEOuKNVimfWOqscv9og0DDLHU,2656
210
210
  ai_edge_torch/generative/utilities/__init__.py,sha256=-_jxnnFnCgnTU4oTm4MnRsvL5lqhomBNdFBbqfmfHPo,720
211
- ai_edge_torch/generative/utilities/converter.py,sha256=Q2C9DqYWqiyuu8KoL69SAxDL-RNJ7K8_Z45H2FpsAn0,17563
212
- ai_edge_torch/generative/utilities/export_config.py,sha256=qjkEbjcvi2AgQikZS5qfgR95Z5z9pm07KX-RN5ibfNE,2280
213
- ai_edge_torch/generative/utilities/litertlm_builder.py,sha256=0cNuaqhc7cQcAa4NRalUXyoPQUQC9O3-aHAJEDV1Mps,4265
214
- ai_edge_torch/generative/utilities/loader.py,sha256=drgKBmNibuc3PCdc0kU0pVcp2Nt1_mjLYh67RyXOn7U,15952
211
+ ai_edge_torch/generative/utilities/converter.py,sha256=B2DNg5LcDoniHnh22KFDDSHqnmi8w87-dstKCae3CeM,23322
212
+ ai_edge_torch/generative/utilities/export_config.py,sha256=5B15nYyqf96kjjYlHfPctUfsIdsBsh1f8rxKitJpwKQ,2384
213
+ ai_edge_torch/generative/utilities/litertlm_builder.py,sha256=Jy6R4S18JCIk77ZwrfzeOCSaGozvRQfXSobGkwOEOKs,6447
214
+ ai_edge_torch/generative/utilities/loader.py,sha256=QQeEu0cTC7gWnB7RkHonjWLdVGjMbDHd1lfYO_TcJyU,16047
215
215
  ai_edge_torch/generative/utilities/model_builder.py,sha256=xBvcTxihB9TN88UtQiXA9sAITQgf-pA77R-VZlLgUeU,6950
216
216
  ai_edge_torch/generative/utilities/moonshine_loader.py,sha256=_RpFabSqtGH5PHiP3_1f6QfO14qMADUxr_HGRlVDFB0,4891
217
217
  ai_edge_torch/generative/utilities/stable_diffusion_loader.py,sha256=dqPD9qRXEWtU3ombslOC-BE2l_dMwHoCNu7NsIJhsso,36158
@@ -232,11 +232,11 @@ ai_edge_torch/lowertools/common_utils.py,sha256=4HQtquPZ6oiId8vR_1ykW_uK4ELnyo5z
232
232
  ai_edge_torch/lowertools/odml_torch_utils.py,sha256=QRuS7S5lULRWEh3J1sWIsnKh-rbX7rd9tt6JJHbMPfo,8317
233
233
  ai_edge_torch/lowertools/test_utils.py,sha256=mdxTlhqHABZEQ_GEmPFCL8LIAWtqRtYZUGdSY1ieZjw,1949
234
234
  ai_edge_torch/lowertools/torch_xla_utils.py,sha256=1EytIw2R6dthhLhf69wN1L9BaQTeybCD0wga-PhHcMI,9518
235
- ai_edge_torch/lowertools/translate_recipe.py,sha256=Oavs0ENKVnIeB-WidXvokTPqNlFfOuP0GMV0d5RK2Rg,6285
235
+ ai_edge_torch/lowertools/translate_recipe.py,sha256=WEv8Kr0RZw0pBc5PoNUEPnQGBW_JUmuVWQ7Hf4bw0uY,6545
236
236
  ai_edge_torch/odml_torch/__init__.py,sha256=S8jOzE9nLof-6es3XDiGJRN-9H_XTxsVm9dE7lD3RWo,812
237
237
  ai_edge_torch/odml_torch/_torch_future.py,sha256=jSYHf1CMTJzMizPMbu2b39hAt0ZTR6gQLq67GMe9KTo,2336
238
238
  ai_edge_torch/odml_torch/_torch_library.py,sha256=Lw1gqL2HWNRspdTwNhIkYAHDyafHedHtkXyKKxn-Wss,805
239
- ai_edge_torch/odml_torch/export.py,sha256=WPsATMFsc62aETExBsb1v6Ec1fL3r0CEvxwE7r2C_CA,14931
239
+ ai_edge_torch/odml_torch/export.py,sha256=PdNdFtEZcFpy4G8ikhElnil8yoYZUWHQ_180E1BGFV4,15347
240
240
  ai_edge_torch/odml_torch/export_utils.py,sha256=Eax4QUefIzpmVuQxo1y9FqJ6g0qXjg4C0IVZ5uYPscs,4899
241
241
  ai_edge_torch/odml_torch/optimization_barrier.py,sha256=2lmSiu5iXWLFWpupZHvsVeNYNzG5AVGSK3K_CNhS5Sk,2290
242
242
  ai_edge_torch/odml_torch/tf_integration.py,sha256=NN29WeXmHZ0S1RPDFHUnBi2DEjMvAtwczStPYIsQ1w8,4849
@@ -246,15 +246,21 @@ ai_edge_torch/odml_torch/composite/stablehlo_composite_builder.py,sha256=h6DQkYV
246
246
  ai_edge_torch/odml_torch/debuginfo/__init__.py,sha256=3A_lMyj-B-DOhLJG6WmjKvZK5te2rXje8FrfqOhZsN0,959
247
247
  ai_edge_torch/odml_torch/debuginfo/_build.py,sha256=6Ns2rlfOilLJEk5cUxlkRwm2uxOgEF2-0S2DMcOqr6A,3319
248
248
  ai_edge_torch/odml_torch/debuginfo/_op_polyfill.py,sha256=IvOBQyROI9WHS3umHRxsDW-1YElU9BPWzKtJA2eKWOI,1739
249
+ ai_edge_torch/odml_torch/experimental/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
250
+ ai_edge_torch/odml_torch/experimental/torch_tfl/__init__.py,sha256=MN-8wS8vZmSWr9TOoZivqzZGDPoNpy15dByM3arNnM8,968
251
+ ai_edge_torch/odml_torch/experimental/torch_tfl/_decomps.py,sha256=KEPc8wZeAukFhlfKUA2TSmRdMozqG16msnEw7JsGrTg,13256
252
+ ai_edge_torch/odml_torch/experimental/torch_tfl/_lowerings.py,sha256=9coRYoVQFtGhcWuMgZf7lRGIMpRqupbyueAqShx6ieQ,21065
253
+ ai_edge_torch/odml_torch/experimental/torch_tfl/_ops.py,sha256=gRoAf6QjER-fb4oVB05vVGDV__HiXeJgEo1WXX7TnkM,10778
254
+ ai_edge_torch/odml_torch/experimental/torch_tfl/torch_library_utils.py,sha256=9Oq3Dsc5YAkpBgPNFWTquT4TVQnOG8LOlwIabDIc10k,1236
249
255
  ai_edge_torch/odml_torch/jax_bridge/__init__.py,sha256=e9Oa4J3An9FYr3zM0OzjzyNNitEeg-IoBUGNfUxsDSA,798
250
256
  ai_edge_torch/odml_torch/jax_bridge/_wrap.py,sha256=LqwZ1vCJTSOzgzvH8LUAN-sAkF-l_pGj1AMEIzAqHCA,6638
251
257
  ai_edge_torch/odml_torch/jax_bridge/utils.py,sha256=T8isGc896VrHZ6c_L5pYmLpolQ7ibcOlgWfPuVFPzIg,2264
252
258
  ai_edge_torch/odml_torch/lowerings/__init__.py,sha256=uJ-niilt1c-D6QJzLwgvCUf62le_JsxQTlqj_iP_Ps0,1009
253
- ai_edge_torch/odml_torch/lowerings/_basic.py,sha256=sC4N5-7RS9yKecs97kM9J56enGvsZj1CJo7y79cuzRg,12784
259
+ ai_edge_torch/odml_torch/lowerings/_basic.py,sha256=HOTYfQWin8tqi1yakIyardxhRViZ6rhLV6ZomMSS7zA,17554
254
260
  ai_edge_torch/odml_torch/lowerings/_batch_norm.py,sha256=PaLI0BB6pdBW1VyfW8VTOT_Be-ZcqYdNOsyfzKfq8Cg,2064
255
261
  ai_edge_torch/odml_torch/lowerings/_convolution.py,sha256=Q0aDzyUcZMoSzSbOU-r3LJMgPe6fble0QwdYVIOHHHk,6887
256
262
  ai_edge_torch/odml_torch/lowerings/_decomp_registry.py,sha256=ybOdoFE5HIJTkyiYcc73zpyUyUpioVnAca6k0wyJPs4,2572
257
- ai_edge_torch/odml_torch/lowerings/_jax_lowerings.py,sha256=6KZc0-SM0LupOnDAgnUjj47aHk7YJ0cC1ulAeWvV5_w,19289
263
+ ai_edge_torch/odml_torch/lowerings/_jax_lowerings.py,sha256=YmyM-5HJeeYaIhmKTOnCjfX3_A1PPh1gPGUi1d8EBs8,26454
258
264
  ai_edge_torch/odml_torch/lowerings/_layer_norm.py,sha256=khJIvDVk2s332Nd2Be-5dM6-wp5DGff61HCV5lskHmQ,3011
259
265
  ai_edge_torch/odml_torch/lowerings/_quantized_decomposed.py,sha256=XDZ0zLej_XaQDJnaAAxhNFAd7NfQm5SOVEp_nno_krA,6178
260
266
  ai_edge_torch/odml_torch/lowerings/_rand.py,sha256=g6SuqDkuC6hD35lyP1-5H7ASDIzPSmKukeNT5naZSv8,4133
@@ -270,8 +276,8 @@ ai_edge_torch/testing/__init__.py,sha256=_yGgvnBZWb7T3IN3mc4x1sS4vM96HZwM8pwIcPG
270
276
  ai_edge_torch/testing/export.py,sha256=k5mGDGzwc23Z4zaIVDs8CNh-oOt64gsf9MS9NjhbPy4,3293
271
277
  ai_edge_torch/testing/model_coverage/__init__.py,sha256=5P8J6Zk5YYtDvTBucFvB9NGSRI7Gw_24WnrbhXgycEE,765
272
278
  ai_edge_torch/testing/model_coverage/model_coverage.py,sha256=UPB448aMDUyC0HNYVqio2rcJPnDN0tBQMP08J6vPYew,4718
273
- ai_edge_torch_nightly-0.7.0.dev20250929.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
274
- ai_edge_torch_nightly-0.7.0.dev20250929.dist-info/METADATA,sha256=VztFMGggEpsejPdHnw6bnlXQu8vY6nVWL8oGXbxwgW0,2074
275
- ai_edge_torch_nightly-0.7.0.dev20250929.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
276
- ai_edge_torch_nightly-0.7.0.dev20250929.dist-info/top_level.txt,sha256=5KXRaF2hwkApYxf7Y8y_tVb9aulGTlbOoNdbx1aKRkE,14
277
- ai_edge_torch_nightly-0.7.0.dev20250929.dist-info/RECORD,,
279
+ ai_edge_torch_nightly-0.8.0.dev20251206.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
280
+ ai_edge_torch_nightly-0.8.0.dev20251206.dist-info/METADATA,sha256=-BM6OyCHwhI74Y8OYtnKNLt6dYiKGkEr1mSZK5hv9Lg,2399
281
+ ai_edge_torch_nightly-0.8.0.dev20251206.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
282
+ ai_edge_torch_nightly-0.8.0.dev20251206.dist-info/top_level.txt,sha256=5KXRaF2hwkApYxf7Y8y_tVb9aulGTlbOoNdbx1aKRkE,14
283
+ ai_edge_torch_nightly-0.8.0.dev20251206.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.1)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5