Shubham32142 Claude Opus 4.7 (1M context) commited on
Commit
a2fed52
·
1 Parent(s): 0927600

Fix HF Space cold-start timeout: slim deps + prebake small model

Browse files

- Drop torch/torchaudio/transformers/datasets from runtime requirements;
faster-whisper uses CTranslate2, not PyTorch. Moved training-only deps
to ml/finetune-requirements.txt.
- Pre-download Systran/faster-whisper-small during image build so the
first /transcribe request doesn't trigger a multi-minute download on
the free CPU tier.
- Default MODEL_PATH to the HF model id instead of a local ../models path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Dockerfile CHANGED
@@ -9,12 +9,15 @@ RUN apt-get update \
9
  COPY ml/requirements.txt ./requirements.txt
10
  RUN pip install --no-cache-dir -r requirements.txt
11
 
12
- COPY ml/ ./ml/
 
13
 
14
- RUN mkdir -p /app/models
15
 
16
  WORKDIR /app/ml
17
 
 
 
18
  EXPOSE 8000
19
 
20
  CMD ["uvicorn", "serve:app", "--host", "0.0.0.0", "--port", "8000"]
 
9
  COPY ml/requirements.txt ./requirements.txt
10
  RUN pip install --no-cache-dir -r requirements.txt
11
 
12
+ ENV HF_HOME=/app/.cache/huggingface
13
+ RUN python -c "from huggingface_hub import snapshot_download; snapshot_download('Systran/faster-whisper-small')"
14
 
15
+ COPY ml/ ./ml/
16
 
17
  WORKDIR /app/ml
18
 
19
+ ENV MODEL_PATH=Systran/faster-whisper-small
20
+
21
  EXPOSE 8000
22
 
23
  CMD ["uvicorn", "serve:app", "--host", "0.0.0.0", "--port", "8000"]
ml/finetune-requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ -r requirements.txt
2
+ transformers>=4.40.0
3
+ datasets>=2.18.0
4
+ torch>=2.2.0
5
+ torchaudio>=2.2.0
6
+ evaluate
7
+ jiwer
ml/requirements.txt CHANGED
@@ -1,10 +1,4 @@
1
  faster-whisper==1.1.0
2
- transformers>=4.40.0
3
- datasets>=2.18.0
4
- torch>=2.2.0
5
- torchaudio>=2.2.0
6
- evaluate
7
- jiwer
8
  fastapi
9
  uvicorn
10
  python-multipart
 
1
  faster-whisper==1.1.0
 
 
 
 
 
 
2
  fastapi
3
  uvicorn
4
  python-multipart
ml/serve.py CHANGED
@@ -29,7 +29,7 @@ _MODEL_MAPPING = {
29
  }
30
 
31
  _DEFAULT_MODEL = "small"
32
- _MODEL_NAME = os.getenv("MODEL_PATH", "../models/small")
33
  _DEVICE = os.getenv("WHISPER_DEVICE", "cpu")
34
  _COMPUTE_TYPE = os.getenv("WHISPER_COMPUTE_TYPE", "int8")
35
  _DEFAULT_LANGUAGE = os.getenv("WHISPER_LANGUAGE", "en")
 
29
  }
30
 
31
  _DEFAULT_MODEL = "small"
32
+ _MODEL_NAME = os.getenv("MODEL_PATH", "Systran/faster-whisper-small")
33
  _DEVICE = os.getenv("WHISPER_DEVICE", "cpu")
34
  _COMPUTE_TYPE = os.getenv("WHISPER_COMPUTE_TYPE", "int8")
35
  _DEFAULT_LANGUAGE = os.getenv("WHISPER_LANGUAGE", "en")