ksapc commited on
Commit ·
a89bed7
1
Parent(s): c8d246c
تقليص الصورة: إزالة النموذج القرآنيّ غير المستعمَل وtorch/transformers — علاج الإقلاع البارد (209ث مقيسة)
Browse files- Dockerfile +12 -12
- app.py +4 -7
Dockerfile
CHANGED
|
@@ -1,23 +1,23 @@
|
|
| 1 |
-
#
|
| 2 |
-
#
|
| 3 |
-
#
|
| 4 |
-
# • quran = ahishamm/finetuned-whisper-quranic-large-v3 (أدقّ تشكيلًا، قد «يُصحّح»)
|
| 5 |
-
# CUDA 12.4 + cuDNN 9 (يلزمان CTranslate2 4.5+). النموذجان مبنيّان في الصورة (لا تنزيل وقت التشغيل).
|
| 6 |
FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04
|
| 7 |
ENV DEBIAN_FRONTEND=noninteractive HF_HOME=/app/hf HF_HUB_ENABLE_HF_TRANSFER=1
|
| 8 |
WORKDIR /app
|
| 9 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 10 |
python3 python3-pip libsndfile1 ca-certificates && rm -rf /var/lib/apt/lists/*
|
| 11 |
RUN pip3 install --no-cache-dir fastapi "uvicorn[standard]" numpy soundfile hf_transfer \
|
| 12 |
-
"faster-whisper>=1.1.0" "ctranslate2>=4.5"
|
| 13 |
-
--extra-index-url https://download.pytorch.org/whl/cpu
|
| 14 |
|
| 15 |
-
#
|
| 16 |
-
#
|
| 17 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
RUN python3 -c "from faster_whisper import download_model; download_model('large-v3', cache_dir='/app/hf')"
|
| 19 |
-
# حمّل أوزان النموذج القرآنيّ في الصورة (safetensors) ليُحمَّل مباشرةً على الـGPU وقت التشغيل بلا تحويل.
|
| 20 |
-
RUN python3 -c "from huggingface_hub import snapshot_download; snapshot_download('ahishamm/finetuned-whisper-quranic-large-v3', cache_dir='/app/hf')" || echo "QURAN_DL_SKIPPED"
|
| 21 |
|
| 22 |
RUN chmod -R a+rX /app
|
| 23 |
COPY app.py ./
|
|
|
|
| 1 |
+
# خادم التفريغ الصوتيّ للمرتل — faster-whisper large-v3 (float16) على T4.
|
| 2 |
+
# general = openai/whisper-large-v3 (أمين للمنطوق — الأفضل لرصد أخطاء القارئ) — المسار الوحيد المستعمَل.
|
| 3 |
+
# CUDA 12.4 + cuDNN 9 (يلزمان CTranslate2 4.5+). النموذج مبنيٌّ في الصورة (لا تنزيل وقت التشغيل).
|
|
|
|
|
|
|
| 4 |
FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04
|
| 5 |
ENV DEBIAN_FRONTEND=noninteractive HF_HOME=/app/hf HF_HUB_ENABLE_HF_TRANSFER=1
|
| 6 |
WORKDIR /app
|
| 7 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 8 |
python3 python3-pip libsndfile1 ca-certificates && rm -rf /var/lib/apt/lists/*
|
| 9 |
RUN pip3 install --no-cache-dir fastapi "uvicorn[standard]" numpy soundfile hf_transfer \
|
| 10 |
+
"faster-whisper>=1.1.0" "ctranslate2>=4.5"
|
|
|
|
| 11 |
|
| 12 |
+
# النموذج العامّ فقط: نسخة CTranslate2 الجاهزة من faster-whisper، مخزَّنةٌ في الصورة.
|
| 13 |
+
# ★ أُزيل النموذج القرآنيّ (ahishamm/finetuned-whisper-quranic-large-v3) وtorch/transformers من
|
| 14 |
+
# الصورة في 2026-08-14. سببه مقيس: الإقلاع البارد كان **٢٠٩ ثوانٍ** (رُصد على المستخدمين: انتظارٌ
|
| 15 |
+
# من دقيقةٍ إلى أربع عند فتح التطبيق بعد نوم المساحة) — وكانت الصورة تحمل ~٦.٥ جيجابايت من أوزانٍ
|
| 16 |
+
# وحزمٍ **لا يستدعيها التطبيق إطلاقًا**: الكود يطلب ?m=general حصرًا (تأكيدٌ بفحص كلّ الملفّات)،
|
| 17 |
+
# لأنّ النموذج المُدرَّب على القرآن يحفظ النصّ فيُصحّح خطأ القارئ صامتًا فيُخفي ما وُجد التطبيق لكشفه.
|
| 18 |
+
# faster-whisper يعمل على CTranslate2 ولا يحتاج torch البتّة. لإعادة مسار quran مستقبلًا:
|
| 19 |
+
# أعِد سطرَي pip وsnapshot_download أدناه — واعلم أنّهما يُضاعفان زمن الإقلاع البارد.
|
| 20 |
RUN python3 -c "from faster_whisper import download_model; download_model('large-v3', cache_dir='/app/hf')"
|
|
|
|
|
|
|
| 21 |
|
| 22 |
RUN chmod -R a+rX /app
|
| 23 |
COPY app.py ./
|
app.py
CHANGED
|
@@ -22,13 +22,10 @@ def _general():
|
|
| 22 |
return _fw
|
| 23 |
|
| 24 |
def _quran():
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
_hf = pipeline("automatic-speech-recognition", model=QURAN_REPO,
|
| 30 |
-
device=0, torch_dtype=torch.float16)
|
| 31 |
-
return _hf
|
| 32 |
|
| 33 |
app = FastAPI()
|
| 34 |
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
|
|
|
|
| 22 |
return _fw
|
| 23 |
|
| 24 |
def _quran():
|
| 25 |
+
# مُعطَّل منذ 2026-08-14: أوزانه وtorch/transformers أُزيلت من الصورة لأنّ التطبيق لا يستدعيه
|
| 26 |
+
# إطلاقًا (?m=general حصرًا)، وكانت تُضيف ~٦.٥ جيجابايت لكلّ إقلاعٍ بارد (٢٠٩ ثوانٍ مقيسة).
|
| 27 |
+
# راجع تعليق Dockerfile لإعادته إن لزم.
|
| 28 |
+
raise RuntimeError("المسار القرآنيّ غير مُتاح في هذه الصورة — استعمل ?m=general")
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
app = FastAPI()
|
| 31 |
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
|