[package]
name = "aprender-train"
version.workspace = true
edition = "2021"
rust-version = "1.87"
authors = ["PAIML <hello@paiml.com>"]
description = "Training & Optimization library with autograd, LoRA, quantization, and model merging"
repository = "https://github.com/paiml/entrenar"
license = "MIT"
keywords = ["machine-learning", "neural-networks", "autograd", "lora", "quantization"]
categories = ["science", "mathematics"]
exclude = [
"book/",
"docs/",
"examples/",
"tests/",
"scripts/",
".pmat/",
".pmat-work/",
".pmat-metrics/",
".github/",
"*.md",
"/models/",
"wasm-pkg/",
"target/",
"**/*.profraw",
"**/*.profdata",
".vscode/",
".idea/",
"**/*.proptest-regressions",
"/checkpoints/",
"/data/",
"/golden_traces/",
"/output/",
"/outputs/",
"*.gguf",
"*.parquet",
]
[lib]
name = "entrenar"
crate-type = ["rlib"]
[lints]
workspace = true
[features]
default = ["tui"]
cpu-fallback = []
gguf = []
monitor = ["trueno-db"]
tui = ["dep:presentar-terminal"]
wasm = ["wasm-bindgen", "getrandom", "js-sys"]
citl = ["trueno-rag", "tokio", "uuid"]
server = ["axum", "tower", "tower-http", "tokio"]
tracing = ["renacer"]
ruchy-sessions = []
dhat-heap = ["dep:dhat"]
kani = []
gpu = ["trueno/gpu", "tokio"]
cuda = ["trueno-gpu/cuda", "tokio", "realizar?/cuda"]
nvml = ["nvml-wrapper"]
parquet = ["dep:alimentar", "dep:arrow"]
hub = ["dep:hf-hub", "aprender/hf-hub-integration"]
hub-publish = ["hub", "dep:reqwest"]
[dependencies]
provable-contracts-macros = { version = "0.2" }
ndarray = "0.16"
trueno = { version = "0.17", features = ["parallel"] }
trueno-gpu = { version = "0.4", optional = true }
realizar = { version = "0.8", optional = true }
aprender = { path = "../aprender-core", version = "0.29.0", package = "aprender-core" }
trueno-viz = { version = "0.2", features = ["terminal"] }
presentar-terminal = { version = "0.3.5", optional = true }
presentar-core = "0.3.4"
trueno-db = { version = "0.3.16", optional = true }
chrono = { version = "0.4", features = ["serde"] }
renacer = { version = "0.9", optional = true }
wasm-bindgen = { version = "0.2", optional = true }
getrandom = { version = "0.3", features = ["wasm_js"], optional = true }
js-sys = { version = "0.3", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9"
serde_json = "1.0"
toml = "0.8"
thiserror = "2.0"
rand = "0.9"
clap = { version = "4.5", features = ["derive"] }
clap_complete = "4.5"
dirs = "5.0"
trueno-rag = { version = "0.2.0", optional = true }
tokio = { version = "1.41", features = ["rt", "rt-multi-thread", "macros", "net"], optional = true }
uuid = { version = "1.11", features = ["v4", "serde"], optional = true }
axum = { version = "0.8", optional = true }
tower = { version = "0.5", optional = true }
tower-http = { version = "0.6", features = ["trace", "cors"], optional = true }
safetensors = "0.7"
half = "2.4"
rusqlite = { version = "0.32", features = ["bundled"] }
sha2 = "0.10"
hex = "0.4"
regex = "1.10"
ed25519-dalek = "2.1"
bytemuck = { version = "1.19", features = ["derive"] }
jsonschema = "0.28"
validator = { version = "0.20", features = ["derive"] }
schemars = "0.8"
fs4 = "0.13"
arrow = { version = "57", default-features = false, optional = true }
nvml-wrapper = { version = "0.10", optional = true }
hostname = "0.4.2"
ctrlc = "3.4"
dhat = { version = "0.3", optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
hf-hub = { version = "0.4", optional = true }
reqwest = { version = "0.12", features = ["json", "blocking"], optional = true }
zip = "2.2"
alimentar = { version = "0.2.4", optional = true }
[build-dependencies]
serde = { version = "1", features = ["derive"] }
serde_yaml_ng = "0.10"
[dev-dependencies]
proptest = "1.4"
approx = "0.5"
tempfile = "3.8"
criterion = "0.5"
arrow = { version = "57", default-features = false }
parquet = { version = "57", default-features = false }
insta = { version = "1.42", features = ["json", "yaml"] }
dirs = "5.0"
jugar-probar = "1.0"
provable-contracts = { version = "0.2" }
[[bench]]
name = "monitor_bench"
harness = false
required-features = ["monitor"]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
[profile.dev]
opt-level = 0
[[bin]]
name = "aprender-train"
path = "src/main.rs"
required-features = []
[[example]]
name = "llama2-train"
path = "examples/llama2/train.rs"
required-features = []
[[example]]
name = "llama2-finetune-lora"
path = "examples/llama2/finetune_lora.rs"
required-features = []
[[example]]
name = "llama2-finetune-qlora"
path = "examples/llama2/finetune_qlora.rs"
required-features = []
[[example]]
name = "llama2-memory-benchmarks"
path = "examples/llama2/memory_benchmarks.rs"
required-features = []
[[example]]
name = "merge_models"
path = "examples/merge_models.rs"
required-features = []
[[example]]
name = "train_from_yaml"
path = "examples/train_from_yaml.rs"
required-features = []
[[example]]
name = "distillation"
path = "examples/distillation.rs"
required-features = []
[[example]]
name = "training_loop"
path = "examples/training_loop.rs"
required-features = []
[[example]]
name = "model_io"
path = "examples/model_io.rs"
required-features = []
[[example]]
name = "train_from_yaml_example"
path = "examples/train_from_yaml_example.rs"
required-features = []
[[example]]
name = "explainability"
path = "examples/explainability.rs"
required-features = []
[[example]]
name = "monitoring"
path = "examples/monitoring.rs"
required-features = []
[[example]]
name = "hf_distillation"
path = "examples/hf_distillation.rs"
required-features = ["hub"]
[[example]]
name = "finetune_real"
path = "examples/finetune_real.rs"
required-features = ["hub"]
[[example]]
name = "citl"
path = "examples/citl.rs"
required-features = ["citl"]
[[example]]
name = "mnist_train"
path = "examples/mnist_train.rs"
required-features = ["parquet"]
[[example]]
name = "mnist_train_gpu"
path = "examples/mnist_train_gpu.rs"
required-features = ["gpu", "parquet"]
[[example]]
name = "cli_bench"
path = "examples/cli_bench.rs"
required-features = []
[[example]]
name = "cli_inspect"
path = "examples/cli_inspect.rs"
required-features = []
[[example]]
name = "cli_audit"
path = "examples/cli_audit.rs"
required-features = []
[[example]]
name = "cli_monitor"
path = "examples/cli_monitor.rs"
required-features = []
[[example]]
name = "cuda_backend"
path = "examples/cuda_backend.rs"
required-features = []
[[example]]
name = "drift_simulation"
path = "examples/drift_simulation.rs"
required-features = []
[[example]]
name = "calibration_check"
path = "examples/calibration_check.rs"
required-features = []
[[example]]
name = "finetune_test_gen"
path = "examples/finetune_test_gen.rs"
required-features = []
[[example]]
name = "nvml_test"
path = "examples/nvml_test.rs"
required-features = ["nvml"]
[[example]]
name = "shell_safety_classify"
path = "examples/shell_safety_classify.rs"
required-features = []
[[example]]
name = "design_by_contract"
path = "examples/design_by_contract.rs"
required-features = []
[[example]]
name = "classify_tune_demo"
path = "examples/classify_tune_demo.rs"
required-features = []
[[example]]
name = "gpu_ledger"
path = "examples/gpu_ledger.rs"
required-features = []
[[example]]
name = "multi_adapter_training"
path = "examples/multi_adapter_training.rs"
required-features = []
[[example]]
name = "cluster_training"
path = "examples/cluster_training.rs"
required-features = []
[[example]]
name = "wgpu_train"
path = "examples/wgpu_train.rs"
required-features = ["gpu"]
[[example]]
name = "wgpu_canary"
path = "examples/wgpu_canary.rs"
required-features = ["gpu"]
[[example]]
name = "wgpu_eval"
path = "examples/wgpu_eval.rs"
required-features = ["gpu"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--generate-link-to-definition"]
[package.metadata.release]
shared-version = true
[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
search = "## \\[Unreleased\\]"
replace = "## [{{version}}] - {{date}}"