lalamo 0.5.2__py3-none-any.whl → 0.5.3__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.
- lalamo/__init__.py +3 -2
- lalamo/data/__init__.py +0 -1
- lalamo/data/huggingface_message.py +1 -0
- lalamo/main.py +167 -18
- lalamo/message_processor.py +2 -3
- lalamo/model_import/common.py +120 -27
- lalamo/model_import/decoder_configs/__init__.py +4 -2
- lalamo/model_import/decoder_configs/common.py +62 -21
- lalamo/model_import/decoder_configs/executorch.py +14 -9
- lalamo/model_import/decoder_configs/huggingface/__init__.py +4 -2
- lalamo/model_import/decoder_configs/huggingface/common.py +38 -12
- lalamo/model_import/decoder_configs/huggingface/gemma2.py +15 -10
- lalamo/model_import/decoder_configs/huggingface/gemma3.py +19 -16
- lalamo/model_import/decoder_configs/huggingface/gpt_oss.py +16 -10
- lalamo/model_import/decoder_configs/huggingface/llama.py +16 -11
- lalamo/model_import/decoder_configs/huggingface/llamba.py +23 -14
- lalamo/model_import/decoder_configs/huggingface/mistral.py +16 -11
- lalamo/model_import/decoder_configs/huggingface/modern_bert.py +241 -0
- lalamo/model_import/decoder_configs/huggingface/qwen2.py +17 -10
- lalamo/model_import/decoder_configs/huggingface/qwen3.py +15 -10
- lalamo/model_import/loaders/__init__.py +3 -2
- lalamo/model_import/loaders/executorch.py +24 -12
- lalamo/model_import/loaders/huggingface.py +258 -30
- lalamo/model_import/model_specs/__init__.py +4 -2
- lalamo/model_import/model_specs/common.py +8 -2
- lalamo/model_import/model_specs/gemma.py +5 -1
- lalamo/model_import/model_specs/huggingface.py +1 -1
- lalamo/model_import/model_specs/mirai.py +20 -0
- lalamo/models/__init__.py +10 -0
- lalamo/models/common.py +81 -0
- lalamo/{language_model.py → models/language_model.py} +32 -49
- lalamo/models/router.py +59 -0
- lalamo/modules/__init__.py +33 -16
- lalamo/modules/classifier.py +339 -0
- lalamo/modules/common.py +6 -3
- lalamo/modules/decoder.py +52 -180
- lalamo/modules/mlp.py +28 -5
- lalamo/modules/normalization.py +13 -8
- lalamo/modules/token_mixers/attention.py +10 -6
- lalamo/modules/token_mixers/state/kv_cache.py +14 -4
- lalamo/modules/transformer.py +273 -0
- lalamo/modules/{decoder_layer.py → transformer_layer.py} +62 -45
- lalamo/speculator/__init__.py +2 -0
- lalamo/speculator/estimator.py +91 -0
- lalamo/speculator/inference.py +28 -9
- lalamo/speculator/ngram.py +7 -3
- lalamo/speculator/utils.py +4 -2
- {lalamo-0.5.2.dist-info → lalamo-0.5.3.dist-info}/METADATA +1 -1
- lalamo-0.5.3.dist-info/RECORD +88 -0
- lalamo-0.5.2.dist-info/RECORD +0 -80
- {lalamo-0.5.2.dist-info → lalamo-0.5.3.dist-info}/WHEEL +0 -0
- {lalamo-0.5.2.dist-info → lalamo-0.5.3.dist-info}/entry_points.txt +0 -0
- {lalamo-0.5.2.dist-info → lalamo-0.5.3.dist-info}/licenses/LICENSE +0 -0
- {lalamo-0.5.2.dist-info → lalamo-0.5.3.dist-info}/top_level.txt +0 -0
lalamo/speculator/inference.py
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import functools
|
|
1
2
|
from collections.abc import Callable, Iterable
|
|
2
3
|
from itertools import batched, chain
|
|
3
4
|
from typing import NamedTuple
|
|
4
5
|
|
|
6
|
+
import jax
|
|
5
7
|
import jax.numpy as jnp
|
|
6
8
|
|
|
7
9
|
from lalamo.data.lalamo_completions import LalamoCompletion
|
|
8
10
|
from lalamo.data.utils import get_prefixes_ending_in_user_message
|
|
9
|
-
from lalamo.language_model import LanguageModel
|
|
10
11
|
from lalamo.message_processor import Message
|
|
12
|
+
from lalamo.models import LanguageModel
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
class CollectTracesEvent(NamedTuple):
|
|
@@ -25,6 +27,21 @@ def inference_collect_traces(
|
|
|
25
27
|
tokens_to_generate: int | None = None,
|
|
26
28
|
progress_callback: Callable[[CollectTracesEvent], None] | None = None,
|
|
27
29
|
) -> Iterable[LalamoCompletion]:
|
|
30
|
+
generate_tokens_compiled = (
|
|
31
|
+
jax.jit(
|
|
32
|
+
functools.partial(
|
|
33
|
+
model.generate_tokens,
|
|
34
|
+
max_output_length=max_output_length,
|
|
35
|
+
num_top_logits_to_return=num_top_logits_to_collect,
|
|
36
|
+
),
|
|
37
|
+
)
|
|
38
|
+
.lower(
|
|
39
|
+
prompt_token_ids=jax.ShapeDtypeStruct((batch_size, max_input_length), jnp.int32),
|
|
40
|
+
prompt_lengths_without_padding=jax.ShapeDtypeStruct((batch_size,), jnp.int32),
|
|
41
|
+
)
|
|
42
|
+
.compile()
|
|
43
|
+
)
|
|
44
|
+
|
|
28
45
|
prefixes = chain.from_iterable(map(get_prefixes_ending_in_user_message, conversations))
|
|
29
46
|
|
|
30
47
|
tokenized_prefixes = map(model.message_processor.tokenize_request, prefixes)
|
|
@@ -32,22 +49,24 @@ def inference_collect_traces(
|
|
|
32
49
|
|
|
33
50
|
tokens_generated, sequences_processed = 0, 0
|
|
34
51
|
|
|
35
|
-
for
|
|
52
|
+
for real_batch in batched(filtered_prefixes, n=batch_size):
|
|
53
|
+
batch_padding = batch_size - len(real_batch)
|
|
54
|
+
batch = (*real_batch, *(([0],) * batch_padding))
|
|
55
|
+
|
|
36
56
|
length_without_padding = jnp.array(list(map(len, batch)))
|
|
37
|
-
max_len = max(map(len, batch))
|
|
38
57
|
|
|
39
58
|
padded = jnp.array(
|
|
40
|
-
[jnp.pad(jnp.array(tokens), (0,
|
|
59
|
+
[jnp.pad(jnp.array(tokens), (0, max_input_length - len(tokens)), constant_values=0) for tokens in batch],
|
|
41
60
|
)
|
|
42
61
|
|
|
43
|
-
generated =
|
|
44
|
-
padded,
|
|
62
|
+
generated = generate_tokens_compiled(
|
|
63
|
+
prompt_token_ids=padded,
|
|
45
64
|
prompt_lengths_without_padding=length_without_padding,
|
|
46
|
-
max_output_length=max_output_length,
|
|
47
|
-
num_top_logits_to_return=num_top_logits_to_collect,
|
|
48
65
|
)
|
|
66
|
+
|
|
49
67
|
assert generated.top_k_token_ids is not None and generated.top_k_token_logits is not None
|
|
50
|
-
|
|
68
|
+
|
|
69
|
+
for conv_idx in range(len(real_batch)):
|
|
51
70
|
token_ids = generated.token_ids[conv_idx].tolist()
|
|
52
71
|
seqlen = next((i + 1 for i, t in enumerate(token_ids) if t in model.stop_token_ids), len(token_ids))
|
|
53
72
|
if tokens_to_generate is not None:
|
lalamo/speculator/ngram.py
CHANGED
|
@@ -23,12 +23,14 @@ def seqhash(tokens: Iterable[int], size: int) -> int:
|
|
|
23
23
|
|
|
24
24
|
return xxhash.xxh3_64_intdigest(packed) % size
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
|
|
27
|
+
def padded_sliding_window(seq: Iterable[int], size: int, pad: int) -> Iterable[tuple[int, ...]]:
|
|
27
28
|
seqs = tee(seq, size)
|
|
28
29
|
pads = tuple(repeat(pad, size - i) for i in range(size))
|
|
29
30
|
padded_seqs = tuple(chain(pad, seq) for pad, seq in zip(pads, seqs, strict=True))
|
|
30
31
|
return zip(*padded_seqs, strict=False)
|
|
31
32
|
|
|
33
|
+
|
|
32
34
|
def softmax(logits: Iterable[float]) -> list[float]:
|
|
33
35
|
logits = list(logits)
|
|
34
36
|
log_max = max(logits)
|
|
@@ -36,9 +38,11 @@ def softmax(logits: Iterable[float]) -> list[float]:
|
|
|
36
38
|
exp_log_sum = sum(exp_logs)
|
|
37
39
|
return [exp_log / exp_log_sum for exp_log in exp_logs]
|
|
38
40
|
|
|
41
|
+
|
|
39
42
|
def online_mean(old_mean: float, sample: float, new_count: int) -> float:
|
|
40
43
|
return old_mean + (sample - old_mean) / new_count
|
|
41
44
|
|
|
45
|
+
|
|
42
46
|
def update_probs(old_mean: dict[int, float], sample: dict[int, float], new_count: int, top_k: int) -> dict[int, float]:
|
|
43
47
|
all_keys = set(old_mean.keys()).union(sample.keys())
|
|
44
48
|
|
|
@@ -115,7 +119,7 @@ class NGramSpeculator(Speculator):
|
|
|
115
119
|
seq = list(seq)
|
|
116
120
|
ngram_ctx = self.ngram_n - 1
|
|
117
121
|
if ngram_ctx > 0:
|
|
118
|
-
padded_seq = [*repeat(self.ngram_pad, max(ngram_ctx - len(seq), 0)), *seq[-ngram_ctx
|
|
122
|
+
padded_seq = [*repeat(self.ngram_pad, max(ngram_ctx - len(seq), 0)), *seq[-ngram_ctx:]]
|
|
119
123
|
else:
|
|
120
124
|
padded_seq = []
|
|
121
125
|
|
|
@@ -125,7 +129,7 @@ class NGramSpeculator(Speculator):
|
|
|
125
129
|
|
|
126
130
|
return (
|
|
127
131
|
memoryview(self.ngram_keys)[idx_start:idx_end],
|
|
128
|
-
memoryview(self.ngram_values)[idx_start:idx_end],
|
|
132
|
+
memoryview(self.ngram_values)[idx_start:idx_end], # type: ignore (typechecker bug)
|
|
129
133
|
memoryview(self.ngram_counts)[seq_hash : (seq_hash + 1)],
|
|
130
134
|
)
|
|
131
135
|
|
lalamo/speculator/utils.py
CHANGED
|
@@ -19,7 +19,7 @@ def train_speculator(
|
|
|
19
19
|
) -> None:
|
|
20
20
|
trained_tokens = 0
|
|
21
21
|
|
|
22
|
-
for trained_sequences,trace in enumerate(traces, start=1):
|
|
22
|
+
for trained_sequences, trace in enumerate(traces, start=1):
|
|
23
23
|
if tokens_to_train is not None and trained_tokens + len(trace.completion_token_ids) > tokens_to_train:
|
|
24
24
|
end = tokens_to_train - trained_tokens
|
|
25
25
|
else:
|
|
@@ -39,7 +39,9 @@ def train_speculator(
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
def test_speculator(
|
|
42
|
-
speculator: Speculator,
|
|
42
|
+
speculator: Speculator,
|
|
43
|
+
sequence: Iterable[int] = [],
|
|
44
|
+
max_completion_length: int = 32,
|
|
43
45
|
) -> list[int]:
|
|
44
46
|
sequence = list(sequence)
|
|
45
47
|
for _ in range(max_completion_length):
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
lalamo/__init__.py,sha256=73kn0_kihCLuXfVhyj3a7ID-_zimVU2KweXJVSBZGUw,501
|
|
2
|
+
lalamo/common.py,sha256=5NUFD26yQgOnEEk3LaQnce8n-VwJxILkEpFesHZhtQU,3820
|
|
3
|
+
lalamo/main.py,sha256=Lqv-lU6hRSqbJeVOheZoKllK1LaPHTuR_8jNTPC7UZg,23956
|
|
4
|
+
lalamo/message_processor.py,sha256=bSUAQg7CemLTnBV4LtPxJBicAalruDCA-JXjkTYPZ8U,5797
|
|
5
|
+
lalamo/quantization.py,sha256=8o6ryIZLzzDYQuvBTboPfaVVdfijAKGpTxOcg3GKVD8,2752
|
|
6
|
+
lalamo/registry_abc.py,sha256=ENjXiD_wEH100fNjG-W5Em1L_EQ0Lf0pdRhRGvf3qZk,2197
|
|
7
|
+
lalamo/sampling.py,sha256=g_dNiJyZrRqoQIiLid4cr6nRT9N5tSz3GtHr8Bt4n-E,3404
|
|
8
|
+
lalamo/utils.py,sha256=9kg5P19eaqGrSyAiNSbdfOwrv4s1PJZTHYdiNctlBSY,4368
|
|
9
|
+
lalamo/data/__init__.py,sha256=exfhBLxHrg7BWutM0tAln5QuIWlNQmOhaG2noFYxfPI,189
|
|
10
|
+
lalamo/data/huggingface_message.py,sha256=-7lN9eIcETQzt1Pnx3d4d8p3_I7WYMNf4mp1P91N7fI,1115
|
|
11
|
+
lalamo/data/lalamo_completions.py,sha256=U_m3UNSJASUFz3rJq_taZOtL_U4B8Oj-ndkTF-JH-v4,1509
|
|
12
|
+
lalamo/data/utils.py,sha256=B96gLaULyStKYuR8wjFdTpFc6YIDC8EEvGh1eiMe_Ec,338
|
|
13
|
+
lalamo/model_import/__init__.py,sha256=Z8pS9rbKKx1QgUy7KZtHxiNWlZhII3mdovT9d37vAxg,168
|
|
14
|
+
lalamo/model_import/common.py,sha256=dS8HbDCSReaffJ0WWdVpYjk-VGv_Ga8C3GN7z6bdxlY,11992
|
|
15
|
+
lalamo/model_import/huggingface_generation_config.py,sha256=mot6VQ6ezCtEhN6VjhnvaU-nR5P5T2BuBUgpFNnWJxU,1495
|
|
16
|
+
lalamo/model_import/huggingface_tokenizer_config.py,sha256=xvwdmio7b9nhn2H3uMBVligiYj58JaCFCvHY3-8dBvM,2502
|
|
17
|
+
lalamo/model_import/decoder_configs/__init__.py,sha256=1ZqMcEHvCJjMIZ9iNyY31XMXOaFxB-NbqIU01BtmcEk,641
|
|
18
|
+
lalamo/model_import/decoder_configs/common.py,sha256=L8PCgF5fIt3RqPlmLiJpBzDguKk9iTjk4XSItxwVG4c,3260
|
|
19
|
+
lalamo/model_import/decoder_configs/executorch.py,sha256=fTEG_j-7d8riR3Fu_H5tHDjOTrWevfyw7QbWF1mUdOQ,5924
|
|
20
|
+
lalamo/model_import/decoder_configs/huggingface/__init__.py,sha256=3H7GPTFNNahEvI8D1SGg2mGBgPhsIdZ213MglwbGDlE,645
|
|
21
|
+
lalamo/model_import/decoder_configs/huggingface/common.py,sha256=YYIDEQy8x7lqL2qtxUHrNqfjZEiizBZ_26sTqOzjRtQ,3792
|
|
22
|
+
lalamo/model_import/decoder_configs/huggingface/gemma2.py,sha256=g8LH_GlSNyL04WWi596zI0rWsD3ahnfNjDk-9zZNcDE,4759
|
|
23
|
+
lalamo/model_import/decoder_configs/huggingface/gemma3.py,sha256=KlhL7y6lW_cUgsT2JjvlQbsuKZggI8DG5wazZZBk0zM,7415
|
|
24
|
+
lalamo/model_import/decoder_configs/huggingface/gpt_oss.py,sha256=MBCoPbuWyzbJiBRtHOtpaPHJjQ1UVCAYcVrfIejTnlQ,7446
|
|
25
|
+
lalamo/model_import/decoder_configs/huggingface/llama.py,sha256=UPeQiz2Dix8YaZYRxn9z44OZJ6c4xBQmcUZcM0Ymvh4,6934
|
|
26
|
+
lalamo/model_import/decoder_configs/huggingface/llamba.py,sha256=ANB-vQK8U-zVFubZSTDXXt2S70T5SVOGzf7eOVvPzIQ,5773
|
|
27
|
+
lalamo/model_import/decoder_configs/huggingface/mistral.py,sha256=MDGC0ivzJuUpOC11n8vFdcVzqccUyaRw_hkL74mVlAg,4599
|
|
28
|
+
lalamo/model_import/decoder_configs/huggingface/modern_bert.py,sha256=A8nNIMhPVumvPWIFR3RexRc6XkFyUd_3mmNpmvyPEGE,8816
|
|
29
|
+
lalamo/model_import/decoder_configs/huggingface/qwen2.py,sha256=n3qIANMPbtQsTtk5QEWWFZ6R85eDxR_kaZd0NDlJ3T4,5786
|
|
30
|
+
lalamo/model_import/decoder_configs/huggingface/qwen3.py,sha256=lySVO-TvusAYUjDnMz-EshZHNrlNl08Xr-XqErt7K5E,6966
|
|
31
|
+
lalamo/model_import/loaders/__init__.py,sha256=3THc1wQ4EPBzQkL_4EaKCa7Ev5Z7oczcvc4AHy9v5EI,228
|
|
32
|
+
lalamo/model_import/loaders/common.py,sha256=kkugV-bMQlN1zvGHoj3uc7z0FbXKoMtXEBTvyu4KxK4,1844
|
|
33
|
+
lalamo/model_import/loaders/executorch.py,sha256=t2Ey_mBMNC8bTSTdYWjuGXdPTRoohFlYrqtWyNkBU_8,9219
|
|
34
|
+
lalamo/model_import/loaders/huggingface.py,sha256=ITA0Y_kCDFL4Tanuvd1NWUvV77WEn0VEzkcX5Whlwys,29835
|
|
35
|
+
lalamo/model_import/loaders/utils.py,sha256=eiX3WKFRrAfBY-dugodscNInl5o5w3KmVcgma4atpGY,2456
|
|
36
|
+
lalamo/model_import/model_specs/__init__.py,sha256=STy1Au_mwJYcl_zSei6FEp8mmGZg-Fia1tpUVAO9x9Y,1167
|
|
37
|
+
lalamo/model_import/model_specs/common.py,sha256=2E6mtpUS613jsp_SDiROOvvWFB6T5U2tDkbIBXVWjmI,5780
|
|
38
|
+
lalamo/model_import/model_specs/deepseek.py,sha256=Umef93_ZBuq93yYsejIRNwj3udoln1gHfrv3SK5jyMo,417
|
|
39
|
+
lalamo/model_import/model_specs/gemma.py,sha256=irWgylL-pc7y3Gn5DK3fjKoCT9kJWH3B7mTa-1Gmxqc,1306
|
|
40
|
+
lalamo/model_import/model_specs/gpt_oss.py,sha256=PLo0QGrXKdX61ReTRdyOaP_EH3Dmj5lp3fpJjZRwRVA,542
|
|
41
|
+
lalamo/model_import/model_specs/huggingface.py,sha256=eF8ItF5reFrFkjYxwiAJcFwUAlN6CpXfM-aQ8a92ItM,430
|
|
42
|
+
lalamo/model_import/model_specs/llama.py,sha256=Ml-xvRGlXBT9NJhmEpwgNo6C84oBSMYgA1_PrCYGcAw,990
|
|
43
|
+
lalamo/model_import/model_specs/llamba.py,sha256=Ic3sWTv34FLJ4fG6OR_Mc5goGJQR6fa5b2WbVXbn9FA,1471
|
|
44
|
+
lalamo/model_import/model_specs/mirai.py,sha256=20sLTZZQ_kn8ULfID71xdnVhjW7OjcJDf96BvVnCBUQ,605
|
|
45
|
+
lalamo/model_import/model_specs/mistral.py,sha256=HAojorjOqsJn2DoMBzYRw8A70qCslhFEsE9AF5xumlg,1278
|
|
46
|
+
lalamo/model_import/model_specs/pleias.py,sha256=5sRpZGYwLdsav6bLiW-459y1Cs9iJKgKkBIuGsOxtsQ,368
|
|
47
|
+
lalamo/model_import/model_specs/polaris.py,sha256=Mw1-6bByjDmPIKlIUIV46CsmV5xUp_laI5Qquo5DmAQ,520
|
|
48
|
+
lalamo/model_import/model_specs/qwen.py,sha256=qzLmTveATmnwNFQSFJlffcXw7syFnrCmKf9ggkkkw1Y,7050
|
|
49
|
+
lalamo/model_import/model_specs/reka.py,sha256=dOUYbEMMvovQdzQuBO_DCsjGI39syhoKCvnxLkNEDCw,423
|
|
50
|
+
lalamo/models/__init__.py,sha256=HfAYc4mteKu7BMyIP8aTFliLKGWJzLk1kPcdKurb8eo,243
|
|
51
|
+
lalamo/models/common.py,sha256=b2woUDgHhCUEowo6tEjQb4J7iRVQvrptyRQTYMKrLis,2952
|
|
52
|
+
lalamo/models/language_model.py,sha256=QPeVEyhutSze7fSNhvOvwSoYt24QMk-dtTJkos38amY,13465
|
|
53
|
+
lalamo/models/router.py,sha256=7KZqHVhr2TA7Qh76KfwrvyfztfZnV-P-Ss11O8dzbRg,2013
|
|
54
|
+
lalamo/modules/__init__.py,sha256=xWJ4OPAF4gKd0evYwXIK5kTnbH6nI55oLAePcoDDHQ0,3730
|
|
55
|
+
lalamo/modules/activations.py,sha256=U3qTQtZawPAUcoqbkIJnmTYcaNiQuSPMLcBeJ398GhI,1022
|
|
56
|
+
lalamo/modules/classifier.py,sha256=_jtJ3INEq1dJP5HpUmcDk9YYzpRYlQ04zvFGaWBV6Lg,12101
|
|
57
|
+
lalamo/modules/common.py,sha256=dqDEOi-C3H4U9iWUisU32RA-wRDCGuaUNGbObRBhyQM,3315
|
|
58
|
+
lalamo/modules/decoder.py,sha256=Opd3QIq1mpGr9P7sLH-Fryitlfp6ESTpcX71vgm89t0,7129
|
|
59
|
+
lalamo/modules/embedding.py,sha256=yhVZLg-yb1RwEXoq8pZx-08MPHLEOraPv73gH8shQ_o,21782
|
|
60
|
+
lalamo/modules/linear.py,sha256=XfIYhmpk-bwNHIzIgsL48ZUTclHD2KB4uXHMw9NTE-8,42991
|
|
61
|
+
lalamo/modules/mlp.py,sha256=bL3sQ46vCNt1MBRwlzmXZx9nQfRe4axpGe5UOFVanBI,17959
|
|
62
|
+
lalamo/modules/mlx_interop.py,sha256=FdfU_1iES-HQ9r4K0SkYwJTyvE0f-_T5ursNCjPLZKY,467
|
|
63
|
+
lalamo/modules/normalization.py,sha256=cBdOq6OmJssunVeEwFRJD0BDhgFAN7J8gOKwzIUAY8I,3005
|
|
64
|
+
lalamo/modules/rope.py,sha256=rCik7vBNqRXYg3LGbmc1mezPRNbIYMg5cydTFpQy-eU,10157
|
|
65
|
+
lalamo/modules/torch_interop.py,sha256=-mujd1zI4ec2w92Hd50RtDa0K3jl6ZSnPxc5r3Fp9nU,916
|
|
66
|
+
lalamo/modules/transformer.py,sha256=67-WZX2eE314abiQOhRNSooTHeJh4q9mlZQIxQ-oASU,10162
|
|
67
|
+
lalamo/modules/transformer_layer.py,sha256=CfkYIn8a3pR4PPsI9hmAXpyiTbjXo-Gzl2OU9lAQlkI,12724
|
|
68
|
+
lalamo/modules/utils.py,sha256=t_TayWT6g5LtYKhJaod-u_COWaI_VbNd3eYek9Nj0lc,441
|
|
69
|
+
lalamo/modules/token_mixers/__init__.py,sha256=_t4T25C4WBVJQ1SqkQPGrrAc7bPKhDO3K2btgefVh5s,909
|
|
70
|
+
lalamo/modules/token_mixers/attention.py,sha256=gkGMFah2OHB_tyJpkshM1KhMnzG6U7Xt273MkBvDk58,16584
|
|
71
|
+
lalamo/modules/token_mixers/common.py,sha256=-ej1pIrrp845ztavJ3oh82U3HEsV_rEHxMZOEDp7iK8,1979
|
|
72
|
+
lalamo/modules/token_mixers/mamba.py,sha256=MIIMZAlVVE4YwyT0PsxA0OWXa13ondoJchRxQbhq678,18797
|
|
73
|
+
lalamo/modules/token_mixers/state/__init__.py,sha256=iQaX7njz3XtwGugI5_PUOIp1wdCzd5h08UkgF6yW3zo,307
|
|
74
|
+
lalamo/modules/token_mixers/state/common.py,sha256=dcwBevAdeJpBjf7_YRk7TKrJHsCnpljhfzZy-3h9898,661
|
|
75
|
+
lalamo/modules/token_mixers/state/kv_cache.py,sha256=QfnS3XgSmyDI9MBUbeLI4ABHLxiMcXDbZsqe0fd3KQo,8788
|
|
76
|
+
lalamo/modules/token_mixers/state/mamba_state.py,sha256=LHzJvNE6MkB7nrsZSNto6pxbnMJCl--JOoe9Fkcc9Mg,1642
|
|
77
|
+
lalamo/speculator/__init__.py,sha256=TcOAVMuAN2JCw7LzXuQloD4ha9DLwC9h9LUvkYxXMXo,354
|
|
78
|
+
lalamo/speculator/common.py,sha256=PudF_gkpe5_nQ-57sAC-foE1xCy_H2Axh5KwRoA86lo,587
|
|
79
|
+
lalamo/speculator/estimator.py,sha256=SFF24TtxGVbb3hEziZ40A7aNdBd6_ZZJSX-CqmPhvA8,2503
|
|
80
|
+
lalamo/speculator/inference.py,sha256=EzNLmdP-AOtIN8C39-fq-3ZnKX_yxOOwMufDEmi54zM,3624
|
|
81
|
+
lalamo/speculator/ngram.py,sha256=95mdfAWhx4d5XOnOwhyhElnvcy6nlUjYhcbJzqDs414,5875
|
|
82
|
+
lalamo/speculator/utils.py,sha256=0wZoMMIzzk0Q-3zq5H5f-JBplePNHxywndkrNtOJOyo,1697
|
|
83
|
+
lalamo-0.5.3.dist-info/licenses/LICENSE,sha256=diHRfjSEJHD1nnEeMIfMRCjR3UERf8bT3eseD6b1ayA,1072
|
|
84
|
+
lalamo-0.5.3.dist-info/METADATA,sha256=xunGQV-L0gZ-pd8Y2DYs8oleyKo4A_tPJAYpyAlFo5s,3146
|
|
85
|
+
lalamo-0.5.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
86
|
+
lalamo-0.5.3.dist-info/entry_points.txt,sha256=qli7qTfnBk5WP10rOGXXEckHMtt-atJMDWd8jN89Uks,43
|
|
87
|
+
lalamo-0.5.3.dist-info/top_level.txt,sha256=VHvWL5JN5XRG36NsN_MieJ7EwRihEOrEjyDaTdFJ-aI,7
|
|
88
|
+
lalamo-0.5.3.dist-info/RECORD,,
|
lalamo-0.5.2.dist-info/RECORD
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
lalamo/__init__.py,sha256=3P0i5yWyx-A6xFJNXobXqcLYXbgpLKPr4tL-x3OAJto,487
|
|
2
|
-
lalamo/common.py,sha256=5NUFD26yQgOnEEk3LaQnce8n-VwJxILkEpFesHZhtQU,3820
|
|
3
|
-
lalamo/language_model.py,sha256=ZnNwqxT8yCfIE0TSaF8Vhva8GRHzDzEoUb95VjAfOtM,14510
|
|
4
|
-
lalamo/main.py,sha256=YNO7s0H04Jg5OYmKEGmdIJLzW1W_-uJj0TxJY_Tsc0M,19028
|
|
5
|
-
lalamo/message_processor.py,sha256=eDKqOGRTAc4rbwzye0FAGwTnG_nIlerdlLEcn8QlT0Q,5817
|
|
6
|
-
lalamo/quantization.py,sha256=8o6ryIZLzzDYQuvBTboPfaVVdfijAKGpTxOcg3GKVD8,2752
|
|
7
|
-
lalamo/registry_abc.py,sha256=ENjXiD_wEH100fNjG-W5Em1L_EQ0Lf0pdRhRGvf3qZk,2197
|
|
8
|
-
lalamo/sampling.py,sha256=g_dNiJyZrRqoQIiLid4cr6nRT9N5tSz3GtHr8Bt4n-E,3404
|
|
9
|
-
lalamo/utils.py,sha256=9kg5P19eaqGrSyAiNSbdfOwrv4s1PJZTHYdiNctlBSY,4368
|
|
10
|
-
lalamo/data/__init__.py,sha256=9-lii4yjDZkZFkSNJA0Wd5ZOcxnhs5390IWO4JrMMWI,190
|
|
11
|
-
lalamo/data/huggingface_message.py,sha256=AJi4t1DIJ0AtFPQW8rBxNwjnve8RLl5WuZH9DFVxRqU,1114
|
|
12
|
-
lalamo/data/lalamo_completions.py,sha256=U_m3UNSJASUFz3rJq_taZOtL_U4B8Oj-ndkTF-JH-v4,1509
|
|
13
|
-
lalamo/data/utils.py,sha256=B96gLaULyStKYuR8wjFdTpFc6YIDC8EEvGh1eiMe_Ec,338
|
|
14
|
-
lalamo/model_import/__init__.py,sha256=Z8pS9rbKKx1QgUy7KZtHxiNWlZhII3mdovT9d37vAxg,168
|
|
15
|
-
lalamo/model_import/common.py,sha256=EW3JwXGfjoUj98DEmoNAUJn1lHRJ8yXpF_D38efrxv8,8782
|
|
16
|
-
lalamo/model_import/huggingface_generation_config.py,sha256=mot6VQ6ezCtEhN6VjhnvaU-nR5P5T2BuBUgpFNnWJxU,1495
|
|
17
|
-
lalamo/model_import/huggingface_tokenizer_config.py,sha256=xvwdmio7b9nhn2H3uMBVligiYj58JaCFCvHY3-8dBvM,2502
|
|
18
|
-
lalamo/model_import/decoder_configs/__init__.py,sha256=lv00ejNtoUtMVQjpjbNiL8yZCIalyutYPfIOKyg5kfU,545
|
|
19
|
-
lalamo/model_import/decoder_configs/common.py,sha256=9dW704HdLan_E3JBT9wQftuU5TC-shGC0q6SGr6iljY,1851
|
|
20
|
-
lalamo/model_import/decoder_configs/executorch.py,sha256=tyJ-oP8wezOHBGL7Y9Iy3nplHprUHSo7pkzrvEPk_7k,5725
|
|
21
|
-
lalamo/model_import/decoder_configs/huggingface/__init__.py,sha256=m17Pz3pw7lHXrcw3FGE15TNUu-Qk7m9CYQSXfS3CWD0,575
|
|
22
|
-
lalamo/model_import/decoder_configs/huggingface/common.py,sha256=BJekEs9iStsygVa9QcPItok5AQIq8PvMZf7xAmykl-w,3043
|
|
23
|
-
lalamo/model_import/decoder_configs/huggingface/gemma2.py,sha256=0pO4IinzqB7hLoEUMlVnJfN3ncerTgZKIrMZPs3soR8,4562
|
|
24
|
-
lalamo/model_import/decoder_configs/huggingface/gemma3.py,sha256=r8Nfy-9EPXhIkhJkvx0P-7NFLMaku_LJIEhx3HziShk,7217
|
|
25
|
-
lalamo/model_import/decoder_configs/huggingface/gpt_oss.py,sha256=8TWptvJzVJtEtyWrkKaJA6LLORSKLolxv3gwLtDC0uA,7248
|
|
26
|
-
lalamo/model_import/decoder_configs/huggingface/llama.py,sha256=amMhyN_QEscFmOvjmghcBg9VXBDqE-mpp0Y5Gj0tSp0,6735
|
|
27
|
-
lalamo/model_import/decoder_configs/huggingface/llamba.py,sha256=dJVD_84suhF5sQLRvlsfMDmrrTNhIR6AdMGOm54rC6U,5482
|
|
28
|
-
lalamo/model_import/decoder_configs/huggingface/mistral.py,sha256=EjDIoGhxyIjugoRFlEIM8QZkxbGiaIeyTTQx8WZEkWw,4460
|
|
29
|
-
lalamo/model_import/decoder_configs/huggingface/qwen2.py,sha256=mV_5IkdYEMJQnrTpfXTc_sJzWx0dSXKawuK5boWnYJE,5587
|
|
30
|
-
lalamo/model_import/decoder_configs/huggingface/qwen3.py,sha256=S4LIypTvfmZ6d862MAK2gZ3kWDCCpQoJ8tLrIhbXbPo,6769
|
|
31
|
-
lalamo/model_import/loaders/__init__.py,sha256=Olg7a79phusilNgEa7PTgx1JgQQJLgAVg18T8isp0mw,148
|
|
32
|
-
lalamo/model_import/loaders/common.py,sha256=kkugV-bMQlN1zvGHoj3uc7z0FbXKoMtXEBTvyu4KxK4,1844
|
|
33
|
-
lalamo/model_import/loaders/executorch.py,sha256=NmwuB4MvTO_n3iNCd6jNobRuFOf57d1uMiUEkEaihM8,9002
|
|
34
|
-
lalamo/model_import/loaders/huggingface.py,sha256=IGWlVErAoEyIhS8qcoiPP8TTJmHmyO2enFOhthzSByg,22779
|
|
35
|
-
lalamo/model_import/loaders/utils.py,sha256=eiX3WKFRrAfBY-dugodscNInl5o5w3KmVcgma4atpGY,2456
|
|
36
|
-
lalamo/model_import/model_specs/__init__.py,sha256=gdWPNkjvs2jZ9WwGs81tjLNx1WIOW3E5XuWEOHkI0f4,1076
|
|
37
|
-
lalamo/model_import/model_specs/common.py,sha256=ZNK46wgmotI9XdoEe04D_hq-ElijJLm2QhVSBbE24lg,5602
|
|
38
|
-
lalamo/model_import/model_specs/deepseek.py,sha256=Umef93_ZBuq93yYsejIRNwj3udoln1gHfrv3SK5jyMo,417
|
|
39
|
-
lalamo/model_import/model_specs/gemma.py,sha256=YGWM-J7jBEL16c_LZ9F_6dgeZnf4sEPLDKngl_3FbrE,1289
|
|
40
|
-
lalamo/model_import/model_specs/gpt_oss.py,sha256=PLo0QGrXKdX61ReTRdyOaP_EH3Dmj5lp3fpJjZRwRVA,542
|
|
41
|
-
lalamo/model_import/model_specs/huggingface.py,sha256=TEkU8y95_hmUWyF-Q5hn0dE2SvXbApghAsQwhWRu4D0,431
|
|
42
|
-
lalamo/model_import/model_specs/llama.py,sha256=Ml-xvRGlXBT9NJhmEpwgNo6C84oBSMYgA1_PrCYGcAw,990
|
|
43
|
-
lalamo/model_import/model_specs/llamba.py,sha256=Ic3sWTv34FLJ4fG6OR_Mc5goGJQR6fa5b2WbVXbn9FA,1471
|
|
44
|
-
lalamo/model_import/model_specs/mistral.py,sha256=HAojorjOqsJn2DoMBzYRw8A70qCslhFEsE9AF5xumlg,1278
|
|
45
|
-
lalamo/model_import/model_specs/pleias.py,sha256=5sRpZGYwLdsav6bLiW-459y1Cs9iJKgKkBIuGsOxtsQ,368
|
|
46
|
-
lalamo/model_import/model_specs/polaris.py,sha256=Mw1-6bByjDmPIKlIUIV46CsmV5xUp_laI5Qquo5DmAQ,520
|
|
47
|
-
lalamo/model_import/model_specs/qwen.py,sha256=qzLmTveATmnwNFQSFJlffcXw7syFnrCmKf9ggkkkw1Y,7050
|
|
48
|
-
lalamo/model_import/model_specs/reka.py,sha256=dOUYbEMMvovQdzQuBO_DCsjGI39syhoKCvnxLkNEDCw,423
|
|
49
|
-
lalamo/modules/__init__.py,sha256=dok0jZSDknlZ5uDVUckMLFGtFkLtgfm1Msy7aLNFx1Y,3421
|
|
50
|
-
lalamo/modules/activations.py,sha256=U3qTQtZawPAUcoqbkIJnmTYcaNiQuSPMLcBeJ398GhI,1022
|
|
51
|
-
lalamo/modules/common.py,sha256=f7gRmnEP4NMjoTuoqwaBaSs7pf3LFAYEE5oojbM1mKI,3214
|
|
52
|
-
lalamo/modules/decoder.py,sha256=IdTRmD47uSSK1pPYBhd4l_cOZQNzPLichHytUxVloEw,12274
|
|
53
|
-
lalamo/modules/decoder_layer.py,sha256=oHBzWR7m0-aP4SMgjwF7cJPdaJInNzFY_kWiAl1yGE8,11991
|
|
54
|
-
lalamo/modules/embedding.py,sha256=yhVZLg-yb1RwEXoq8pZx-08MPHLEOraPv73gH8shQ_o,21782
|
|
55
|
-
lalamo/modules/linear.py,sha256=XfIYhmpk-bwNHIzIgsL48ZUTclHD2KB4uXHMw9NTE-8,42991
|
|
56
|
-
lalamo/modules/mlp.py,sha256=9_4OpUw4hDFT9X2jbakf8lm5ZvHhQVwHThArH02AySw,17704
|
|
57
|
-
lalamo/modules/mlx_interop.py,sha256=FdfU_1iES-HQ9r4K0SkYwJTyvE0f-_T5ursNCjPLZKY,467
|
|
58
|
-
lalamo/modules/normalization.py,sha256=gdmv4tWLk8CwvIfoS0rY3QTVRXhjHQNNF6YGYjyez1c,2790
|
|
59
|
-
lalamo/modules/rope.py,sha256=rCik7vBNqRXYg3LGbmc1mezPRNbIYMg5cydTFpQy-eU,10157
|
|
60
|
-
lalamo/modules/torch_interop.py,sha256=-mujd1zI4ec2w92Hd50RtDa0K3jl6ZSnPxc5r3Fp9nU,916
|
|
61
|
-
lalamo/modules/utils.py,sha256=t_TayWT6g5LtYKhJaod-u_COWaI_VbNd3eYek9Nj0lc,441
|
|
62
|
-
lalamo/modules/token_mixers/__init__.py,sha256=_t4T25C4WBVJQ1SqkQPGrrAc7bPKhDO3K2btgefVh5s,909
|
|
63
|
-
lalamo/modules/token_mixers/attention.py,sha256=2NtruCEMdTuk2H-cD9uEhF18pwWmQyJa0mOz0RnoSi4,16501
|
|
64
|
-
lalamo/modules/token_mixers/common.py,sha256=-ej1pIrrp845ztavJ3oh82U3HEsV_rEHxMZOEDp7iK8,1979
|
|
65
|
-
lalamo/modules/token_mixers/mamba.py,sha256=MIIMZAlVVE4YwyT0PsxA0OWXa13ondoJchRxQbhq678,18797
|
|
66
|
-
lalamo/modules/token_mixers/state/__init__.py,sha256=iQaX7njz3XtwGugI5_PUOIp1wdCzd5h08UkgF6yW3zo,307
|
|
67
|
-
lalamo/modules/token_mixers/state/common.py,sha256=dcwBevAdeJpBjf7_YRk7TKrJHsCnpljhfzZy-3h9898,661
|
|
68
|
-
lalamo/modules/token_mixers/state/kv_cache.py,sha256=KgMwZC_RmBn_Cw-85gILtEjUVP7sNpXPkwyWz37RWak,8536
|
|
69
|
-
lalamo/modules/token_mixers/state/mamba_state.py,sha256=LHzJvNE6MkB7nrsZSNto6pxbnMJCl--JOoe9Fkcc9Mg,1642
|
|
70
|
-
lalamo/speculator/__init__.py,sha256=pLGwZiXZZeH2SaMsIGiqHzXs5AJtbxWweXaKc4fPFHc,262
|
|
71
|
-
lalamo/speculator/common.py,sha256=PudF_gkpe5_nQ-57sAC-foE1xCy_H2Axh5KwRoA86lo,587
|
|
72
|
-
lalamo/speculator/inference.py,sha256=4E7_8jwLwg1bvUUH59cLxjD73-IJ9xv58yCwYMFa1r4,3101
|
|
73
|
-
lalamo/speculator/ngram.py,sha256=3O9akE2IGN_7Mp6l_zwhUpdNvjZB0rAlQm51EuX_-rY,5869
|
|
74
|
-
lalamo/speculator/utils.py,sha256=K5qDGEdWYD47C1xLJQ3bamIHAG3-VEuANf-821VeanE,1688
|
|
75
|
-
lalamo-0.5.2.dist-info/licenses/LICENSE,sha256=diHRfjSEJHD1nnEeMIfMRCjR3UERf8bT3eseD6b1ayA,1072
|
|
76
|
-
lalamo-0.5.2.dist-info/METADATA,sha256=bEhxBxyO5vmbF5KyrEMRSATIzJ55M9HfunCkllcC-VY,3146
|
|
77
|
-
lalamo-0.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
78
|
-
lalamo-0.5.2.dist-info/entry_points.txt,sha256=qli7qTfnBk5WP10rOGXXEckHMtt-atJMDWd8jN89Uks,43
|
|
79
|
-
lalamo-0.5.2.dist-info/top_level.txt,sha256=VHvWL5JN5XRG36NsN_MieJ7EwRihEOrEjyDaTdFJ-aI,7
|
|
80
|
-
lalamo-0.5.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|