vec-inf 0.4.0.post1__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. vec_inf-0.5.0/.github/ISSUE_TEMPLATE/bug_report.md +26 -0
  2. vec_inf-0.5.0/.github/ISSUE_TEMPLATE/config.yml +1 -0
  3. vec_inf-0.5.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. vec_inf-0.5.0/.github/dependabot.yml +11 -0
  5. vec_inf-0.5.0/.github/pull_request_template.md +8 -0
  6. vec_inf-0.5.0/.github/workflows/code_checks.yml +51 -0
  7. vec_inf-0.5.0/.github/workflows/docker.yml +55 -0
  8. vec_inf-0.5.0/.github/workflows/docs_build.yml +44 -0
  9. vec_inf-0.5.0/.github/workflows/docs_deploy.yml +59 -0
  10. vec_inf-0.5.0/.github/workflows/publish.yml +32 -0
  11. vec_inf-0.5.0/.github/workflows/unit_tests.yml +81 -0
  12. vec_inf-0.5.0/.gitignore +154 -0
  13. vec_inf-0.5.0/.pre-commit-config.yaml +61 -0
  14. vec_inf-0.5.0/.python-version +1 -0
  15. vec_inf-0.5.0/Dockerfile +52 -0
  16. vec_inf-0.5.0/PKG-INFO +210 -0
  17. vec_inf-0.5.0/README.md +188 -0
  18. vec_inf-0.5.0/codecov.yml +20 -0
  19. vec_inf-0.5.0/docs/Makefile +24 -0
  20. vec_inf-0.5.0/docs/make.bat +35 -0
  21. vec_inf-0.5.0/docs/source/_static/custom.js +6 -0
  22. vec_inf-0.5.0/docs/source/_static/logos/vector_logo.png +0 -0
  23. vec_inf-0.5.0/docs/source/_static/require.min.js +1 -0
  24. vec_inf-0.5.0/docs/source/_templates/base.html +120 -0
  25. vec_inf-0.5.0/docs/source/_templates/custom-class-template.rst +34 -0
  26. vec_inf-0.5.0/docs/source/_templates/custom-module-template.rst +66 -0
  27. vec_inf-0.5.0/docs/source/_templates/page.html +219 -0
  28. vec_inf-0.5.0/docs/source/conf.py +113 -0
  29. vec_inf-0.5.0/docs/source/index.md +24 -0
  30. vec_inf-0.5.0/docs/source/user_guide.md +181 -0
  31. vec_inf-0.5.0/examples/README.md +9 -0
  32. vec_inf-0.5.0/examples/inference/llm/chat_completions.py +21 -0
  33. vec_inf-0.5.0/examples/inference/llm/completions.py +16 -0
  34. vec_inf-0.5.0/examples/inference/llm/completions.sh +13 -0
  35. vec_inf-0.5.0/examples/inference/text_embedding/embeddings.py +22 -0
  36. vec_inf-0.5.0/examples/inference/vlm/vision_completions.py +29 -0
  37. vec_inf-0.5.0/examples/logits/logits.py +16 -0
  38. vec_inf-0.5.0/profile/avg_throughput.py +57 -0
  39. vec_inf-0.5.0/profile/gen.py +98 -0
  40. vec_inf-0.5.0/pyproject.toml +148 -0
  41. vec_inf-0.5.0/tests/__init__.py +1 -0
  42. vec_inf-0.5.0/tests/test_imports.py +17 -0
  43. vec_inf-0.5.0/tests/vec_inf/__init__.py +1 -0
  44. vec_inf-0.5.0/tests/vec_inf/cli/__init__.py +1 -0
  45. vec_inf-0.5.0/tests/vec_inf/cli/test_cli.py +516 -0
  46. vec_inf-0.5.0/tests/vec_inf/cli/test_utils.py +224 -0
  47. vec_inf-0.5.0/uv.lock +4511 -0
  48. vec_inf-0.5.0/vec_inf/__init__.py +1 -0
  49. vec_inf-0.5.0/vec_inf/cli/__init__.py +1 -0
  50. vec_inf-0.5.0/vec_inf/cli/_cli.py +230 -0
  51. vec_inf-0.5.0/vec_inf/cli/_config.py +87 -0
  52. vec_inf-0.5.0/vec_inf/cli/_helper.py +675 -0
  53. vec_inf-0.5.0/vec_inf/cli/_utils.py +162 -0
  54. {vec_inf-0.4.0.post1/vec_inf/models → vec_inf-0.5.0/vec_inf/config}/README.md +54 -0
  55. vec_inf-0.5.0/vec_inf/config/models.yaml +1274 -0
  56. vec_inf-0.5.0/vec_inf/multinode_vllm.slurm +154 -0
  57. vec_inf-0.5.0/vec_inf/vllm.slurm +90 -0
  58. vec_inf-0.5.0/venv.sh +29 -0
  59. vec_inf-0.4.0.post1/PKG-INFO +0 -120
  60. vec_inf-0.4.0.post1/README.md +0 -93
  61. vec_inf-0.4.0.post1/pyproject.toml +0 -39
  62. vec_inf-0.4.0.post1/vec_inf/__init__.py +0 -0
  63. vec_inf-0.4.0.post1/vec_inf/cli/__init__.py +0 -0
  64. vec_inf-0.4.0.post1/vec_inf/cli/_cli.py +0 -385
  65. vec_inf-0.4.0.post1/vec_inf/cli/_utils.py +0 -163
  66. vec_inf-0.4.0.post1/vec_inf/launch_server.sh +0 -126
  67. vec_inf-0.4.0.post1/vec_inf/models/models.csv +0 -73
  68. vec_inf-0.4.0.post1/vec_inf/multinode_vllm.slurm +0 -122
  69. vec_inf-0.4.0.post1/vec_inf/vllm.slurm +0 -57
  70. {vec_inf-0.4.0.post1 → vec_inf-0.5.0}/LICENSE +0 -0
  71. {vec_inf-0.4.0.post1 → vec_inf-0.5.0}/vec_inf/README.md +0 -0
  72. {vec_inf-0.4.0.post1 → vec_inf-0.5.0}/vec_inf/find_port.sh +0 -0
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ### Describe the bug
11
+ A clear and concise description of what the bug is.
12
+
13
+ ### To Reproduce
14
+ Code snippet or clear steps to reproduce behaviour.
15
+
16
+ ### Expected behavior
17
+ A clear and concise description of what you expected to happen.
18
+
19
+ ### Screenshots
20
+ If applicable, add screenshots to help explain your problem.
21
+
22
+ ### Version
23
+ - Version info such as v0.1.5
24
+
25
+ ### Additional context
26
+ Add any other context about the problem here.
@@ -0,0 +1 @@
1
+ blank_issues_enabled: false
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ### Is your feature request related to a problem? Please describe.
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ ### Describe the solution you'd like
14
+ A clear and concise description of what you want to happen.
15
+
16
+ ### Describe alternatives you've considered
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ ### Additional context
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "github-actions" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
@@ -0,0 +1,8 @@
1
+ # PR Type
2
+ [Feature | Fix | Documentation | Other() ]
3
+
4
+ # Short Description
5
+ ...
6
+
7
+ # Tests Added
8
+ ...
@@ -0,0 +1,51 @@
1
+ name: code checks
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - develop
8
+ paths:
9
+ - .pre-commit-config.yaml
10
+ - .github/workflows/code_checks.yml
11
+ - '**.py'
12
+ - uv.lock
13
+ - pyproject.toml
14
+ - '**.ipynb'
15
+ pull_request:
16
+ branches:
17
+ - main
18
+ - develop
19
+ paths:
20
+ - .pre-commit-config.yaml
21
+ - .github/workflows/code_checks.yml
22
+ - '**.py'
23
+ - uv.lock
24
+ - pyproject.toml
25
+ - '**.ipynb'
26
+
27
+ jobs:
28
+ run-code-check:
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - uses: actions/checkout@v4.2.2
32
+ - name: Install uv
33
+ uses: astral-sh/setup-uv@v5.3.1
34
+ with:
35
+ # Install a specific version of uv.
36
+ version: "0.5.21"
37
+ enable-cache: true
38
+ - name: "Set up Python"
39
+ uses: actions/setup-python@v5.4.0
40
+ with:
41
+ python-version-file: ".python-version"
42
+ - name: Install the project
43
+ run: uv sync --dev
44
+ - name: Install dependencies and check code
45
+ run: |
46
+ source .venv/bin/activate
47
+ pre-commit run --all-files
48
+ - name: pip-audit (gh-action-pip-audit)
49
+ uses: pypa/gh-action-pip-audit@v1.1.0
50
+ with:
51
+ virtual-environment: .venv/
@@ -0,0 +1,55 @@
1
+ name: docker
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ push:
7
+ branches:
8
+ - main
9
+ paths:
10
+ - Dockerfile
11
+ - .github/workflows/docker.yml
12
+ pull_request:
13
+ branches:
14
+ - main
15
+ - develop
16
+ paths:
17
+ - Dockerfile
18
+ - .github/workflows/docker.yml
19
+
20
+ jobs:
21
+ push_to_registry:
22
+ name: Push Docker image to Docker Hub
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - name: Checkout repository
26
+ uses: actions/checkout@v4.2.2
27
+
28
+ - name: Extract vLLM version
29
+ id: vllm-version
30
+ run: |
31
+ VERSION=$(grep -A 1 'name = "vllm"' uv.lock | grep version | cut -d '"' -f 2)
32
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
33
+
34
+ - name: Log in to Docker Hub
35
+ uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
36
+ with:
37
+ username: ${{ secrets.DOCKER_USERNAME }}
38
+ password: ${{ secrets.DOCKER_PASSWORD }}
39
+
40
+ - name: Extract metadata (tags, labels) for Docker
41
+ id: meta
42
+ uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804
43
+ with:
44
+ images: vectorinstitute/vector-inference
45
+
46
+ - name: Build and push Docker image
47
+ uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4
48
+ with:
49
+ context: .
50
+ file: ./Dockerfile
51
+ push: true
52
+ tags: |
53
+ ${{ steps.meta.outputs.tags }}
54
+ vectorinstitute/vector-inference:${{ steps.vllm-version.outputs.version }}
55
+ labels: ${{ steps.meta.outputs.labels }}
@@ -0,0 +1,44 @@
1
+ name: docs (build)
2
+ permissions:
3
+ contents: read
4
+ pull-requests: write
5
+
6
+ on:
7
+ pull_request:
8
+ branches:
9
+ - main
10
+ - develop
11
+ paths:
12
+ - .pre-commit-config.yaml
13
+ - .github/workflows/docs_build.yml
14
+ - '**.py'
15
+ - '**.ipynb'
16
+ - '**.js'
17
+ - '**.html'
18
+ - uv.lock
19
+ - pyproject.toml
20
+ - '**.rst'
21
+ - '**.md'
22
+
23
+ jobs:
24
+ build:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v4.2.2
28
+
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231
31
+ with:
32
+ version: "0.5.21"
33
+ enable-cache: true
34
+
35
+ - name: "Set up Python"
36
+ uses: actions/setup-python@8039c45ed9a312fba91f3399cd0605ba2ebfe93c
37
+ with:
38
+ python-version-file: ".python-version"
39
+
40
+ - name: Install the project
41
+ run: uv sync --dev --group docs
42
+
43
+ - name: Build docs
44
+ run: cd docs && rm -rf source/reference/api/_autosummary && uv run make html
@@ -0,0 +1,59 @@
1
+ name: docs
2
+ permissions:
3
+ contents: write
4
+ pull-requests: write
5
+
6
+ on:
7
+ push:
8
+ branches:
9
+ - main
10
+ paths:
11
+ - .pre-commit-config.yaml
12
+ - .github/workflows/code_checks.yml
13
+ - .github/workflows/docs_build.yml
14
+ - .github/workflows/docs_deploy.yml
15
+ - .github/workflows/integration_tests.yml
16
+ - '**.py'
17
+ - '**.ipynb'
18
+ - '**.html'
19
+ - '**.js'
20
+ - uv.lock
21
+ - pyproject.toml
22
+ - '**.rst'
23
+ - '**.md'
24
+
25
+ jobs:
26
+ deploy:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v4.2.2
30
+ with:
31
+ submodules: 'true'
32
+
33
+ - name: Install uv
34
+ uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231
35
+ with:
36
+ # Install a specific version of uv.
37
+ version: "0.5.21"
38
+ enable-cache: true
39
+
40
+ - name: "Set up Python"
41
+ uses: actions/setup-python@8039c45ed9a312fba91f3399cd0605ba2ebfe93c
42
+ with:
43
+ python-version-file: ".python-version"
44
+
45
+ - name: Install the project
46
+ run: uv sync --dev --group docs
47
+
48
+ - name: Build docs
49
+ run: |
50
+ cd docs
51
+ rm -rf source/reference/api/_autosummary
52
+ uv run make html
53
+ touch build/html/.nojekyll
54
+
55
+ - name: Deploy to Github pages
56
+ uses: JamesIves/github-pages-deploy-action@6c2d9db40f9296374acc17b90404b6e8864128c8
57
+ with:
58
+ branch: github_pages
59
+ folder: docs/build/html
@@ -0,0 +1,32 @@
1
+ name: publish package
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ deploy:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Install apt dependencies
12
+ run: |
13
+ sudo apt-get update
14
+ sudo apt-get install libcurl4-openssl-dev libssl-dev
15
+
16
+ - uses: actions/checkout@v4.2.2
17
+
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v5
20
+ with:
21
+ version: "0.6.6"
22
+ enable-cache: true
23
+
24
+ - uses: actions/setup-python@v5.4.0
25
+ with:
26
+ python-version: '3.10'
27
+
28
+ - name: Build package
29
+ run: uv build
30
+
31
+ - name: Publish package
32
+ run: uv publish --token ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,81 @@
1
+ name: unit tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - develop
8
+ paths:
9
+ - .pre-commit-config.yaml
10
+ - .github/workflows/code_checks.yml
11
+ - .github/workflows/docs_build.yml
12
+ - .github/workflows/docs_deploy.yml
13
+ - .github/workflows/unit_tests.yml
14
+ - .github/workflows/integration_tests.yml
15
+ - '**.py'
16
+ - '**.ipynb'
17
+ - uv.lock
18
+ - pyproject.toml
19
+ - '**.rst'
20
+ - '**.md'
21
+ pull_request:
22
+ branches:
23
+ - main
24
+ - develop
25
+ paths:
26
+ - .pre-commit-config.yaml
27
+ - .github/workflows/code_checks.yml
28
+ - .github/workflows/docs_build.yml
29
+ - .github/workflows/docs_deploy.yml
30
+ - .github/workflows/unit_tests.yml
31
+ - .github/workflows/integration_tests.yml
32
+ - '**.py'
33
+ - '**.ipynb'
34
+ - uv.lock
35
+ - pyproject.toml
36
+ - '**.rst'
37
+ - '**.md'
38
+
39
+ jobs:
40
+ unit-tests:
41
+ runs-on: ubuntu-latest
42
+ strategy:
43
+ matrix:
44
+ python-version: ["3.10", "3.11", "3.12"]
45
+ steps:
46
+ - uses: actions/checkout@v4.2.2
47
+
48
+ - name: Install uv
49
+ uses: astral-sh/setup-uv@v5.3.1
50
+ with:
51
+ # Install a specific version of uv.
52
+ version: "0.5.21"
53
+ enable-cache: true
54
+
55
+ - name: "Set up Python ${{ matrix.python-version }}"
56
+ uses: actions/setup-python@v5.4.0
57
+ with:
58
+ python-version: ${{ matrix.python-version }}
59
+
60
+ - name: Install the project
61
+ run: uv sync --dev
62
+
63
+ - name: Install dependencies and check code
64
+ run: |
65
+ uv run pytest -m "not integration_test" --cov vec_inf --cov-report=xml tests
66
+
67
+ - name: Install the core package only
68
+ run: uv sync --no-dev
69
+
70
+ - name: Run package import tests
71
+ run: |
72
+ uv run pytest tests/test_imports.py
73
+
74
+ - name: Upload coverage to Codecov
75
+ uses: codecov/codecov-action@v5.4.0
76
+ with:
77
+ token: ${{ secrets.CODECOV_TOKEN }}
78
+ file: ./coverage.xml
79
+ name: codecov-umbrella
80
+ fail_ci_if_error: true
81
+ verbose: true
@@ -0,0 +1,154 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pipenv
85
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
86
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
87
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
88
+ # install all needed dependencies.
89
+ #Pipfile.lock
90
+
91
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
92
+ __pypackages__/
93
+
94
+ # Celery stuff
95
+ celerybeat-schedule
96
+ celerybeat.pid
97
+
98
+ # SageMath parsed files
99
+ *.sage.py
100
+
101
+ # Environments
102
+ .env
103
+ .venv
104
+ env/
105
+ venv/
106
+ ENV/
107
+ env.bak/
108
+ venv.bak/
109
+
110
+ # Spyder project settings
111
+ .spyderproject
112
+ .spyproject
113
+
114
+ # Rope project settings
115
+ .ropeproject
116
+
117
+ # mkdocs documentation
118
+ /site
119
+
120
+ # mypy
121
+ .mypy_cache/
122
+ .dmypy.json
123
+ dmypy.json
124
+
125
+ # Pyre type checker
126
+ .pyre/
127
+
128
+ # pycharm
129
+ .idea/
130
+
131
+ # VS Code
132
+ .vscode/
133
+
134
+ # MacOS
135
+ .DS_Store
136
+
137
+ # Slurm logs
138
+ *.out
139
+ *.err
140
+
141
+ # Server url files
142
+ *_url
143
+
144
+ logs/
145
+
146
+ local/
147
+ slurm/
148
+ scripts/
149
+
150
+ # vLLM bug reporting files
151
+ collect_env.py
152
+
153
+ # build files
154
+ dist/
@@ -0,0 +1,61 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0 # Use the ref you want to point at
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: check-ast
7
+ - id: check-builtin-literals
8
+ - id: check-docstring-first
9
+ - id: check-executables-have-shebangs
10
+ - id: debug-statements
11
+ - id: end-of-file-fixer
12
+ - id: mixed-line-ending
13
+ args: [--fix=lf]
14
+ - id: requirements-txt-fixer
15
+ - id: check-yaml
16
+ - id: check-toml
17
+
18
+ - repo: https://github.com/astral-sh/ruff-pre-commit
19
+ rev: 'v0.11.0'
20
+ hooks:
21
+ - id: ruff
22
+ args: [--fix, --exit-non-zero-on-fix]
23
+ types_or: [python, jupyter]
24
+ - id: ruff-format
25
+ types_or: [python, jupyter]
26
+
27
+ - repo: https://github.com/pre-commit/mirrors-mypy
28
+ rev: v1.15.0
29
+ hooks:
30
+ - id: mypy
31
+ entry: python3 -m mypy --config-file pyproject.toml
32
+ language: system
33
+ types: [python]
34
+ exclude: "tests"
35
+
36
+ - repo: https://github.com/nbQA-dev/nbQA
37
+ rev: 1.9.1
38
+ hooks:
39
+ - id: nbqa-ruff
40
+ args: [--fix, --exit-non-zero-on-fix]
41
+
42
+ - repo: local
43
+ hooks:
44
+ - id: pytest
45
+ name: pytest
46
+ entry: python3 -m pytest -m "not integration_test"
47
+ language: system
48
+ pass_filenames: false
49
+ always_run: true
50
+
51
+ ci:
52
+ autofix_commit_msg: |
53
+ [pre-commit.ci] Add auto fixes from pre-commit.com hooks
54
+
55
+ for more information, see https://pre-commit.ci
56
+ autofix_prs: true
57
+ autoupdate_branch: ''
58
+ autoupdate_commit_msg: '[pre-commit.ci] pre-commit autoupdate'
59
+ autoupdate_schedule: weekly
60
+ skip: [pytest,mypy]
61
+ submodules: false
@@ -0,0 +1 @@
1
+ 3.10
@@ -0,0 +1,52 @@
1
+ FROM nvidia/cuda:12.3.1-devel-ubuntu20.04
2
+
3
+ # Non-interactive apt-get commands
4
+ ARG DEBIAN_FRONTEND=noninteractive
5
+
6
+ # No GPUs visible during build
7
+ ARG CUDA_VISIBLE_DEVICES=none
8
+
9
+ # Specify CUDA architectures -> 7.5: RTX 6000 & T4, 8.0: A100, 8.6+PTX
10
+ ARG TORCH_CUDA_ARCH_LIST="7.5;8.0;8.6+PTX"
11
+
12
+ # Set the Python version
13
+ ARG PYTHON_VERSION=3.10.12
14
+
15
+ # Install system dependencies
16
+ RUN apt-get update && apt-get install -y \
17
+ wget build-essential libssl-dev zlib1g-dev libbz2-dev \
18
+ libreadline-dev libsqlite3-dev libffi-dev libncursesw5-dev \
19
+ xz-utils tk-dev libxml2-dev libxmlsec1-dev liblzma-dev git vim \
20
+ && rm -rf /var/lib/apt/lists/*
21
+
22
+ # Install Python
23
+ RUN wget https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz && \
24
+ tar -xzf Python-$PYTHON_VERSION.tgz && \
25
+ cd Python-$PYTHON_VERSION && \
26
+ ./configure --enable-optimizations && \
27
+ make -j$(nproc) && \
28
+ make altinstall && \
29
+ cd .. && \
30
+ rm -rf Python-$PYTHON_VERSION.tgz Python-$PYTHON_VERSION
31
+
32
+ # Install pip and core Python tools
33
+ RUN wget https://bootstrap.pypa.io/get-pip.py && \
34
+ python3.10 get-pip.py && \
35
+ rm get-pip.py && \
36
+ python3.10 -m pip install --upgrade pip setuptools wheel uv
37
+
38
+ # Set up project
39
+ WORKDIR /vec-inf
40
+ COPY . /vec-inf
41
+
42
+ # Install project dependencies with build requirements
43
+ RUN PIP_INDEX_URL="https://download.pytorch.org/whl/cu121" uv pip install --system -e .[dev]
44
+ # Install Flash Attention
45
+ RUN python3.10 -m pip install flash-attn --no-build-isolation
46
+
47
+ # Final configuration
48
+ RUN mkdir -p /vec-inf/nccl && \
49
+ mv /root/.config/vllm/nccl/cu12/libnccl.so.2.18.1 /vec-inf/nccl/libnccl.so.2.18.1
50
+
51
+ # Set the default command to start an interactive shell
52
+ CMD ["bash"]