-
Notifications
You must be signed in to change notification settings - Fork 1
/
pyproject.toml
86 lines (75 loc) · 2.32 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
[project]
name = "impruver"
description = "Transformer based LLM trainer"
authors = [
{ name = "Pavel Rykov", email = "[email protected]" },
]
keywords = ["pytorch", "transformers", "finetuning", "llm"]
license = { file = "LICENSE" }
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
# Core
"pydantic>=2.10.4",
"pyyaml>=6.0.2",
"jsonlines>=4.0.0",
"fire>=0.7.0",
"datasketch>=1.6.5",
"torch>=2.5.1",
# Hugging Face integrations
"datasets>=3.2.0",
"transformers>=4.47.1",
"huggingface-hub>=0.27.0",
"safetensors>=0.4.5",
"zstandard>=0.23.0",
"tokenizers>=0.21.0",
# Miscellaneous
"tqdm>=4.67.1",
# Quantization
"bitsandbytes>=0.45.0",
"peft>=0.14.0",
# DDP
"accelerate>=1.2.1"
]
dynamic = ["version"]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
[project.urls]
GitHub = "https://github.com/EvilFreelancer/impruver"
Documentation = "https://github.com/EvilFreelancer/impruver/wiki"
Issues = "https://github.com/EvilFreelancer/impruver/issues"
[project.scripts]
impruver = "impruver._cli._parser:main"
[project.optional-dependencies]
dev = [
"wandb>=0.19.1",
"tiktoken>=0.8.0",
"torchao>=0.4.0", # required for "adamw_torch_4bit" optimizer
"sentencepiece>=0.2.0", # for converting to GGUF
]
[tool.setuptools.dynamic]
version = { attr = "impruver.__version__" }
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = [""]
include = ["impruver*", "recipes*"]
[tool.setuptools.package-data]
recipes = ["configs/*.yaml", "configs/*/*.yaml", "configs/*/*/*.yaml"]
[tool.usort]
first_party_detection = false
[tool.black]
target-version = ["py38"]
[tool.pydoclint]
style = 'google'
check-return-types = 'False'
[tool.pytest.ini_options]
addopts = ["--showlocals", "--import-mode=prepend", "--without-integration", "--without-slow-integration"]
# --showlocals will show local variables in tracebacks
# --import-mode=prepend will add the root (the parent dir of impruver/, tests/, recipes/)
# to `sys.path` when invoking pytest, allowing us to treat `tests` as a package within the tests.
# --without-integration and --without-slow-integration: default to running unit tests only