From 53a4cd20d25a5d76481ded4d454873527dc89c74 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 16:51:03 -0500 Subject: [PATCH 01/39] GPU switch, single docker file --- .github/workflows/dev-docker-build-push.yaml | 121 +- Dockerfile | 2 + Dockerfile.gpu | 32 - Makefile | 16 +- README.md | 98 +- pyproject.toml | 10 +- requirements-dev.txt | 16 +- requirements-gpu.txt | 1118 ------------------ requirements.txt | 2 +- 9 files changed, 159 insertions(+), 1256 deletions(-) delete mode 100644 Dockerfile.gpu delete mode 100644 requirements-gpu.txt diff --git a/.github/workflows/dev-docker-build-push.yaml b/.github/workflows/dev-docker-build-push.yaml index c03cbcb..fd26863 100644 --- a/.github/workflows/dev-docker-build-push.yaml +++ b/.github/workflows/dev-docker-build-push.yaml @@ -1,30 +1,125 @@ -name: Dev Docker Image Build/Push +name: Create Development Image on: push: - branches: - - main + tags: + - "dev" workflow_dispatch: env: - VERSION: dev + REGISTRY: ghcr.io + REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper-dev jobs: - push: + build: runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + platform: + - linux/amd64 + - linux/arm64 steps: - - uses: actions/checkout@v4 + - name: Checkout Repo + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: Build image - run: make docker-build VERSION=$VERSION + - name: Docker Metadata + id: meta + uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0 + with: + images: ${{ env.REGISTRY_IMAGE }} + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 #v3.0.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 + + - name: Login to GHCR + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: - registry: ghcr.io + registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Push image - run: make docker-push VERSION=$VERSION \ No newline at end of file + - name: Build and Push Digest + id: build + uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 + with: + context: . + platforms: ${{ matrix.platform }} + labels: ${{ steps.meta.outputs.labels }} + outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true + tags: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} + + - name: Export Digest + run: | + mkdir -p /tmp/digests + digest="${{ steps.build.outputs.digest }}" + touch "/tmp/digests/${digest#sha256:}" + + - name: Upload Digest + uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 + with: + name: digests + path: /tmp/digests/* + if-no-files-found: error + retention-days: 1 + + - name: Clean-up Environment + run: | + docker system prune -a -f && docker volume prune -f + + merge: + runs-on: ubuntu-latest + needs: + - build + steps: + - name: Download Digests + uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 + with: + name: digests + path: /tmp/digests + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 + + - name: Login to GitHub Container Registry + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker Metadata + id: meta + uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0 + with: + images: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + + - name: Create Manifest and Push Image + working-directory: /tmp/digests + run: | + docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + $(printf '${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}@sha256:%s ' *) + + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index f366ee0..0f6a8fd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,8 @@ COPY --from=ffmpeg /usr/lib/lib* /usr/lib COPY --from=builder /home/nonroot/.local/lib/python3.11/site-packages /home/nonroot/.local/lib/python3.11/site-packages COPY --from=builder /leapfrogai/.model/ /leapfrogai/.model/ +ENV LD_LIBRARY_PATH=/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cublas/lib:/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cudnn/lib + COPY main.py . EXPOSE 50051:50051 diff --git a/Dockerfile.gpu b/Dockerfile.gpu deleted file mode 100644 index a20c00b..0000000 --- a/Dockerfile.gpu +++ /dev/null @@ -1,32 +0,0 @@ -FROM ghcr.io/defenseunicorns/leapfrogai/python:3.11-dev-amd64 as builder - -WORKDIR /leapfrogai - -COPY requirements-gpu.txt . - -RUN pip install -r requirements-gpu.txt - -RUN /home/nonroot/.local/bin/ct2-transformers-converter --model openai/whisper-base --output_dir .model --copy_files tokenizer.json --quantization float32 - -# Use ffmpeg image to get compiled binaries -FROM cgr.dev/chainguard/ffmpeg:latest as ffmpeg - -FROM ghcr.io/defenseunicorns/leapfrogai/python:3.11-amd64 - -WORKDIR /leapfrogai - -COPY --from=ffmpeg /usr/bin/ffmpeg /usr/bin -COPY --from=ffmpeg /usr/bin/ffprobe /usr/bin -COPY --from=ffmpeg /usr/lib/lib* /usr/lib -COPY --from=builder /home/nonroot/.local/lib/python3.11/site-packages /home/nonroot/.local/lib/python3.11/site-packages - -COPY --from=builder /leapfrogai/.model/ /leapfrogai/.model/ - -COPY main.py . - -ENV GPU_ENABLED=true -ENV LD_LIBRARY_PATH=/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cublas/lib:/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cudnn/lib - -EXPOSE 50051:50051 - -ENTRYPOINT ["python", "-u", "main.py"] diff --git a/Makefile b/Makefile index 54a733a..d622499 100644 --- a/Makefile +++ b/Makefile @@ -10,9 +10,6 @@ MODEL ?= openai/whisper-base create-venv: python -m venv .venv -activate-venv: - source .venv/bin/activate - requirements-dev: python -m pip install -r requirements-dev.txt @@ -25,9 +22,6 @@ requirements-gpu: build-requirements: pip-compile -o requirements.txt pyproject.toml -build-requirements-gpu: - pip-compile --extra gpu -o requirements-gpu.txt pyproject.toml - build-requirements-dev: pip-compile --extra dev -o requirements-dev.txt pyproject.toml @@ -40,14 +34,8 @@ test: dev: python main.py -make docker-build: +docker-build: docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . -make docker-push: +docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} - -make docker-build-gpu: - docker build -f Dockerfile.gpu -t ghcr.io/defenseunicorns/leapfrogai/whisper-gpu:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . - -make docker-push-gpu: - docker push ghcr.io/defenseunicorns/leapfrogai/whisper-gpu:${VERSION}-${ARCH} diff --git a/README.md b/README.md index 290a9ed..83cc6de 100644 --- a/README.md +++ b/README.md @@ -10,22 +10,50 @@ See [instructions](#instructions) to get the backend up and running. Then, use t ## Instructions -The instructions in this section assume the following: +The instructions in this section assume the following: 1. Properly installed and configured Python 3.11.x, to include its development tools 2. The LeapfrogAI API server is deployed and running +
+GPU Variation +
+The following are additional assumptions for GPU inferencing: + +3. You have properly installed one or more NVIDIA GPUs and GPU drivers +4. You have properly installed and configured the [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) and [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html) +
+ ### Run Locally +
+GPU Variation +
+The following additional variables must be exported for local GPU inferencing: + +```bash +# enable GPU switch +export GPU_ENABLED=true + +# point to VENV's local CUDA 11.8 python lib +export LD_LIBRARY_PATH=${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cublas/lib:${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib +``` + +
+
+ ```bash # Install FFMPEG locally sudo apt install ffmpeg # Setup Virtual Environment make create-venv -make activate-venv +source .venv/bin/activate make requirements-dev +# OPTIONAL: for contributing and maintaining dependencies only +pip install pip-tools + # Clone Model make fetch-model @@ -33,8 +61,21 @@ make fetch-model python main.py ``` + + ### Run in Docker +
+GPU Variation +
+The following additional flags must be added to the `docker run` command for GPU inferencing: + +```bash +docker run --gpus all -e GPU_ENABLED=true -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:latest +``` + +
+ #### Local Image Build and Run For local image building and running. @@ -42,7 +83,7 @@ For local image building and running. ```bash docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:latest . # add the "--gpus all" flag for CUDA inferencing -docker run --rm --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -p 50051:50051 -d --name whisper ghcr.io/defenseunicorns/leapfrogai/whisper:latest +docker run -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:latest ``` #### Remote Image Build and Run @@ -56,54 +97,3 @@ docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper: . # add the "--gpus all" flag for CUDA inferencing docker run -p 50051:50051 -d --name whisper ghcr.io/defenseunicorns/leapfrogai/whisper: ``` - -### GPU Inferencing - -The instructions in this section assume the following: - -1. You have properly installed one or more NVIDIA GPUs and GPU drivers -2. You have properly installed and configured the [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) and [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html) - -#### Run Locally - -For cloning a model locally and running the development backend. - -```bash -# Clone Model -make fetch-model - -# Setup Python Virtual Environment -make create-venv -make activate-venv -make requirements-gpu - -# enable GPU switch -export GPU_ENABLED=true - -# point to VENV's local CUDA 11.8 python lib -export LD_LIBRARY_PATH=${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cublas/lib:${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib - -# Start Model Backend -make dev -``` - -#### Run in Docker - -For local image building and running. - -```bash -# Build GPU docker image -docker build -f Dockerfile.gpu -t ghcr.io/defenseunicorns/leapfrogai/whisper:latest-gpu . - -# Run GPU docker container with GPU resource reservation -docker run --gpus all -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:latest-gpu -``` - -For pulling a tagged image from the main release repository. - -Where `` is the released packages found [here](https://github.com/orgs/defenseunicorns/packages/container/package/leapfrogai%2Fwhisper). - -```bash -# Download and run remote GPU image -docker run -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper: -``` \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 221bf23..3e6e033 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,15 +17,7 @@ requires-python = ">=3.11.4, <3.12" readme = "README.md" [project.optional-dependencies] -dev = [ - "pip-tools", - "pytest", - "black", - "isort", - "nvidia-cublas-cu11", - "nvidia-cuda-runtime-cu11", -] -gpu = ["nvidia-cublas-cu11", "nvidia-cuda-runtime-cu11"] +dev = ["pip-tools", "pytest", "black", "isort"] [tool.pip-tools] generate-hashes = true diff --git a/requirements-dev.txt b/requirements-dev.txt index 718ce0a..0688843 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --extra=dev --generate-hashes --output-file=requirements-dev.txt pyproject.toml @@ -233,10 +233,6 @@ ctranslate2==3.22.0 \ # via # faster-whisper # leapfrogai-backend-whisper (pyproject.toml) -exceptiongroup==1.2.0 \ - --hash=sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14 \ - --hash=sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68 - # via pytest faster-whisper==0.10.0 \ --hash=sha256:591809328b93c8e4594d52097ec6352a270a81fbb7b956254967f28700f7e4da # via leapfrogai-backend-whisper (pyproject.toml) @@ -1103,15 +1099,6 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via confz -tomli==2.0.1 \ - --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ - --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - # via - # black - # build - # pip-tools - # pyproject-hooks - # pytest torch==2.0.1 \ --hash=sha256:0882243755ff28895e8e6dc6bc26ebcf5aa0911ed81b2a12f241fc4b09075b13 \ --hash=sha256:1adb60d369f2650cac8e9a95b1d5758e25d526a34808f7448d0bd599e4ae9072 \ @@ -1173,7 +1160,6 @@ typing-extensions==4.8.0 \ --hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \ --hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef # via - # black # huggingface-hub # pydantic # torch diff --git a/requirements-gpu.txt b/requirements-gpu.txt deleted file mode 100644 index 7de144c..0000000 --- a/requirements-gpu.txt +++ /dev/null @@ -1,1118 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --extra=gpu --generate-hashes --output-file=requirements-gpu.txt pyproject.toml -# -av==10.0.0 \ - --hash=sha256:04cd0ce13a87870fb0a0ea4673f04934af2b9ac7ae844eafe92e2c19c092ab11 \ - --hash=sha256:0577a38664e453b4ffb63d616a0d23c295827b16ae96a090e89527a753de8718 \ - --hash=sha256:07c971573035d22ce50069d3f2bbdb4d6d02d626ab13db12fda3ce519cda3f22 \ - --hash=sha256:088636ded03724a2ab51136f6f4be0bc457bdb3c0d2ac7158792fe81150d4c1a \ - --hash=sha256:0f9c88062ebfd2ce547c522b64f79e487ed2b0a6a9d6693c801b28df0d944607 \ - --hash=sha256:10facb5b933551dd6a30d8015bc91eef5d1c864ee86aa3463ffbaff1a99f6c6a \ - --hash=sha256:115e144d5a1f205378a4b3a3657b7ed3e45918ebe5d2003a891e45984e8f443a \ - --hash=sha256:1301e4cf1a2c899851073720cd541066c8539b64f9eb0d52216f8d0a59f20429 \ - --hash=sha256:13fe0b48b9211539323ecebbf84154c86c72d16723c6d0af76e29ae5c3a614b2 \ - --hash=sha256:157bde3ffd1615a9006b56e4daf3b46848d3ee2bd46b0394f7568e43ed7ab5a9 \ - --hash=sha256:16bd82b63d0b4c1b855b3c36b13337f7cdc5925bd8284fab893bdf6c290fc3a9 \ - --hash=sha256:1b459ca0ef25c1a0e370112556bdc5b7752f76dc9bd497acaf3e653171e4b946 \ - --hash=sha256:1cdede2325cb750b5bf79238bbf06f9c2a70b757b12726003769a43493b7233a \ - --hash=sha256:27d6d38c7c8d46d578c008ffcb8aad1eae14d0621fff41f4ad62395589045fe4 \ - --hash=sha256:3dac2a8b0791c3373270e32f6cd27e6b60628565a188e40a5d9660d3aab05e33 \ - --hash=sha256:51037f4bde03daf924236af4f444e17345792ad7f6f70760a5e5863407e14f2b \ - --hash=sha256:63dbafcd02415127d97509523bc285f1ab260988f87b744d7fb1baee6ffbdf96 \ - --hash=sha256:69fd5a38395191a0f4b71adf31057ff177c9f0762914d73d8797742339ad67d0 \ - --hash=sha256:7a7d6e2b3fbda6464f74fe010dbcff361394bb014b0cb4aa4dc9f2bb713ce882 \ - --hash=sha256:7c579d718b52beb812ea2a7bd68f812d0920b00937804d52d31d41bb71aa5557 \ - --hash=sha256:7dba96a85cd37315529998e6dbbe3fa05c2344eb19a431dc24996be030a904ee \ - --hash=sha256:81b5264d9752f49286bc1dc4d2cc66187418c4948a326dbed837c766c9892139 \ - --hash=sha256:836d69a9543d284976b229cc8d4343ffcfc0bbaf05239e13fb7e613b13d5291d \ - --hash=sha256:86bb3f6e8cce62ad18cd34eb2eadd091d99f51b40be81c929b53fbd8fecf6d90 \ - --hash=sha256:8afd3d5610e1086f3b2d8389d66672ea78624516912c93612de64dcaa4c67e05 \ - --hash=sha256:8b6326fd0755761e3ee999e4bf90339e869fe71d548b679fee89157858b8d04a \ - --hash=sha256:91ea46fea7259abdfabe00b0ed3a9ca18e7fff7ce80d2a2c66a28f797cce838a \ - --hash=sha256:9788e6e15db0910fb8e1548ba7540799d07066177710590a5794a524c4910e05 \ - --hash=sha256:98cc376199c0aa6e9365d03e0f4e67cfb209e40fe9c0cf566372f9daf2a0c779 \ - --hash=sha256:a2cfd39baa5d82768d2a8898de7bfd450a083ef22b837d57e5dc1b6de3244218 \ - --hash=sha256:a62edd533d330aa61902ae8cd82966affa487fa337a0c4f58ae8866ccb5d31c0 \ - --hash=sha256:a6c8f3f8c26d35eefe45b849c81fd0816ba4b6f589baec7357c25b4c5537d3c4 \ - --hash=sha256:ab930735112c1f788cc4d47c42c59ba0dd214d815aa906e1addf39af91d15194 \ - --hash=sha256:b3fae238751ec0db6377b2106e13762ca84dbe104bd44c1ce9b424163aef4ab5 \ - --hash=sha256:b67b7d028c9cf68215376662fd2e0be6ca0cc02d32d3ed8514fec67b12db9cbd \ - --hash=sha256:c2eeec7beaebfe9e2213b3c94b482381187d0afdcb632f93239b44dc668b97df \ - --hash=sha256:ccaf786e747b126a5b3b9a8f5ffbb6a20c5f528775cc7084c95732ca72606fba \ - --hash=sha256:d19bb54197155d045a2b683d993026d4bcb06e31c2acad0327e3e8711571899c \ - --hash=sha256:e2ea4424d0be62fe18c843420284a0907bcb38d577062d62c4b75a8e940e6057 \ - --hash=sha256:e5085d11345484c0097898994bb3f515002e7e1deeb43dd11d30dd6f45402c49 \ - --hash=sha256:eba192274538617bbe60097a013d83637f1a5ba9844bbbcf3ca7e43c6499b9d5 \ - --hash=sha256:eebd5aa9d8b1e33e715c5409544a712f13ec805bb0110d75f394ff28d2fb64ad \ - --hash=sha256:f7b508813abbc100162d305a1ac9b2dd16e5128d56f2ac69639fc6a4b5aca69e \ - --hash=sha256:ff0f7d3b1003a9ed0d06038f3f521a5ff0d3e056ec5111e2a78e303f98b815a7 - # via faster-whisper -certifi==2023.11.17 \ - --hash=sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1 \ - --hash=sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474 - # via requests -charset-normalizer==3.3.2 \ - --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ - --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ - --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ - --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ - --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ - --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ - --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ - --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ - --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ - --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ - --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ - --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ - --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ - --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ - --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ - --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ - --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ - --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ - --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ - --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ - --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ - --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ - --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ - --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ - --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ - --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ - --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ - --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ - --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ - --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ - --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ - --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ - --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ - --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ - --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ - --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ - --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ - --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ - --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ - --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ - --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ - --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ - --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ - --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ - --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ - --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ - --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ - --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ - --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ - --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ - --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ - --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ - --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ - --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ - --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ - --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ - --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ - --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ - --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ - --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ - --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ - --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ - --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ - --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ - --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ - --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ - --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ - --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ - --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ - --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ - --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ - --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ - --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ - --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ - --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ - --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ - --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ - --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ - --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ - --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ - --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ - --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ - --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ - --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ - --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ - --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ - --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ - --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ - --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ - --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 - # via requests -click==8.1.7 \ - --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ - --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de - # via leapfrogai -cmake==3.27.9 \ - --hash=sha256:07bf268f42c9cdf3b06e04cc145c203b83d5a700f7c2a597772610f48c3dca04 \ - --hash=sha256:434714990d82e3c3936a726c1706c6a1d5a34964a7415d1433af0904a994e414 \ - --hash=sha256:5c83fe2c6059aaa3ad86f49e6e3da4483e582994a6c152aa7efa175282f7b207 \ - --hash=sha256:5c91df483ebaa03107f8b9488de207ff32fc74ef93bba79ac52dd830fff40b06 \ - --hash=sha256:5e8cc5554de86a072e6cbfef725e7dff542bc164a08f5fd41bc194f7778710b7 \ - --hash=sha256:64c7cd776d07a82163c3265cc82920e64e328d1c87049644005bfd49e4de4d7b \ - --hash=sha256:87e95c452e522c9379bbd04b300a0b28ba03841d57532166e109669f82f2bdef \ - --hash=sha256:8eb760800b8bd0178a29334ea3c729ac0534865a30f40994cdfc9c0897488a9e \ - --hash=sha256:9163fabf484b437cd11d5abe0b5161de57e9c22c75f779c9e6df7765b8138b42 \ - --hash=sha256:baad87ffe2b257ad51f66fab23f3ba5c16e24d757ba1543d4edb3b6cb4de47a2 \ - --hash=sha256:c0603c6dc9c7a4c6fce2717e5813bc6126d86388ce057f5bf1a643384966d784 \ - --hash=sha256:d3030f9f3773154cf6e8c581eac7b0225822f08d6bce37995180d901dfc62465 \ - --hash=sha256:d7880be7798bd58e43e0eb2e0ce67e7bb0d2ae29b3dc8f3cfbc1f991ae94305d \ - --hash=sha256:d8306b6e4442496dc1d87e3e64394ebbf02c04f1c6324a1a37cad3695f7d835a \ - --hash=sha256:d8a40eef1268c91e5b520b28fd5fe0591d750e48e44276dbfd493a14ee595c41 \ - --hash=sha256:e09cddb8338aab68b17f99ac0ac39ec3d9f8923f0d1527d25f9b4e1bdf8fa057 \ - --hash=sha256:f564e739b0ef37c1422fe91938b2ab971e21756b848bf840e3672ef3acacf73f - # via triton -coloredlogs==15.0.1 \ - --hash=sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934 \ - --hash=sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0 - # via onnxruntime -confz==2.0.1 \ - --hash=sha256:271dfbc7343dafda414f731c4931ba91bc62a448e4a3b2fdf2fb7334ffac1d36 \ - --hash=sha256:c2d7af28224d8e70c72f66c4ea7ca0069abdc73dda11732d74f2be7dbe8641a0 - # via leapfrogai -ctranslate2==3.22.0 \ - --hash=sha256:02e19061181661036e92df409c69989a2668093b04d2274cf5a2ee3d1878d944 \ - --hash=sha256:0e9bbd74c98ff96318f7275f4f622b7a3e215460e64957a7bac1af6b96c6cdb6 \ - --hash=sha256:158a9b35f589e9172de388706f49dd73a9663d78e8803e6f41ac0fc903f787e2 \ - --hash=sha256:1ec50358a0af04fb40454ddb8b60e8c9612cb7bea8de828ee0b5d834c0341ca7 \ - --hash=sha256:2162d8ac1e93b032a21e78c22e538bc599780b120091113d69aec6e965c2fd29 \ - --hash=sha256:28b0ca0e00e6c037347d89de9e3a670a4dc2ee0fb6c462b51f84a8256aa92e28 \ - --hash=sha256:2d3d77092b6e53c7945cb38df8fcc84e6e40d57fd59c060ece56922a036b407b \ - --hash=sha256:3cb851070db35c4210df15854d0bd0ef0eb1fd073c566059f4fa756e417cb031 \ - --hash=sha256:4b63d95a970f598eaf06913879327672386ff335fc6d546dd0d7281da448c8a4 \ - --hash=sha256:4cb88611a9588fb778837ca8e67c5ae4a7601a417c53f97a2db5f58270dc49b5 \ - --hash=sha256:58199cc5d3fd970dcabd08a9173ab0c16229af618511d7013d141377b2742a0e \ - --hash=sha256:65f7bc22cf3b052ac3be42fd7e982147cf08c96192a95316edc3b5aaec591e0b \ - --hash=sha256:71c1f2b1dc0c6a3910c2c0ff34e2fc1df43f84cbd7922281430ba83e9a0cbad9 \ - --hash=sha256:794c1fa62d2d3b9ce936250a957a20fe2506f150a073a068fb5e36672e0a71af \ - --hash=sha256:7cdc96b94cc9dee07820306118f1c61c67b2ee0a291456f5bf61696fa2897687 \ - --hash=sha256:82a91d755283999571b3f9eb1a1ab5b7ab0deae795df70f036a09903ead42a85 \ - --hash=sha256:9a616fc7bb5e8c7ea7843c71165fc6d2e83f3939940d730e963851be8fc78131 \ - --hash=sha256:b592f429b3d5615cb2d1837e065235cc9955f82a732145b3dc16e1a11fb67249 \ - --hash=sha256:b9d48e396451af160412e5bd0de0711337cdb4f3f654542f56943114ac1debc3 \ - --hash=sha256:bb1e8ea9f523431747ad8eb28f82822254ca96cf1e55fbc8a2bed12d5ddd4439 \ - --hash=sha256:c067221ed4e958a68ff482498379896ec60c7b07047e3c20a848008cbc9ba7ee \ - --hash=sha256:ce57bb42cc40dbecf77b4034a796a71be603933f653353b7e9f1ed488fb7a102 \ - --hash=sha256:dd2403ec90faf389a54767e2563dcda2713036f32545453aa25a1b0589b62b0f \ - --hash=sha256:ededd8ea8335261cf982517d04129e7be49c0f41e38a0a5f48639bb08bdfd5f1 \ - --hash=sha256:f8fcfbce7b8440e8d42297d855c9600e2f6f2be74f046103e1ea1aa6ed1c8a8f - # via - # faster-whisper - # leapfrogai-backend-whisper (pyproject.toml) -faster-whisper==0.10.0 \ - --hash=sha256:591809328b93c8e4594d52097ec6352a270a81fbb7b956254967f28700f7e4da - # via leapfrogai-backend-whisper (pyproject.toml) -ffmpeg==1.4 \ - --hash=sha256:6931692c890ff21d39938433c2189747815dca0c60ddc7f9bb97f199dba0b5b9 - # via leapfrogai-backend-whisper (pyproject.toml) -filelock==3.13.1 \ - --hash=sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e \ - --hash=sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c - # via - # huggingface-hub - # torch - # transformers - # triton -flatbuffers==23.5.26 \ - --hash=sha256:9ea1144cac05ce5d86e2859f431c6cd5e66cd9c78c558317c7955fb8d4c78d89 \ - --hash=sha256:c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - # via onnxruntime -fsspec==2023.12.0 \ - --hash=sha256:8e0bb2db2a94082968483b7ba2eaebf3949835e2dfdf09243dda387539464b31 \ - --hash=sha256:f807252ee2018f2223760315beb87a2166c2b9532786eeca9e6548dfcf2cfac9 - # via huggingface-hub -grpcio==1.59.3 \ - --hash=sha256:00912ce19914d038851be5cd380d94a03f9d195643c28e3ad03d355cc02ce7e8 \ - --hash=sha256:0511af8653fbda489ff11d542a08505d56023e63cafbda60e6e00d4e0bae86ea \ - --hash=sha256:0814942ba1bba269db4e760a34388640c601dece525c6a01f3b4ff030cc0db69 \ - --hash=sha256:0d42048b8a3286ea4134faddf1f9a59cf98192b94aaa10d910a25613c5eb5bfb \ - --hash=sha256:0e735ed002f50d4f3cb9ecfe8ac82403f5d842d274c92d99db64cfc998515e07 \ - --hash=sha256:16da0e40573962dab6cba16bec31f25a4f468e6d05b658e589090fe103b03e3d \ - --hash=sha256:1736496d74682e53dd0907fd515f2694d8e6a96c9a359b4080b2504bf2b2d91b \ - --hash=sha256:19ad26a7967f7999c8960d2b9fe382dae74c55b0c508c613a6c2ba21cddf2354 \ - --hash=sha256:33b8fd65d4e97efa62baec6171ce51f9cf68f3a8ba9f866f4abc9d62b5c97b79 \ - --hash=sha256:36636babfda14f9e9687f28d5b66d349cf88c1301154dc71c6513de2b6c88c59 \ - --hash=sha256:3996aaa21231451161dc29df6a43fcaa8b332042b6150482c119a678d007dd86 \ - --hash=sha256:45dddc5cb5227d30fa43652d8872dc87f086d81ab4b500be99413bad0ae198d7 \ - --hash=sha256:4619fea15c64bcdd9d447cdbdde40e3d5f1da3a2e8ae84103d94a9c1df210d7e \ - --hash=sha256:52cc38a7241b5f7b4a91aaf9000fdd38e26bb00d5e8a71665ce40cfcee716281 \ - --hash=sha256:575d61de1950b0b0699917b686b1ca108690702fcc2df127b8c9c9320f93e069 \ - --hash=sha256:5f9b2e591da751ac7fdd316cc25afafb7a626dededa9b414f90faad7f3ccebdb \ - --hash=sha256:60cddafb70f9a2c81ba251b53b4007e07cca7389e704f86266e22c4bffd8bf1d \ - --hash=sha256:6a5c3a96405966c023e139c3bcccb2c7c776a6f256ac6d70f8558c9041bdccc3 \ - --hash=sha256:6c75a1fa0e677c1d2b6d4196ad395a5c381dfb8385f07ed034ef667cdcdbcc25 \ - --hash=sha256:72b71dad2a3d1650e69ad42a5c4edbc59ee017f08c32c95694172bc501def23c \ - --hash=sha256:73afbac602b8f1212a50088193601f869b5073efa9855b3e51aaaec97848fc8a \ - --hash=sha256:7800f99568a74a06ebdccd419dd1b6e639b477dcaf6da77ea702f8fb14ce5f80 \ - --hash=sha256:8022ca303d6c694a0d7acfb2b472add920217618d3a99eb4b14edc7c6a7e8fcf \ - --hash=sha256:8239b853226e4824e769517e1b5232e7c4dda3815b200534500338960fcc6118 \ - --hash=sha256:83113bcc393477b6f7342b9f48e8a054330c895205517edc66789ceea0796b53 \ - --hash=sha256:8cd76057b5c9a4d68814610ef9226925f94c1231bbe533fdf96f6181f7d2ff9e \ - --hash=sha256:8d993399cc65e3a34f8fd48dd9ad7a376734564b822e0160dd18b3d00c1a33f9 \ - --hash=sha256:95b5506e70284ac03b2005dd9ffcb6708c9ae660669376f0192a710687a22556 \ - --hash=sha256:95d6fd804c81efe4879e38bfd84d2b26e339a0a9b797e7615e884ef4686eb47b \ - --hash=sha256:9e17660947660ccfce56c7869032910c179a5328a77b73b37305cd1ee9301c2e \ - --hash=sha256:a93a82876a4926bf451db82ceb725bd87f42292bacc94586045261f501a86994 \ - --hash=sha256:aca028a6c7806e5b61e5f9f4232432c52856f7fcb98e330b20b6bc95d657bdcc \ - --hash=sha256:b1f00a3e6e0c3dccccffb5579fc76ebfe4eb40405ba308505b41ef92f747746a \ - --hash=sha256:b36683fad5664283755a7f4e2e804e243633634e93cd798a46247b8e54e3cb0d \ - --hash=sha256:b491e5bbcad3020a96842040421e508780cade35baba30f402df9d321d1c423e \ - --hash=sha256:c0bd141f4f41907eb90bda74d969c3cb21c1c62779419782a5b3f5e4b5835718 \ - --hash=sha256:c0f0a11d82d0253656cc42e04b6a149521e02e755fe2e4edd21123de610fd1d4 \ - --hash=sha256:c4b0076f0bf29ee62335b055a9599f52000b7941f577daa001c7ef961a1fbeab \ - --hash=sha256:c82ca1e4be24a98a253d6dbaa216542e4163f33f38163fc77964b0f0d255b552 \ - --hash=sha256:cb4e9cbd9b7388fcb06412da9f188c7803742d06d6f626304eb838d1707ec7e3 \ - --hash=sha256:cdbc6b32fadab9bebc6f49d3e7ec4c70983c71e965497adab7f87de218e84391 \ - --hash=sha256:ce31fa0bfdd1f2bb15b657c16105c8652186eab304eb512e6ae3b99b2fdd7d13 \ - --hash=sha256:d1d1a17372fd425addd5812049fa7374008ffe689585f27f802d0935522cf4b7 \ - --hash=sha256:d787ecadea865bdf78f6679f6f5bf4b984f18f659257ba612979df97a298b3c3 \ - --hash=sha256:ddbd1a16138e52e66229047624de364f88a948a4d92ba20e4e25ad7d22eef025 \ - --hash=sha256:e1d8e01438d5964a11167eec1edb5f85ed8e475648f36c834ed5db4ffba24ac8 \ - --hash=sha256:e58b3cadaa3c90f1efca26ba33e0d408b35b497307027d3d707e4bcd8de862a6 \ - --hash=sha256:e78dc982bda74cef2ddfce1c91d29b96864c4c680c634e279ed204d51e227473 \ - --hash=sha256:ea40ce4404e7cca0724c91a7404da410f0144148fdd58402a5942971e3469b94 \ - --hash=sha256:eb8ba504c726befe40a356ecbe63c6c3c64c9a439b3164f5a718ec53c9874da0 \ - --hash=sha256:ed26826ee423b11477297b187371cdf4fa1eca874eb1156422ef3c9a60590dd9 \ - --hash=sha256:f2eb8f0c7c0c62f7a547ad7a91ba627a5aa32a5ae8d930783f7ee61680d7eb8d \ - --hash=sha256:fb111aa99d3180c361a35b5ae1e2c63750220c584a1344229abc139d5c891881 \ - --hash=sha256:fcfa56f8d031ffda902c258c84c4b88707f3a4be4827b4e3ab8ec7c24676320d - # via - # grpcio-health-checking - # grpcio-reflection - # leapfrogai -grpcio-health-checking==1.59.3 \ - --hash=sha256:015017ce4164fc7dce81da3a1718a4b3153230e481b2cdebf392468b613f0766 \ - --hash=sha256:30b0184173d5a7a48788b1643968a9f75154b2bf8d47baf795c03402727a84cf - # via leapfrogai -grpcio-reflection==1.59.3 \ - --hash=sha256:526064089d71cddce7244a83059f410fac6ccd30344a624c10f54420d417b3d2 \ - --hash=sha256:5403c5a738c6eec4bb4080da77e450312dace41a86e292ac37cfd007b2657d4e - # via leapfrogai -huggingface-hub==0.19.4 \ - --hash=sha256:176a4fc355a851c17550e7619488f383189727eab209534d7cef2114dae77b22 \ - --hash=sha256:dba013f779da16f14b606492828f3760600a1e1801432d09fe1c33e50b825bb5 - # via - # faster-whisper - # tokenizers - # transformers -humanfriendly==10.0 \ - --hash=sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477 \ - --hash=sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc - # via coloredlogs -idna==3.6 \ - --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ - --hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - # via requests -jinja2==3.1.2 \ - --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ - --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 - # via torch -leapfrogai==0.4.0 \ - --hash=sha256:570f2ca4c9670b7f413ed263dcc9631a04329b4b1ea23418547a878a8eea2110 \ - --hash=sha256:cad236c6cc9c308a71ec6484f8e4e7f337e75e4b14fb94dd3081b17f6570126c - # via leapfrogai-backend-whisper (pyproject.toml) -lit==17.0.6 \ - --hash=sha256:dfa9af9b55fc4509a56be7bf2346f079d7f4a242d583b9f2e0b078fd0abae31b - # via triton -llvmlite==0.41.1 \ - --hash=sha256:04725975e5b2af416d685ea0769f4ecc33f97be541e301054c9f741003085802 \ - --hash=sha256:0dd0338da625346538f1173a17cabf21d1e315cf387ca21b294ff209d176e244 \ - --hash=sha256:150d0bc275a8ac664a705135e639178883293cf08c1a38de3bbaa2f693a0a867 \ - --hash=sha256:1eee5cf17ec2b4198b509272cf300ee6577229d237c98cc6e63861b08463ddc6 \ - --hash=sha256:210e458723436b2469d61b54b453474e09e12a94453c97ea3fbb0742ba5a83d8 \ - --hash=sha256:2181bb63ef3c607e6403813421b46982c3ac6bfc1f11fa16a13eaafb46f578e6 \ - --hash=sha256:24091a6b31242bcdd56ae2dbea40007f462260bc9bdf947953acc39dffd54f8f \ - --hash=sha256:2b76acee82ea0e9304be6be9d4b3840208d050ea0dcad75b1635fa06e949a0ae \ - --hash=sha256:2d92c51e6e9394d503033ffe3292f5bef1566ab73029ec853861f60ad5c925d0 \ - --hash=sha256:5940bc901fb0325970415dbede82c0b7f3e35c2d5fd1d5e0047134c2c46b3281 \ - --hash=sha256:8454c1133ef701e8c050a59edd85d238ee18bb9a0eb95faf2fca8b909ee3c89a \ - --hash=sha256:855f280e781d49e0640aef4c4af586831ade8f1a6c4df483fb901cbe1a48d127 \ - --hash=sha256:880cb57ca49e862e1cd077104375b9d1dfdc0622596dfa22105f470d7bacb309 \ - --hash=sha256:8b0a9a47c28f67a269bb62f6256e63cef28d3c5f13cbae4fab587c3ad506778b \ - --hash=sha256:92c32356f669e036eb01016e883b22add883c60739bc1ebee3a1cc0249a50828 \ - --hash=sha256:92f093986ab92e71c9ffe334c002f96defc7986efda18397d0f08534f3ebdc4d \ - --hash=sha256:9564c19b31a0434f01d2025b06b44c7ed422f51e719ab5d24ff03b7560066c9a \ - --hash=sha256:b67340c62c93a11fae482910dc29163a50dff3dfa88bc874872d28ee604a83be \ - --hash=sha256:bf14aa0eb22b58c231243dccf7e7f42f7beec48970f2549b3a6acc737d1a4ba4 \ - --hash=sha256:c1e1029d47ee66d3a0c4d6088641882f75b93db82bd0e6178f7bd744ebce42b9 \ - --hash=sha256:df75594e5a4702b032684d5481db3af990b69c249ccb1d32687b8501f0689432 \ - --hash=sha256:f19f767a018e6ec89608e1f6b13348fa2fcde657151137cb64e56d48598a92db \ - --hash=sha256:f8afdfa6da33f0b4226af8e64cfc2b28986e005528fbf944d0a24a72acfc9432 \ - --hash=sha256:fa1469901a2e100c17eb8fe2678e34bd4255a3576d1a543421356e9c14d6e2ae - # via numba -markupsafe==2.1.3 \ - --hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \ - --hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \ - --hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \ - --hash=sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686 \ - --hash=sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c \ - --hash=sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559 \ - --hash=sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc \ - --hash=sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb \ - --hash=sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939 \ - --hash=sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c \ - --hash=sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0 \ - --hash=sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4 \ - --hash=sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9 \ - --hash=sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575 \ - --hash=sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba \ - --hash=sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d \ - --hash=sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd \ - --hash=sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3 \ - --hash=sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00 \ - --hash=sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155 \ - --hash=sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac \ - --hash=sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52 \ - --hash=sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f \ - --hash=sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8 \ - --hash=sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b \ - --hash=sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007 \ - --hash=sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24 \ - --hash=sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea \ - --hash=sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198 \ - --hash=sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0 \ - --hash=sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee \ - --hash=sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be \ - --hash=sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2 \ - --hash=sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1 \ - --hash=sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707 \ - --hash=sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6 \ - --hash=sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c \ - --hash=sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58 \ - --hash=sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823 \ - --hash=sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779 \ - --hash=sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636 \ - --hash=sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c \ - --hash=sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad \ - --hash=sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee \ - --hash=sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc \ - --hash=sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2 \ - --hash=sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48 \ - --hash=sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7 \ - --hash=sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e \ - --hash=sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b \ - --hash=sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa \ - --hash=sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5 \ - --hash=sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e \ - --hash=sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb \ - --hash=sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9 \ - --hash=sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57 \ - --hash=sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc \ - --hash=sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc \ - --hash=sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2 \ - --hash=sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11 - # via jinja2 -more-itertools==10.1.0 \ - --hash=sha256:626c369fa0eb37bac0291bce8259b332fd59ac792fa5497b59837309cd5b114a \ - --hash=sha256:64e0735fcfdc6f3464ea133afe8ea4483b1c5fe3a3d69852e6503b43a0b222e6 - # via openai-whisper -mpmath==1.3.0 \ - --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ - --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c - # via sympy -networkx==3.2.1 \ - --hash=sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6 \ - --hash=sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2 - # via torch -numba==0.58.1 \ - --hash=sha256:07f2fa7e7144aa6f275f27260e73ce0d808d3c62b30cff8906ad1dec12d87bbe \ - --hash=sha256:240e7a1ae80eb6b14061dc91263b99dc8d6af9ea45d310751b780888097c1aaa \ - --hash=sha256:45698b995914003f890ad839cfc909eeb9c74921849c712a05405d1a79c50f68 \ - --hash=sha256:487ded0633efccd9ca3a46364b40006dbdaca0f95e99b8b83e778d1195ebcbaa \ - --hash=sha256:4e79b6cc0d2bf064a955934a2e02bf676bc7995ab2db929dbbc62e4c16551be6 \ - --hash=sha256:55a01e1881120e86d54efdff1be08381886fe9f04fc3006af309c602a72bc44d \ - --hash=sha256:5c765aef472a9406a97ea9782116335ad4f9ef5c9f93fc05fd44aab0db486954 \ - --hash=sha256:6fe7a9d8e3bd996fbe5eac0683227ccef26cba98dae6e5cee2c1894d4b9f16c1 \ - --hash=sha256:7bf1ddd4f7b9c2306de0384bf3854cac3edd7b4d8dffae2ec1b925e4c436233f \ - --hash=sha256:811305d5dc40ae43c3ace5b192c670c358a89a4d2ae4f86d1665003798ea7a1a \ - --hash=sha256:81fe5b51532478149b5081311b0fd4206959174e660c372b94ed5364cfb37c82 \ - --hash=sha256:898af055b03f09d33a587e9425500e5be84fc90cd2f80b3fb71c6a4a17a7e354 \ - --hash=sha256:9e9356e943617f5e35a74bf56ff6e7cc83e6b1865d5e13cee535d79bf2cae954 \ - --hash=sha256:a1eaa744f518bbd60e1f7ccddfb8002b3d06bd865b94a5d7eac25028efe0e0ff \ - --hash=sha256:bc2d904d0319d7a5857bd65062340bed627f5bfe9ae4a495aef342f072880d50 \ - --hash=sha256:bcecd3fb9df36554b342140a4d77d938a549be635d64caf8bd9ef6c47a47f8aa \ - --hash=sha256:bd3dda77955be03ff366eebbfdb39919ce7c2620d86c906203bed92124989032 \ - --hash=sha256:bf68df9c307fb0aa81cacd33faccd6e419496fdc621e83f1efce35cdc5e79cac \ - --hash=sha256:d3e2fe81fe9a59fcd99cc572002101119059d64d31eb6324995ee8b0f144a306 \ - --hash=sha256:e63d6aacaae1ba4ef3695f1c2122b30fa3d8ba039c8f517784668075856d79e2 \ - --hash=sha256:ea5bfcf7d641d351c6a80e8e1826eb4a145d619870016eeaf20bbd71ef5caa22 - # via openai-whisper -numpy==1.26.2 \ - --hash=sha256:06fa1ed84aa60ea6ef9f91ba57b5ed963c3729534e6e54055fc151fad0423f0a \ - --hash=sha256:174a8880739c16c925799c018f3f55b8130c1f7c8e75ab0a6fa9d41cab092fd6 \ - --hash=sha256:1a13860fdcd95de7cf58bd6f8bc5a5ef81c0b0625eb2c9a783948847abbef2c2 \ - --hash=sha256:1cc3d5029a30fb5f06704ad6b23b35e11309491c999838c31f124fee32107c79 \ - --hash=sha256:22f8fc02fdbc829e7a8c578dd8d2e15a9074b630d4da29cda483337e300e3ee9 \ - --hash=sha256:26c9d33f8e8b846d5a65dd068c14e04018d05533b348d9eaeef6c1bd787f9919 \ - --hash=sha256:2b3fca8a5b00184828d12b073af4d0fc5fdd94b1632c2477526f6bd7842d700d \ - --hash=sha256:2beef57fb031dcc0dc8fa4fe297a742027b954949cabb52a2a376c144e5e6060 \ - --hash=sha256:36340109af8da8805d8851ef1d74761b3b88e81a9bd80b290bbfed61bd2b4f75 \ - --hash=sha256:3703fc9258a4a122d17043e57b35e5ef1c5a5837c3db8be396c82e04c1cf9b0f \ - --hash=sha256:3ced40d4e9e18242f70dd02d739e44698df3dcb010d31f495ff00a31ef6014fe \ - --hash=sha256:4a06263321dfd3598cacb252f51e521a8cb4b6df471bb12a7ee5cbab20ea9167 \ - --hash=sha256:4eb8df4bf8d3d90d091e0146f6c28492b0be84da3e409ebef54349f71ed271ef \ - --hash=sha256:5d5244aabd6ed7f312268b9247be47343a654ebea52a60f002dc70c769048e75 \ - --hash=sha256:64308ebc366a8ed63fd0bf426b6a9468060962f1a4339ab1074c228fa6ade8e3 \ - --hash=sha256:6a3cdb4d9c70e6b8c0814239ead47da00934666f668426fc6e94cce869e13fd7 \ - --hash=sha256:854ab91a2906ef29dc3925a064fcd365c7b4da743f84b123002f6139bcb3f8a7 \ - --hash=sha256:94cc3c222bb9fb5a12e334d0479b97bb2df446fbe622b470928f5284ffca3f8d \ - --hash=sha256:96ca5482c3dbdd051bcd1fce8034603d6ebfc125a7bd59f55b40d8f5d246832b \ - --hash=sha256:a2bbc29fcb1771cd7b7425f98b05307776a6baf43035d3b80c4b0f29e9545186 \ - --hash=sha256:a4cd6ed4a339c21f1d1b0fdf13426cb3b284555c27ac2f156dfdaaa7e16bfab0 \ - --hash=sha256:aa18428111fb9a591d7a9cc1b48150097ba6a7e8299fb56bdf574df650e7d1f1 \ - --hash=sha256:aa317b2325f7aa0a9471663e6093c210cb2ae9c0ad824732b307d2c51983d5b6 \ - --hash=sha256:b04f5dc6b3efdaab541f7857351aac359e6ae3c126e2edb376929bd3b7f92d7e \ - --hash=sha256:b272d4cecc32c9e19911891446b72e986157e6a1809b7b56518b4f3755267523 \ - --hash=sha256:b361d369fc7e5e1714cf827b731ca32bff8d411212fccd29ad98ad622449cc36 \ - --hash=sha256:b96e7b9c624ef3ae2ae0e04fa9b460f6b9f17ad8b4bec6d7756510f1f6c0c841 \ - --hash=sha256:baf8aab04a2c0e859da118f0b38617e5ee65d75b83795055fb66c0d5e9e9b818 \ - --hash=sha256:bcc008217145b3d77abd3e4d5ef586e3bdfba8fe17940769f8aa09b99e856c00 \ - --hash=sha256:bd3f0091e845164a20bd5a326860c840fe2af79fa12e0469a12768a3ec578d80 \ - --hash=sha256:cc392fdcbd21d4be6ae1bb4475a03ce3b025cd49a9be5345d76d7585aea69440 \ - --hash=sha256:d73a3abcac238250091b11caef9ad12413dab01669511779bc9b29261dd50210 \ - --hash=sha256:f43740ab089277d403aa07567be138fc2a89d4d9892d113b76153e0e412409f8 \ - --hash=sha256:f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea \ - --hash=sha256:f79b231bf5c16b1f39c7f4875e1ded36abee1591e98742b05d8a0fb55d8a3eec \ - --hash=sha256:fe6b44fb8fcdf7eda4ef4461b97b3f63c466b27ab151bec2366db8b197387841 - # via - # ctranslate2 - # numba - # onnxruntime - # openai-whisper - # transformers -nvidia-cublas-cu11==11.10.3.66 \ - --hash=sha256:8ac17ba6ade3ed56ab898a036f9ae0756f1e81052a317bf98f8c6d18dc3ae49e \ - --hash=sha256:d32e4d75f94ddfb93ea0a5dda08389bcc65d8916a25cb9f37ac89edaeed3bded - # via - # leapfrogai-backend-whisper (pyproject.toml) - # nvidia-cudnn-cu11 - # nvidia-cusolver-cu11 - # torch -nvidia-cuda-cupti-cu11==11.7.101 \ - --hash=sha256:7cc5b8f91ae5e1389c3c0ad8866b3b016a175e827ea8f162a672990a402ab2b0 \ - --hash=sha256:e0cfd9854e1f2edaa36ca20d21cd0bdd5dcfca4e3b9e130a082e05b33b6c5895 - # via torch -nvidia-cuda-nvrtc-cu11==11.7.99 \ - --hash=sha256:9f1562822ea264b7e34ed5930567e89242d266448e936b85bc97a3370feabb03 \ - --hash=sha256:f2effeb1309bdd1b3854fc9b17eaf997808f8b25968ce0c7070945c4265d64a3 \ - --hash=sha256:f7d9610d9b7c331fa0da2d1b2858a4a8315e6d49765091d28711c8946e7425e7 - # via torch -nvidia-cuda-runtime-cu11==11.7.99 \ - --hash=sha256:bc77fa59a7679310df9d5c70ab13c4e34c64ae2124dd1efd7e5474b71be125c7 \ - --hash=sha256:cc768314ae58d2641f07eac350f40f99dcb35719c4faff4bc458a7cd2b119e31 - # via - # leapfrogai-backend-whisper (pyproject.toml) - # torch -nvidia-cudnn-cu11==8.5.0.96 \ - --hash=sha256:402f40adfc6f418f9dae9ab402e773cfed9beae52333f6d86ae3107a1b9527e7 \ - --hash=sha256:71f8111eb830879ff2836db3cccf03bbd735df9b0d17cd93761732ac50a8a108 - # via torch -nvidia-cufft-cu11==10.9.0.58 \ - --hash=sha256:222f9da70c80384632fd6035e4c3f16762d64ea7a843829cb278f98b3cb7dd81 \ - --hash=sha256:c4d316f17c745ec9c728e30409612eaf77a8404c3733cdf6c9c1569634d1ca03 - # via torch -nvidia-curand-cu11==10.2.10.91 \ - --hash=sha256:eecb269c970fa599a2660c9232fa46aaccbf90d9170b96c462e13bcb4d129e2c \ - --hash=sha256:f742052af0e1e75523bde18895a9ed016ecf1e5aa0ecddfcc3658fd11a1ff417 - # via torch -nvidia-cusolver-cu11==11.4.0.1 \ - --hash=sha256:00f70b256add65f8c1eb3b6a65308795a93e7740f6df9e273eccbba770d370c4 \ - --hash=sha256:700b781bfefd57d161443aff9ace1878584b93e0b2cfef3d6e9296d96febbf99 \ - --hash=sha256:72fa7261d755ed55c0074960df5904b65e2326f7adce364cbe4945063c1be412 - # via torch -nvidia-cusparse-cu11==11.7.4.91 \ - --hash=sha256:304a01599534f5186a8ed1c3756879282c72c118bc77dd890dc1ff868cad25b9 \ - --hash=sha256:a3389de714db63321aa11fbec3919271f415ef19fda58aed7f2ede488c32733d - # via torch -nvidia-nccl-cu11==2.14.3 \ - --hash=sha256:5e5534257d1284b8e825bc3a182c6f06acd6eb405e9f89d49340e98cd8f136eb - # via torch -nvidia-nvtx-cu11==11.7.91 \ - --hash=sha256:b22c64eee426a62fc00952b507d6d29cf62b4c9df7a480fcc417e540e05fd5ac \ - --hash=sha256:dfd7fcb2a91742513027d63a26b757f38dd8b07fecac282c4d132a9d373ff064 - # via torch -onnxruntime==1.16.3 \ - --hash=sha256:00cccc37a5195c8fca5011b9690b349db435986bd508eb44c9fce432da9228a4 \ - --hash=sha256:04ebcd29c20473596a1412e471524b2fb88d55e6301c40b98dd2407b5911595f \ - --hash=sha256:212741b519ee61a4822c79c47147d63a8b0ffde25cd33988d3d7be9fbd51005d \ - --hash=sha256:28ff758b17ce3ca6bcad3d936ec53bd7f5482e7630a13f6dcae518eba8f71d85 \ - --hash=sha256:3bc41f323ac77acfed190be8ffdc47a6a75e4beeb3473fbf55eeb075ccca8df2 \ - --hash=sha256:3c467eaa3d2429c026b10c3d17b78b7f311f718ef9d2a0d6938e5c3c2611b0cf \ - --hash=sha256:3e253e572021563226a86f1c024f8f70cdae28f2fb1cc8c3a9221e8b1ce37db5 \ - --hash=sha256:4137e5d443e2dccebe5e156a47f1d6d66f8077b03587c35f11ee0c7eda98b533 \ - --hash=sha256:4c2dcf1b70f8434abb1116fe0975c00e740722aaf321997195ea3618cc00558e \ - --hash=sha256:5b8f5083f903408238883821dd8c775f8120cb4a604166dbdabe97f4715256d5 \ - --hash=sha256:5f91f5497fe3df4ceee2f9e66c6148d9bfeb320cd6a71df361c66c5b8bac985a \ - --hash=sha256:6829dc2a79d48c911fedaf4c0f01e03c86297d32718a3fdee7a282766dfd282a \ - --hash=sha256:76f876c53bfa912c6c242fc38213a6f13f47612d4360bc9d599bd23753e53161 \ - --hash=sha256:78d81d9af457a1dc90db9a7da0d09f3ccb1288ea1236c6ab19f0ca61f3eee2d3 \ - --hash=sha256:985a029798744ce4743fcf8442240fed35c8e4d4d30ec7d0c2cdf1388cd44408 \ - --hash=sha256:9996bab0f202a6435ab867bc55598f15210d0b72794d5de83712b53d564084ae \ - --hash=sha256:9aded21fe3d898edd86be8aa2eb995aa375e800ad3dfe4be9f618a20b8ee3630 \ - --hash=sha256:a225bb683991001d111f75323d355b3590e75e16b5e0f07a0401e741a0143ea1 \ - --hash=sha256:a82a8f0b4c978d08f9f5c7a6019ae51151bced9fd91e5aaa0c20a9e4ac7a60b6 \ - --hash=sha256:c56695c1a343c7c008b647fff3df44da63741fbe7b6003ef576758640719be7b \ - --hash=sha256:d4a0151e1accd04da6711f6fd89024509602f82c65a754498e960b032359b02d \ - --hash=sha256:e8aa5bba78afbd4d8a2654b14ec7462ff3ce4a6aad312a3c2d2c2b65009f2541 \ - --hash=sha256:ef2b1fc269cabd27f129fb9058917d6fdc89b188c49ed8700f300b945c81f889 \ - --hash=sha256:f36b56a593b49a3c430be008c2aea6658d91a3030115729609ec1d5ffbaab1b6 - # via faster-whisper -openai-whisper==20230918 \ - --hash=sha256:32a1ee39c3faaf6c719e3a83f1aacc8e164aad87976350371e26845271287c30 - # via leapfrogai-backend-whisper (pyproject.toml) -packaging==23.2 \ - --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ - --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - # via - # huggingface-hub - # onnxruntime - # transformers -protobuf==4.25.1 \ - --hash=sha256:0bf384e75b92c42830c0a679b0cd4d6e2b36ae0cf3dbb1e1dfdda48a244f4bcd \ - --hash=sha256:0f881b589ff449bf0b931a711926e9ddaad3b35089cc039ce1af50b21a4ae8cb \ - --hash=sha256:1484f9e692091450e7edf418c939e15bfc8fc68856e36ce399aed6889dae8bb0 \ - --hash=sha256:193f50a6ab78a970c9b4f148e7c750cfde64f59815e86f686c22e26b4fe01ce7 \ - --hash=sha256:3497c1af9f2526962f09329fd61a36566305e6c72da2590ae0d7d1322818843b \ - --hash=sha256:57d65074b4f5baa4ab5da1605c02be90ac20c8b40fb137d6a8df9f416b0d0ce2 \ - --hash=sha256:8bdbeaddaac52d15c6dce38c71b03038ef7772b977847eb6d374fc86636fa510 \ - --hash=sha256:a19731d5e83ae4737bb2a089605e636077ac001d18781b3cf489b9546c7c80d6 \ - --hash=sha256:abc0525ae2689a8000837729eef7883b9391cd6aa7950249dcf5a4ede230d5dd \ - --hash=sha256:becc576b7e6b553d22cbdf418686ee4daa443d7217999125c045ad56322dda10 \ - --hash=sha256:ca37bf6a6d0046272c152eea90d2e4ef34593aaa32e8873fc14c16440f22d4b7 - # via - # grpcio-health-checking - # grpcio-reflection - # leapfrogai - # onnxruntime -pydantic==1.10.13 \ - --hash=sha256:1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548 \ - --hash=sha256:210ce042e8f6f7c01168b2d84d4c9eb2b009fe7bf572c2266e235edf14bacd80 \ - --hash=sha256:32c8b48dcd3b2ac4e78b0ba4af3a2c2eb6048cb75202f0ea7b34feb740efc340 \ - --hash=sha256:3ecea2b9d80e5333303eeb77e180b90e95eea8f765d08c3d278cd56b00345d01 \ - --hash=sha256:4b03e42ec20286f052490423682016fd80fda830d8e4119f8ab13ec7464c0132 \ - --hash=sha256:4c5370a7edaac06daee3af1c8b1192e305bc102abcbf2a92374b5bc793818599 \ - --hash=sha256:56e3ff861c3b9c6857579de282ce8baabf443f42ffba355bf070770ed63e11e1 \ - --hash=sha256:5a1f9f747851338933942db7af7b6ee8268568ef2ed86c4185c6ef4402e80ba8 \ - --hash=sha256:5e08865bc6464df8c7d61439ef4439829e3ab62ab1669cddea8dd00cd74b9ffe \ - --hash=sha256:61d9dce220447fb74f45e73d7ff3b530e25db30192ad8d425166d43c5deb6df0 \ - --hash=sha256:654db58ae399fe6434e55325a2c3e959836bd17a6f6a0b6ca8107ea0571d2e17 \ - --hash=sha256:678bcf5591b63cc917100dc50ab6caebe597ac67e8c9ccb75e698f66038ea953 \ - --hash=sha256:6cf25c1a65c27923a17b3da28a0bdb99f62ee04230c931d83e888012851f4e7f \ - --hash=sha256:75ac15385a3534d887a99c713aa3da88a30fbd6204a5cd0dc4dab3d770b9bd2f \ - --hash=sha256:75b297827b59bc229cac1a23a2f7a4ac0031068e5be0ce385be1462e7e17a35d \ - --hash=sha256:7d6f6e7305244bddb4414ba7094ce910560c907bdfa3501e9db1a7fd7eaea127 \ - --hash=sha256:84bafe2e60b5e78bc64a2941b4c071a4b7404c5c907f5f5a99b0139781e69ed8 \ - --hash=sha256:854223752ba81e3abf663d685f105c64150873cc6f5d0c01d3e3220bcff7d36f \ - --hash=sha256:8ae5dd6b721459bfa30805f4c25880e0dd78fc5b5879f9f7a692196ddcb5a580 \ - --hash=sha256:8ef467901d7a41fa0ca6db9ae3ec0021e3f657ce2c208e98cd511f3161c762c6 \ - --hash=sha256:968ac42970f57b8344ee08837b62f6ee6f53c33f603547a55571c954a4225691 \ - --hash=sha256:97cce3ae7341f7620a0ba5ef6cf043975cd9d2b81f3aa5f4ea37928269bc1b87 \ - --hash=sha256:9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd \ - --hash=sha256:9f00790179497767aae6bcdc36355792c79e7bbb20b145ff449700eb076c5f96 \ - --hash=sha256:b87326822e71bd5f313e7d3bfdc77ac3247035ac10b0c0618bd99dcf95b1e687 \ - --hash=sha256:b97c1fac8c49be29486df85968682b0afa77e1b809aff74b83081cc115e52f33 \ - --hash=sha256:bc0898c12f8e9c97f6cd44c0ed70d55749eaf783716896960b4ecce2edfd2d69 \ - --hash=sha256:c553f6a156deb868ba38a23cf0df886c63492e9257f60a79c0fd8e7173537653 \ - --hash=sha256:c636925f38b8db208e09d344c7aa4f29a86bb9947495dd6b6d376ad10334fb78 \ - --hash=sha256:c958d053453a1c4b1c2062b05cd42d9d5c8eb67537b8d5a7e3c3032943ecd261 \ - --hash=sha256:d3a3c792a58e1622667a2837512099eac62490cdfd63bd407993aaf200a4cf1f \ - --hash=sha256:e31647d85a2013d926ce60b84f9dd5300d44535a9941fe825dc349ae1f760df9 \ - --hash=sha256:e70ca129d2053fb8b728ee7d1af8e553a928d7e301a311094b8a0501adc8763d \ - --hash=sha256:efff03cc7a4f29d9009d1c96ceb1e7a70a65cfe86e89d34e4a5f2ab1e5693737 \ - --hash=sha256:f59ef915cac80275245824e9d771ee939133be38215555e9dc90c6cb148aaeb5 \ - --hash=sha256:f8e81fc5fb17dae698f52bdd1c4f18b6ca674d7068242b2aff075f588301bbb0 - # via - # confz - # leapfrogai -python-dotenv==1.0.0 \ - --hash=sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba \ - --hash=sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a - # via confz -pyyaml==6.0.1 \ - --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ - --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ - --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ - --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ - --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ - --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ - --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ - --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ - --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ - --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ - --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ - --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ - --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ - --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ - --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ - --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ - --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ - --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ - --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ - --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ - --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ - --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ - --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ - --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ - --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ - --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ - --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ - --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ - --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ - --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ - --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ - --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ - --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ - --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ - --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ - --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ - --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ - --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ - --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ - --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ - --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ - --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ - --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ - --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ - --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ - --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ - --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ - --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ - --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ - --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f - # via - # confz - # ctranslate2 - # huggingface-hub - # transformers -regex==2023.10.3 \ - --hash=sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a \ - --hash=sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07 \ - --hash=sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca \ - --hash=sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58 \ - --hash=sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54 \ - --hash=sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed \ - --hash=sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff \ - --hash=sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528 \ - --hash=sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9 \ - --hash=sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971 \ - --hash=sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14 \ - --hash=sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af \ - --hash=sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302 \ - --hash=sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec \ - --hash=sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597 \ - --hash=sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b \ - --hash=sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd \ - --hash=sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767 \ - --hash=sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f \ - --hash=sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6 \ - --hash=sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293 \ - --hash=sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be \ - --hash=sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41 \ - --hash=sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc \ - --hash=sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29 \ - --hash=sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964 \ - --hash=sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d \ - --hash=sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a \ - --hash=sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc \ - --hash=sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55 \ - --hash=sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af \ - --hash=sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930 \ - --hash=sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e \ - --hash=sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d \ - --hash=sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863 \ - --hash=sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c \ - --hash=sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f \ - --hash=sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e \ - --hash=sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d \ - --hash=sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368 \ - --hash=sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb \ - --hash=sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52 \ - --hash=sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8 \ - --hash=sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4 \ - --hash=sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac \ - --hash=sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e \ - --hash=sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2 \ - --hash=sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a \ - --hash=sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4 \ - --hash=sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa \ - --hash=sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533 \ - --hash=sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b \ - --hash=sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588 \ - --hash=sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0 \ - --hash=sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915 \ - --hash=sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841 \ - --hash=sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a \ - --hash=sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988 \ - --hash=sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292 \ - --hash=sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3 \ - --hash=sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c \ - --hash=sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f \ - --hash=sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420 \ - --hash=sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9 \ - --hash=sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f \ - --hash=sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0 \ - --hash=sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b \ - --hash=sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037 \ - --hash=sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b \ - --hash=sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee \ - --hash=sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c \ - --hash=sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b \ - --hash=sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353 \ - --hash=sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051 \ - --hash=sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039 \ - --hash=sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a \ - --hash=sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b \ - --hash=sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e \ - --hash=sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5 \ - --hash=sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf \ - --hash=sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94 \ - --hash=sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991 \ - --hash=sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711 \ - --hash=sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a \ - --hash=sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab \ - --hash=sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a \ - --hash=sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11 \ - --hash=sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48 - # via - # tiktoken - # transformers -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 - # via - # huggingface-hub - # tiktoken - # transformers -safetensors==0.4.1 \ - --hash=sha256:04157d008385bea66d12fe90844a80d4a76dc25ec5230b5bd9a630496d1b7c03 \ - --hash=sha256:04dd14f53f5500eb4c4149674216ba1000670efbcf4b1b5c2643eb244e7882ea \ - --hash=sha256:097e9af2efa8778cd2f0cba451784253e62fa7cc9fc73c0744d27212f7294e25 \ - --hash=sha256:0bd0afd95c1e497f520e680ea01e0397c0868a3a3030e128438cf6e9e3fcd671 \ - --hash=sha256:0ddd050e01f3e843aa8c1c27bf68675b8a08e385d0045487af4d70418c3cb356 \ - --hash=sha256:16d8bbb7344e39cb9d4762e85c21df94ebeb03edac923dd94bb9ed8c10eac070 \ - --hash=sha256:1a45dbf03e8334d3a5dc93687d98b6dc422f5d04c7d519dac09b84a3c87dd7c6 \ - --hash=sha256:1d568628e9c43ca15eb96c217da73737c9ccb07520fafd8a1eba3f2750614105 \ - --hash=sha256:1faf5111c66a6ba91f85dff2e36edaaf36e6966172703159daeef330de4ddc7b \ - --hash=sha256:2297b359d91126c0f9d4fd17bae3cfa2fe3a048a6971b8db07db746ad92f850c \ - --hash=sha256:2304658e6ada81a5223225b4efe84748e760c46079bffedf7e321763cafb36c9 \ - --hash=sha256:2536b11ce665834201072e9397404170f93f3be10cca9995b909f023a04501ee \ - --hash=sha256:257d59e40a1b367cb544122e7451243d65b33c3f34d822a347f4eea6fdf97fdf \ - --hash=sha256:25a043cbb59d4f75e9dd87fdf5c009dd8830105a2c57ace49b72167dd9808111 \ - --hash=sha256:270b99885ec14abfd56c1d7f28ada81740a9220b4bae960c3de1c6fe84af9e4d \ - --hash=sha256:285b52a481e7ba93e29ad4ec5841ef2c4479ef0a6c633c4e2629e0508453577b \ - --hash=sha256:2b6a2814278b6660261aa9a9aae524616de9f1ec364e3716d219b6ed8f91801f \ - --hash=sha256:2d54c2f1826e790d1eb2d2512bfd0ee443f0206b423d6f27095057c7f18a0687 \ - --hash=sha256:2d87d993eaefe6611a9c241a8bd364a5f1ffed5771c74840363a6c4ed8d868f6 \ - --hash=sha256:2fe6926110e3d425c4b684a4379b7796fdc26ad7d16922ea1696c8e6ea7e920f \ - --hash=sha256:303d2c0415cf15a28f8d7f17379ea3c34c2b466119118a34edd9965983a1a8a6 \ - --hash=sha256:313e8472197bde54e3ec54a62df184c414582979da8f3916981b6a7954910a1b \ - --hash=sha256:35803201d980efcf964b75a0a2aee97fe5e9ecc5f3ad676b38fafdfe98e0620d \ - --hash=sha256:39d36f1d88468a87c437a1bc27c502e71b6ca44c385a9117a9f9ba03a75cc9c6 \ - --hash=sha256:3b0b7b2d5976fbed8a05e2bbdce5816a59e6902e9e7c7e07dc723637ed539787 \ - --hash=sha256:3b30abd0cddfe959d1daedf92edcd1b445521ebf7ddefc20860ed01486b33c90 \ - --hash=sha256:3c1b1d510c7aba71504ece87bf393ea82638df56303e371e5e2cf09d18977dd7 \ - --hash=sha256:3cfd1ca35eacc635f0eaa894e5c5ed83ffebd0f95cac298fd430014fa7323631 \ - --hash=sha256:3f6a520af7f2717c5ecba112041f2c8af1ca6480b97bf957aba81ed9642e654c \ - --hash=sha256:413e1f6ac248f7d1b755199a06635e70c3515493d3b41ba46063dec33aa2ebb7 \ - --hash=sha256:4177b456c6b0c722d82429127b5beebdaf07149d265748e97e0a34ff0b3694c8 \ - --hash=sha256:42c3710cec7e5c764c7999697516370bee39067de0aa089b7e2cfb97ac8c6b20 \ - --hash=sha256:44e230fbbe120de564b64f63ef3a8e6ff02840fa02849d9c443d56252a1646d4 \ - --hash=sha256:48901bd540f8a3c1791314bc5c8a170927bf7f6acddb75bf0a263d081a3637d4 \ - --hash=sha256:53134226053e56bd56e73f7db42596e7908ed79f3c9a1016e4c1dade593ac8e5 \ - --hash=sha256:573b6023a55a2f28085fc0a84e196c779b6cbef4d9e73acea14c8094fee7686f \ - --hash=sha256:5d95ea4d8b32233910734a904123bdd3979c137c461b905a5ed32511defc075f \ - --hash=sha256:5f25297148ec665f0deb8bd67e9564634d8d6841041ab5393ccfe203379ea88b \ - --hash=sha256:645b3f1138fce6e818e79d4128afa28f0657430764cc045419c1d069ff93f732 \ - --hash=sha256:660ca1d8bff6c7bc7c6b30b9b32df74ef3ab668f5df42cefd7588f0d40feadcb \ - --hash=sha256:6ace9e66a40f98a216ad661245782483cf79cf56eb2b112650bb904b0baa9db5 \ - --hash=sha256:6fd80f7794554091836d4d613d33a7d006e2b8d6ba014d06f97cebdfda744f64 \ - --hash=sha256:780dc21eb3fd32ddd0e8c904bdb0290f2454f4ac21ae71e94f9ce72db1900a5a \ - --hash=sha256:791edc10a3c359a2f5f52d5cddab0df8a45107d91027d86c3d44e57162e5d934 \ - --hash=sha256:7a8f6f679d97ea0135c7935c202feefbd042c149aa70ee759855e890c01c7814 \ - --hash=sha256:7ef010e9afcb4057fb6be3d0a0cfa07aac04fe97ef73fe4a23138d8522ba7c17 \ - --hash=sha256:7ff8a36e0396776d3ed9a106fc9a9d7c55d4439ca9a056a24bf66d343041d3e6 \ - --hash=sha256:82571d20288c975c1b30b08deb9b1c3550f36b31191e1e81fae87669a92217d0 \ - --hash=sha256:82cbb8f4d022f2e94498cbefca900698b8ded3d4f85212f47da614001ff06652 \ - --hash=sha256:83c2cfbe8c6304f0891e7bb378d56f66d2148972eeb5f747cd8a2246886f0d8c \ - --hash=sha256:845be0aafabf2a60c2d482d4e93023fecffe5e5443d801d7a7741bae9de41233 \ - --hash=sha256:88b4653059c903015284a9722f9a46838c654257173b279c8f6f46dbe80b612d \ - --hash=sha256:8b58ba13a9e82b4bc3fc221914f6ef237fe6c2adb13cede3ace64d1aacf49610 \ - --hash=sha256:8f69903ff49cb30b9227fb5d029bea276ea20d04b06803877a420c5b1b74c689 \ - --hash=sha256:8ff8e41c8037db17de0ea2a23bc684f43eaf623be7d34906fe1ac10985b8365e \ - --hash=sha256:911b48dc09e321a194def3a7431662ff4f03646832f3a8915bbf0f449b8a5fcb \ - --hash=sha256:998fbac99ca956c3a09fe07cc0b35fac26a521fa8865a690686d889f0ff4e4a6 \ - --hash=sha256:9a82bc2bd7a9a0e08239bdd6d7774d64121f136add93dfa344a2f1a6d7ef35fa \ - --hash=sha256:9d16b3b2fcc6fca012c74bd01b5619c655194d3e3c13e4d4d0e446eefa39a463 \ - --hash=sha256:a257de175c254d39ccd6a21341cd62eb7373b05c1e618a78096a56a857e0c316 \ - --hash=sha256:a79e16222106b2f5edbca1b8185661477d8971b659a3c814cc6f15181a9b34c8 \ - --hash=sha256:ae2d5a31cfb8a973a318f7c4d2cffe0bd1fe753cdf7bb41a1939d45a0a06f964 \ - --hash=sha256:ae2f67f04ed0bb2e56fd380a8bd3eef03f609df53f88b6f5c7e89c08e52aae00 \ - --hash=sha256:ae5497adc68669db2fed7cb2dad81e6a6106e79c9a132da3efdb6af1db1014fa \ - --hash=sha256:b287304f2b2220d51ccb51fd857761e78bcffbeabe7b0238f8dc36f2edfd9542 \ - --hash=sha256:b2f8877990a72ff595507b80f4b69036a9a1986a641f8681adf3425d97d3d2a5 \ - --hash=sha256:bb4cb3e37a9b961ddd68e873b29fe9ab4a081e3703412e34aedd2b7a8e9cafd9 \ - --hash=sha256:bbc2ce1f5ae5143a7fb72b71fa71db6a42b4f6cf912aa3acdc6b914084778e68 \ - --hash=sha256:bda3d98e2bcece388232cfc551ebf063b55bdb98f65ab54df397da30efc7dcc5 \ - --hash=sha256:bdc0d039e44a727824639824090bd8869535f729878fa248addd3dc01db30eae \ - --hash=sha256:bfa2e20342b81921b98edba52f8deb68843fa9c95250739a56b52ceda5ea5c61 \ - --hash=sha256:c3807ac3b16288dffebb3474b555b56fe466baa677dfc16290dcd02dca1ab228 \ - --hash=sha256:c3c9f0ca510e0de95abd6424789dcbc879942a3a4e29b0dfa99d9427bf1da75c \ - --hash=sha256:c8ed5d2c04cdc1afc6b3c28d59580448ac07732c50d94c15e14670f9c473a2ce \ - --hash=sha256:cba01c6b76e01ec453933b3b3c0157c59b52881c83eaa0f7666244e71aa75fd1 \ - --hash=sha256:ce7a28bc8af685a69d7e869d09d3e180a275e3281e29cf5f1c7319e231932cc7 \ - --hash=sha256:d10a9f7bae608ccfdc009351f01dc3d8535ff57f9488a58a4c38e45bf954fe93 \ - --hash=sha256:d3ac139377cfe71ba04573f1cda66e663b7c3e95be850e9e6c2dd4b5984bd513 \ - --hash=sha256:d5b3defa74f3723a388bfde2f5d488742bc4879682bd93267c09a3bcdf8f869b \ - --hash=sha256:d784938534e255473155e4d9f276ee69eb85455b6af1292172c731409bf9adee \ - --hash=sha256:d784a98c492c751f228a4a894c3b8a092ff08b24e73b5568938c28b8c0e8f8df \ - --hash=sha256:d8a85e3e47e0d4eebfaf9a58b40aa94f977a56050cb5598ad5396a9ee7c087c6 \ - --hash=sha256:d93321eea0dd7e81b283e47a1d20dee6069165cc158286316d0d06d340de8fe8 \ - --hash=sha256:da52ee0dc8ba03348ffceab767bd8230842fdf78f8a996e2a16445747143a778 \ - --hash=sha256:dab431699b5d45e0ca043bc580651ce9583dda594e62e245b7497adb32e99809 \ - --hash=sha256:dac4bb42f8679aadc59bd91a4c5a1784a758ad49d0912995945cd674089f628e \ - --hash=sha256:e056fb9e22d118cc546107f97dc28b449d88274207dd28872bd668c86216e4f6 \ - --hash=sha256:e09000b2599e1836314430f81a3884c66a5cbabdff5d9f175b5d560d4de38d78 \ - --hash=sha256:e0ccb5aa0f3be2727117e5631200fbb3a5b3a2b3757545a92647d6dd8be6658f \ - --hash=sha256:e57a5ab08b0ec7a7caf30d2ac79bb30c89168431aca4f8854464bb9461686925 \ - --hash=sha256:e9a7ffb1e551c6df51d267f5a751f042b183df22690f6feceac8d27364fd51d7 \ - --hash=sha256:e9c80ce0001efa16066358d2dd77993adc25f5a6c61850e4ad096a2232930bce \ - --hash=sha256:eb2c1da1cc39509d1a55620a5f4d14f8911c47a89c926a96e6f4876e864375a3 \ - --hash=sha256:edcf3121890b5f0616aa5a54683b1a5d2332037b970e507d6bb7841a3a596556 \ - --hash=sha256:f603bdd8deac6726d39f41688ed353c532dd53935234405d79e9eb53f152fbfb \ - --hash=sha256:f8934bdfd202ebd0697040a3dff40dd77bc4c5bbf3527ede0532f5e7fb4d970f \ - --hash=sha256:fdb4adb76e21bad318210310590de61c9f4adcef77ee49b4a234f9dc48867869 \ - --hash=sha256:fdb58dee173ef33634c3016c459d671ca12d11e6acf9db008261cbe58107e579 - # via transformers -sympy==1.12 \ - --hash=sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5 \ - --hash=sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8 - # via - # onnxruntime - # torch -tiktoken==0.3.3 \ - --hash=sha256:03f64bde9b4eb8338bf49c8532bfb4c3578f6a9a6979fc176d939f9e6f68b408 \ - --hash=sha256:0b9a7a9a8b781a50ee9289e85e28771d7e113cc0c656eadfb6fc6d3a106ff9bb \ - --hash=sha256:19340d8ba4d6fd729b2e3a096a547ded85f71012843008f97475f9db484869ee \ - --hash=sha256:1ac369367b6f5e5bd80e8f9a7766ac2a9c65eda2aa856d5f3c556d924ff82986 \ - --hash=sha256:210f8602228e4c5d706deeb389da5a152b214966a5aa558eec87b57a1969ced5 \ - --hash=sha256:2e948d167fc3b04483cbc33426766fd742e7cefe5346cd62b0cbd7279ef59539 \ - --hash=sha256:3a43612b2a09f4787c050163a216bf51123851859e9ab128ad03d2729826cde9 \ - --hash=sha256:3c84491965e139a905280ac28b74baaa13445b3678e07f96767089ad1ef5ee7b \ - --hash=sha256:3d7296c38392a943c2ccc0b61323086b8550cef08dcf6855de9949890dbc1fd3 \ - --hash=sha256:48c13186a479de16cfa2c72bb0631fa9c518350a5b7569e4d77590f7fee96be9 \ - --hash=sha256:4a0c1357f6191211c544f935d5aa3cb9d7abd118c8f3c7124196d5ecd029b4af \ - --hash=sha256:4db2c40f79f8f7a21a9fdbf1c6dee32dea77b0d7402355dc584a3083251d2e15 \ - --hash=sha256:542686cbc9225540e3a10f472f82fa2e1bebafce2233a211dee8459e95821cfd \ - --hash=sha256:5dca434c8680b987eacde2dbc449e9ea4526574dbf9f3d8938665f638095be82 \ - --hash=sha256:65970d77ea85ce6c7fce45131da9258cd58a802ffb29ead8f5552e331c025b2b \ - --hash=sha256:65fc0a449630bab28c30b4adec257442a4706d79cffc2337c1d9df3e91825cdd \ - --hash=sha256:6674e4e37ab225020135cd66a392589623d5164c6456ba28cc27505abed10d9e \ - --hash=sha256:719c9e13432602dc496b24f13e3c3ad3ec0d2fbdb9aace84abfb95e9c3a425a4 \ - --hash=sha256:891012f29e159a989541ae47259234fb29ff88c22e1097567316e27ad33a3734 \ - --hash=sha256:94600798891f78db780e5aa9321456cf355e54a4719fbd554147a628de1f163f \ - --hash=sha256:97b58b7bfda945791ec855e53d166e8ec20c6378942b93851a6c919ddf9d0496 \ - --hash=sha256:984758ebc07cd8c557345697c234f1f221bd730b388f4340dd08dffa50213a01 \ - --hash=sha256:a11674f0275fa75fb59941b703650998bd4acb295adbd16fc8af17051aaed19d \ - --hash=sha256:bd3f72d0ba7312c25c1652292121a24c8f1711207b63c6d8dab21afe4be0bf04 \ - --hash=sha256:d1f37fa75ba70c1bc7806641e8ccea1fba667d23e6341a1591ea333914c226a9 \ - --hash=sha256:dc00772284c94e65045b984ed7e9f95d000034f6b2411df252011b069bd36217 \ - --hash=sha256:dd783564f80d4dc44ff0a64b13756ded8390ed2548549aefadbe156af9188307 \ - --hash=sha256:e3c0f2231aa3829a1a431a882201dc27858634fd9989898e0f7d991dbc6bcc9d \ - --hash=sha256:e59db6fca8d5ccea302fe2888917364446d6f4201a25272a1a1c44975c65406a - # via openai-whisper -tokenizers==0.15.0 \ - --hash=sha256:01a3aa332abc4bee7640563949fcfedca4de8f52691b3b70f2fc6ca71bfc0f4e \ - --hash=sha256:0344d6602740e44054a9e5bbe9775a5e149c4dddaff15959bb07dcce95a5a859 \ - --hash=sha256:05accb9162bf711a941b1460b743d62fec61c160daf25e53c5eea52c74d77814 \ - --hash=sha256:05b83896a893cdfedad8785250daa3ba9f0504848323471524d4783d7291661e \ - --hash=sha256:0a1a3c973e4dc97797fc19e9f11546c95278ffc55c4492acb742f69e035490bc \ - --hash=sha256:0ea480d943297df26f06f508dab6e012b07f42bf3dffdd36e70799368a5f5229 \ - --hash=sha256:10361e9c7864b22dd791ec5126327f6c9292fb1d23481d4895780688d5e298ac \ - --hash=sha256:10c7e6e7b4cabd757da59e93f5f8d1126291d16f8b54f28510825ef56a3e5d0e \ - --hash=sha256:1574a5a4af22c3def93fe8fe4adcc90a39bf5797ed01686a4c46d1c3bc677d2f \ - --hash=sha256:160f9d1810f2c18fffa94aa98bf17632f6bd2dabc67fcb01a698ca80c37d52ee \ - --hash=sha256:1ab96ab7dc706e002c32b2ea211a94c1c04b4f4de48354728c3a6e22401af322 \ - --hash=sha256:1eef39a502fad3bf104b9e1906b4fb0cee20e44e755e51df9a98f8922c3bf6d4 \ - --hash=sha256:22c27672c27a059a5f39ff4e49feed8c7f2e1525577c8a7e3978bd428eb5869d \ - --hash=sha256:26a2ef890740127cb115ee5260878f4a677e36a12831795fd7e85887c53b430b \ - --hash=sha256:2a0dd641a72604486cd7302dd8f87a12c8a9b45e1755e47d2682733f097c1af5 \ - --hash=sha256:2a5f4543a35889679fc3052086e69e81880b2a5a28ff2a52c5a604be94b77a3f \ - --hash=sha256:2dd681b53cf615e60a31a115a3fda3980e543d25ca183797f797a6c3600788a3 \ - --hash=sha256:309445d10d442b7521b98083dc9f0b5df14eca69dbbfebeb98d781ee2cef5d30 \ - --hash=sha256:309cfcccfc7e502cb1f1de2c9c1c94680082a65bfd3a912d5a5b2c90c677eb60 \ - --hash=sha256:32371008788aeeb0309a9244809a23e4c0259625e6b74a103700f6421373f395 \ - --hash=sha256:331dd786d02fc38698f835fff61c99480f98b73ce75a4c65bd110c9af5e4609a \ - --hash=sha256:3661862df7382c5eb23ac4fbf7c75e69b02dc4f5784e4c5a734db406b5b24596 \ - --hash=sha256:3768829861e964c7a4556f5f23307fce6a23872c2ebf030eb9822dbbbf7e9b2a \ - --hash=sha256:3b22cd714706cc5b18992a232b023f736e539495f5cc61d2d28d176e55046f6c \ - --hash=sha256:3bb0f4df6dce41a1c7482087b60d18c372ef4463cb99aa8195100fcd41e0fd64 \ - --hash=sha256:3c2b60b12fdd310bf85ce5d7d3f823456b9b65eed30f5438dd7761879c495983 \ - --hash=sha256:4525f6997d81d9b6d9140088f4f5131f6627e4c960c2c87d0695ae7304233fc3 \ - --hash=sha256:4a0a94bc3370e6f1cc8a07a8ae867ce13b7c1b4291432a773931a61f256d44ea \ - --hash=sha256:4a522612d5c88a41563e3463226af64e2fa00629f65cdcc501d1995dd25d23f5 \ - --hash=sha256:4b31807cb393d6ea31926b307911c89a1209d5e27629aa79553d1599c8ffdefe \ - --hash=sha256:5d37e7f4439b4c46192ab4f2ff38ab815e4420f153caa13dec9272ef14403d34 \ - --hash=sha256:65975094fef8cc68919644936764efd2ce98cf1bacbe8db2687155d2b0625bee \ - --hash=sha256:65f80be77f6327a86d8fd35a4467adcfe6174c159b4ab52a1a8dd4c6f2d7d9e1 \ - --hash=sha256:669b8ed653a578bcff919566631156f5da3aab84c66f3c0b11a6281e8b4731c7 \ - --hash=sha256:6fdcc55339df7761cd52e1fbe8185d3b3963bc9e3f3545faa6c84f9e8818259a \ - --hash=sha256:6fe143939f3b596681922b2df12a591a5b010e7dcfbee2202482cd0c1c2f2459 \ - --hash=sha256:7286f3df10de840867372e3e64b99ef58c677210e3ceb653cd0e740a5c53fe78 \ - --hash=sha256:72f78b0e0e276b1fc14a672fa73f3acca034ba8db4e782124a2996734a9ba9cf \ - --hash=sha256:76f1bed992e396bf6f83e3df97b64ff47885e45e8365f8983afed8556a0bc51f \ - --hash=sha256:77606994e793ca54ecf3a3619adc8a906a28ca223d9354b38df41cb8766a0ed6 \ - --hash=sha256:78104f5d035c9991f92831fc0efe9e64a05d4032194f2a69f67aaa05a4d75bbb \ - --hash=sha256:7c7982fd0ec9e9122d03b209dac48cebfea3de0479335100ef379a9a959b9a5a \ - --hash=sha256:7f17363141eb0c53752c89e10650b85ef059a52765d0802ba9613dbd2d21d425 \ - --hash=sha256:82641ffb13a4da1293fcc9f437d457647e60ed0385a9216cd135953778b3f0a1 \ - --hash=sha256:8413e994dd7d875ab13009127fc85633916c71213917daf64962bafd488f15dc \ - --hash=sha256:85ddae17570ec7e5bfaf51ffa78d044f444a8693e1316e1087ee6150596897ee \ - --hash=sha256:88dd0961c437d413ab027f8b115350c121d49902cfbadf08bb8f634b15fa1814 \ - --hash=sha256:8a765db05581c7d7e1280170f2888cda351760d196cc059c37ea96f121125799 \ - --hash=sha256:8a922c492c721744ee175f15b91704be2d305569d25f0547c77cd6c9f210f9dc \ - --hash=sha256:8d7d6eea831ed435fdeeb9bcd26476226401d7309d115a710c65da4088841948 \ - --hash=sha256:8edcc90a36eab0705fe9121d6c77c6e42eeef25c7399864fd57dfb27173060bf \ - --hash=sha256:9680b0ecc26e7e42f16680c1aa62e924d58d1c2dd992707081cc10a374896ea2 \ - --hash=sha256:9855e6c258918f9cf62792d4f6ddfa6c56dccd8c8118640f867f6393ecaf8bd7 \ - --hash=sha256:9a3241acdc9b44cff6e95c4a55b9be943ef3658f8edb3686034d353734adba05 \ - --hash=sha256:9c91588a630adc88065e1c03ac6831e3e2112558869b9ebcb2b8afd8a14c944d \ - --hash=sha256:a40b73dc19d82c3e3ffb40abdaacca8fbc95eeb26c66b7f9f860aebc07a73998 \ - --hash=sha256:a79f17027f24fe9485701c8dbb269b9c713954ec3bdc1e7075a66086c0c0cd3c \ - --hash=sha256:a8da7533dbe66b88afd430c56a2f2ce1fd82e2681868f857da38eeb3191d7498 \ - --hash=sha256:a9fcaad9ab0801f14457d7c820d9f246b5ab590c407fc6b073819b1573097aa7 \ - --hash=sha256:aab16c4a26d351d63e965b0c792f5da7227a37b69a6dc6d922ff70aa595b1b0c \ - --hash=sha256:aabc83028baa5a36ce7a94e7659250f0309c47fa4a639e5c2c38e6d5ea0de564 \ - --hash=sha256:ab806ad521a5e9de38078b7add97589c313915f6f5fec6b2f9f289d14d607bd6 \ - --hash=sha256:ae17884aafb3e94f34fb7cfedc29054f5f54e142475ebf8a265a4e388fee3f8b \ - --hash=sha256:af7e9be8c05d30bb137b9fd20f9d99354816599e5fd3d58a4b1e28ba3b36171f \ - --hash=sha256:b3cdf29e6f9653da330515dc8fa414be5a93aae79e57f8acc50d4028dd843edf \ - --hash=sha256:b7bee0f1795e3e3561e9a557061b1539e5255b8221e3f928f58100282407e090 \ - --hash=sha256:b8034f1041fd2bd2b84ff9f4dc4ae2e1c3b71606820a9cd5c562ebd291a396d1 \ - --hash=sha256:babe42635b8a604c594bdc56d205755f73414fce17ba8479d142a963a6c25cbc \ - --hash=sha256:bc80a0a565ebfc7cd89de7dd581da8c2b3238addfca6280572d27d763f135f2f \ - --hash=sha256:c1e4664c5b797e093c19b794bbecc19d2367e782b4a577d8b7c1821db5dc150d \ - --hash=sha256:c3045d191dad49647f5a5039738ecf1c77087945c7a295f7bcf051c37067e883 \ - --hash=sha256:c3d7343fa562ea29661783344a2d83662db0d3d17a6fa6a403cac8e512d2d9fd \ - --hash=sha256:c9cce6ee149a3d703f86877bc2a6d997e34874b2d5a2d7839e36b2273f31d3d9 \ - --hash=sha256:ca003fb5f3995ff5cf676db6681b8ea5d54d3b30bea36af1120e78ee1a4a4cdf \ - --hash=sha256:ca9db64c7c9954fbae698884c5bb089764edc549731e5f9b7fa1dd4e4d78d77f \ - --hash=sha256:caadf255cf7f951b38d10097836d1f3bcff4aeaaffadfdf748bab780bf5bff95 \ - --hash=sha256:cbbf2489fcf25d809731ba2744ff278dd07d9eb3f8b7482726bd6cae607073a4 \ - --hash=sha256:cd3cd0299aaa312cd2988957598f80becd04d5a07338741eca076057a2b37d6e \ - --hash=sha256:cdd945e678bbdf4517d5d8de66578a5030aeefecdb46f5320b034de9cad8d4dd \ - --hash=sha256:d0ebf9430f901dbdc3dcb06b493ff24a3644c9f88c08e6a1d6d0ae2228b9b818 \ - --hash=sha256:d3125a6499226d4d48efc54f7498886b94c418e93a205b673bc59364eecf0804 \ - --hash=sha256:d4fab75642aae4e604e729d6f78e0addb9d7e7d49e28c8f4d16b24da278e5263 \ - --hash=sha256:d801d1368188c74552cd779b1286e67cb9fd96f4c57a9f9a2a09b6def9e1ab37 \ - --hash=sha256:dbed5944c31195514669cf6381a0d8d47f164943000d10f93d6d02f0d45c25e0 \ - --hash=sha256:de9529fe75efcd54ba8d516aa725e1851df9199f0669b665c55e90df08f5af86 \ - --hash=sha256:e54c5f26df14913620046b33e822cb3bcd091a332a55230c0e63cc77135e2169 \ - --hash=sha256:e58a38c4e6075810bdfb861d9c005236a72a152ebc7005941cc90d1bbf16aca9 \ - --hash=sha256:ed56ddf0d54877bb9c6d885177db79b41576e61b5ef6defeb579dcb803c04ad5 \ - --hash=sha256:edde9aa964145d528d0e0dbf14f244b8a85ebf276fb76869bc02e2530fa37a96 \ - --hash=sha256:f1480b0051d8ab5408e8e4db2dc832f7082ea24aa0722c427bde2418c6f3bd07 \ - --hash=sha256:f17cbd88dab695911cbdd385a5a7e3709cc61dff982351f5d1b5939f074a2466 \ - --hash=sha256:f21c9eb71c9a671e2a42f18b456a3d118e50c7f0fc4dd9fa8f4eb727fea529bf \ - --hash=sha256:f6456bec6c557d63d8ec0023758c32f589e1889ed03c055702e84ce275488bed \ - --hash=sha256:f8aa81afec893e952bd39692b2d9ef60575ed8c86fce1fd876a06d2e73e82dca \ - --hash=sha256:f8d16b647032df2ce2c1f9097236e046ea9fedd969b25637b9d5d734d78aa53b \ - --hash=sha256:fa8eb4584fc6cbe6a84d7a7864be3ed28e23e9fd2146aa8ef1814d579df91958 \ - --hash=sha256:fac2719b1e9bc8e8e7f6599b99d0a8e24f33d023eb8ef644c0366a596f0aa926 \ - --hash=sha256:ff5d2159c5d93015f5a4542aac6c315506df31853123aa39042672031768c301 - # via - # faster-whisper - # transformers -toml==0.10.2 \ - --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ - --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f - # via confz -torch==2.0.1 \ - --hash=sha256:0882243755ff28895e8e6dc6bc26ebcf5aa0911ed81b2a12f241fc4b09075b13 \ - --hash=sha256:1adb60d369f2650cac8e9a95b1d5758e25d526a34808f7448d0bd599e4ae9072 \ - --hash=sha256:1bcffc16b89e296826b33b98db5166f990e3b72654a2b90673e817b16c50e32b \ - --hash=sha256:25aa43ca80dcdf32f13da04c503ec7afdf8e77e3a0183dd85cd3e53b2842e527 \ - --hash=sha256:359bfaad94d1cda02ab775dc1cc386d585712329bb47b8741607ef6ef4950747 \ - --hash=sha256:423e0ae257b756bb45a4b49072046772d1ad0c592265c5080070e0767da4e490 \ - --hash=sha256:567f84d657edc5582d716900543e6e62353dbe275e61cdc36eda4929e46df9e7 \ - --hash=sha256:5ef3ea3d25441d3957348f7e99c7824d33798258a2bf5f0f0277cbcadad2e20d \ - --hash=sha256:671a2565e3f63b8fe8e42ae3e36ad249fe5e567435ea27b94edaa672a7d0c416 \ - --hash=sha256:787b5a78aa7917465e9b96399b883920c88a08f4eb63b5a5d2d1a16e27d2f89b \ - --hash=sha256:7c84e44d9002182edd859f3400deaa7410f5ec948a519cc7ef512c2f9b34d2c4 \ - --hash=sha256:8742bdc62946c93f75ff92da00e3803216c6cce9b132fbca69664ca38cfb3e18 \ - --hash=sha256:8ced00b3ba471856b993822508f77c98f48a458623596a4c43136158781e306a \ - --hash=sha256:b6019b1de4978e96daa21d6a3ebb41e88a0b474898fe251fd96189587408873e \ - --hash=sha256:c62df99352bd6ee5a5a8d1832452110435d178b5164de450831a3a8cc14dc680 \ - --hash=sha256:dbd68cbd1cd9da32fe5d294dd3411509b3d841baecb780b38b3b7b06c7754434 \ - --hash=sha256:e10e1597f2175365285db1b24019eb6f04d53dcd626c735fc502f1e8b6be9875 \ - --hash=sha256:e617b1d0abaf6ced02dbb9486803abfef0d581609b09641b34fa315c9c40766d \ - --hash=sha256:ef654427d91600129864644e35deea761fb1fe131710180b952a6f2e2207075e \ - --hash=sha256:f66aa6b9580a22b04d0af54fcd042f52406a8479e2b6a550e3d9f95963e168c8 - # via - # openai-whisper - # triton -tqdm==4.66.1 \ - --hash=sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386 \ - --hash=sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7 - # via - # huggingface-hub - # openai-whisper - # transformers -transformers==4.35.2 \ - --hash=sha256:2d125e197d77b0cdb6c9201df9fa7e2101493272e448b9fba9341c695bee2f52 \ - --hash=sha256:9dfa76f8692379544ead84d98f537be01cd1070de75c74efb13abcbc938fbe2f - # via leapfrogai-backend-whisper (pyproject.toml) -triton==2.0.0 \ - --hash=sha256:0117722f8c2b579cd429e0bee80f7731ae05f63fe8e9414acd9a679885fcbf42 \ - --hash=sha256:1aca3303629cd3136375b82cb9921727f804e47ebee27b2677fef23005c3851a \ - --hash=sha256:226941c7b8595219ddef59a1fdb821e8c744289a132415ddd584facedeb475b1 \ - --hash=sha256:38806ee9663f4b0f7cd64790e96c579374089e58f49aac4a6608121aa55e2505 \ - --hash=sha256:42a0d2c3fc2eab4ba71384f2e785fbfd47aa41ae05fa58bf12cb31dcbd0aeceb \ - --hash=sha256:47b4d70dc92fb40af553b4460492c31dc7d3a114a979ffb7a5cdedb7eb546c08 \ - --hash=sha256:4c9fc8c89874bc48eb7e7b2107a9b8d2c0bf139778637be5bfccb09191685cfd \ - --hash=sha256:52c47b72c72693198163ece9d90a721299e4fb3b8e24fd13141e384ad952724f \ - --hash=sha256:74f118c12b437fb2ca25e1a04759173b517582fcf4c7be11913316c764213656 \ - --hash=sha256:75834f27926eab6c7f00ce73aaf1ab5bfb9bec6eb57ab7c0bfc0a23fac803b4c \ - --hash=sha256:8f05a7e64e4ca0565535e3d5d3405d7e49f9d308505bb7773d21fb26a4c008c2 \ - --hash=sha256:9618815a8da1d9157514f08f855d9e9ff92e329cd81c0305003eb9ec25cc5add \ - --hash=sha256:9d4978298b74fcf59a75fe71e535c092b023088933b2f1df933ec32615e4beef \ - --hash=sha256:bb4b99ca3c6844066e516658541d876c28a5f6e3a852286bbc97ad57134827fd \ - --hash=sha256:bcd9be5d0c2e45d2b7e6ddc6da20112b6862d69741576f9c3dbaf941d745ecae \ - --hash=sha256:d2684b6a60b9f174f447f36f933e9a45f31db96cb723723ecd2dcfd1c57b778b \ - --hash=sha256:e3e13aa8b527c9b642e3a9defcc0fbd8ffbe1c80d8ac8c15a01692478dc64d8a \ - --hash=sha256:fedce6a381901b1547e0e7e1f2546e4f65dca6d91e2d8a7305a2d1f5551895be - # via - # openai-whisper - # torch -typing-extensions==4.8.0 \ - --hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \ - --hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef - # via - # huggingface-hub - # pydantic - # torch -urllib3==2.1.0 \ - --hash=sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3 \ - --hash=sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54 - # via requests -wheel==0.42.0 \ - --hash=sha256:177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d \ - --hash=sha256:c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8 - # via - # nvidia-cublas-cu11 - # nvidia-cuda-cupti-cu11 - # nvidia-cuda-runtime-cu11 - # nvidia-curand-cu11 - # nvidia-cusparse-cu11 - # nvidia-nvtx-cu11 - -# WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes and the requirement is not -# satisfied by a package already installed. Consider using the --allow-unsafe flag. -# setuptools diff --git a/requirements.txt b/requirements.txt index 1e0b1d3..b54a20b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --generate-hashes --output-file=requirements.txt pyproject.toml From 18834d82748c2e6d8c8faa75fa73bd5920f65670 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 17:39:30 -0500 Subject: [PATCH 02/39] workflow fix, GPU config --- .github/workflows/dev-docker-build-push.yaml | 2 +- zarf-config.yaml | 18 +++++++++--------- zarf.yaml | 5 ++++- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.github/workflows/dev-docker-build-push.yaml b/.github/workflows/dev-docker-build-push.yaml index fd26863..b8596dd 100644 --- a/.github/workflows/dev-docker-build-push.yaml +++ b/.github/workflows/dev-docker-build-push.yaml @@ -8,7 +8,7 @@ on: env: REGISTRY: ghcr.io - REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper-dev + REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper jobs: build: diff --git a/zarf-config.yaml b/zarf-config.yaml index 8ca09f8..417c225 100644 --- a/zarf-config.yaml +++ b/zarf-config.yaml @@ -1,18 +1,18 @@ package: create: set: - image_repository: "ghcr.io/defenseunicorns/leapfrogai/whisper" - image_version: 0.4.0 name: whisper + image_repository: "ghcr.io/defenseunicorns/leapfrogai/whisper" + image_version: 0.5.0 max_package_size: "1000000000" deploy: set: - limits_cpu: 0 - limits_memory: 0 - limits_gpu: 0 - requests_cpu: 0 - requests_memory: 0 - requests_gpu: 0 name: whisper image_repository: "ghcr.io/defenseunicorns/leapfrogai/whisper" - image_version: 0.4.0 + image_version: 0.5.0 + limits_cpu: 1 + limits_memory: 20Gi + limits_gpu: "###ZARF_VAR_NUMBER_OF_GPUS###" + requests_cpu: 1 + requests_memory: 4Gi + requests_gpu: "###ZARF_VAR_NUMBER_OF_GPUS###" diff --git a/zarf.yaml b/zarf.yaml index f107a72..94fe0c6 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -10,7 +10,10 @@ variables: description: Optionally turn on GPU inferencing for environments with capable CUDA devices default: false prompt: true - sensitive: false + - name: NUMBER_OF_GPUS + description: If GPU_ENABLED is true, this must be 1 or more. If GPU_ENABLED is false, this should stay at 0. + default: 0 + prompt: true constants: - name: IMAGE_VERSION From a6a4e26d73474c10f9cdf6ff4db802d67c2cc696 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 18:42:09 -0500 Subject: [PATCH 03/39] Zarf package fixed for GPU --- .github/workflows/dev-docker-build-push.yaml | 121 ++----------------- zarf-config.yaml | 4 +- zarf.yaml | 14 ++- 3 files changed, 24 insertions(+), 115 deletions(-) diff --git a/.github/workflows/dev-docker-build-push.yaml b/.github/workflows/dev-docker-build-push.yaml index b8596dd..c03cbcb 100644 --- a/.github/workflows/dev-docker-build-push.yaml +++ b/.github/workflows/dev-docker-build-push.yaml @@ -1,125 +1,30 @@ -name: Create Development Image +name: Dev Docker Image Build/Push on: push: - tags: - - "dev" + branches: + - main workflow_dispatch: env: - REGISTRY: ghcr.io - REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper + VERSION: dev jobs: - build: + push: runs-on: ubuntu-latest - strategy: - fail-fast: true - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - - name: Checkout Repo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - - name: Docker Metadata - id: meta - uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0 - with: - images: ${{ env.REGISTRY_IMAGE }} - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - - - name: Set up QEMU - uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 #v3.0.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - - - name: Login to GHCR - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v4 - - name: Build and Push Digest - id: build - uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0 - with: - context: . - platforms: ${{ matrix.platform }} - labels: ${{ steps.meta.outputs.labels }} - outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true - tags: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} - - - name: Export Digest - run: | - mkdir -p /tmp/digests - digest="${{ steps.build.outputs.digest }}" - touch "/tmp/digests/${digest#sha256:}" - - - name: Upload Digest - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 - with: - name: digests - path: /tmp/digests/* - if-no-files-found: error - retention-days: 1 - - - name: Clean-up Environment - run: | - docker system prune -a -f && docker volume prune -f - - merge: - runs-on: ubuntu-latest - needs: - - build - steps: - - name: Download Digests - uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 - with: - name: digests - path: /tmp/digests - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 + - name: Build image + run: make docker-build VERSION=$VERSION - name: Login to GitHub Container Registry - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 + uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} - username: ${{ github.repository_owner }} + registry: ghcr.io + username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Docker Metadata - id: meta - uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0 - with: - images: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - - - name: Create Manifest and Push Image - working-directory: /tmp/digests - run: | - docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - $(printf '${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}@sha256:%s ' *) - - - name: Inspect image - run: | - docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \ No newline at end of file + - name: Push image + run: make docker-push VERSION=$VERSION \ No newline at end of file diff --git a/zarf-config.yaml b/zarf-config.yaml index 417c225..11983cf 100644 --- a/zarf-config.yaml +++ b/zarf-config.yaml @@ -12,7 +12,7 @@ package: image_version: 0.5.0 limits_cpu: 1 limits_memory: 20Gi - limits_gpu: "###ZARF_VAR_NUMBER_OF_GPUS###" + limits_gpu: 0 requests_cpu: 1 requests_memory: 4Gi - requests_gpu: "###ZARF_VAR_NUMBER_OF_GPUS###" + requests_gpu: 0 diff --git a/zarf.yaml b/zarf.yaml index 94fe0c6..73836e7 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -7,13 +7,9 @@ metadata: variables: - name: GPU_ENABLED - description: Optionally turn on GPU inferencing for environments with capable CUDA devices + description: Optionally turn on GPU inferencing for environments with capable CUDA devices (true/false) default: false prompt: true - - name: NUMBER_OF_GPUS - description: If GPU_ENABLED is true, this must be 1 or more. If GPU_ENABLED is false, this should stay at 0. - default: 0 - prompt: true constants: - name: IMAGE_VERSION @@ -27,3 +23,11 @@ components: import: name: model url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.4.0-skeleton + actions: + onDeploy: + defaults: + shell: + linux: sh + after: + - cmd: | + if [ "${ZARF_VAR_GPU_ENABLED}" = "true" ]; then kubectl patch deployment whisper-model-whisper -n leapfrogai --patch '{"spec":{"template":{"spec":{"containers":[{"name":"leapfrogai-model","resources":{"limits":{"cpu":"1","memory":"20Gi","nvidia.com/gpu":"1"},"requests":{"cpu":"1","memory":"4Gi","nvidia.com/gpu":"1"}}}]}}}}'; fi From 8929e3327dad4315bf860caed6d7868d72522185 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 20:56:51 -0500 Subject: [PATCH 04/39] organize pyproject toml, py version --- .python-version | 1 + pyproject.toml | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 .python-version diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..375f5ca --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11.6 diff --git a/pyproject.toml b/pyproject.toml index 3e6e033..e1a0c7a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,12 @@ [project] name = "leapfrogai-backend-whisper" -version = "0.4.0" +version = "0.5.0" description = "Whisper backend for LeapfrogAI" authors = [{ name = "LeapfrogAI Authors", email = "ai@defenseunicorns.com" }] license = { file = "LICENSE" } +readme = "README.md" +requires-python = ">=3.11.4, <3.12" dependencies = [ "leapfrogai == 0.4.0", "openai-whisper == 20230918", @@ -13,8 +15,6 @@ dependencies = [ "ctranslate2 == 3.22.0", "transformers == 4.35.2", ] -requires-python = ">=3.11.4, <3.12" -readme = "README.md" [project.optional-dependencies] dev = ["pip-tools", "pytest", "black", "isort"] From b4f378c2b073c76573e3717e0e9ef5e2442299a7 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 21:06:00 -0500 Subject: [PATCH 05/39] remove remaining -gpu traces --- Makefile | 3 --- README.md | 3 --- 2 files changed, 6 deletions(-) diff --git a/Makefile b/Makefile index d622499..52006da 100644 --- a/Makefile +++ b/Makefile @@ -16,9 +16,6 @@ requirements-dev: requirements: pip-sync requirements.txt requirements-dev.txt -requirements-gpu: - pip-sync requirements.txt requirements-gpu.txt - build-requirements: pip-compile -o requirements.txt pyproject.toml diff --git a/README.md b/README.md index 83cc6de..ec83fbb 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,6 @@ make create-venv source .venv/bin/activate make requirements-dev -# OPTIONAL: for contributing and maintaining dependencies only -pip install pip-tools - # Clone Model make fetch-model From b434eba76f48a1b69965bc591fca91fe44205c61 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 21:33:39 -0500 Subject: [PATCH 06/39] added standardized workflows, for now --- ....yaml => dev-docker-build-push-amd64.yaml} | 13 ++++--- .../dev-docker-build-push-arm64.yaml | 32 +++++++++++++++++ ...l => release-docker-build-push-amd64.yaml} | 11 +++--- .../release-docker-build-push-arm64.yaml | 34 +++++++++++++++++++ 4 files changed, 77 insertions(+), 13 deletions(-) rename .github/workflows/{dev-docker-build-push.yaml => dev-docker-build-push-amd64.yaml} (64%) create mode 100644 .github/workflows/dev-docker-build-push-arm64.yaml rename .github/workflows/{release-docker-build-push.yaml => release-docker-build-push-amd64.yaml} (76%) create mode 100644 .github/workflows/release-docker-build-push-arm64.yaml diff --git a/.github/workflows/dev-docker-build-push.yaml b/.github/workflows/dev-docker-build-push-amd64.yaml similarity index 64% rename from .github/workflows/dev-docker-build-push.yaml rename to .github/workflows/dev-docker-build-push-amd64.yaml index c03cbcb..592b4eb 100644 --- a/.github/workflows/dev-docker-build-push.yaml +++ b/.github/workflows/dev-docker-build-push-amd64.yaml @@ -1,4 +1,4 @@ -name: Dev Docker Image Build/Push +name: AMD64 Dev Docker Image Build/Push on: push: @@ -10,15 +10,12 @@ env: VERSION: dev jobs: - push: + push-dev-amd64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Build image - run: make docker-build VERSION=$VERSION - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: @@ -26,5 +23,7 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Push image - run: make docker-push VERSION=$VERSION \ No newline at end of file + - name: Push images + run: | + make docker-build VERSION=$VERSION ARCH=amd64 + make docker-push VERSION=$VERSION ARCH=amd64 \ No newline at end of file diff --git a/.github/workflows/dev-docker-build-push-arm64.yaml b/.github/workflows/dev-docker-build-push-arm64.yaml new file mode 100644 index 0000000..71ba2a7 --- /dev/null +++ b/.github/workflows/dev-docker-build-push-arm64.yaml @@ -0,0 +1,32 @@ +name: ARM64 Dev Docker Image Build/Push + +on: + push: + branches: + - main + workflow_dispatch: + +env: + VERSION: dev + +jobs: + push-dev-arm64: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Push images + run: | + make docker-build VERSION=$VERSION ARCH=arm64 + make docker-push VERSION=$VERSION ARCH=arm64 \ No newline at end of file diff --git a/.github/workflows/release-docker-build-push.yaml b/.github/workflows/release-docker-build-push-amd64.yaml similarity index 76% rename from .github/workflows/release-docker-build-push.yaml rename to .github/workflows/release-docker-build-push-amd64.yaml index cb883ca..942bed5 100644 --- a/.github/workflows/release-docker-build-push.yaml +++ b/.github/workflows/release-docker-build-push-amd64.yaml @@ -7,7 +7,7 @@ on: workflow_dispatch: jobs: - push: + push-release-amd64: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -18,9 +18,6 @@ jobs: - name: Set VERSION run: echo "VERSION=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV - - name: Build image - run: make docker-build VERSION=$VERSION - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: @@ -28,5 +25,7 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Push image - run: make docker-push VERSION=$VERSION \ No newline at end of file + - name: Push images + run: | + make docker-build VERSION=$VERSION ARCH=amd64 + make docker-push VERSION=$VERSION ARCH=amd64 \ No newline at end of file diff --git a/.github/workflows/release-docker-build-push-arm64.yaml b/.github/workflows/release-docker-build-push-arm64.yaml new file mode 100644 index 0000000..030be1d --- /dev/null +++ b/.github/workflows/release-docker-build-push-arm64.yaml @@ -0,0 +1,34 @@ +name: Release Docker Image Build/Push + +on: + push: + tags: + - v* + workflow_dispatch: + +jobs: + push-release-arm64: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Disable shallow clone + run: git fetch --unshallow + + - name: Set VERSION + run: echo "VERSION=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Push images + run: | + make docker-build VERSION=$VERSION ARCH=arm64 + make docker-push VERSION=$VERSION ARCH=arm64 \ No newline at end of file From 68cdb9311c247f8728ba4f38c84bef7a92faddea Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 22:21:25 -0500 Subject: [PATCH 07/39] testing multi-platform workflow --- .../dev-docker-build-push-amd64.yaml | 29 ----- .../dev-docker-build-push-arm64.yaml | 32 ----- .github/workflows/docker-publish.yaml | 122 ++++++++++++++++++ .../release-docker-build-push-amd64.yaml | 31 ----- .../release-docker-build-push-arm64.yaml | 34 ----- Dockerfile | 4 +- Makefile | 13 -- README.md | 2 - pyproject.toml | 2 +- requirements-dev.txt | 57 ++++---- requirements.txt | 52 ++++---- 11 files changed, 178 insertions(+), 200 deletions(-) delete mode 100644 .github/workflows/dev-docker-build-push-amd64.yaml delete mode 100644 .github/workflows/dev-docker-build-push-arm64.yaml create mode 100644 .github/workflows/docker-publish.yaml delete mode 100644 .github/workflows/release-docker-build-push-amd64.yaml delete mode 100644 .github/workflows/release-docker-build-push-arm64.yaml diff --git a/.github/workflows/dev-docker-build-push-amd64.yaml b/.github/workflows/dev-docker-build-push-amd64.yaml deleted file mode 100644 index 592b4eb..0000000 --- a/.github/workflows/dev-docker-build-push-amd64.yaml +++ /dev/null @@ -1,29 +0,0 @@ -name: AMD64 Dev Docker Image Build/Push - -on: - push: - branches: - - main - workflow_dispatch: - -env: - VERSION: dev - -jobs: - push-dev-amd64: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push images - run: | - make docker-build VERSION=$VERSION ARCH=amd64 - make docker-push VERSION=$VERSION ARCH=amd64 \ No newline at end of file diff --git a/.github/workflows/dev-docker-build-push-arm64.yaml b/.github/workflows/dev-docker-build-push-arm64.yaml deleted file mode 100644 index 71ba2a7..0000000 --- a/.github/workflows/dev-docker-build-push-arm64.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: ARM64 Dev Docker Image Build/Push - -on: - push: - branches: - - main - workflow_dispatch: - -env: - VERSION: dev - -jobs: - push-dev-arm64: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Push images - run: | - make docker-build VERSION=$VERSION ARCH=arm64 - make docker-push VERSION=$VERSION ARCH=arm64 \ No newline at end of file diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml new file mode 100644 index 0000000..589a4e5 --- /dev/null +++ b/.github/workflows/docker-publish.yaml @@ -0,0 +1,122 @@ +name: Build and Push Image + +on: + push: + tags: + - "v*.*.*" + - dev + workflow_dispatch: + +env: + REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper + REGISTRY: ghcr.io + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - linux/amd64 + - linux/arm64 + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Docker Metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY_IMAGE }} + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and Push Digest + id: build + uses: docker/build-push-action@v5 + with: + context: . + platforms: ${{ matrix.platform }} + labels: ${{ steps.meta.outputs.labels }} + outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true + tags: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} + + - name: Export Digest + run: | + mkdir -p /tmp/digests + digest="${{ steps.build.outputs.digest }}" + touch "/tmp/digests/${digest#sha256:}" + + - name: Upload Digest + uses: actions/upload-artifact@v3 + with: + name: digests + path: /tmp/digests/* + if-no-files-found: error + retention-days: 1 + + merge: + runs-on: ubuntu-latest + needs: + - build + steps: + - name: Download Digests + uses: actions/download-artifact@v3 + with: + name: digests + path: /tmp/digests + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker Metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + + - name: Create Manifest and Push Image + working-directory: /tmp/digests + run: | + docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + $(printf '${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}@sha256:%s ' *) + + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \ No newline at end of file diff --git a/.github/workflows/release-docker-build-push-amd64.yaml b/.github/workflows/release-docker-build-push-amd64.yaml deleted file mode 100644 index 942bed5..0000000 --- a/.github/workflows/release-docker-build-push-amd64.yaml +++ /dev/null @@ -1,31 +0,0 @@ -name: Release Docker Image Build/Push - -on: - push: - tags: - - v* - workflow_dispatch: - -jobs: - push-release-amd64: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Disable shallow clone - run: git fetch --unshallow - - - name: Set VERSION - run: echo "VERSION=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push images - run: | - make docker-build VERSION=$VERSION ARCH=amd64 - make docker-push VERSION=$VERSION ARCH=amd64 \ No newline at end of file diff --git a/.github/workflows/release-docker-build-push-arm64.yaml b/.github/workflows/release-docker-build-push-arm64.yaml deleted file mode 100644 index 030be1d..0000000 --- a/.github/workflows/release-docker-build-push-arm64.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: Release Docker Image Build/Push - -on: - push: - tags: - - v* - workflow_dispatch: - -jobs: - push-release-arm64: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Disable shallow clone - run: git fetch --unshallow - - - name: Set VERSION - run: echo "VERSION=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Push images - run: | - make docker-build VERSION=$VERSION ARCH=arm64 - make docker-push VERSION=$VERSION ARCH=arm64 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0f6a8fd..b4c3c55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG ARCH=amd64 -FROM ghcr.io/defenseunicorns/leapfrogai/python:3.11-dev-${ARCH} as builder +FROM --platform=$BUILDPLATFORM ghcr.io/defenseunicorns/leapfrogai/python:3.11-dev-${ARCH} as builder WORKDIR /leapfrogai @@ -13,7 +13,7 @@ RUN /home/nonroot/.local/bin/ct2-transformers-converter --model openai/whisper-b # Use ffmpeg image to get compiled binaries FROM cgr.dev/chainguard/ffmpeg:latest as ffmpeg -FROM ghcr.io/defenseunicorns/leapfrogai/python:3.11-${ARCH} +FROM --platform=$BUILDPLATFORM ghcr.io/defenseunicorns/leapfrogai/python:3.11-${ARCH} WORKDIR /leapfrogai diff --git a/Makefile b/Makefile index 52006da..76cf0ba 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,3 @@ -VERSION := $(shell git describe --abbrev=0 --tags 2> /dev/null ) -ifeq ($(VERSION),) - VERSION := latest -endif - -ARCH := $(shell uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) - MODEL ?= openai/whisper-base create-venv: @@ -30,9 +23,3 @@ test: dev: python main.py - -docker-build: - docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . - -docker-push: - docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} diff --git a/README.md b/README.md index ec83fbb..30a3531 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,6 @@ make fetch-model python main.py ``` - - ### Run in Docker
diff --git a/pyproject.toml b/pyproject.toml index e1a0c7a..a5a2d22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "openai-whisper == 20230918", "ffmpeg == 1.4", "faster-whisper == 0.10.0", - "ctranslate2 == 3.22.0", + "ctranslate2 == 3.24.0", "transformers == 4.35.2", ] diff --git a/requirements-dev.txt b/requirements-dev.txt index 0688843..b4ceb75 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -204,32 +204,32 @@ confz==2.0.1 \ --hash=sha256:271dfbc7343dafda414f731c4931ba91bc62a448e4a3b2fdf2fb7334ffac1d36 \ --hash=sha256:c2d7af28224d8e70c72f66c4ea7ca0069abdc73dda11732d74f2be7dbe8641a0 # via leapfrogai -ctranslate2==3.22.0 \ - --hash=sha256:02e19061181661036e92df409c69989a2668093b04d2274cf5a2ee3d1878d944 \ - --hash=sha256:0e9bbd74c98ff96318f7275f4f622b7a3e215460e64957a7bac1af6b96c6cdb6 \ - --hash=sha256:158a9b35f589e9172de388706f49dd73a9663d78e8803e6f41ac0fc903f787e2 \ - --hash=sha256:1ec50358a0af04fb40454ddb8b60e8c9612cb7bea8de828ee0b5d834c0341ca7 \ - --hash=sha256:2162d8ac1e93b032a21e78c22e538bc599780b120091113d69aec6e965c2fd29 \ - --hash=sha256:28b0ca0e00e6c037347d89de9e3a670a4dc2ee0fb6c462b51f84a8256aa92e28 \ - --hash=sha256:2d3d77092b6e53c7945cb38df8fcc84e6e40d57fd59c060ece56922a036b407b \ - --hash=sha256:3cb851070db35c4210df15854d0bd0ef0eb1fd073c566059f4fa756e417cb031 \ - --hash=sha256:4b63d95a970f598eaf06913879327672386ff335fc6d546dd0d7281da448c8a4 \ - --hash=sha256:4cb88611a9588fb778837ca8e67c5ae4a7601a417c53f97a2db5f58270dc49b5 \ - --hash=sha256:58199cc5d3fd970dcabd08a9173ab0c16229af618511d7013d141377b2742a0e \ - --hash=sha256:65f7bc22cf3b052ac3be42fd7e982147cf08c96192a95316edc3b5aaec591e0b \ - --hash=sha256:71c1f2b1dc0c6a3910c2c0ff34e2fc1df43f84cbd7922281430ba83e9a0cbad9 \ - --hash=sha256:794c1fa62d2d3b9ce936250a957a20fe2506f150a073a068fb5e36672e0a71af \ - --hash=sha256:7cdc96b94cc9dee07820306118f1c61c67b2ee0a291456f5bf61696fa2897687 \ - --hash=sha256:82a91d755283999571b3f9eb1a1ab5b7ab0deae795df70f036a09903ead42a85 \ - --hash=sha256:9a616fc7bb5e8c7ea7843c71165fc6d2e83f3939940d730e963851be8fc78131 \ - --hash=sha256:b592f429b3d5615cb2d1837e065235cc9955f82a732145b3dc16e1a11fb67249 \ - --hash=sha256:b9d48e396451af160412e5bd0de0711337cdb4f3f654542f56943114ac1debc3 \ - --hash=sha256:bb1e8ea9f523431747ad8eb28f82822254ca96cf1e55fbc8a2bed12d5ddd4439 \ - --hash=sha256:c067221ed4e958a68ff482498379896ec60c7b07047e3c20a848008cbc9ba7ee \ - --hash=sha256:ce57bb42cc40dbecf77b4034a796a71be603933f653353b7e9f1ed488fb7a102 \ - --hash=sha256:dd2403ec90faf389a54767e2563dcda2713036f32545453aa25a1b0589b62b0f \ - --hash=sha256:ededd8ea8335261cf982517d04129e7be49c0f41e38a0a5f48639bb08bdfd5f1 \ - --hash=sha256:f8fcfbce7b8440e8d42297d855c9600e2f6f2be74f046103e1ea1aa6ed1c8a8f +ctranslate2==3.24.0 \ + --hash=sha256:0206b791feed6450e172683c117213ed8a1279b9e8067012475f48fcc18df8b8 \ + --hash=sha256:1649f92a65f760f010ebad79b6351063357d3d5c10d4690d664f02ad0166f215 \ + --hash=sha256:17f8a67684404a776cd2961ff98a6aa0b2fe0ec0488b58d903df3ae1cb6136f3 \ + --hash=sha256:1c91a2c7cccb84facd3316496660c89e7116840aee6dd3be1111721f377e07a6 \ + --hash=sha256:1d31fecdc502ea4759313121bd39a6a3e3cd3cbe7e255e133170b040b0d07e61 \ + --hash=sha256:40675f49bc433b3fb00594806b8e9eb83b78782f17f5a5d08caf360c441fcccc \ + --hash=sha256:5407bc1ea857030b86b3d29ecd60cf29949aabfd918c08ea334c9ae5360caeab \ + --hash=sha256:5c8bab6f09d395851e626f276ccdcb89153c4e6c11ff0d1f4fce3513d3b1da0b \ + --hash=sha256:5f6152b7850fde769444b31d47be464b628fb08927a0d90b2f12582b415dd69a \ + --hash=sha256:6f564d0b678e29413c3446380faa4568fd346597bb13e4436fa479cce1a151fd \ + --hash=sha256:6f66ccf4786be75e5c5244c5f2e4b004bb43dfe8195cf4255233f711099b3d17 \ + --hash=sha256:79d4048c30f81d6fa4b657f0b5d064e1e9470994b055caef1890e13ef9d97703 \ + --hash=sha256:7c25de97fa3ad814845628b8f9fda9931a4e0c8f85731d67eb06a14b21eb0b95 \ + --hash=sha256:7c950c4a832a88109b63995566849debceb3226573047764998ffd8b60c9f635 \ + --hash=sha256:8608d290b651b7c9dd007806493d56744697fbfaf1f4e89082805bb0f8179357 \ + --hash=sha256:a7c1498dcd42b01743969f3aaef5165d4969d80e969c9571fe9aa78c33c2f89b \ + --hash=sha256:a8ee1541b9ce69c5eebe0f62f34b96c221fa2aed9606b3d824441f8496091b03 \ + --hash=sha256:ba272a681974f7405f5c16e99303746fdb27c9c2cab4a65f17bfe9408fe22418 \ + --hash=sha256:bab89046323c61f3ad3ab7b03523ecb32d7ead43df9bd2441daf75613fce8cc4 \ + --hash=sha256:bb54d91826c3de21fda5784661e732fdfb4da6d877e8495b87b2bb7ed6f88123 \ + --hash=sha256:c91879cd905aa26882708f833e8d3ac24e3622529b62aef5958fa1db4e84bb13 \ + --hash=sha256:cd63fbd3e689e815aef33cb3a7813cfa83f8da3f33b5af4c3c7663247c524870 \ + --hash=sha256:cf8a85f6b4be1789330ae6d04b954a72a418a097d4bb1d42f0a071d29427a27d \ + --hash=sha256:d972c229613220d33eb5faabb35c1e063eab885da6264c693aa01d53ad9c5af2 \ + --hash=sha256:db3cc618b42462b5dc199e60f2f705da0c95c0523c5221059d35e64818b23644 # via # faster-whisper # leapfrogai-backend-whisper (pyproject.toml) @@ -530,7 +530,6 @@ nvidia-cublas-cu11==11.10.3.66 \ --hash=sha256:8ac17ba6ade3ed56ab898a036f9ae0756f1e81052a317bf98f8c6d18dc3ae49e \ --hash=sha256:d32e4d75f94ddfb93ea0a5dda08389bcc65d8916a25cb9f37ac89edaeed3bded # via - # leapfrogai-backend-whisper (pyproject.toml) # nvidia-cudnn-cu11 # nvidia-cusolver-cu11 # torch @@ -546,9 +545,7 @@ nvidia-cuda-nvrtc-cu11==11.7.99 \ nvidia-cuda-runtime-cu11==11.7.99 \ --hash=sha256:bc77fa59a7679310df9d5c70ab13c4e34c64ae2124dd1efd7e5474b71be125c7 \ --hash=sha256:cc768314ae58d2641f07eac350f40f99dcb35719c4faff4bc458a7cd2b119e31 - # via - # leapfrogai-backend-whisper (pyproject.toml) - # torch + # via torch nvidia-cudnn-cu11==8.5.0.96 \ --hash=sha256:402f40adfc6f418f9dae9ab402e773cfed9beae52333f6d86ae3107a1b9527e7 \ --hash=sha256:71f8111eb830879ff2836db3cccf03bbd735df9b0d17cd93761732ac50a8a108 diff --git a/requirements.txt b/requirements.txt index b54a20b..7a8cfe7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -177,32 +177,32 @@ confz==2.0.1 \ --hash=sha256:271dfbc7343dafda414f731c4931ba91bc62a448e4a3b2fdf2fb7334ffac1d36 \ --hash=sha256:c2d7af28224d8e70c72f66c4ea7ca0069abdc73dda11732d74f2be7dbe8641a0 # via leapfrogai -ctranslate2==3.22.0 \ - --hash=sha256:02e19061181661036e92df409c69989a2668093b04d2274cf5a2ee3d1878d944 \ - --hash=sha256:0e9bbd74c98ff96318f7275f4f622b7a3e215460e64957a7bac1af6b96c6cdb6 \ - --hash=sha256:158a9b35f589e9172de388706f49dd73a9663d78e8803e6f41ac0fc903f787e2 \ - --hash=sha256:1ec50358a0af04fb40454ddb8b60e8c9612cb7bea8de828ee0b5d834c0341ca7 \ - --hash=sha256:2162d8ac1e93b032a21e78c22e538bc599780b120091113d69aec6e965c2fd29 \ - --hash=sha256:28b0ca0e00e6c037347d89de9e3a670a4dc2ee0fb6c462b51f84a8256aa92e28 \ - --hash=sha256:2d3d77092b6e53c7945cb38df8fcc84e6e40d57fd59c060ece56922a036b407b \ - --hash=sha256:3cb851070db35c4210df15854d0bd0ef0eb1fd073c566059f4fa756e417cb031 \ - --hash=sha256:4b63d95a970f598eaf06913879327672386ff335fc6d546dd0d7281da448c8a4 \ - --hash=sha256:4cb88611a9588fb778837ca8e67c5ae4a7601a417c53f97a2db5f58270dc49b5 \ - --hash=sha256:58199cc5d3fd970dcabd08a9173ab0c16229af618511d7013d141377b2742a0e \ - --hash=sha256:65f7bc22cf3b052ac3be42fd7e982147cf08c96192a95316edc3b5aaec591e0b \ - --hash=sha256:71c1f2b1dc0c6a3910c2c0ff34e2fc1df43f84cbd7922281430ba83e9a0cbad9 \ - --hash=sha256:794c1fa62d2d3b9ce936250a957a20fe2506f150a073a068fb5e36672e0a71af \ - --hash=sha256:7cdc96b94cc9dee07820306118f1c61c67b2ee0a291456f5bf61696fa2897687 \ - --hash=sha256:82a91d755283999571b3f9eb1a1ab5b7ab0deae795df70f036a09903ead42a85 \ - --hash=sha256:9a616fc7bb5e8c7ea7843c71165fc6d2e83f3939940d730e963851be8fc78131 \ - --hash=sha256:b592f429b3d5615cb2d1837e065235cc9955f82a732145b3dc16e1a11fb67249 \ - --hash=sha256:b9d48e396451af160412e5bd0de0711337cdb4f3f654542f56943114ac1debc3 \ - --hash=sha256:bb1e8ea9f523431747ad8eb28f82822254ca96cf1e55fbc8a2bed12d5ddd4439 \ - --hash=sha256:c067221ed4e958a68ff482498379896ec60c7b07047e3c20a848008cbc9ba7ee \ - --hash=sha256:ce57bb42cc40dbecf77b4034a796a71be603933f653353b7e9f1ed488fb7a102 \ - --hash=sha256:dd2403ec90faf389a54767e2563dcda2713036f32545453aa25a1b0589b62b0f \ - --hash=sha256:ededd8ea8335261cf982517d04129e7be49c0f41e38a0a5f48639bb08bdfd5f1 \ - --hash=sha256:f8fcfbce7b8440e8d42297d855c9600e2f6f2be74f046103e1ea1aa6ed1c8a8f +ctranslate2==3.24.0 \ + --hash=sha256:0206b791feed6450e172683c117213ed8a1279b9e8067012475f48fcc18df8b8 \ + --hash=sha256:1649f92a65f760f010ebad79b6351063357d3d5c10d4690d664f02ad0166f215 \ + --hash=sha256:17f8a67684404a776cd2961ff98a6aa0b2fe0ec0488b58d903df3ae1cb6136f3 \ + --hash=sha256:1c91a2c7cccb84facd3316496660c89e7116840aee6dd3be1111721f377e07a6 \ + --hash=sha256:1d31fecdc502ea4759313121bd39a6a3e3cd3cbe7e255e133170b040b0d07e61 \ + --hash=sha256:40675f49bc433b3fb00594806b8e9eb83b78782f17f5a5d08caf360c441fcccc \ + --hash=sha256:5407bc1ea857030b86b3d29ecd60cf29949aabfd918c08ea334c9ae5360caeab \ + --hash=sha256:5c8bab6f09d395851e626f276ccdcb89153c4e6c11ff0d1f4fce3513d3b1da0b \ + --hash=sha256:5f6152b7850fde769444b31d47be464b628fb08927a0d90b2f12582b415dd69a \ + --hash=sha256:6f564d0b678e29413c3446380faa4568fd346597bb13e4436fa479cce1a151fd \ + --hash=sha256:6f66ccf4786be75e5c5244c5f2e4b004bb43dfe8195cf4255233f711099b3d17 \ + --hash=sha256:79d4048c30f81d6fa4b657f0b5d064e1e9470994b055caef1890e13ef9d97703 \ + --hash=sha256:7c25de97fa3ad814845628b8f9fda9931a4e0c8f85731d67eb06a14b21eb0b95 \ + --hash=sha256:7c950c4a832a88109b63995566849debceb3226573047764998ffd8b60c9f635 \ + --hash=sha256:8608d290b651b7c9dd007806493d56744697fbfaf1f4e89082805bb0f8179357 \ + --hash=sha256:a7c1498dcd42b01743969f3aaef5165d4969d80e969c9571fe9aa78c33c2f89b \ + --hash=sha256:a8ee1541b9ce69c5eebe0f62f34b96c221fa2aed9606b3d824441f8496091b03 \ + --hash=sha256:ba272a681974f7405f5c16e99303746fdb27c9c2cab4a65f17bfe9408fe22418 \ + --hash=sha256:bab89046323c61f3ad3ab7b03523ecb32d7ead43df9bd2441daf75613fce8cc4 \ + --hash=sha256:bb54d91826c3de21fda5784661e732fdfb4da6d877e8495b87b2bb7ed6f88123 \ + --hash=sha256:c91879cd905aa26882708f833e8d3ac24e3622529b62aef5958fa1db4e84bb13 \ + --hash=sha256:cd63fbd3e689e815aef33cb3a7813cfa83f8da3f33b5af4c3c7663247c524870 \ + --hash=sha256:cf8a85f6b4be1789330ae6d04b954a72a418a097d4bb1d42f0a071d29427a27d \ + --hash=sha256:d972c229613220d33eb5faabb35c1e063eab885da6264c693aa01d53ad9c5af2 \ + --hash=sha256:db3cc618b42462b5dc199e60f2f705da0c95c0523c5221059d35e64818b23644 # via # faster-whisper # leapfrogai-backend-whisper (pyproject.toml) From a507753b2b158b3fffd3b814b8ce83939c7ccfbd Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 22:34:18 -0500 Subject: [PATCH 08/39] cleaner workflow, phony makefile --- .github/workflows/docker-publish.yaml | 2 -- Makefile | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 589a4e5..622ca88 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -4,8 +4,6 @@ on: push: tags: - "v*.*.*" - - dev - workflow_dispatch: env: REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper diff --git a/Makefile b/Makefile index 76cf0ba..e3b0276 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ MODEL ?= openai/whisper-base +.PHONY: all + create-venv: python -m venv .venv From 7200293338ebb6cb08d92a197f85d8e063f749bb Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 31 Jan 2024 22:37:25 -0500 Subject: [PATCH 09/39] dispatch added back in --- .github/workflows/docker-publish.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 622ca88..589a4e5 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -4,6 +4,8 @@ on: push: tags: - "v*.*.*" + - dev + workflow_dispatch: env: REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper From 4ad71a40650f35c545ec654f221151fd79f54798 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 11:22:04 -0500 Subject: [PATCH 10/39] fix config, workflow; better Dockerfile and README --- .github/workflows/docker-publish.yaml | 3 --- Dockerfile | 8 ++++++-- Makefile | 4 ++-- README.md | 8 +++++++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 589a4e5..94ffb2d 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -39,9 +39,6 @@ jobs: type=semver,pattern={{major}} type=sha - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/Dockerfile b/Dockerfile index b4c3c55..15c0e17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,11 +8,14 @@ COPY requirements.txt . RUN pip install -r requirements.txt -RUN /home/nonroot/.local/bin/ct2-transformers-converter --model openai/whisper-base --output_dir .model --copy_files tokenizer.json --quantization float32 +# download and covnert OpenAI's whisper base +ARG MODEL_NAME=openai/whisper-base +RUN /home/nonroot/.local/bin/ct2-transformers-converter --model ${MODEL_NAME} --output_dir .model --copy_files tokenizer.json --quantization float32 -# Use ffmpeg image to get compiled binaries +# Use hardened ffmpeg image to get compiled binaries FROM cgr.dev/chainguard/ffmpeg:latest as ffmpeg +# hardened and slim python image FROM --platform=$BUILDPLATFORM ghcr.io/defenseunicorns/leapfrogai/python:3.11-${ARCH} WORKDIR /leapfrogai @@ -23,6 +26,7 @@ COPY --from=ffmpeg /usr/lib/lib* /usr/lib COPY --from=builder /home/nonroot/.local/lib/python3.11/site-packages /home/nonroot/.local/lib/python3.11/site-packages COPY --from=builder /leapfrogai/.model/ /leapfrogai/.model/ +# set the path to the cuda 11.8 dependencies ENV LD_LIBRARY_PATH=/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cublas/lib:/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cudnn/lib COPY main.py . diff --git a/Makefile b/Makefile index e3b0276..fb75460 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -MODEL ?= openai/whisper-base +MODEL_NAME ?= openai/whisper-base .PHONY: all @@ -18,7 +18,7 @@ build-requirements-dev: pip-compile --extra dev -o requirements-dev.txt pyproject.toml fetch-model: - ct2-transformers-converter --model ${MODEL} --output_dir .model --copy_files tokenizer.json --quantization float32 + ct2-transformers-converter --model ${MODEL_NAME} --output_dir .model --copy_files tokenizer.json --quantization float32 test: pytest **/*.py diff --git a/README.md b/README.md index 30a3531..993e275 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Description -A LeapfrogAI API-compatible Whisper wrapper for audio transcription generation. +A LeapfrogAI API-compatible [faster-whisper](https://github.com/SYSTRAN/faster-whisper) wrapper for audio transcription generation across CPU and GPU infrastructures. ## Usage @@ -24,6 +24,12 @@ The following are additional assumptions for GPU inferencing: 4. You have properly installed and configured the [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) and [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html)
+### Model Selection + +The default model that comes with this backend in this repository's officially released images is a [CTranslate2](https://github.com/OpenNMT/CTranslate2) converted version of [OpenAI's Whisper Base](https://huggingface.co/openai/whisper-base). + +Other Whisper model sizes and variants can be loaded into this backend by modifying the `MODEL_NAME` during image creation or Makefile command execution. + ### Run Locally
From f44d1863ebaa6a562d04fda334c3c004139a4ea6 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 11:34:22 -0500 Subject: [PATCH 11/39] better Dockerfile --- Dockerfile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 15c0e17..7b88580 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,13 +4,16 @@ FROM --platform=$BUILDPLATFORM ghcr.io/defenseunicorns/leapfrogai/python:3.11-de WORKDIR /leapfrogai -COPY requirements.txt . +# create virtual environment for light-weight portability and minimal libraries +RUN python3.11 -m venv .venv +ENV PATH="/leapfrogai/.venv/bin:$PATH" +COPY requirements.txt . RUN pip install -r requirements.txt # download and covnert OpenAI's whisper base ARG MODEL_NAME=openai/whisper-base -RUN /home/nonroot/.local/bin/ct2-transformers-converter --model ${MODEL_NAME} --output_dir .model --copy_files tokenizer.json --quantization float32 +RUN ct2-transformers-converter --model ${MODEL_NAME} --output_dir .model --copy_files tokenizer.json --quantization float32 # Use hardened ffmpeg image to get compiled binaries FROM cgr.dev/chainguard/ffmpeg:latest as ffmpeg @@ -18,12 +21,15 @@ FROM cgr.dev/chainguard/ffmpeg:latest as ffmpeg # hardened and slim python image FROM --platform=$BUILDPLATFORM ghcr.io/defenseunicorns/leapfrogai/python:3.11-${ARCH} +ENV PATH="/leapfrogai/.venv/bin:$PATH" + WORKDIR /leapfrogai COPY --from=ffmpeg /usr/bin/ffmpeg /usr/bin COPY --from=ffmpeg /usr/bin/ffprobe /usr/bin COPY --from=ffmpeg /usr/lib/lib* /usr/lib -COPY --from=builder /home/nonroot/.local/lib/python3.11/site-packages /home/nonroot/.local/lib/python3.11/site-packages + +COPY --from=builder /leapfrogai/.venv/ /leapfrogai/.venv/ COPY --from=builder /leapfrogai/.model/ /leapfrogai/.model/ # set the path to the cuda 11.8 dependencies From 7444b955e1a9f3efd3d342deddd936a37c83b350 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 12:26:31 -0500 Subject: [PATCH 12/39] new simplified workflow file --- .github/workflows/docker-publish.yaml | 104 ++++---------------------- Makefile | 17 +++++ 2 files changed, 30 insertions(+), 91 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 94ffb2d..24ead3f 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -14,106 +14,28 @@ env: jobs: build: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - platform: - - linux/amd64 - - linux/arm64 steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Docker Metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY_IMAGE }} - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and Push Digest - id: build - uses: docker/build-push-action@v5 - with: - context: . - platforms: ${{ matrix.platform }} - labels: ${{ steps.meta.outputs.labels }} - outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true - tags: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} - - - name: Export Digest + + - name: Extract tag from GITHUB_REF + id: extract_tag run: | - mkdir -p /tmp/digests - digest="${{ steps.build.outputs.digest }}" - touch "/tmp/digests/${digest#sha256:}" - - - name: Upload Digest - uses: actions/upload-artifact@v3 - with: - name: digests - path: /tmp/digests/* - if-no-files-found: error - retention-days: 1 - - merge: - runs-on: ubuntu-latest - needs: - - build - steps: - - name: Download Digests - uses: actions/download-artifact@v3 - with: - name: digests - path: /tmp/digests - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Docker Metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }} - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - - - name: Create Manifest and Push Image - working-directory: /tmp/digests - run: | - docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - $(printf '${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}@sha256:%s ' *) - - - name: Inspect image - run: | - docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \ No newline at end of file + REF=${GITHUB_REF#refs/tags/} + if [[ $REF == "dev" ]]; then + echo "##[set-output name=tag;]dev" + else + echo "##[set-output name=tag;]${REF#v}" + fi + + - name: Build and Push Digest + run: + VERSION=${{ steps.extract_tag.outputs.tag }} make docker-publish \ No newline at end of file diff --git a/Makefile b/Makefile index fb75460..ab26ed8 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ MODEL_NAME ?= openai/whisper-base +REGISTRY ?= ghcr.io/defenseunicorns/leapfrogai/whisper +VERSION ?= $(shell git fetch --tags && git tag -l "*.*.*" | sort -V | tail -n 1 | sed -e 's/^v//') .PHONY: all @@ -25,3 +27,18 @@ test: dev: python main.py + +docker-publish: + docker buildx install && \ + if docker buildx ls | grep -q 'whisper'; then \ + echo "Instance whisper already exists."; \ + else \ + docker buildx create --use --name whisper; \ + fi && \ + docker buildx build --push \ + --build-arg REGISTRY=${REGISTRY} \ + --build-arg VERSION=${VERSION} \ + --platform linux/arm64,linux/amd64 \ + -t ${REGISTRY}:${VERSION} . && \ + docker buildx rm whisper + From 318e4c9fd8c5c858db8222493699e3fb7d7a95e7 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 12:26:55 -0500 Subject: [PATCH 13/39] better docker-publish make --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index ab26ed8..5f983d3 100644 --- a/Makefile +++ b/Makefile @@ -41,4 +41,3 @@ docker-publish: --platform linux/arm64,linux/amd64 \ -t ${REGISTRY}:${VERSION} . && \ docker buildx rm whisper - From a9c6e5cf5cea93baf94c819d0b6505109794c394 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 12:44:07 -0500 Subject: [PATCH 14/39] restore workflows --- .github/workflows/dev-docker-build-push.yaml | 30 ++++++++++++++ .github/workflows/docker-publish.yaml | 41 ------------------- .../workflows/release-docker-build-push.yaml | 32 +++++++++++++++ 3 files changed, 62 insertions(+), 41 deletions(-) create mode 100644 .github/workflows/dev-docker-build-push.yaml delete mode 100644 .github/workflows/docker-publish.yaml create mode 100644 .github/workflows/release-docker-build-push.yaml diff --git a/.github/workflows/dev-docker-build-push.yaml b/.github/workflows/dev-docker-build-push.yaml new file mode 100644 index 0000000..c03cbcb --- /dev/null +++ b/.github/workflows/dev-docker-build-push.yaml @@ -0,0 +1,30 @@ +name: Dev Docker Image Build/Push + +on: + push: + branches: + - main + workflow_dispatch: + +env: + VERSION: dev + +jobs: + push: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Build image + run: make docker-build VERSION=$VERSION + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push image + run: make docker-push VERSION=$VERSION \ No newline at end of file diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml deleted file mode 100644 index 24ead3f..0000000 --- a/.github/workflows/docker-publish.yaml +++ /dev/null @@ -1,41 +0,0 @@ -name: Build and Push Image - -on: - push: - tags: - - "v*.*.*" - - dev - workflow_dispatch: - -env: - REGISTRY_IMAGE: defenseunicorns/leapfrogai/whisper - REGISTRY: ghcr.io - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract tag from GITHUB_REF - id: extract_tag - run: | - REF=${GITHUB_REF#refs/tags/} - if [[ $REF == "dev" ]]; then - echo "##[set-output name=tag;]dev" - else - echo "##[set-output name=tag;]${REF#v}" - fi - - - name: Build and Push Digest - run: - VERSION=${{ steps.extract_tag.outputs.tag }} make docker-publish \ No newline at end of file diff --git a/.github/workflows/release-docker-build-push.yaml b/.github/workflows/release-docker-build-push.yaml new file mode 100644 index 0000000..cb883ca --- /dev/null +++ b/.github/workflows/release-docker-build-push.yaml @@ -0,0 +1,32 @@ +name: Release Docker Image Build/Push + +on: + push: + tags: + - v* + workflow_dispatch: + +jobs: + push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Disable shallow clone + run: git fetch --unshallow + + - name: Set VERSION + run: echo "VERSION=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV + + - name: Build image + run: make docker-build VERSION=$VERSION + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push image + run: make docker-push VERSION=$VERSION \ No newline at end of file From 51b39659beb16de35a26edce2975cafef02a1220 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 12:48:48 -0500 Subject: [PATCH 15/39] restore docker-push cmds --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index 5f983d3..77a5fcf 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ MODEL_NAME ?= openai/whisper-base REGISTRY ?= ghcr.io/defenseunicorns/leapfrogai/whisper VERSION ?= $(shell git fetch --tags && git tag -l "*.*.*" | sort -V | tail -n 1 | sed -e 's/^v//') +ARCH ?= $(shell uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) .PHONY: all @@ -28,6 +29,12 @@ test: dev: python main.py +make docker-build: + docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . + +make docker-push: + docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + docker-publish: docker buildx install && \ if docker buildx ls | grep -q 'whisper'; then \ From 350da4512701eb181a68666f837a0d3d7cd7ee00 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 12:59:18 -0500 Subject: [PATCH 16/39] docker-run command --- Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 77a5fcf..897dee7 100644 --- a/Makefile +++ b/Makefile @@ -29,10 +29,16 @@ test: dev: python main.py -make docker-build: +docker-build: docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . -make docker-push: +docker-run: + docker run -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + +docker-run-gpu: + docker run --gpus all -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + +docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-publish: From 5f8419644fda878afe5e21cb7f9834ab3aac0bed Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:02:34 -0500 Subject: [PATCH 17/39] gpus picks 1st device --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 897dee7..903f9a2 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ docker-run: docker run -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-run-gpu: - docker run --gpus all -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + docker run --gpus device=0 -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} From b4c07357d01cd6a47fbc5df5e636c20f5beebb9f Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:08:13 -0500 Subject: [PATCH 18/39] missing GPU flag --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 903f9a2..77a2b33 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ docker-run: docker run -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-run-gpu: - docker run --gpus device=0 -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + docker run --gpus device=0 -e GPU_ENABLED=true -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} From 3a0077e225ddd0f7494d2862620c5ac72bf61348 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:13:47 -0500 Subject: [PATCH 19/39] missing cuda path --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 77a2b33..6d9dcfb 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,10 @@ docker-run: docker run -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-run-gpu: - docker run --gpus device=0 -e GPU_ENABLED=true -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + docker run --gpus device=0 \ + -e GPU_ENABLED=true \ + -e LD_LIBRARY_PATH=${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cublas/lib:${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib \ + -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} From 69db218554d47eacd5b4fe02b4f858c6f3410730 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:17:57 -0500 Subject: [PATCH 20/39] corrected cuda11.8 path --- Dockerfile | 4 +++- Makefile | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7b88580..3e90faa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,9 @@ COPY --from=builder /leapfrogai/.venv/ /leapfrogai/.venv/ COPY --from=builder /leapfrogai/.model/ /leapfrogai/.model/ # set the path to the cuda 11.8 dependencies -ENV LD_LIBRARY_PATH=/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cublas/lib:/home/nonroot/.local/lib/python3.11/site-packages/nvidia/cudnn/lib +ENV LD_LIBRARY_PATH \ + /.venv/lib64/python3.11/site-packages/nvidia/cublas/lib: \ + /.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib COPY main.py . diff --git a/Makefile b/Makefile index 6d9dcfb..77a2b33 100644 --- a/Makefile +++ b/Makefile @@ -36,10 +36,7 @@ docker-run: docker run -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-run-gpu: - docker run --gpus device=0 \ - -e GPU_ENABLED=true \ - -e LD_LIBRARY_PATH=${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cublas/lib:${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib \ - -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} + docker run --gpus device=0 -e GPU_ENABLED=true -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} From a2c424bc0f825405a3b168d4e9dc25f824d33dc9 Mon Sep 17 00:00:00 2001 From: Gregory Horvath Date: Thu, 1 Feb 2024 13:24:08 -0500 Subject: [PATCH 21/39] fixed env variables to link cudnn --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3e90faa..a9a0e40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,8 +34,8 @@ COPY --from=builder /leapfrogai/.model/ /leapfrogai/.model/ # set the path to the cuda 11.8 dependencies ENV LD_LIBRARY_PATH \ - /.venv/lib64/python3.11/site-packages/nvidia/cublas/lib: \ - /.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib +/leapfrogai/.venv/lib64/python3.11/site-packages/nvidia/cublas/lib:\ +/leapfrogai/.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib COPY main.py . From 9001ffbab7954ac973fe7091c4091aec006cb913 Mon Sep 17 00:00:00 2001 From: Gregory Horvath Date: Thu, 1 Feb 2024 13:39:50 -0500 Subject: [PATCH 22/39] bumped the version of transformers --- pyproject.toml | 2 +- requirements-dev.txt | 22 ++++++++++++++++++---- requirements.txt | 8 ++++---- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a5a2d22..2eb29da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ dependencies = [ "ffmpeg == 1.4", "faster-whisper == 0.10.0", "ctranslate2 == 3.24.0", - "transformers == 4.35.2", + "transformers == 4.37.2", ] [project.optional-dependencies] diff --git a/requirements-dev.txt b/requirements-dev.txt index b4ceb75..547e350 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile --extra=dev --generate-hashes --output-file=requirements-dev.txt pyproject.toml @@ -233,6 +233,10 @@ ctranslate2==3.24.0 \ # via # faster-whisper # leapfrogai-backend-whisper (pyproject.toml) +exceptiongroup==1.2.0 \ + --hash=sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14 \ + --hash=sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68 + # via pytest faster-whisper==0.10.0 \ --hash=sha256:591809328b93c8e4594d52097ec6352a270a81fbb7b956254967f28700f7e4da # via leapfrogai-backend-whisper (pyproject.toml) @@ -1096,6 +1100,15 @@ toml==0.10.2 \ --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f # via confz +tomli==2.0.1 \ + --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ + --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f + # via + # black + # build + # pip-tools + # pyproject-hooks + # pytest torch==2.0.1 \ --hash=sha256:0882243755ff28895e8e6dc6bc26ebcf5aa0911ed81b2a12f241fc4b09075b13 \ --hash=sha256:1adb60d369f2650cac8e9a95b1d5758e25d526a34808f7448d0bd599e4ae9072 \ @@ -1127,9 +1140,9 @@ tqdm==4.66.1 \ # huggingface-hub # openai-whisper # transformers -transformers==4.35.2 \ - --hash=sha256:2d125e197d77b0cdb6c9201df9fa7e2101493272e448b9fba9341c695bee2f52 \ - --hash=sha256:9dfa76f8692379544ead84d98f537be01cd1070de75c74efb13abcbc938fbe2f +transformers==4.37.2 \ + --hash=sha256:595a8b12a1fcc4ad0ced49ce206c58e17be68c85d7aee3d7546d04a32c910d2e \ + --hash=sha256:f307082ae5d528b8480611a4879a4a11651012d0e9aaea3f6cf17219ffd95542 # via leapfrogai-backend-whisper (pyproject.toml) triton==2.0.0 \ --hash=sha256:0117722f8c2b579cd429e0bee80f7731ae05f63fe8e9414acd9a679885fcbf42 \ @@ -1157,6 +1170,7 @@ typing-extensions==4.8.0 \ --hash=sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0 \ --hash=sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef # via + # black # huggingface-hub # pydantic # torch diff --git a/requirements.txt b/requirements.txt index 7a8cfe7..455956e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # pip-compile --generate-hashes --output-file=requirements.txt pyproject.toml @@ -1061,9 +1061,9 @@ tqdm==4.66.1 \ # huggingface-hub # openai-whisper # transformers -transformers==4.35.2 \ - --hash=sha256:2d125e197d77b0cdb6c9201df9fa7e2101493272e448b9fba9341c695bee2f52 \ - --hash=sha256:9dfa76f8692379544ead84d98f537be01cd1070de75c74efb13abcbc938fbe2f +transformers==4.37.2 \ + --hash=sha256:595a8b12a1fcc4ad0ced49ce206c58e17be68c85d7aee3d7546d04a32c910d2e \ + --hash=sha256:f307082ae5d528b8480611a4879a4a11651012d0e9aaea3f6cf17219ffd95542 # via leapfrogai-backend-whisper (pyproject.toml) triton==2.0.0 \ --hash=sha256:0117722f8c2b579cd429e0bee80f7731ae05f63fe8e9414acd9a679885fcbf42 \ From 814c2b9ed88d6c03b528069f3012fc674624609a Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:46:25 -0500 Subject: [PATCH 23/39] new make cmds --- README.md | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 993e275..0e66ffb 100644 --- a/README.md +++ b/README.md @@ -66,25 +66,16 @@ python main.py ### Run in Docker -
-GPU Variation -
-The following additional flags must be added to the `docker run` command for GPU inferencing: - -```bash -docker run --gpus all -e GPU_ENABLED=true -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:latest -``` - -
- #### Local Image Build and Run For local image building and running. ```bash -docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:latest . -# add the "--gpus all" flag for CUDA inferencing -docker run -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:latest +make docker-build +# without GPU, CPU-only +make docker-run +# with GPU +make docker-run-gpu ``` #### Remote Image Build and Run From 23b69b79f5c06921fd9dc14cac1a1633c7ecae2a Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:52:00 -0500 Subject: [PATCH 24/39] removed .python-version --- .gitignore | 1 + .python-version | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .python-version diff --git a/.gitignore b/.gitignore index 3a86558..12e9aac 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ share/python-wheels/ .installed.cfg *.egg MANIFEST +.python-version # PyInstaller # Usually these files are written by a python script from a template diff --git a/.python-version b/.python-version deleted file mode 100644 index 375f5ca..0000000 --- a/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.11.6 From 880e0ee8f25ca5c219452038716870dbe2e5c37c Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:57:37 -0500 Subject: [PATCH 25/39] remove docker-publish --- Makefile | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Makefile b/Makefile index 77a2b33..0518505 100644 --- a/Makefile +++ b/Makefile @@ -40,17 +40,3 @@ docker-run-gpu: docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} - -docker-publish: - docker buildx install && \ - if docker buildx ls | grep -q 'whisper'; then \ - echo "Instance whisper already exists."; \ - else \ - docker buildx create --use --name whisper; \ - fi && \ - docker buildx build --push \ - --build-arg REGISTRY=${REGISTRY} \ - --build-arg VERSION=${VERSION} \ - --platform linux/arm64,linux/amd64 \ - -t ${REGISTRY}:${VERSION} . && \ - docker buildx rm whisper From 853e03d75014f79ca310f10386695b0115136055 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 13:59:53 -0500 Subject: [PATCH 26/39] remove REGISTRY from makefile --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 0518505..f4e9bd8 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,4 @@ MODEL_NAME ?= openai/whisper-base -REGISTRY ?= ghcr.io/defenseunicorns/leapfrogai/whisper VERSION ?= $(shell git fetch --tags && git tag -l "*.*.*" | sort -V | tail -n 1 | sed -e 's/^v//') ARCH ?= $(shell uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) From b3a3e3335faa7c0dc03915b3349caa5baa7a86db Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 15:58:51 -0500 Subject: [PATCH 27/39] remove patch --- zarf.yaml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/zarf.yaml b/zarf.yaml index 73836e7..932ab73 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -10,6 +10,7 @@ variables: description: Optionally turn on GPU inferencing for environments with capable CUDA devices (true/false) default: false prompt: true + pattern: "^(true|false)$" constants: - name: IMAGE_VERSION @@ -23,11 +24,3 @@ components: import: name: model url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.4.0-skeleton - actions: - onDeploy: - defaults: - shell: - linux: sh - after: - - cmd: | - if [ "${ZARF_VAR_GPU_ENABLED}" = "true" ]; then kubectl patch deployment whisper-model-whisper -n leapfrogai --patch '{"spec":{"template":{"spec":{"containers":[{"name":"leapfrogai-model","resources":{"limits":{"cpu":"1","memory":"20Gi","nvidia.com/gpu":"1"},"requests":{"cpu":"1","memory":"4Gi","nvidia.com/gpu":"1"}}}]}}}}'; fi From db857ee0efa1c412cb64afe51d0106f2695b806e Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 1 Feb 2024 17:27:58 -0500 Subject: [PATCH 28/39] remove GPU variable --- zarf.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/zarf.yaml b/zarf.yaml index 932ab73..ff152b3 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -5,13 +5,6 @@ metadata: description: > whisper model -variables: - - name: GPU_ENABLED - description: Optionally turn on GPU inferencing for environments with capable CUDA devices (true/false) - default: false - prompt: true - pattern: "^(true|false)$" - constants: - name: IMAGE_VERSION value: "###ZARF_PKG_TMPL_IMAGE_VERSION###" From 1afd3efd5656b7e8992792dbef05486146a91a15 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Fri, 2 Feb 2024 10:07:54 -0500 Subject: [PATCH 29/39] point to new skeleton --- zarf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zarf.yaml b/zarf.yaml index ff152b3..8cd29af 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -16,4 +16,4 @@ components: required: true import: name: model - url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.4.0-skeleton + url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.5.0-skeleton From fe5ce9bab310cc92ac5b69de825dfbc87d5cbf87 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Fri, 2 Feb 2024 15:11:40 -0500 Subject: [PATCH 30/39] removed un-used script, zarf configs --- scripts/load_cuda.py | 9 --------- zarf-config.yaml | 6 ------ zarf.yaml | 2 +- 3 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 scripts/load_cuda.py diff --git a/scripts/load_cuda.py b/scripts/load_cuda.py deleted file mode 100644 index da9f9ae..0000000 --- a/scripts/load_cuda.py +++ /dev/null @@ -1,9 +0,0 @@ -import os -import nvidia.cublas.lib -import nvidia.cudnn.lib - -print( - os.path.dirname(nvidia.cublas.lib.__file__) - + ":" - + os.path.dirname(nvidia.cudnn.lib.__file__) -) diff --git a/zarf-config.yaml b/zarf-config.yaml index 11983cf..42646b0 100644 --- a/zarf-config.yaml +++ b/zarf-config.yaml @@ -10,9 +10,3 @@ package: name: whisper image_repository: "ghcr.io/defenseunicorns/leapfrogai/whisper" image_version: 0.5.0 - limits_cpu: 1 - limits_memory: 20Gi - limits_gpu: 0 - requests_cpu: 1 - requests_memory: 4Gi - requests_gpu: 0 diff --git a/zarf.yaml b/zarf.yaml index 8cd29af..6a84b0b 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -16,4 +16,4 @@ components: required: true import: name: model - url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.5.0-skeleton + url: oci://localhost:5000/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.5.0-skeleton From 451ffe010e8ca2fae6452253341b412963e37fcd Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Fri, 2 Feb 2024 15:12:13 -0500 Subject: [PATCH 31/39] corrected import-model url --- zarf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zarf.yaml b/zarf.yaml index 6a84b0b..8cd29af 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -16,4 +16,4 @@ components: required: true import: name: model - url: oci://localhost:5000/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.5.0-skeleton + url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.5.0-skeleton From aacf66dd68460cc9993523e057e1a36c583f91d9 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Mon, 5 Feb 2024 10:43:53 -0500 Subject: [PATCH 32/39] better .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 12e9aac..25be523 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Zarf packages zarf*.tar.zst zarf-sbom/ +temp/ +tmp # Models Directory .models/* @@ -34,6 +36,7 @@ share/python-wheels/ *.egg MANIFEST .python-version +config.yaml # PyInstaller # Usually these files are written by a python script from a template From 79e4d29c0e6a707b2e4226ff025ecd565e5a8e9d Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Mon, 5 Feb 2024 13:35:59 -0500 Subject: [PATCH 33/39] better README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e66ffb..a00e1c9 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,6 @@ Where `` is the released packages found [here](https://github.com/org ```bash docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper: . -# add the "--gpus all" flag for CUDA inferencing +# add the "--gpus all" and "-e GPU_ENABLED=true" flags for GPU inferencing docker run -p 50051:50051 -d --name whisper ghcr.io/defenseunicorns/leapfrogai/whisper: ``` From 1b5d1b9e1b5c3f50d1f6f4c2ddfe968211473dba Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Tue, 6 Feb 2024 09:55:34 -0500 Subject: [PATCH 34/39] removed unused make cmds --- Makefile | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 6d15390..c17c16b 100644 --- a/Makefile +++ b/Makefile @@ -31,17 +31,11 @@ dev: docker-build: docker build -t ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . -docker-build-gpu: - docker build -f Dockerfile.gpu -t ghcr.io/defenseunicorns/leapfrogai/whisper-gpu:${VERSION}-${ARCH} --build-arg ARCH=${ARCH} . - docker-push: docker push ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} -docker-push-gpu: - docker push ghcr.io/defenseunicorns/leapfrogai/whisper-gpu:${VERSION}-${ARCH} - docker-run: docker run -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} docker-run-gpu: - docker run --gpus device=0 -e GPU_ENABLED=true -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper-gpu:${VERSION}-${ARCH} + docker run --gpus device=0 -e GPU_ENABLED=true -d -p 50051:50051 ghcr.io/defenseunicorns/leapfrogai/whisper:${VERSION}-${ARCH} From 1f1019c53550660d0b7f7a302d0862f888dad42f Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Tue, 6 Feb 2024 11:54:40 -0500 Subject: [PATCH 35/39] VERSION script change --- .github/workflows/release-docker-build-push.yaml | 2 +- Makefile | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-docker-build-push.yaml b/.github/workflows/release-docker-build-push.yaml index cb883ca..d1ba76d 100644 --- a/.github/workflows/release-docker-build-push.yaml +++ b/.github/workflows/release-docker-build-push.yaml @@ -16,7 +16,7 @@ jobs: run: git fetch --unshallow - name: Set VERSION - run: echo "VERSION=$(git describe --abbrev=0 --tags)" >> $GITHUB_ENV + run: echo "VERSION=$(git describe --abbrev=0 --tags | sed -e 's/^v//')" >> $GITHUB_ENV - name: Build image run: make docker-build VERSION=$VERSION diff --git a/Makefile b/Makefile index c17c16b..d3fd025 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,10 @@ MODEL_NAME ?= openai/whisper-base -VERSION ?= $(shell git fetch --tags && git tag -l "*.*.*" | sort -V | tail -n 1 | sed -e 's/^v//') + +VERSION ?= $(shell git describe --abbrev=0 --tags | sed -e 's/^v//') +ifeq ($(VERSION),) + VERSION := latest +endif + ARCH ?= $(shell uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) .PHONY: all From 8c655501e2a469c60d4769e295596f24b201ee5d Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 7 Feb 2024 11:59:10 -0500 Subject: [PATCH 36/39] remove unused VARs --- zarf-config.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/zarf-config.yaml b/zarf-config.yaml index 42646b0..40d8a18 100644 --- a/zarf-config.yaml +++ b/zarf-config.yaml @@ -5,8 +5,3 @@ package: image_repository: "ghcr.io/defenseunicorns/leapfrogai/whisper" image_version: 0.5.0 max_package_size: "1000000000" - deploy: - set: - name: whisper - image_repository: "ghcr.io/defenseunicorns/leapfrogai/whisper" - image_version: 0.5.0 From faef54fa2cbbfe5478cc0cd336bf7eae8ae8a0a7 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Wed, 7 Feb 2024 15:30:33 -0500 Subject: [PATCH 37/39] python pin, .gitignore clean --- .gitignore | 152 +------------------------------------------------ pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 151 deletions(-) diff --git a/.gitignore b/.gitignore index 25be523..bfcffa6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,172 +5,27 @@ temp/ tmp # Models Directory -.models/* .model/* # Byte-compiled / optimized / DLL files __pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so # Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ *.egg-info/ -.installed.cfg *.egg -MANIFEST .python-version config.yaml -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - # Environments .env .venv env/ venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ # PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ +# VSCode .vscode/* !.vscode/settings.json !.vscode/tasks.json @@ -180,6 +35,3 @@ cython_debug/ # Local History for Visual Studio Code .history/ - -# Built Visual Studio Code Extensions -*.vsix diff --git a/pyproject.toml b/pyproject.toml index 91467f3..75675b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ description = "Whisper backend for LeapfrogAI" authors = [{ name = "LeapfrogAI Authors", email = "ai@defenseunicorns.com" }] license = { file = "LICENSE" } readme = "README.md" -requires-python = ">=3.11.4, <3.12" +requires-python = "== 3.11.6" dependencies = [ "leapfrogai == 0.4.0", "openai-whisper == 20231117", From 94e90ccc23615debd84ffb26ee0ee834a6b34d87 Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Thu, 8 Feb 2024 16:11:05 -0500 Subject: [PATCH 38/39] make dev --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a00e1c9..5200812 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ make requirements-dev make fetch-model # Start Model Backend -python main.py +make dev ``` ### Run in Docker From 39c8c30d7f68cd0e0d595b40d10a2bd5c5571e5f Mon Sep 17 00:00:00 2001 From: justinthelaw Date: Fri, 9 Feb 2024 11:33:45 -0500 Subject: [PATCH 39/39] new skeleton, tested --- zarf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zarf.yaml b/zarf.yaml index 8cd29af..0a9ea83 100644 --- a/zarf.yaml +++ b/zarf.yaml @@ -16,4 +16,4 @@ components: required: true import: name: model - url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.5.0-skeleton + url: oci://ghcr.io/defenseunicorns/packages/leapfrogai/leapfrogai-model:0.4.2