Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
129 lines (120 loc) · 3.7 KB
/
Copy pathpyproject.toml
File metadata and controls
129 lines (120 loc) · 3.7 KB
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[project]
name = "steerability"
version = "0.5.8"
description = "Steerability Toolkit"
readme = "README.md"
license = { text = "Apache-2.0" }
requires-python = ">=3.12"
authors = [{ name = "IBM Research" }]
maintainers = [
{ name = "Erik Miehling", email = "erik.miehling@ibm.com" },
{ name = "Inge Vejsbjerg", email = "INGEVEJS@ie.ibm.com" },
{ name = "Praveen Venkateswaran", email = "praveen.venkateswaran@ibm.com" },
]
keywords = [
"language models",
"steerability",
"composite steering",
"prompt engineering",
"activation steering",
"parameter-efficient fine-tuning",
"decoding-time alignment"
]
classifiers = [
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"License :: OSI Approved :: Apache Software License",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
]
# core
dependencies = [
"accelerate>=1.4.0,<2.0.0",
"datasets>=4.7.0,<6.0.0",
"numpy>=1.17.0",
"pandas>=2.2.3,<3.0.0",
"peft>=0.20.0,<0.21.0",
"scikit-learn>=1.6.1,<2.0.0",
"torch>=2.5.1,<3.0.0",
"transformers>=5.0.0,<6.0.0",
"trl>=1.0.0,<2.0.0",
"xgrammar>=0.1.19",
]
# optional extras: vllm, eval, merging
[project.optional-dependencies]
vllm = [
"vllm>=0.32.0,<1.0.0",
# keeps the resolved vLLM inside trl's supported range
"trl[vllm]>=1.17.0",
"vllm-hook-plugins @ git+https://github.com/IBM/vLLM-Hook.git@steerability-challenge#subdirectory=vllm_hook_plugins",
]
eval = [
"inspect-ai>=0.3.262,<0.4.0",
"inspect-evals>=0.18.0,<1.0.0",
"matplotlib>=3.8.0,<4.0.0",
"seaborn>=0.13.0,<0.14.0",
"tqdm>=4.66.5,<5.0.0",
]
merging = [
"mergekit>=0.1.5,<0.2.0",
]
# every extra that coexists in one environment on every platform
all = [
"steerability[eval,merging]",
]
# contributor tooling; `uv sync` installs `dev` by default
[dependency-groups]
dev = [
"pytest>=9.0.3,<10.0.0",
"pre-commit>=4.3.0",
"vllm-hook-plugins @ git+https://github.com/IBM/vLLM-Hook.git@steerability-challenge#subdirectory=vllm_hook_plugins",
{ include-group = "notebooks" },
]
notebooks = [
"notebook>=7.4.5",
"ipywidgets>=8.1.0,<9.0.0",
"textstat>=0.7.0",
"nltk>=3.9.1,<4.0.0",
# IFEval checker used by the instruction_following study; the contents of the
# `inspect-evals[ifeval]` extra, which cannot be named directly since it resolves
# inspect-evals down to 0.3.x. Not published on PyPI, hence the git URL.
"instruction_following_eval @ git+https://github.com/josejg/instruction_following_eval@0c495b2f95155e8b10acb919ae283bfb4d5be6e2",
"langdetect>=1.0.9",
]
docs = [
"mkdocs-material",
"mkdocs-jupyter",
"mkdocs-click",
"mkdocs-include",
"mkdocstrings[python]",
"griffe_inherited_docstrings",
"griffe-pydantic",
"mkdocs-awesome-nav",
"mkdocs-include-markdown-plugin",
"mkdocs-bibtex",
]
# tools
[tool.uv]
# aiohttp is a transitive dependency; releases before 3.14.4 have unbounded memory/CPU use
# (GHSA-2g87-pp6c-29x5)
constraint-dependencies = ["aiohttp>=3.14.4"]
[tool.uv.build-backend]
module-root = ""
module-name = "steerability"
[tool.isort]
profile = "black"
line_length = 120
extend_skip = [".claude"]
[tool.pytest.ini_options]
markers = [
"network: downloads a Hub model outside tests/utils/ci_models.yaml (deselect with -m 'not network')",
]
# build
[build-system]
requires = ["uv_build>=0.8.9,<0.9.0"]
build-backend = "uv_build"