ai-edge-torch-nightly 0.2.0.dev20240702__py3-none-any.whl → 0.2.0.dev20240704__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.

@@ -50,7 +50,7 @@ def convert_gemma_to_tflite(
50
50
  decode_token = torch.tensor([[0]], dtype=torch.long)
51
51
  decode_input_pos = torch.tensor([0], dtype=torch.int64)
52
52
 
53
- quant_config = quant_recipes.full_linear_int8_dynamic_recipe() if quantize else None
53
+ quant_config = quant_recipes.full_int8_dynamic_recipe() if quantize else None
54
54
  edge_model = (
55
55
  ai_edge_torch.signature(
56
56
  'prefill', pytorch_model, (prefill_tokens, prefill_input_pos)
@@ -48,7 +48,7 @@ def convert_phi2_to_tflite(
48
48
  decode_token = torch.tensor([[0]], dtype=torch.long)
49
49
  decode_input_pos = torch.tensor([0], dtype=torch.int64)
50
50
 
51
- quant_config = quant_recipes.full_linear_int8_dynamic_recipe() if quantize else None
51
+ quant_config = quant_recipes.full_int8_dynamic_recipe() if quantize else None
52
52
  edge_model = (
53
53
  ai_edge_torch.signature(
54
54
  'prefill', pytorch_model, (prefill_tokens, prefill_input_pos)
@@ -101,7 +101,7 @@ def convert_t5_to_tflite_multisig(checkpoint_path: str):
101
101
  # Pad with `-inf` for any tokens indices that aren't desired.
102
102
  pad_mask = torch.zeros([seq_len], dtype=torch.float32)
103
103
  hidden_states = torch.zeros((1, 512, 768), dtype=torch.float32)
104
- quant_config = quant_recipes.full_linear_int8_dynamic_recipe()
104
+ quant_config = quant_recipes.full_int8_dynamic_recipe()
105
105
 
106
106
  edge_model = (
107
107
  ai_edge_torch.signature(
@@ -70,7 +70,7 @@ class ToySingleLayerModel(torch.nn.Module):
70
70
  return self.lm_head(x)
71
71
 
72
72
 
73
- def define_and_run() -> None:
73
+ def get_model_config() -> cfg.ModelConfig:
74
74
  attn_config = cfg.AttentionConfig(
75
75
  num_heads=32, num_query_groups=4, rotary_percentage=1.0, enable_kv_cache=False
76
76
  )
@@ -91,8 +91,11 @@ def define_and_run() -> None:
91
91
  pre_ff_norm_config=norm_config,
92
92
  final_norm_config=norm_config,
93
93
  )
94
+ return config
95
+
94
96
 
95
- model = ToySingleLayerModel(config)
97
+ def define_and_run() -> None:
98
+ model = ToySingleLayerModel(get_model_config())
96
99
  idx = torch.unsqueeze(torch.arange(0, KV_CACHE_MAX_LEN), 0)
97
100
  input_pos = torch.arange(0, KV_CACHE_MAX_LEN)
98
101
  print('running an inference')
@@ -50,7 +50,7 @@ def convert_tiny_llama_to_tflite(
50
50
  decode_token = torch.tensor([[0]], dtype=torch.long)
51
51
  decode_input_pos = torch.tensor([0], dtype=torch.int64)
52
52
 
53
- quant_config = quant_recipes.full_linear_int8_dynamic_recipe() if quantize else None
53
+ quant_config = quant_recipes.full_int8_dynamic_recipe() if quantize else None
54
54
  edge_model = (
55
55
  ai_edge_torch.signature(
56
56
  'prefill', pytorch_model, (prefill_tokens, prefill_input_pos)
@@ -26,12 +26,10 @@ _TensorQuantConfig = quantizer.qtyping.TensorQuantizationConfig
26
26
  _OpQuantConfig = quantizer.qtyping.OpQuantizationConfig
27
27
 
28
28
  _DEFAULT_REGEX_STR = '.*'
29
- _ATTENTION_IDX_REGEX_STR = (
30
- 'transformer_blocks\[{}\]/ai_edge_torch.generative.layers.attention'
31
- )
32
- _FEEDFORWARD_IDX_REGEX_STR = (
33
- 'transformer_blocks\[{}\]/ai_edge_torch.generative.layers.feed_forward'
34
- )
29
+ _SINGULAR_TRANSFORMER_BLOCK_REGEX_STR = 'transformer_block'
30
+ _IDX_TRANSFORMER_BLOCKS_REGEX_STR = 'transformer_blocks\[{}\]'
31
+ _ATTENTION_REGEX_STR = 'ai_edge_torch.generative.layers.attention'
32
+ _FEEDFORWARD_REGEX_STR = 'ai_edge_torch.generative.layers.feed_forward'
35
33
  _EMBEDDING_REGEX_STR = 'Embedding_tok_embedding'
36
34
  _ANY_TWO_DIGITS_REGEX_STR = '\d{1,2}'
37
35
 
@@ -82,27 +80,20 @@ def _set_quant_config(
82
80
  layer_recipe: quant_recipe.LayerQuantRecipe,
83
81
  regex: str,
84
82
  ):
85
- support_op_list = [_OpName.FULLY_CONNECTED, _OpName.CONV_2D]
86
- if layer_recipe.algorithm == quant_attrs.Algorithm.MIN_MAX:
87
- support_op_list += [_OpName.BATCH_MATMUL, _OpName.EMBEDDING_LOOKUP]
88
- for op_name in support_op_list:
89
- rm.add_quantization_config(
90
- regex=regex,
91
- operation_name=op_name,
92
- op_config=_OpQuantConfig(
93
- weight_tensor_config=_TensorQuantConfig(
94
- num_bits=_get_nbits_from_dtype(layer_recipe.weight_dtype),
95
- symmetric=True,
96
- channel_wise=_get_channelwise_from_granularity(
97
- layer_recipe.granularity
98
- ),
99
- dtype=_get_dtype_from_dtype(layer_recipe.weight_dtype),
100
- ),
101
- execution_mode=_get_execution_mode_from_mode(layer_recipe.mode),
102
- ),
103
- algorithm_key=_get_algorithm_key_from_algorithm(layer_recipe.algorithm),
104
- override_algorithm=True,
105
- )
83
+ rm.add_quantization_config(
84
+ regex=regex,
85
+ operation_name=_OpName.ALL_SUPPORTED,
86
+ op_config=_OpQuantConfig(
87
+ weight_tensor_config=_TensorQuantConfig(
88
+ num_bits=_get_nbits_from_dtype(layer_recipe.weight_dtype),
89
+ symmetric=True,
90
+ channel_wise=_get_channelwise_from_granularity(layer_recipe.granularity),
91
+ dtype=_get_dtype_from_dtype(layer_recipe.weight_dtype),
92
+ ),
93
+ execution_mode=_get_execution_mode_from_mode(layer_recipe.mode),
94
+ ),
95
+ algorithm_key=_get_algorithm_key_from_algorithm(layer_recipe.algorithm),
96
+ )
106
97
 
107
98
 
108
99
  def translate_to_ai_edge_recipe(
@@ -119,23 +110,31 @@ def translate_to_ai_edge_recipe(
119
110
  if recipe.attention is not None:
120
111
  if isinstance(recipe.attention, dict):
121
112
  for idx, layer in recipe.attention.items():
122
- _set_quant_config(rm, layer, _ATTENTION_IDX_REGEX_STR.format(idx))
113
+ _set_quant_config(
114
+ rm,
115
+ layer,
116
+ f'{_IDX_TRANSFORMER_BLOCKS_REGEX_STR.format(idx)}/{_ATTENTION_REGEX_STR}',
117
+ )
123
118
  else:
124
119
  _set_quant_config(
125
120
  rm,
126
121
  recipe.attention,
127
- _ATTENTION_IDX_REGEX_STR.format(_ANY_TWO_DIGITS_REGEX_STR),
122
+ f'{_SINGULAR_TRANSFORMER_BLOCK_REGEX_STR}/{_ATTENTION_REGEX_STR}',
128
123
  )
129
124
 
130
125
  if recipe.feedforward is not None:
131
126
  if isinstance(recipe.feedforward, dict):
132
127
  for idx, layer in recipe.feedforward.items():
133
- _set_quant_config(rm, layer, _FEEDFORWARD_IDX_REGEX_STR.format(idx))
128
+ _set_quant_config(
129
+ rm,
130
+ layer,
131
+ f'{_IDX_TRANSFORMER_BLOCKS_REGEX_STR.format(idx)}/{_FEEDFORWARD_REGEX_STR}',
132
+ )
134
133
  else:
135
134
  _set_quant_config(
136
135
  rm,
137
136
  recipe.feedforward,
138
- _FEEDFORWARD_IDX_REGEX_STR.format(_ANY_TWO_DIGITS_REGEX_STR),
137
+ f'{_SINGULAR_TRANSFORMER_BLOCK_REGEX_STR}/{_FEEDFORWARD_REGEX_STR}',
139
138
  )
140
139
 
141
140
  return rm.get_quantization_recipe()
@@ -144,21 +143,6 @@ def translate_to_ai_edge_recipe(
144
143
  def quantize_model(
145
144
  model: bytearray, recipe: quantizer.recipe_manager.ModelQuantizationRecipe
146
145
  ) -> bytearray:
147
- # TODO(b/336599483): Remove tempfile and use bytearray instead
148
- tmp_model_path = '/tmp/tmp.tflite'
149
- tmp_recipe_path = '/tmp/recipe.json'
150
- with open(tmp_model_path, 'wb') as fp:
151
- fp.write(model)
152
- with open(tmp_recipe_path, 'w') as rp:
153
- rp.write(json.dumps(recipe))
154
-
155
- qt = quantizer.Quantizer(tmp_model_path, tmp_recipe_path)
146
+ qt = quantizer.Quantizer(bytearray(model), recipe)
156
147
  result = qt.quantize()
157
-
158
- # TODO(b/336599483): Remove tempfile and use bytearray instead
159
- import os
160
-
161
- os.remove(tmp_model_path)
162
- os.remove(tmp_recipe_path)
163
-
164
148
  return result.quantized_model
@@ -31,7 +31,7 @@ def main():
31
31
  input_pos = torch.arange(0, 10)
32
32
 
33
33
  # Create a quantization recipe to be applied to the model
34
- quant_config = quant_recipes.full_linear_int8_dynamic_recipe()
34
+ quant_config = quant_recipes.full_int8_dynamic_recipe()
35
35
  print(quant_config)
36
36
 
37
37
  # Convert with quantization
@@ -21,7 +21,7 @@ ai_edge_torch/generative/layers/model_config.py:ModelConfig.
21
21
 
22
22
  Typical usage example:
23
23
 
24
- quant_config = quant_recipes.full_linear_int8_dynamic_recipe()
24
+ quant_config = quant_recipes.full_int8_dynamic_recipe()
25
25
  edge_model = ai_edge_torch.convert(
26
26
  model, (tokens, input_pos), quant_config=quant_config
27
27
  )
@@ -32,7 +32,7 @@ from ai_edge_torch.generative.quantize import quant_recipe_utils
32
32
  from ai_edge_torch.quantize import quant_config
33
33
 
34
34
 
35
- def full_linear_int8_dynamic_recipe() -> quant_config.QuantConfig:
35
+ def full_int8_dynamic_recipe() -> quant_config.QuantConfig:
36
36
  return quant_config.QuantConfig(
37
37
  generative_recipe=quant_recipe.GenerativeQuantRecipe(
38
38
  default=quant_recipe_utils.create_layer_quant_int8_dynamic(),
@@ -19,7 +19,7 @@ from parameterized import parameterized
19
19
  import torch
20
20
 
21
21
  import ai_edge_torch
22
- from ai_edge_torch.generative.examples.test_models import toy_model_with_kv_cache # NOQA
22
+ from ai_edge_torch.generative.examples.test_models import toy_model # NOQA
23
23
  from ai_edge_torch.generative.quantize import quant_recipe
24
24
  from ai_edge_torch.generative.quantize import quant_recipe_utils
25
25
  from ai_edge_torch.generative.quantize import quant_recipes
@@ -93,35 +93,33 @@ class TestVerifyRecipes(unittest.TestCase):
93
93
  class TestQuantizeConvert(unittest.TestCase):
94
94
  """Test conversion with quantization."""
95
95
 
96
- def _attention_1_int8_dynamic_recipe() -> quant_config.QuantConfig:
96
+ def _attention_int8_dynamic_recipe() -> quant_config.QuantConfig:
97
97
  return quant_config.QuantConfig(
98
98
  generative_recipe=quant_recipe.GenerativeQuantRecipe(
99
- attention={1: quant_recipe_utils.create_layer_quant_int8_dynamic()},
99
+ attention=quant_recipe_utils.create_layer_quant_int8_dynamic(),
100
100
  )
101
101
  )
102
102
 
103
- def _feedforward_0_int8_dynamic_recipe() -> quant_config.QuantConfig:
103
+ def _feedforward_int8_dynamic_recipe() -> quant_config.QuantConfig:
104
104
  return quant_config.QuantConfig(
105
105
  generative_recipe=quant_recipe.GenerativeQuantRecipe(
106
- feedforward={0: quant_recipe_utils.create_layer_quant_int8_dynamic()},
106
+ feedforward=quant_recipe_utils.create_layer_quant_int8_dynamic(),
107
107
  )
108
108
  )
109
109
 
110
110
  @parameterized.expand(
111
111
  [
112
- (quant_recipes.full_fp16_recipe(), 0.75),
113
- (quant_recipes.full_linear_int8_dynamic_recipe(), 0.64),
114
- (_attention_1_int8_dynamic_recipe(), 0.95),
115
- (_feedforward_0_int8_dynamic_recipe(), 0.87),
112
+ (quant_recipes.full_fp16_recipe(), 0.65),
113
+ (quant_recipes.full_int8_dynamic_recipe(), 0.47),
114
+ (_attention_int8_dynamic_recipe(), 0.89),
115
+ (_feedforward_int8_dynamic_recipe(), 0.72),
116
116
  ]
117
117
  )
118
118
  def test_quantize_convert_toy_sizes(self, quant_config, expected_compression):
119
- self.skipTest("b/346896669")
120
- config = toy_model_with_kv_cache.get_model_config()
121
- pytorch_model = toy_model_with_kv_cache.ToyModelWithKV(config)
122
- idx, input_pos = torch.tensor([[1]], dtype=torch.long), torch.tensor(
123
- [10], dtype=torch.int64
124
- )
119
+ config = toy_model.get_model_config()
120
+ pytorch_model = toy_model.ToySingleLayerModel(config)
121
+ idx = torch.unsqueeze(torch.arange(0, 100), 0)
122
+ input_pos = torch.arange(0, 100)
125
123
 
126
124
  quantized_model = ai_edge_torch.convert(
127
125
  pytorch_model, (idx, input_pos), quant_config=quant_config
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ai-edge-torch-nightly
3
- Version: 0.2.0.dev20240702
3
+ Version: 0.2.0.dev20240704
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
@@ -27,7 +27,7 @@ Requires-Dist: numpy
27
27
  Requires-Dist: scipy
28
28
  Requires-Dist: safetensors
29
29
  Requires-Dist: tabulate
30
- Requires-Dist: torch ==2.4.*
30
+ Requires-Dist: torch >2.3
31
31
 
32
32
  Library that supports converting PyTorch models into a .tflite format, which can
33
33
  then be run with TensorFlow Lite and MediaPipe. This enables applications for
@@ -36,10 +36,10 @@ ai_edge_torch/experimental/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrK
36
36
  ai_edge_torch/generative/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
37
37
  ai_edge_torch/generative/examples/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
38
38
  ai_edge_torch/generative/examples/gemma/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
39
- ai_edge_torch/generative/examples/gemma/convert_to_tflite.py,sha256=dZv3r24uHsTMokEdnl3nf7LpmV0q7FLnVtCuHn5AuUs,2538
39
+ ai_edge_torch/generative/examples/gemma/convert_to_tflite.py,sha256=UMEZGDGhFvAX4eT5KHAE1Xbxw-qtQWEMxgvB8cSH6wY,2531
40
40
  ai_edge_torch/generative/examples/gemma/gemma.py,sha256=1lZfXGHmbII4rFu0U2B9NzlJCRhphxtmQtkCHQ39_uw,5935
41
41
  ai_edge_torch/generative/examples/phi2/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
42
- ai_edge_torch/generative/examples/phi2/convert_to_tflite.py,sha256=6nOuwx9q3AUlYcjXRRXSr_3M2JKqdJ-vUf-uE3VFYHE,2512
42
+ ai_edge_torch/generative/examples/phi2/convert_to_tflite.py,sha256=uF1A2EX8xYie30-T2Z7s1WZCtFhp5CEwRV8SCd7Umrc,2505
43
43
  ai_edge_torch/generative/examples/phi2/phi2.py,sha256=PMhKC6JCAMYSj2F3UmWHWK4rTcXD-B6PuehaoDccRqk,5562
44
44
  ai_edge_torch/generative/examples/stable_diffusion/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
45
45
  ai_edge_torch/generative/examples/stable_diffusion/attention.py,sha256=Lo4Dq7a3Kg-lyH56iqGtqCo5UaClQHRCTDdNagXGTo8,3535
@@ -57,15 +57,15 @@ ai_edge_torch/generative/examples/stable_diffusion/samplers/k_euler_ancestral.py
57
57
  ai_edge_torch/generative/examples/stable_diffusion/samplers/k_lms.py,sha256=iPYX9ZSaxwSak2KI44j6TEr_g4pdxS3xpka4u0trjbo,2788
58
58
  ai_edge_torch/generative/examples/stable_diffusion/samplers/sampler.py,sha256=5iRfU5MO6GR6K3WrdddIU_9U7ZZGEEb7zGKVY1WFl-8,1340
59
59
  ai_edge_torch/generative/examples/t5/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
60
- ai_edge_torch/generative/examples/t5/convert_to_tflite.py,sha256=bWtwtUacvJOEDUpuYvLTgkP7oTkXKJA-Tf4FPxlD1Cw,4536
60
+ ai_edge_torch/generative/examples/t5/convert_to_tflite.py,sha256=7RwaZQaKhFt3zKAUbFjq95CSYhL1nd9BVSbSRNJp4-4,4529
61
61
  ai_edge_torch/generative/examples/t5/t5.py,sha256=L6YrVzUEzP-Imb8W28LdukFGrx1aWSzz1kyYK_9RFZM,21087
62
62
  ai_edge_torch/generative/examples/t5/t5_attention.py,sha256=rkMwi-NJGBXHm5S57Rsj1LbcoVdyRkS7GmIBuU6F_2E,8274
63
63
  ai_edge_torch/generative/examples/test_models/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
64
- ai_edge_torch/generative/examples/test_models/toy_model.py,sha256=CUXsQ_IU96NaCg9jyfeKI0Zz2iWDkJUsPJyPR1Pgz7I,3813
64
+ ai_edge_torch/generative/examples/test_models/toy_model.py,sha256=Sf3ZMYv-iuMRKAKLow47qth8vTF1zl6i8TxJ9uT_StU,3885
65
65
  ai_edge_torch/generative/examples/test_models/toy_model_with_external_kv_cache.py,sha256=zwCmCnhr-vhBwHqv9i7xMasdBGVNqAGxZvWsncsJn58,5543
66
66
  ai_edge_torch/generative/examples/test_models/toy_model_with_kv_cache.py,sha256=lfYUiem_Pbn3vGgPx84BeI8n7rN3-1fImwCLm8Eo2U8,4853
67
67
  ai_edge_torch/generative/examples/tiny_llama/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- ai_edge_torch/generative/examples/tiny_llama/convert_to_tflite.py,sha256=E4I5OlC4zyl5cxiiu7uTED-zcwYRu210lP1zuT3xLBE,2566
68
+ ai_edge_torch/generative/examples/tiny_llama/convert_to_tflite.py,sha256=nT7Fh-f5ZdwaK3dPoCvZflpJ4fRHjLdFMjk1_uw3-b8,2559
69
69
  ai_edge_torch/generative/examples/tiny_llama/tiny_llama.py,sha256=IFRLPG9wz_aLl_zV_6CETCjSM03ukA6bZqqyDLVACuw,5651
70
70
  ai_edge_torch/generative/fx_passes/__init__.py,sha256=aXvYiaHDvETIrh0Q9DDZA_ZBiazGk80DT6nt7lLtC1o,1172
71
71
  ai_edge_torch/generative/fx_passes/remove_sdpa_zero_mask_pass.py,sha256=IehLwFNwa0C9fnk1pmNmyfuAwwWbuwdyKy46BSqNVdI,1948
@@ -84,18 +84,18 @@ ai_edge_torch/generative/layers/unet/blocks_2d.py,sha256=H45wsXA6iJi_Mjd66NiQrh7
84
84
  ai_edge_torch/generative/layers/unet/builder.py,sha256=NmJiZ2-e1wbv9jnvI3VCyUJlONV5ZAOz-RTc7ipAZ5U,1872
85
85
  ai_edge_torch/generative/layers/unet/model_config.py,sha256=FrIO-CR8aRIV2i8aFqom_4S7WCEDLMyYwo6U0oFyn7A,9097
86
86
  ai_edge_torch/generative/quantize/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
87
- ai_edge_torch/generative/quantize/example.py,sha256=t-YwyKSPAG-OZC1DfH-0vfie2RHHpTSQjxUY-tmhu5g,1543
87
+ ai_edge_torch/generative/quantize/example.py,sha256=Oy-Ss1oKXMu5RVOGt8QiUwKtrHEfhbVjTXXjxPcOqDA,1536
88
88
  ai_edge_torch/generative/quantize/quant_attrs.py,sha256=n1Fm8BFC8gJa_oiwwAOOghJyHtOXYZ4q-5ZRy4pHrIw,1957
89
89
  ai_edge_torch/generative/quantize/quant_recipe.py,sha256=Y8zahKw7b_h7ajPaJZVef4jG-MoqImRCpVSbFtV_i24,5139
90
90
  ai_edge_torch/generative/quantize/quant_recipe_utils.py,sha256=-vd6Qp0BdXJVKg4f0_hhwbKOi3QPIAPVqyXnJ-ZnISQ,1915
91
- ai_edge_torch/generative/quantize/quant_recipes.py,sha256=9ItD70jQRXMEhWod-nUfEeoWGJUUu6V9YOffF07VU9g,1795
91
+ ai_edge_torch/generative/quantize/quant_recipes.py,sha256=4OdKES9BhofzFoHut4qPVh-3ndVL9fu-BNOEEZc_2xE,1781
92
92
  ai_edge_torch/generative/quantize/supported_schemes.py,sha256=FjdycEOvxRgBmQdZVufetPvkDoD7rUowIOSKV9oV5Kk,1418
93
93
  ai_edge_torch/generative/quantize/ai_edge_quantizer_glue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- ai_edge_torch/generative/quantize/ai_edge_quantizer_glue/translate_recipe.py,sha256=qUB4f2DoB14dLkNPWf6TZodpT81mfAJeWM-lCAmkuHY,5735
94
+ ai_edge_torch/generative/quantize/ai_edge_quantizer_glue/translate_recipe.py,sha256=iTNPrlubmq9ia7C3zHl50J2YEMsc4o33GwL5tr5VkkE,5229
95
95
  ai_edge_torch/generative/test/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
96
96
  ai_edge_torch/generative/test/loader_test.py,sha256=N88CbrLW7Q2x1EyurwdXQ6YjsA-ySQcPxpZH3QOGp-M,3317
97
97
  ai_edge_torch/generative/test/test_model_conversion.py,sha256=LsPTrLC1I4JW2GowTS3V9Eu257vLHr2Yj5f_qaFUX84,7589
98
- ai_edge_torch/generative/test/test_quantize.py,sha256=IjCbCPWzIgXk3s7y7SJsg2usIxhOqs3PuhFvEYR4Sdw,5388
98
+ ai_edge_torch/generative/test/test_quantize.py,sha256=TxZwe2cCTfwq9t2thBuYiLdp5Xu2cspCbQgziZ3Oo7k,5269
99
99
  ai_edge_torch/generative/utilities/__init__.py,sha256=-_jxnnFnCgnTU4oTm4MnRsvL5lqhomBNdFBbqfmfHPo,720
100
100
  ai_edge_torch/generative/utilities/loader.py,sha256=Hs92478j1g4jQGvbdP1aWvOy907HjwqQZE-NFy6HELo,11326
101
101
  ai_edge_torch/generative/utilities/stable_diffusion_loader.py,sha256=7ChqrnthD7I-Be6vkRvYTRhbGQ3tqMbikLpjY5HpSzE,30890
@@ -114,8 +114,8 @@ ai_edge_torch/quantize/quant_config.py,sha256=eO9Ra160ITjQSyRBEGy6nNIVH3gYacSWDd
114
114
  ai_edge_torch/testing/__init__.py,sha256=hHLluseD2R0Hh4W6XZRIXY_dRQeYudjsrKGf6LZz65g,671
115
115
  ai_edge_torch/testing/model_coverage/__init__.py,sha256=5P8J6Zk5YYtDvTBucFvB9NGSRI7Gw_24WnrbhXgycEE,765
116
116
  ai_edge_torch/testing/model_coverage/model_coverage.py,sha256=EIyKz-HY70DguWuSrJal8LpYXQ5ZSEUf3ZrVl7jikFM,4286
117
- ai_edge_torch_nightly-0.2.0.dev20240702.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
118
- ai_edge_torch_nightly-0.2.0.dev20240702.dist-info/METADATA,sha256=yNbT2nyEGorcu8dwcB351bUhe0SLBaFWGhwOUBJE9zA,1748
119
- ai_edge_torch_nightly-0.2.0.dev20240702.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
120
- ai_edge_torch_nightly-0.2.0.dev20240702.dist-info/top_level.txt,sha256=5KXRaF2hwkApYxf7Y8y_tVb9aulGTlbOoNdbx1aKRkE,14
121
- ai_edge_torch_nightly-0.2.0.dev20240702.dist-info/RECORD,,
117
+ ai_edge_torch_nightly-0.2.0.dev20240704.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
118
+ ai_edge_torch_nightly-0.2.0.dev20240704.dist-info/METADATA,sha256=DbANuyw0pYE-vq-W-4FVRF74JxmePY4R_imax8GmIT4,1745
119
+ ai_edge_torch_nightly-0.2.0.dev20240704.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
120
+ ai_edge_torch_nightly-0.2.0.dev20240704.dist-info/top_level.txt,sha256=5KXRaF2hwkApYxf7Y8y_tVb9aulGTlbOoNdbx1aKRkE,14
121
+ ai_edge_torch_nightly-0.2.0.dev20240704.dist-info/RECORD,,