ksapc commited on
Commit
a89bed7
·
1 Parent(s): c8d246c

تقليص الصورة: إزالة النموذج القرآنيّ غير المستعمَل وtorch/transformers — علاج الإقلاع البارد (209ث مقيسة)

Browse files
Files changed (2) hide show
  1. Dockerfile +12 -12
  2. app.py +4 -7
Dockerfile CHANGED
@@ -1,23 +1,23 @@
1
- # فضاء اختبار GPU للمرتل — faster-whisper large-v3 (float16) على T4.
2
- # يُشغّل نموذجين قابلين للمقارنة على نفس الصوت:
3
- # general = openai/whisper-large-v3 (أمين للمنطوق الأفضل لرصد أخطاء القارئ)
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" transformers "torch==2.6.0" \
13
- --extra-index-url https://download.pytorch.org/whl/cpu
14
 
15
- # (١) النموذج العامّ: نسخة CTranslate2 الجاهزة من faster-whisper، تُخزَّن في الصورة.
16
- # النموذج القرآنيّ (quran) يُحمَّل وقت التشغيل على الـGPU عبر transformers (لا تحويل وقت البناء —
17
- # تحويل large-v3 يستنزف ذاكرة آلة البناء ويقتلها OOM). راجع app.py.
 
 
 
 
 
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
- global _hf
26
- if _hf is None:
27
- import torch
28
- from transformers import pipeline
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=["*"])