File size: 1,936 Bytes
99336cb
377c6b8
446b409
 
 
 
 
797ed32
22f2c53
 
446b409
 
 
 
 
 
 
 
 
 
22f2c53
446b409
705b84e
26ce7cd
 
446b409
 
22f2c53
26ce7cd
179c654
 
7c2c65d
26ce7cd
22f2c53
26ce7cd
22f2c53
179c654
797ed32
d9c5a23
22f2c53
26ce7cd
797ed32
 
 
 
446b409
797ed32
 
 
26ce7cd
797ed32
377c6b8
 
 
179c654
797ed32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
FROM python:3.10-slim

ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV HF_HOME=/data/.cache/huggingface
ENV TRANSFORMERS_CACHE=/data/.cache/huggingface
ENV TORCH_HOME=/data/.cache/torch
ENV HUGGINGFACE_HUB_CACHE=/data/.cache/huggingface

RUN apt-get update && apt-get install -y --no-install-recommends \
        git \
        wget \
        curl \
        libsndfile1 \
        ffmpeg \
        gcc \
        g++ \
        build-essential \
        python3-dev \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /app



COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt


COPY yarngpt/ ./yarngpt/


ENV PYTHONPATH="/app:${PYTHONPATH}"

COPY app/ ./app/


RUN mkdir -p /app/models && \
    python -c "import os; from huggingface_hub import snapshot_download; import time; print(' Downloading models from Remostartdev/TTS_FARMLINGUA-models...'); start = time.time(); snapshot_download(repo_id='Remostartdev/TTS_FARMLINGUA-models', local_dir='/app/models', local_dir_use_symlinks=False, resume_download=True, ignore_patterns=['*.git*', 'README.md']); print(f' Models downloaded in {time.time() - start:.1f}s')"


RUN ls -la /app/models/ && \
    echo "Model files:" && \
    find /app/models -type f -name "*.ckpt" -o -name "*.yaml" | xargs -r ls -lh

ENV MODEL_ID=saheedniyi/YarnGPT2b
ENV WAV_TOKENIZER_CONFIG=/app/models/wavtokenizer_mediumdata_frame75_3s_nq1_code4096_dim512_kmeans200_attn.yaml
ENV WAV_TOKENIZER_CKPT=/app/models/wavtokenizer_large_speech_320_24k.ckpt


RUN python -c "from transformers import AutoModelForCausalLM; AutoModelForCausalLM.from_pretrained('saheedniyi/YarnGPT2b')"

EXPOSE 7860

# Gunicorn with Uvicorn workers for production
CMD ["gunicorn", "app.main:app", "--workers", "4", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:7860", "--timeout", "120", "--keep-alive", "5", "--max-requests", "10000", "--max-requests-jitter", "1000"]