Skip to content

Commit d90b4e8

Browse files
authored
Use vLLM extra to generate GPU requirements files (#36420)
* Add vllm extra * Push requirements files * preinstall torch * Fix up requirement generation * Revert "Fix up requirement generation" This reverts commit 1a5d907. * install rust * Highmem * Exclude 3.13 for now * CPU torch wheels * remove 3.9 * Add requirements files * Clarify comment
1 parent eba04b2 commit d90b4e8

File tree

6 files changed

+965
-3
lines changed

6 files changed

+965
-3
lines changed

.github/workflows/update_python_dependencies.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ env:
3636

3737
jobs:
3838
set-properties:
39-
runs-on: [self-hosted, ubuntu-20.04]
39+
runs-on: [self-hosted, ubuntu-20.04, highmem]
4040
outputs:
4141
properties: ${{ steps.test-properties.outputs.properties }}
4242
steps:
@@ -64,7 +64,6 @@ jobs:
6464
java-version: default
6565
go-version: default
6666
disable-cache: true
67-
6867
- name: Update Python Dependencies
6968
uses: ./.github/actions/gradle-command-self-hosted-action
7069
with:

sdks/python/container/common.gradle

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,27 @@ def generatePythonRequirements = tasks.register("generatePythonRequirements") {
5656
"[gcp,dataframe,test,ml_cpu] " +
5757
"${pipExtraOptions}"
5858
}
59+
// TODO(https://github.com/apache/beam/issues/36637)
60+
// Skip generating Python 3.13 requirements for now since not all 3.13
61+
// wheels are available/buildable.
62+
// Also skip 3.9 because there are some dependency version conflicts. This
63+
// is fine since 3.9 will be EoL by the next release, and we can remove
64+
// this condition once we remove support entirely.
65+
if ("${project.ext.pythonVersion}" != "3.13" && "${project.ext.pythonVersion}" != "3.9") {
66+
// GPU requirements not used for any containers directly due to
67+
// licensing, but can be picked up by customers or other consumers for
68+
// use.
69+
exec {
70+
executable 'sh'
71+
args '-c', "cd ${rootDir} && ${runScriptsPath} " +
72+
"${project.ext.pythonVersion} " +
73+
"${files(configurations.sdkSourceTarball.files).singleFile} " +
74+
"gpu_image_requirements.txt " +
75+
"container/ml " +
76+
"[gcp,dataframe,test,tensorflow,torch,transformers,vllm] " +
77+
"${pipExtraOptions}"
78+
}
79+
}
5980
}
6081
}
6182

Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,313 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one or more
2+
# contributor license agreements. See the NOTICE file distributed with
3+
# this work for additional information regarding copyright ownership.
4+
# The ASF licenses this file to You under the Apache License, Version 2.0
5+
# (the "License"); you may not use this file except in compliance with
6+
# the License. You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
16+
# Autogenerated requirements file for Apache Beam py310 container image.
17+
# Run ./gradlew :sdks:python:container:generatePythonRequirementsAll to update.
18+
# Do not edit manually, adjust ../base_image_requirements_manual.txt or
19+
# Apache Beam's setup.py instead, and regenerate the list.
20+
# You will need Python interpreters for all versions supported by Beam, see:
21+
# https://s.apache.org/beam-python-dev-wiki
22+
# Reach out to a committer if you need help.
23+
24+
absl-py==2.3.1
25+
aiofiles==25.1.0
26+
aiohappyeyeballs==2.6.1
27+
aiohttp==3.13.1
28+
aiosignal==1.4.0
29+
annotated-doc==0.0.3
30+
annotated-types==0.7.0
31+
anyio==4.11.0
32+
asn1crypto==1.5.1
33+
astor==0.8.1
34+
astunparse==1.6.3
35+
async-timeout==5.0.1
36+
attrs==25.4.0
37+
backports.tarfile==1.2.0
38+
beartype==0.21.0
39+
beautifulsoup4==4.14.2
40+
blake3==1.0.8
41+
bs4==0.0.2
42+
build==1.3.0
43+
cachetools==6.2.1
44+
cbor2==5.7.1
45+
certifi==2025.10.5
46+
cffi==2.0.0
47+
charset-normalizer==3.4.4
48+
click==8.2.1
49+
cloud-sql-python-connector==1.18.5
50+
cloudpickle==3.1.1
51+
compressed-tensors==0.10.2
52+
crcmod==1.7
53+
cryptography==46.0.3
54+
cupy-cuda12x==13.6.0
55+
Cython==3.1.6
56+
depyf==0.19.0
57+
dill==0.3.1.1
58+
diskcache==5.6.3
59+
distro==1.9.0
60+
dnspython==2.8.0
61+
docker==7.1.0
62+
docopt==0.6.2
63+
docstring_parser==0.17.0
64+
einops==0.8.1
65+
email-validator==2.3.0
66+
exceptiongroup==1.3.0
67+
execnet==2.1.1
68+
fastapi==0.120.1
69+
fastapi-cli==0.0.14
70+
fastapi-cloud-cli==0.3.1
71+
fastavro==1.12.1
72+
fasteners==0.20
73+
fastrlock==0.8.3
74+
filelock==3.20.0
75+
flatbuffers==25.9.23
76+
freezegun==1.5.5
77+
frozenlist==1.8.0
78+
fsspec==2025.9.0
79+
future==1.0.0
80+
gast==0.6.0
81+
gguf==0.17.1
82+
google-api-core==2.28.0
83+
google-api-python-client==2.185.0
84+
google-apitools==0.5.31
85+
google-auth==2.41.1
86+
google-auth-httplib2==0.2.0
87+
google-cloud-aiplatform==1.122.0
88+
google-cloud-bigquery==3.38.0
89+
google-cloud-bigquery-storage==2.33.1
90+
google-cloud-bigtable==2.34.0
91+
google-cloud-core==2.4.3
92+
google-cloud-datastore==2.21.0
93+
google-cloud-dlp==3.33.0
94+
google-cloud-language==2.18.0
95+
google-cloud-profiler==4.1.0
96+
google-cloud-pubsub==2.31.1
97+
google-cloud-pubsublite==1.12.0
98+
google-cloud-recommendations-ai==0.10.18
99+
google-cloud-resource-manager==1.15.0
100+
google-cloud-secret-manager==2.25.0
101+
google-cloud-spanner==3.59.0
102+
google-cloud-storage==2.19.0
103+
google-cloud-videointelligence==2.17.0
104+
google-cloud-vision==3.11.0
105+
google-crc32c==1.7.1
106+
google-genai==1.46.0
107+
google-pasta==0.2.0
108+
google-resumable-media==2.7.2
109+
googleapis-common-protos==1.71.0
110+
greenlet==3.2.4
111+
grpc-google-iam-v1==0.14.3
112+
grpc-interceptor==0.15.4
113+
grpcio==1.65.5
114+
grpcio-status==1.65.5
115+
guppy3==3.1.5
116+
h11==0.16.0
117+
h5py==3.15.1
118+
hdfs==2.7.3
119+
hf-xet==1.2.0
120+
httpcore==1.0.9
121+
httplib2==0.22.0
122+
httptools==0.7.1
123+
httpx==0.28.1
124+
huggingface-hub==0.36.0
125+
hypothesis==6.142.4
126+
idna==3.11
127+
importlib_metadata==8.7.0
128+
iniconfig==2.3.0
129+
interegular==0.3.3
130+
jaraco.classes==3.4.0
131+
jaraco.context==6.0.1
132+
jaraco.functools==4.3.0
133+
jeepney==0.9.0
134+
Jinja2==3.1.6
135+
jiter==0.11.1
136+
joblib==1.5.2
137+
jsonpickle==3.4.2
138+
jsonschema==4.25.1
139+
jsonschema-specifications==2025.9.1
140+
keras==3.12.0
141+
keyring==25.6.0
142+
keyrings.google-artifactregistry-auth==1.1.2
143+
lark==1.2.2
144+
libclang==18.1.1
145+
llguidance==0.7.30
146+
llvmlite==0.44.0
147+
lm-format-enforcer==0.10.12
148+
Markdown==3.9
149+
markdown-it-py==4.0.0
150+
MarkupSafe==3.0.3
151+
mdurl==0.1.2
152+
milvus-lite==2.5.1
153+
mistral_common==1.8.5
154+
ml_dtypes==0.5.3
155+
mmh3==5.2.0
156+
mock==5.2.0
157+
more-itertools==10.8.0
158+
mpmath==1.3.0
159+
msgpack==1.1.2
160+
msgspec==0.19.0
161+
multidict==6.7.0
162+
namex==0.1.0
163+
networkx==3.4.2
164+
ninja==1.13.0
165+
nltk==3.9.2
166+
numba==0.61.2
167+
numpy==2.2.6
168+
nvidia-cublas-cu12==12.6.4.1
169+
nvidia-cuda-cupti-cu12==12.6.80
170+
nvidia-cuda-nvrtc-cu12==12.6.77
171+
nvidia-cuda-runtime-cu12==12.6.77
172+
nvidia-cudnn-cu12==9.5.1.17
173+
nvidia-cufft-cu12==11.3.0.4
174+
nvidia-cufile-cu12==1.11.1.6
175+
nvidia-curand-cu12==10.3.7.77
176+
nvidia-cusolver-cu12==11.7.1.2
177+
nvidia-cusparse-cu12==12.5.4.2
178+
nvidia-cusparselt-cu12==0.6.3
179+
nvidia-nccl-cu12==2.26.2
180+
nvidia-nvjitlink-cu12==12.6.85
181+
nvidia-nvshmem-cu12==3.3.20
182+
nvidia-nvtx-cu12==12.6.77
183+
oauth2client==4.1.3
184+
objsize==0.7.1
185+
openai==1.107.1
186+
openai-harmony==0.0.4
187+
opencv-python-headless==4.12.0.88
188+
opentelemetry-api==1.38.0
189+
opentelemetry-sdk==1.38.0
190+
opentelemetry-semantic-conventions==0.59b0
191+
opt_einsum==3.4.0
192+
optree==0.17.0
193+
oracledb==3.4.0
194+
orjson==3.11.4
195+
outlines_core==0.2.10
196+
overrides==7.7.0
197+
packaging==25.0
198+
pandas==2.2.3
199+
parameterized==0.9.0
200+
partial-json-parser==0.2.1.1.post6
201+
pg8000==1.31.5
202+
pillow==12.0.0
203+
pip==25.3
204+
pluggy==1.6.0
205+
prometheus-fastapi-instrumentator==7.1.0
206+
prometheus_client==0.23.1
207+
propcache==0.4.1
208+
proto-plus==1.26.1
209+
protobuf==5.29.5
210+
psutil==7.1.2
211+
psycopg2-binary==2.9.11
212+
py-cpuinfo==9.0.0
213+
pyarrow==18.1.0
214+
pyarrow-hotfix==0.7
215+
pyasn1==0.6.1
216+
pyasn1_modules==0.4.2
217+
pybase64==1.4.2
218+
pycountry==24.6.1
219+
pycparser==2.23
220+
pydantic==2.12.3
221+
pydantic-extra-types==2.10.6
222+
pydantic_core==2.41.4
223+
pydot==1.4.2
224+
Pygments==2.19.2
225+
PyHamcrest==2.1.0
226+
PyJWT==2.10.1
227+
pymilvus==2.5.16
228+
pymongo==4.15.3
229+
PyMySQL==1.1.2
230+
pyparsing==3.2.5
231+
pyproject_hooks==1.2.0
232+
pytest==8.4.2
233+
pytest-timeout==2.4.0
234+
pytest-xdist==3.8.0
235+
python-dateutil==2.9.0.post0
236+
python-dotenv==1.2.1
237+
python-json-logger==4.0.0
238+
python-multipart==0.0.20
239+
python-tds==1.17.1
240+
pytz==2025.2
241+
PyYAML==6.0.3
242+
pyzmq==27.1.0
243+
ray==2.50.1
244+
redis==5.3.1
245+
referencing==0.37.0
246+
regex==2025.10.23
247+
requests==2.32.5
248+
requests-mock==1.12.1
249+
rich==14.2.0
250+
rich-toolkit==0.15.1
251+
rignore==0.7.1
252+
rpds-py==0.28.0
253+
rsa==4.9.1
254+
safetensors==0.6.2
255+
scikit-learn==1.7.2
256+
scipy==1.15.3
257+
scramp==1.4.6
258+
SecretStorage==3.4.0
259+
sentencepiece==0.2.1
260+
sentry-sdk==2.42.1
261+
setproctitle==1.3.7
262+
setuptools==80.9.0
263+
shapely==2.1.2
264+
shellingham==1.5.4
265+
six==1.17.0
266+
sniffio==1.3.1
267+
sortedcontainers==2.4.0
268+
soundfile==0.13.1
269+
soupsieve==2.8
270+
soxr==1.0.0
271+
SQLAlchemy==2.0.44
272+
sqlalchemy_pytds==1.0.2
273+
sqlparse==0.5.3
274+
starlette==0.49.0
275+
sympy==1.14.0
276+
tenacity==8.5.0
277+
tensorboard==2.20.0
278+
tensorboard-data-server==0.7.2
279+
tensorflow==2.20.0
280+
tensorflow-cpu-aws==2.20.0;platform_machine=="aarch64"
281+
termcolor==3.2.0
282+
testcontainers==4.13.2
283+
threadpoolctl==3.6.0
284+
tiktoken==0.12.0
285+
tokenizers==0.21.4
286+
tomli==2.3.0
287+
torch==2.7.1
288+
torchaudio==2.7.1
289+
torchvision==0.22.1
290+
tqdm==4.67.1
291+
transformers==4.55.4
292+
triton==3.3.1
293+
typer==0.20.0
294+
typing-inspection==0.4.2
295+
typing_extensions==4.15.0
296+
tzdata==2025.2
297+
ujson==5.11.0
298+
uritemplate==4.2.0
299+
urllib3==2.5.0
300+
uvicorn==0.38.0
301+
uvloop==0.22.1
302+
virtualenv-clone==0.5.7
303+
vllm==0.10.1.1
304+
watchfiles==1.1.1
305+
websockets==15.0.1
306+
Werkzeug==3.1.3
307+
wheel==0.45.1
308+
wrapt==2.0.0
309+
xformers==0.0.31
310+
xgrammar==0.1.21
311+
yarl==1.22.0
312+
zipp==3.23.0
313+
zstandard==0.25.0

0 commit comments

Comments
 (0)