1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5# propagated build inputs
6, filelock
7, huggingface-hub
8, numpy
9, protobuf
10, packaging
11, pyyaml
12, regex
13, requests
14, tokenizers
15, safetensors
16, tqdm
17# optional dependencies
18, scikit-learn
19, tensorflow
20, onnxconverter-common
21, tf2onnx
22, torch
23, accelerate
24, faiss
25, datasets
26, jax
27, jaxlib
28, flax
29, optax
30, ftfy
31, onnxruntime
32, onnxruntime-tools
33, cookiecutter
34, sagemaker
35, fairscale
36, optuna
37, ray
38, pydantic
39, uvicorn
40, fastapi
41, starlette
42, librosa
43, phonemizer
44, torchaudio
45, pillow
46, timm
47, torchvision
48, av
49, sentencepiece
50}:
51
52buildPythonPackage rec {
53 pname = "transformers";
54 version = "4.35.2";
55 format = "setuptools";
56
57 disabled = pythonOlder "3.8";
58
59 src = fetchFromGitHub {
60 owner = "huggingface";
61 repo = "transformers";
62 rev = "refs/tags/v${version}";
63 hash = "sha256-h1RMSEcuali05AWeTm1wyZQJz6XrHamCF1eHrSnFnfM=";
64 };
65
66 propagatedBuildInputs = [
67 filelock
68 huggingface-hub
69 numpy
70 packaging
71 pyyaml
72 regex
73 requests
74 tokenizers
75 safetensors
76 tqdm
77 ];
78
79 passthru.optional-dependencies =
80 let
81 audio = [
82 librosa
83 # pyctcdecode
84 phonemizer
85 # kenlm
86 ];
87 vision = [ pillow ];
88 in
89 {
90 ja = [
91 # fugashi
92 # ipadic
93 # rhoknp
94 # sudachidict_core
95 # sudachipy
96 # unidic
97 # unidic_lite
98 ];
99 sklearn = [
100 scikit-learn
101 ];
102 tf = [
103 tensorflow
104 onnxconverter-common
105 tf2onnx
106 # tensorflow-text
107 # keras-nlp
108 ];
109 torch = [
110 torch
111 accelerate
112 ];
113 retrieval = [ faiss datasets ];
114 flax = [ jax jaxlib flax optax ];
115 tokenizers = [
116 tokenizers
117 ];
118 ftfy = [ ftfy ];
119 onnxruntime = [
120 onnxruntime
121 onnxruntime-tools
122 ];
123 onnx = [
124 onnxconverter-common
125 tf2onnx
126 onnxruntime
127 onnxruntime-tools
128 ];
129 modelcreation = [
130 cookiecutter
131 ];
132 sagemaker = [
133 sagemaker
134 ];
135 deepspeed = [
136 # deepspeed
137 accelerate
138 ];
139 fairscale = [ fairscale ];
140 optuna = [ optuna ];
141 ray = [ ray ] ++ ray.optional-dependencies.tune-deps;
142 # sigopt = [ sigopt ];
143 # integrations = ray ++ optuna ++ sigopt;
144 serving = [
145 pydantic
146 uvicorn
147 fastapi
148 starlette
149 ];
150 audio = audio;
151 speech = [ torchaudio ] ++ audio;
152 torch-speech = [ torchaudio ] ++ audio;
153 tf-speech = audio;
154 flax-speech = audio;
155 timm = [ timm ];
156 torch-vision = [ torchvision ] ++ vision;
157 # natten = [ natten ];
158 # codecarbon = [ codecarbon ];
159 video = [
160 # decord
161 av
162 ];
163 sentencepiece = [ sentencepiece protobuf ];
164 };
165
166
167 # Many tests require internet access.
168 doCheck = false;
169
170 pythonImportsCheck = [
171 "transformers"
172 ];
173
174 meta = with lib; {
175 homepage = "https://github.com/huggingface/transformers";
176 description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
177 changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
178 license = licenses.asl20;
179 platforms = platforms.unix;
180 maintainers = with maintainers; [ pashashocky happysalada ];
181 };
182}