lalamo 0.6.0__tar.gz → 0.6.2__tar.gz

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 (100) hide show
  1. {lalamo-0.6.0 → lalamo-0.6.2}/PKG-INFO +1 -1
  2. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/__init__.py +1 -1
  3. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/mamba.py +17 -1
  4. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/short_conv.py +2 -2
  5. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/speculator/ngram.py +1 -1
  6. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo.egg-info/PKG-INFO +1 -1
  7. {lalamo-0.6.0 → lalamo-0.6.2}/pyproject.toml +1 -0
  8. {lalamo-0.6.0 → lalamo-0.6.2}/LICENSE +0 -0
  9. {lalamo-0.6.0 → lalamo-0.6.2}/README.md +0 -0
  10. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/commands.py +0 -0
  11. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/common.py +0 -0
  12. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/data/__init__.py +0 -0
  13. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/data/huggingface_message.py +0 -0
  14. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/data/lalamo_completions.py +0 -0
  15. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/data/utils.py +0 -0
  16. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/main.py +0 -0
  17. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/message_processor.py +0 -0
  18. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/__init__.py +0 -0
  19. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/common.py +0 -0
  20. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/__init__.py +0 -0
  21. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/common.py +0 -0
  22. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/executorch.py +0 -0
  23. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/__init__.py +0 -0
  24. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/common.py +0 -0
  25. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/gemma2.py +0 -0
  26. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/gemma3.py +0 -0
  27. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/gpt_oss.py +0 -0
  28. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/lfm2.py +0 -0
  29. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/llama.py +0 -0
  30. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/llamba.py +0 -0
  31. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/mistral.py +0 -0
  32. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/modern_bert.py +0 -0
  33. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/qwen2.py +0 -0
  34. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/decoder_configs/huggingface/qwen3.py +0 -0
  35. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/huggingface_generation_config.py +0 -0
  36. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/huggingface_tokenizer_config.py +0 -0
  37. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/loaders/__init__.py +0 -0
  38. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/loaders/common.py +0 -0
  39. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/loaders/executorch.py +0 -0
  40. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/loaders/huggingface.py +0 -0
  41. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/loaders/utils.py +0 -0
  42. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/__init__.py +0 -0
  43. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/common.py +0 -0
  44. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/deepseek.py +0 -0
  45. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/essential_ai.py +0 -0
  46. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/gemma.py +0 -0
  47. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/gpt_oss.py +0 -0
  48. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/huggingface.py +0 -0
  49. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/lfm2.py +0 -0
  50. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/llama.py +0 -0
  51. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/llamba.py +0 -0
  52. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/mirai.py +0 -0
  53. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/mistral.py +0 -0
  54. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/pleias.py +0 -0
  55. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/polaris.py +0 -0
  56. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/qwen.py +0 -0
  57. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/model_import/model_specs/reka.py +0 -0
  58. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/models/__init__.py +0 -0
  59. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/models/classifier.py +0 -0
  60. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/models/common.py +0 -0
  61. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/models/language_model.py +0 -0
  62. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/__init__.py +0 -0
  63. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/activations.py +0 -0
  64. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/classifier.py +0 -0
  65. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/common.py +0 -0
  66. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/decoder.py +0 -0
  67. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/embedding.py +0 -0
  68. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/linear.py +0 -0
  69. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/mlp.py +0 -0
  70. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/mlx_interop.py +0 -0
  71. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/normalization.py +0 -0
  72. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/rope.py +0 -0
  73. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/__init__.py +0 -0
  74. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/attention.py +0 -0
  75. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/common.py +0 -0
  76. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/state/__init__.py +0 -0
  77. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/state/common.py +0 -0
  78. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/state/kv_cache.py +0 -0
  79. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/state/mamba_state.py +0 -0
  80. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/token_mixers/state/short_conv_state.py +0 -0
  81. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/torch_interop.py +0 -0
  82. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/transformer.py +0 -0
  83. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/transformer_layer.py +0 -0
  84. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/modules/utils.py +0 -0
  85. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/quantization.py +0 -0
  86. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/registry_abc.py +0 -0
  87. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/safetensors.py +0 -0
  88. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/sampling.py +0 -0
  89. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/speculator/__init__.py +0 -0
  90. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/speculator/common.py +0 -0
  91. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/speculator/estimator.py +0 -0
  92. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/speculator/inference.py +0 -0
  93. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/speculator/utils.py +0 -0
  94. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo/utils.py +0 -0
  95. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo.egg-info/SOURCES.txt +0 -0
  96. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo.egg-info/dependency_links.txt +0 -0
  97. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo.egg-info/entry_points.txt +0 -0
  98. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo.egg-info/requires.txt +0 -0
  99. {lalamo-0.6.0 → lalamo-0.6.2}/lalamo.egg-info/top_level.txt +0 -0
  100. {lalamo-0.6.0 → lalamo-0.6.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lalamo
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: JAX library for optimization and export of models for use with the UZU inference engine.
5
5
  Requires-Python: <4,>=3.12
6
6
  Description-Content-Type: text/markdown
@@ -27,7 +27,7 @@ from lalamo.speculator import (
27
27
  SpeculatorTrainingEvent,
28
28
  )
29
29
 
30
- __version__ = "0.6.0"
30
+ __version__ = "0.6.2"
31
31
 
32
32
  __all__ = [
33
33
  "AssistantMessage",
@@ -112,6 +112,7 @@ class SeparableCausalConv(LalamoModule[SeparableCausalConvConfig]):
112
112
  def __call__(
113
113
  self,
114
114
  inputs: Float[Array, "suffix_tokens channels"],
115
+ length_without_padding: Int[Array, ""] | int | None = None,
115
116
  state: Float[Array, "prefix_tokens channels"] | None = None,
116
117
  return_updated_state: bool = False,
117
118
  ) -> CausalConvResult:
@@ -136,9 +137,23 @@ class SeparableCausalConv(LalamoModule[SeparableCausalConvConfig]):
136
137
  if self.biases is not None:
137
138
  results = results + self.biases
138
139
 
140
+ if return_updated_state:
141
+ if length_without_padding is None:
142
+ length_without_padding = num_suffix_tokens
143
+ length_without_padding = jnp.asarray(length_without_padding, dtype=jnp.int32)
144
+ length_without_padding = jnp.clip(length_without_padding, 0, num_suffix_tokens)
145
+ updated_state = jax.lax.dynamic_slice_in_dim(
146
+ inputs_with_history,
147
+ start_index=length_without_padding,
148
+ slice_size=self.kernel_size - 1,
149
+ axis=0,
150
+ )
151
+ else:
152
+ updated_state = None
153
+
139
154
  return CausalConvResult(
140
155
  results,
141
- (inputs_with_history if return_updated_state else None),
156
+ updated_state,
142
157
  )
143
158
 
144
159
  def export_weights(self) -> ParameterTree:
@@ -436,6 +451,7 @@ class Mamba2(TokenMixerBase[Mamba2Config, Mamba2StateLayer]):
436
451
 
437
452
  conv_output, updated_conv_state = self.conv(
438
453
  conv_inputs,
454
+ length_without_padding,
439
455
  state.conv_state,
440
456
  return_updated_state=return_updated_state,
441
457
  )
@@ -116,7 +116,7 @@ class ShortConv(TokenMixerBase[ShortConvConfig, ShortConvStateLayer]):
116
116
  positional_embeddings: PositionalEmbeddings | None,
117
117
  state: ShortConvStateLayer | None = None,
118
118
  return_updated_state: bool = False,
119
- length_without_padding: Int[Array, ""] | int | None = None, # noqa: ARG002
119
+ length_without_padding: Int[Array, ""] | int | None = None,
120
120
  ) -> TokenMixerResult[ShortConvStateLayer]:
121
121
  if positional_embeddings is not None:
122
122
  raise ValueError("Positional embeddings are not supported for ShortConv.")
@@ -124,7 +124,7 @@ class ShortConv(TokenMixerBase[ShortConvConfig, ShortConvStateLayer]):
124
124
  pre_conv_gate, post_conv_gate, x = vmap(self.in_projection)(inputs)
125
125
 
126
126
  prev_conv_state = state.conv_state if state is not None else None
127
- conv_output = self.conv(x * pre_conv_gate, prev_conv_state, return_updated_state)
127
+ conv_output = self.conv(x * pre_conv_gate, length_without_padding, prev_conv_state, return_updated_state)
128
128
 
129
129
  (outputs,) = vmap(self.out_projection)(conv_output.outputs * post_conv_gate)
130
130
  updated_conv_state = conv_output.state
@@ -129,7 +129,7 @@ class NGramSpeculator(Speculator):
129
129
 
130
130
  return (
131
131
  memoryview(self.ngram_keys)[idx_start:idx_end],
132
- memoryview(self.ngram_values)[idx_start:idx_end].cast("f"), # noop cast to make typechecker happy
132
+ memoryview(self.ngram_values)[idx_start:idx_end].cast("c").cast("f"), # noop cast to make typechecker happy
133
133
  memoryview(self.ngram_counts)[seq_hash : (seq_hash + 1)],
134
134
  )
135
135
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lalamo
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: JAX library for optimization and export of models for use with the UZU inference engine.
5
5
  Requires-Python: <4,>=3.12
6
6
  Description-Content-Type: text/markdown
@@ -50,6 +50,7 @@ dev = [
50
50
  "ruff==0.14.0",
51
51
  "ty>=0.0.4",
52
52
  "pytest-xdist>=3.8.0",
53
+ "hypothesis>=6.150.0",
53
54
  ]
54
55
 
55
56
  [project.scripts]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes