@tuned-tensor/cli 0.11.0 → 0.12.0-beta.0
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.
- package/README.md +16 -6
- package/dist/{chunk-DAP2Z7EZ.js → chunk-HDGBDHOB.js} +474 -74
- package/dist/chunk-HDGBDHOB.js.map +1 -0
- package/dist/index.js +135 -83
- package/dist/index.js.map +1 -1
- package/dist/local-runtime.js +52 -19
- package/dist/local-runtime.js.map +1 -1
- package/docs/local-runtime/architecture.md +8 -2
- package/docs/local-runtime/spark.md +39 -2
- package/package.json +5 -1
- package/training/local-runner/pyproject.toml +2 -2
- package/training/local-runner/src/evaluate.py +44 -18
- package/training/local-runner/src/model_contract.py +134 -14
- package/training/local-runner/src/prefetch.py +25 -8
- package/training/local-runner/src/serve.py +14 -6
- package/training/local-runner/src/sft_data.py +7 -3
- package/training/local-runner/src/train.py +48 -14
- package/training/local-runner/uv.lock +54 -54
- package/dist/chunk-DAP2Z7EZ.js.map +0 -1
|
@@ -12,11 +12,21 @@ import torch
|
|
|
12
12
|
from peft import LoraConfig, get_peft_model
|
|
13
13
|
from torch.nn.utils.rnn import pad_sequence
|
|
14
14
|
from torch.utils.data import Dataset
|
|
15
|
-
from transformers import
|
|
15
|
+
from transformers import (
|
|
16
|
+
AutoModelForCausalLM,
|
|
17
|
+
AutoModelForImageTextToText,
|
|
18
|
+
AutoTokenizer,
|
|
19
|
+
Trainer,
|
|
20
|
+
TrainingArguments,
|
|
21
|
+
)
|
|
16
22
|
|
|
17
23
|
from model_contract import (
|
|
18
24
|
CERTIFIED_BASE_MODEL,
|
|
25
|
+
assert_certified_base_model,
|
|
26
|
+
assert_certified_base_model_revision,
|
|
19
27
|
assert_certified_model_config,
|
|
28
|
+
chat_template_kwargs,
|
|
29
|
+
parse_lora_target_modules,
|
|
20
30
|
)
|
|
21
31
|
from sft_data import IGNORE_INDEX, build_assistant_only_example
|
|
22
32
|
|
|
@@ -67,13 +77,18 @@ def model_revision_kwargs(model_source: str) -> dict[str, str]:
|
|
|
67
77
|
|
|
68
78
|
def assert_certified_request() -> None:
|
|
69
79
|
requested_model = hp("base_model", CERTIFIED_BASE_MODEL)
|
|
70
|
-
|
|
80
|
+
assert_certified_base_model(str(requested_model), "Training base model")
|
|
81
|
+
assert_certified_base_model_revision(
|
|
82
|
+
str(requested_model),
|
|
83
|
+
hp("base_model_revision"),
|
|
84
|
+
"Training base model revision",
|
|
85
|
+
)
|
|
86
|
+
loader = hp("model_loader", "causal_lm")
|
|
87
|
+
if loader not in ("causal_lm", "image_text_to_text"):
|
|
71
88
|
raise ValueError(
|
|
72
|
-
f"The bundled trainer
|
|
89
|
+
f"The bundled trainer does not support model_loader={loader!r}; "
|
|
90
|
+
"expected causal_lm or image_text_to_text"
|
|
73
91
|
)
|
|
74
|
-
loader = hp("model_loader", "causal_lm")
|
|
75
|
-
if loader != "causal_lm":
|
|
76
|
-
raise ValueError(f"The bundled trainer is text-only and requires model_loader=causal_lm; got {loader!r}")
|
|
77
92
|
def require_cuda() -> dict[str, Any]:
|
|
78
93
|
if not torch.cuda.is_available():
|
|
79
94
|
raise RuntimeError(
|
|
@@ -111,7 +126,7 @@ def load_rows() -> list[dict[str, Any]]:
|
|
|
111
126
|
def resolve_model_source() -> str:
|
|
112
127
|
if BASE_MODEL_DIR.is_dir() and any(BASE_MODEL_DIR.iterdir()):
|
|
113
128
|
return str(BASE_MODEL_DIR)
|
|
114
|
-
return CERTIFIED_BASE_MODEL
|
|
129
|
+
return str(hp("base_model", CERTIFIED_BASE_MODEL))
|
|
115
130
|
|
|
116
131
|
|
|
117
132
|
class AssistantOnlyDataset(Dataset[dict[str, torch.Tensor]]):
|
|
@@ -121,6 +136,7 @@ class AssistantOnlyDataset(Dataset[dict[str, torch.Tensor]]):
|
|
|
121
136
|
tokenizer: Any,
|
|
122
137
|
*,
|
|
123
138
|
max_length: int,
|
|
139
|
+
chat_template_kwargs: dict[str, Any] | None = None,
|
|
124
140
|
):
|
|
125
141
|
self.examples: list[dict[str, torch.Tensor]] = []
|
|
126
142
|
for row_index, row in enumerate(rows, start=1):
|
|
@@ -129,9 +145,10 @@ class AssistantOnlyDataset(Dataset[dict[str, torch.Tensor]]):
|
|
|
129
145
|
tokenizer,
|
|
130
146
|
row["messages"],
|
|
131
147
|
max_length=max_length,
|
|
148
|
+
chat_template_kwargs=chat_template_kwargs,
|
|
132
149
|
)
|
|
133
150
|
except Exception as exc:
|
|
134
|
-
raise ValueError(f"Training row {row_index} is not valid
|
|
151
|
+
raise ValueError(f"Training row {row_index} is not valid chat SFT data: {exc}") from exc
|
|
135
152
|
self.examples.append({
|
|
136
153
|
key: torch.tensor(value, dtype=torch.long)
|
|
137
154
|
for key, value in tokenized.items()
|
|
@@ -179,18 +196,29 @@ def create_model_and_tokenizer(model_source: str) -> tuple[Any, Any, torch.dtype
|
|
|
179
196
|
source_kwargs["local_files_only"] = True
|
|
180
197
|
tokenizer = AutoTokenizer.from_pretrained(model_source, **source_kwargs)
|
|
181
198
|
if tokenizer.eos_token_id is None:
|
|
182
|
-
raise ValueError(f"{CERTIFIED_BASE_MODEL} tokenizer has no EOS token")
|
|
199
|
+
raise ValueError(f"{hp('base_model', CERTIFIED_BASE_MODEL)} tokenizer has no EOS token")
|
|
183
200
|
if tokenizer.pad_token_id is None:
|
|
184
201
|
tokenizer.pad_token = tokenizer.eos_token
|
|
185
202
|
|
|
186
203
|
dtype = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16
|
|
187
|
-
|
|
204
|
+
# Multimodal checkpoints whose text tower is not registered in the
|
|
205
|
+
# causal-LM auto mapping (e.g. Muse Glimmer) load through
|
|
206
|
+
# AutoModelForImageTextToText; the vision tower stays frozen and unused.
|
|
207
|
+
model_class = (
|
|
208
|
+
AutoModelForImageTextToText
|
|
209
|
+
if hp("model_loader", "causal_lm") == "image_text_to_text"
|
|
210
|
+
else AutoModelForCausalLM
|
|
211
|
+
)
|
|
212
|
+
model = model_class.from_pretrained(
|
|
188
213
|
model_source,
|
|
189
214
|
**source_kwargs,
|
|
190
215
|
dtype=dtype,
|
|
191
216
|
device_map={"": torch.cuda.current_device()},
|
|
192
217
|
)
|
|
193
|
-
assert_certified_model_config(
|
|
218
|
+
assert_certified_model_config(
|
|
219
|
+
model.config,
|
|
220
|
+
expected_model_id=str(hp("base_model", CERTIFIED_BASE_MODEL)),
|
|
221
|
+
)
|
|
194
222
|
model.config.use_cache = False
|
|
195
223
|
return model, tokenizer, dtype
|
|
196
224
|
|
|
@@ -202,7 +230,7 @@ def apply_lora(model: Any) -> Any:
|
|
|
202
230
|
lora_dropout=hp_float("lora_dropout", 0.05),
|
|
203
231
|
bias="none",
|
|
204
232
|
task_type="CAUSAL_LM",
|
|
205
|
-
target_modules="all-linear",
|
|
233
|
+
target_modules=parse_lora_target_modules(hp("lora_target_modules", "all-linear")),
|
|
206
234
|
)
|
|
207
235
|
return get_peft_model(model, config)
|
|
208
236
|
|
|
@@ -217,11 +245,16 @@ def create_model_archive() -> Path:
|
|
|
217
245
|
|
|
218
246
|
def run_training(rows: list[dict[str, Any]], model_source: str) -> tuple[dict[str, Any], torch.dtype]:
|
|
219
247
|
model, tokenizer, dtype = create_model_and_tokenizer(model_source)
|
|
248
|
+
model.config.use_cache = False
|
|
220
249
|
model = apply_lora(model)
|
|
250
|
+
if str(hp("gradient_checkpointing", "false")).lower() == "true":
|
|
251
|
+
model.enable_input_require_grads()
|
|
252
|
+
model.gradient_checkpointing_enable()
|
|
221
253
|
dataset = AssistantOnlyDataset(
|
|
222
254
|
rows,
|
|
223
255
|
tokenizer,
|
|
224
256
|
max_length=hp_int("max_seq_length", 2048),
|
|
257
|
+
chat_template_kwargs=chat_template_kwargs(str(hp("base_model", CERTIFIED_BASE_MODEL))),
|
|
225
258
|
)
|
|
226
259
|
collator = AssistantOnlyCollator(tokenizer.pad_token_id)
|
|
227
260
|
|
|
@@ -239,6 +272,7 @@ def run_training(rows: list[dict[str, Any]], model_source: str) -> tuple[dict[st
|
|
|
239
272
|
bf16=dtype == torch.bfloat16,
|
|
240
273
|
fp16=dtype == torch.float16,
|
|
241
274
|
optim="adamw_torch",
|
|
275
|
+
gradient_checkpointing=str(hp("gradient_checkpointing", "false")).lower() == "true",
|
|
242
276
|
)
|
|
243
277
|
trainer = Trainer(
|
|
244
278
|
model=model,
|
|
@@ -266,10 +300,10 @@ def main() -> None:
|
|
|
266
300
|
archive_path = create_model_archive()
|
|
267
301
|
output_metrics = {
|
|
268
302
|
"training_rows": len(rows),
|
|
269
|
-
"base_model": CERTIFIED_BASE_MODEL,
|
|
303
|
+
"base_model": hp("base_model", CERTIFIED_BASE_MODEL),
|
|
270
304
|
"base_model_revision": hp("base_model_revision"),
|
|
271
305
|
"model_source": model_source,
|
|
272
|
-
"model_loader": "causal_lm",
|
|
306
|
+
"model_loader": hp("model_loader", "causal_lm"),
|
|
273
307
|
"loss_mask": "final_assistant_only",
|
|
274
308
|
"device": "cuda",
|
|
275
309
|
"cuda_device": cuda["device_name"],
|
|
@@ -93,7 +93,7 @@ name = "cuda-bindings"
|
|
|
93
93
|
version = "13.3.1"
|
|
94
94
|
source = { registry = "https://pypi.org/simple" }
|
|
95
95
|
dependencies = [
|
|
96
|
-
{ name = "cuda-pathfinder"
|
|
96
|
+
{ name = "cuda-pathfinder" },
|
|
97
97
|
]
|
|
98
98
|
wheels = [
|
|
99
99
|
{ url = "https://files.pythonhosted.org/packages/51/6b/457ca12dad3ee9bfcc9a545cfd6b64b359ba49de40f776f6e028e678f262/cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5879712accf6e14bb01aa5e67440eb84998b8d104b509cc7a6dc0b8f656a474", size = 6053539, upload-time = "2026-05-29T23:11:43.19Z" },
|
|
@@ -126,43 +126,43 @@ wheels = [
|
|
|
126
126
|
|
|
127
127
|
[package.optional-dependencies]
|
|
128
128
|
cublas = [
|
|
129
|
-
{ name = "nvidia-cublas", marker = "
|
|
130
|
-
{ name = "nvidia-cuda-nvrtc", marker = "
|
|
129
|
+
{ name = "nvidia-cublas", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
130
|
+
{ name = "nvidia-cuda-nvrtc", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
131
131
|
]
|
|
132
132
|
cudart = [
|
|
133
|
-
{ name = "nvidia-cuda-runtime", marker = "
|
|
133
|
+
{ name = "nvidia-cuda-runtime", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
134
134
|
]
|
|
135
135
|
cufft = [
|
|
136
|
-
{ name = "nvidia-cufft", marker = "
|
|
137
|
-
{ name = "nvidia-nvjitlink", marker = "
|
|
136
|
+
{ name = "nvidia-cufft", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
137
|
+
{ name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
138
138
|
]
|
|
139
139
|
cufile = [
|
|
140
|
-
{ name = "nvidia-cufile", marker = "
|
|
140
|
+
{ name = "nvidia-cufile", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
141
141
|
]
|
|
142
142
|
cupti = [
|
|
143
|
-
{ name = "nvidia-cuda-cupti", marker = "
|
|
143
|
+
{ name = "nvidia-cuda-cupti", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
144
144
|
]
|
|
145
145
|
curand = [
|
|
146
|
-
{ name = "nvidia-curand", marker = "
|
|
146
|
+
{ name = "nvidia-curand", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
147
147
|
]
|
|
148
148
|
cusolver = [
|
|
149
|
-
{ name = "nvidia-cublas", marker = "
|
|
150
|
-
{ name = "nvidia-cusolver", marker = "
|
|
151
|
-
{ name = "nvidia-cusparse", marker = "
|
|
152
|
-
{ name = "nvidia-nvjitlink", marker = "
|
|
149
|
+
{ name = "nvidia-cublas", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
150
|
+
{ name = "nvidia-cusolver", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
151
|
+
{ name = "nvidia-cusparse", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
152
|
+
{ name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
153
153
|
]
|
|
154
154
|
cusparse = [
|
|
155
|
-
{ name = "nvidia-cusparse", marker = "
|
|
156
|
-
{ name = "nvidia-nvjitlink", marker = "
|
|
155
|
+
{ name = "nvidia-cusparse", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
156
|
+
{ name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
157
157
|
]
|
|
158
158
|
nvjitlink = [
|
|
159
|
-
{ name = "nvidia-nvjitlink", marker = "
|
|
159
|
+
{ name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
160
160
|
]
|
|
161
161
|
nvrtc = [
|
|
162
|
-
{ name = "nvidia-cuda-nvrtc", marker = "
|
|
162
|
+
{ name = "nvidia-cuda-nvrtc", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
163
163
|
]
|
|
164
164
|
nvtx = [
|
|
165
|
-
{ name = "nvidia-nvtx", marker = "
|
|
165
|
+
{ name = "nvidia-nvtx", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" },
|
|
166
166
|
]
|
|
167
167
|
|
|
168
168
|
[[package]]
|
|
@@ -557,7 +557,7 @@ name = "nvidia-cublas"
|
|
|
557
557
|
version = "13.1.1.3"
|
|
558
558
|
source = { registry = "https://pypi.org/simple" }
|
|
559
559
|
dependencies = [
|
|
560
|
-
{ name = "nvidia-cuda-nvrtc"
|
|
560
|
+
{ name = "nvidia-cuda-nvrtc" },
|
|
561
561
|
]
|
|
562
562
|
wheels = [
|
|
563
563
|
{ url = "https://files.pythonhosted.org/packages/a7/a1/0bd24ee8c8d03adac032fd2909426a00c88f8c57961b1277ded97f91119f/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b7a210458267ac818974c53038fbec2e969d5c99f305ab15c72522fa9f001dd5", size = 542848918, upload-time = "2026-04-08T18:46:22.985Z" },
|
|
@@ -596,7 +596,7 @@ name = "nvidia-cudnn-cu13"
|
|
|
596
596
|
version = "9.20.0.48"
|
|
597
597
|
source = { registry = "https://pypi.org/simple" }
|
|
598
598
|
dependencies = [
|
|
599
|
-
{ name = "nvidia-cublas"
|
|
599
|
+
{ name = "nvidia-cublas" },
|
|
600
600
|
]
|
|
601
601
|
wheels = [
|
|
602
602
|
{ url = "https://files.pythonhosted.org/packages/56/c5/83384d846b2fd17c44bd499b36c75a45ed4f095fbbb2252294e89cea5c5c/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:e31454ae00094b0c55319d9d15b6fa2fc50a9e1c0f5c8c80fb75258234e731e1", size = 444574296, upload-time = "2026-03-09T19:28:27.751Z" },
|
|
@@ -608,7 +608,7 @@ name = "nvidia-cufft"
|
|
|
608
608
|
version = "12.0.0.61"
|
|
609
609
|
source = { registry = "https://pypi.org/simple" }
|
|
610
610
|
dependencies = [
|
|
611
|
-
{ name = "nvidia-nvjitlink"
|
|
611
|
+
{ name = "nvidia-nvjitlink" },
|
|
612
612
|
]
|
|
613
613
|
wheels = [
|
|
614
614
|
{ url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" },
|
|
@@ -638,9 +638,9 @@ name = "nvidia-cusolver"
|
|
|
638
638
|
version = "12.0.4.66"
|
|
639
639
|
source = { registry = "https://pypi.org/simple" }
|
|
640
640
|
dependencies = [
|
|
641
|
-
{ name = "nvidia-cublas"
|
|
642
|
-
{ name = "nvidia-cusparse"
|
|
643
|
-
{ name = "nvidia-nvjitlink"
|
|
641
|
+
{ name = "nvidia-cublas" },
|
|
642
|
+
{ name = "nvidia-cusparse" },
|
|
643
|
+
{ name = "nvidia-nvjitlink" },
|
|
644
644
|
]
|
|
645
645
|
wheels = [
|
|
646
646
|
{ url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" },
|
|
@@ -652,7 +652,7 @@ name = "nvidia-cusparse"
|
|
|
652
652
|
version = "12.6.3.3"
|
|
653
653
|
source = { registry = "https://pypi.org/simple" }
|
|
654
654
|
dependencies = [
|
|
655
|
-
{ name = "nvidia-nvjitlink"
|
|
655
|
+
{ name = "nvidia-nvjitlink" },
|
|
656
656
|
]
|
|
657
657
|
wheels = [
|
|
658
658
|
{ url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" },
|
|
@@ -715,7 +715,7 @@ wheels = [
|
|
|
715
715
|
|
|
716
716
|
[[package]]
|
|
717
717
|
name = "peft"
|
|
718
|
-
version = "0.
|
|
718
|
+
version = "0.20.0"
|
|
719
719
|
source = { registry = "https://pypi.org/simple" }
|
|
720
720
|
dependencies = [
|
|
721
721
|
{ name = "accelerate" },
|
|
@@ -731,9 +731,9 @@ dependencies = [
|
|
|
731
731
|
{ name = "tqdm" },
|
|
732
732
|
{ name = "transformers" },
|
|
733
733
|
]
|
|
734
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
734
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b4/08/02541a2c29be7c78698f73d438bc0e733b214f3f35ec5db79fca8da8fc61/peft-0.20.0.tar.gz", hash = "sha256:4769c8093a4ca145fd6fb3fd4dd50449675f5fe46434ad1e98b285a132d4b1d0", size = 880503, upload-time = "2026-07-28T13:46:01.85Z" }
|
|
735
735
|
wheels = [
|
|
736
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
736
|
+
{ url = "https://files.pythonhosted.org/packages/28/79/13bcabb8048126422d5c4b880575d40886c726f354db88cfeed4325525bb/peft-0.20.0-py3-none-any.whl", hash = "sha256:0fbba16ffebfad3de96e06f2da6860fd860292324b85b6141909fa1e26ea9233", size = 775777, upload-time = "2026-07-28T13:45:59.809Z" },
|
|
737
737
|
]
|
|
738
738
|
|
|
739
739
|
[[package]]
|
|
@@ -1041,13 +1041,13 @@ resolution-markers = [
|
|
|
1041
1041
|
"python_full_version < '3.12' and sys_platform != 'emscripten' and sys_platform != 'linux' and sys_platform != 'win32'",
|
|
1042
1042
|
]
|
|
1043
1043
|
dependencies = [
|
|
1044
|
-
{ name = "filelock"
|
|
1045
|
-
{ name = "fsspec"
|
|
1046
|
-
{ name = "jinja2"
|
|
1047
|
-
{ name = "networkx"
|
|
1048
|
-
{ name = "setuptools"
|
|
1049
|
-
{ name = "sympy"
|
|
1050
|
-
{ name = "typing-extensions"
|
|
1044
|
+
{ name = "filelock" },
|
|
1045
|
+
{ name = "fsspec" },
|
|
1046
|
+
{ name = "jinja2" },
|
|
1047
|
+
{ name = "networkx" },
|
|
1048
|
+
{ name = "setuptools" },
|
|
1049
|
+
{ name = "sympy" },
|
|
1050
|
+
{ name = "typing-extensions" },
|
|
1051
1051
|
]
|
|
1052
1052
|
wheels = [
|
|
1053
1053
|
{ url = "https://files.pythonhosted.org/packages/5b/fe/cba54dc58523434919b66f13a667e36e436deddd77ca519e96553617d4ec/torch-2.13.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:e76f9bcecc52b8ff711239a2f7547d5353df95878ab232f0773c1d95928b92f8", size = 111187938, upload-time = "2026-07-08T16:05:17.065Z" },
|
|
@@ -1072,20 +1072,20 @@ resolution-markers = [
|
|
|
1072
1072
|
"python_full_version < '3.12' and sys_platform == 'linux'",
|
|
1073
1073
|
]
|
|
1074
1074
|
dependencies = [
|
|
1075
|
-
{ name = "cuda-bindings", marker = "python_full_version < '3.15'
|
|
1076
|
-
{ name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"]
|
|
1077
|
-
{ name = "filelock"
|
|
1078
|
-
{ name = "fsspec"
|
|
1079
|
-
{ name = "jinja2"
|
|
1080
|
-
{ name = "networkx"
|
|
1081
|
-
{ name = "nvidia-cudnn-cu13"
|
|
1082
|
-
{ name = "nvidia-cusparselt-cu13"
|
|
1083
|
-
{ name = "nvidia-nccl-cu13"
|
|
1084
|
-
{ name = "nvidia-nvshmem-cu13"
|
|
1085
|
-
{ name = "setuptools"
|
|
1086
|
-
{ name = "sympy"
|
|
1087
|
-
{ name = "triton", marker = "python_full_version < '3.15'
|
|
1088
|
-
{ name = "typing-extensions"
|
|
1075
|
+
{ name = "cuda-bindings", marker = "python_full_version < '3.15'" },
|
|
1076
|
+
{ name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"] },
|
|
1077
|
+
{ name = "filelock" },
|
|
1078
|
+
{ name = "fsspec" },
|
|
1079
|
+
{ name = "jinja2" },
|
|
1080
|
+
{ name = "networkx" },
|
|
1081
|
+
{ name = "nvidia-cudnn-cu13" },
|
|
1082
|
+
{ name = "nvidia-cusparselt-cu13" },
|
|
1083
|
+
{ name = "nvidia-nccl-cu13" },
|
|
1084
|
+
{ name = "nvidia-nvshmem-cu13" },
|
|
1085
|
+
{ name = "setuptools" },
|
|
1086
|
+
{ name = "sympy" },
|
|
1087
|
+
{ name = "triton", marker = "python_full_version < '3.15'" },
|
|
1088
|
+
{ name = "typing-extensions" },
|
|
1089
1089
|
]
|
|
1090
1090
|
wheels = [
|
|
1091
1091
|
{ url = "https://download-r2.pytorch.org/whl/cu130/torch-2.13.0%2Bcu130-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:b8a6b58c0176dd532254f6622fb1dffef6b38ad7cb67fcd0beb673066c8c710c", upload-time = "2026-07-08T20:20:24Z" },
|
|
@@ -1118,7 +1118,7 @@ wheels = [
|
|
|
1118
1118
|
|
|
1119
1119
|
[[package]]
|
|
1120
1120
|
name = "transformers"
|
|
1121
|
-
version = "5.
|
|
1121
|
+
version = "5.15.0"
|
|
1122
1122
|
source = { registry = "https://pypi.org/simple" }
|
|
1123
1123
|
dependencies = [
|
|
1124
1124
|
{ name = "huggingface-hub" },
|
|
@@ -1132,9 +1132,9 @@ dependencies = [
|
|
|
1132
1132
|
{ name = "tqdm" },
|
|
1133
1133
|
{ name = "typer" },
|
|
1134
1134
|
]
|
|
1135
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1135
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a6/3f/d89353267d511e18f137dfd7769d07837350c11b88408ce1dfe2e93e56c7/transformers-5.15.0.tar.gz", hash = "sha256:bbf98f57b2ddd7c4ecbccfa2c0069017aa6fd01cc204bd50cbc0eeadcf2a13b8", size = 9377983, upload-time = "2026-08-10T10:27:23.261Z" }
|
|
1136
1136
|
wheels = [
|
|
1137
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1137
|
+
{ url = "https://files.pythonhosted.org/packages/d8/43/81355710a4c84e9420e11a86d41a5364deb561f2ef36dfdf254a07371bbb/transformers-5.15.0-py3-none-any.whl", hash = "sha256:d7f007736f67749ae9490c4f8cb5d30b452ae2d68c8675e50ba8d63ea7feb107", size = 11749280, upload-time = "2026-08-10T10:27:20.416Z" },
|
|
1138
1138
|
]
|
|
1139
1139
|
|
|
1140
1140
|
[[package]]
|
|
@@ -1172,11 +1172,11 @@ dependencies = [
|
|
|
1172
1172
|
requires-dist = [
|
|
1173
1173
|
{ name = "accelerate", specifier = ">=1.0.0" },
|
|
1174
1174
|
{ name = "huggingface-hub", specifier = ">=0.36.0" },
|
|
1175
|
-
{ name = "peft", specifier = ">=0.
|
|
1175
|
+
{ name = "peft", specifier = ">=0.20.0" },
|
|
1176
1176
|
{ name = "safetensors", specifier = ">=0.4.5" },
|
|
1177
1177
|
{ name = "torch", marker = "sys_platform != 'linux'", specifier = ">=2.11.0" },
|
|
1178
1178
|
{ name = "torch", marker = "sys_platform == 'linux'", specifier = ">=2.11.0", index = "https://download.pytorch.org/whl/cu130" },
|
|
1179
|
-
{ name = "transformers", specifier = ">=
|
|
1179
|
+
{ name = "transformers", specifier = ">=5.15.0" },
|
|
1180
1180
|
]
|
|
1181
1181
|
|
|
1182
1182
|
[[package]]
|