@tuned-tensor/local 0.2.5 → 0.2.6
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/CHANGELOG.md +11 -0
- package/README.md +5 -1
- package/dist/process-runner.js +17 -5
- package/dist/process-runner.js.map +1 -1
- package/docs/spark.md +5 -3
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to TT Local will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.2.6 - 2026-07-05
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Bundled uv training and Transformers evaluation now resolve
|
|
10
|
+
`training/local-runner` relative to the installed npm package, so users can
|
|
11
|
+
run real SFT/DPO workflows from `@tuned-tensor/local` without cloning the
|
|
12
|
+
source repository.
|
|
13
|
+
- Tightened the published package contents to include the bundled runner source
|
|
14
|
+
and `pyproject.toml` without Python bytecode cache files.
|
|
15
|
+
|
|
5
16
|
## 0.2.5 - 2026-07-05
|
|
6
17
|
|
|
7
18
|
### Added
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ npm install -g @tuned-tensor/local
|
|
|
18
18
|
tt-local info
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
The bundled SFT and Transformers evaluator path also needs `uv`:
|
|
21
|
+
The bundled SFT, DPO, and Transformers evaluator path also needs `uv`:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
uv --version
|
|
@@ -27,6 +27,10 @@ uv --version
|
|
|
27
27
|
Custom training or evaluation workflows can use command entrypoints instead of
|
|
28
28
|
`uv`.
|
|
29
29
|
|
|
30
|
+
The default uv project is included in the npm package at
|
|
31
|
+
`training/local-runner`; using bundled training does not require cloning this
|
|
32
|
+
repository.
|
|
33
|
+
|
|
30
34
|
## DPO
|
|
31
35
|
|
|
32
36
|
TT Local supports first-class offline DPO for text causal-LM models. Set
|
package/dist/process-runner.js
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { createWriteStream } from "node:fs";
|
|
3
3
|
import { mkdir } from "node:fs/promises";
|
|
4
|
-
import {
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { dirname, join, resolve } from "node:path";
|
|
5
6
|
import { forwardStreamLines } from "./run-reporter.js";
|
|
7
|
+
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
8
|
+
const bundledLocalRunnerPrefix = "training/local-runner";
|
|
9
|
+
function resolveBundledLocalRunnerPath(path) {
|
|
10
|
+
if (!path)
|
|
11
|
+
return undefined;
|
|
12
|
+
if (path === bundledLocalRunnerPrefix || path.startsWith(`${bundledLocalRunnerPrefix}/`)) {
|
|
13
|
+
return join(packageRoot, path);
|
|
14
|
+
}
|
|
15
|
+
return path;
|
|
16
|
+
}
|
|
6
17
|
export function buildUvPythonArgs(entrypoint, options = {}) {
|
|
7
18
|
const args = ["run"];
|
|
8
|
-
|
|
9
|
-
|
|
19
|
+
const project = resolveBundledLocalRunnerPath(entrypoint.project);
|
|
20
|
+
if (project)
|
|
21
|
+
args.push("--project", project);
|
|
10
22
|
for (const dependency of entrypoint.with ?? [])
|
|
11
23
|
args.push("--with", dependency);
|
|
12
24
|
args.push("python");
|
|
@@ -14,10 +26,10 @@ export function buildUvPythonArgs(entrypoint, options = {}) {
|
|
|
14
26
|
args.push("-m", entrypoint.module);
|
|
15
27
|
}
|
|
16
28
|
else if (entrypoint.script) {
|
|
17
|
-
args.push(entrypoint.script);
|
|
29
|
+
args.push(resolveBundledLocalRunnerPath(entrypoint.script) ?? entrypoint.script);
|
|
18
30
|
}
|
|
19
31
|
else if (options.defaultScript) {
|
|
20
|
-
args.push(options.defaultScript);
|
|
32
|
+
args.push(resolveBundledLocalRunnerPath(options.defaultScript) ?? options.defaultScript);
|
|
21
33
|
}
|
|
22
34
|
else {
|
|
23
35
|
throw new Error("uv python entrypoint requires module, script, or defaultScript");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-runner.js","sourceRoot":"","sources":["../src/process-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"process-runner.js","sourceRoot":"","sources":["../src/process-runner.ts"],"names":[],"mappings":"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"}
|
package/docs/spark.md
CHANGED
|
@@ -41,9 +41,11 @@ tt-local run examples/smoke-run-request.json --config examples/local-runner.json
|
|
|
41
41
|
|
|
42
42
|
## Real Training
|
|
43
43
|
|
|
44
|
-
For real training with the bundled SFT or DPO workflow,
|
|
45
|
-
|
|
46
|
-
bundled
|
|
44
|
+
For real training with the bundled SFT or DPO workflow, install `tt-local`, set
|
|
45
|
+
`dryRun: false`, and leave the uv project pointed at `training/local-runner`.
|
|
46
|
+
That project is bundled in the npm package, so users do not need a local source
|
|
47
|
+
checkout. Leave `training.script` unset: the runner chooses the bundled script
|
|
48
|
+
from the run request's `training_method`.
|
|
47
49
|
|
|
48
50
|
- `training_method: "sft"` runs `training/local-runner/src/train.py`.
|
|
49
51
|
- `training_method: "dpo"` runs `training/local-runner/src/train_dpo.py`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuned-tensor/local",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "TT Local: tuning tensors locally on hardware you control.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"private": false,
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"dist",
|
|
21
21
|
"docs",
|
|
22
22
|
"examples",
|
|
23
|
-
"training",
|
|
23
|
+
"training/local-runner/pyproject.toml",
|
|
24
|
+
"training/local-runner/src/*.py",
|
|
24
25
|
"README.md",
|
|
25
26
|
"CHANGELOG.md",
|
|
26
27
|
"LICENSE"
|