𝗙𝗿𝗼𝗺 𝗖𝗵𝗮𝗼𝘀 𝘁𝗼 𝗖𝗼𝗻𝘀𝗶𝘀𝘁𝗲𝗻𝗰𝘆: 𝗗𝗼𝗰𝗸𝗲𝗿 𝗳𝗼𝗿 𝗔𝗜 𝗪𝗼𝗿𝗸𝗳𝗹𝗼𝘄𝘀
Ulifundisha modeli. Notebook inafanya kazi. Demo inafanya kazi.
Kisha unamtumia mfanyakazi mwenzako. Dakika arobaini baadaye, unapata ujumbe. Wana hitilafu ya CUDA. Torch haiwezi kuingizwa (import). Wana toleo la Python lisilo sahihi.
Unasema maneno ambayo kila mhandisi anayaogopa: "Inafanya kazi kwenye mashine yangu."
"Inafanya kazi kwenye mashine yangu" ni ukiri. Inamaanisha kodi yako inategemea vitu kwenye laptop yako ambavyo hukuvihifadhi (document). Ulisahau toleo la Python, maktaba ya mfumo (system library), au CUDA toolkit.
Docker inazuia hili.
Programu ya wavuti ya kawaida ina utegemezi (dependencies) michache. Miradi ya AI ina tabaka nyingi:
• Pakiti za Python: Torch, Transformers, na Numpy. • Maktaba za mfumo: Libgl1 au ffmpeg. • CUDA stack: Drivers na toolkits. • Uzito wa modeli (Model weights): Faili kubwa ambazo hazipo kwenye repo yako. • Toleo la Python: 3.10 kwenye laptop yako, 3.12 kwenye seva.
Faili la requirements.txt linakamata tabaka moja tu. Docker inakamata zote.
Docker image ni picha (snapshot) ya kompyuta. Inajumuisha OS, Python, pakiti, na kodi yako. Container ni nakala inayofanya kazi ya picha hiyo.
Container inatumia kernel ya mashine yako. Inaanza ndani ya sekunde chache. Image moja inafanya kazi kwa njia ile ile kwenye laptop yako na kwenye seva ya cloud GPU.
Tumia Dockerfile kuandika fomula yako. Hapa kuna kiolezo (template) kwa ajili ya PyTorch:
FROM python:3.11-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libgl1 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "predict.py"]
Fuata sheria hizi ili kuepuka makosa:
• Weka matoleo yako mahususi (Pin your versions). Tumia torch==2.3.1 badala ya torch pekee. Hii inahakikisha uwezo wa kurudia matokeo (reproducibility). • Nakili mahitaji (requirements) kwanza. Hii inatumia Docker caching. Inafanya ujenzi (builds) kuwa wa haraka kwa kuruka ufungaji upya (re-installs) ikiwa kodi yako inabadilika lakini pakiti zako hazibadiliki. • Tumia volumes kwa uzito wa modeli (weights). Usiweke modeli za 5GB ndani ya image. Tumia volume kuunganisha folda yako ya ndani na container. • Mchakato mmoja kwa kila container. Usiweke API yako na database kwenye container moja. Tumia Docker Compose kuziunganisha.
Kwa kutumia Docker, mfanyakazi mwenzako anahitaji tu amri mbili:
git clone your-repo
docker compose up
Hakuna tena kurekebisha makosa ya mazingira (environment errors). Inafanya kazi kwenye kila mashine.
Chanzo: https://dev.to/sachinsingh2156/from-chaos-to-consistency-docker-for-modern-ai-workflows-2gb7
Jumuiya ya kujifunza ya hiari: https://t.me/GyaanSetuAi