paint-brush
Kaip padidinti AI infrastruktūrą naudojant „Kubernetes“ ir „Docker“.pateikė@dataengonline
Nauja istorija

Kaip padidinti AI infrastruktūrą naudojant „Kubernetes“ ir „Docker“.

pateikė Natapong Sornprom6m2025/02/15
Read on Terminal Reader

Per ilgai; Skaityti

Įmonės vis dažniau naudoja dirbtinio intelekto (AI) infrastruktūrą, kad priglobtų ir valdytų savarankiškus darbo krūvius. Mastelio keitimas užtikrina, kad AI sistemos gali susidoroti su didėjančiu darbo krūviu neprarandant našumo. Tokiems poreikiams patenkinti organizacijos naudoja „Docker“ ir „Kubernetes“.
featured image - Kaip padidinti AI infrastruktūrą naudojant „Kubernetes“ ir „Docker“.
Natapong Sornprom HackerNoon profile picture
0-item
1-item

Įmonės vis dažniau naudoja dirbtinio intelekto (AI) infrastruktūrą, kad priglobtų ir valdytų savarankiškus darbo krūvius. Vadinasi, buvo didelė paklausa keičiamo dydžio taip pat atsparios infrastruktūros, kurios galės patenkinti nevienalyčius taikomųjų programų ar debesijos reikalavimus. Organizacijos naudojasi Kubernetes ir Dokeris patenkinti tokius poreikius, nes įmonės supranta, kad abu yra labai veiksmingi naudojimo atvejai, kurie suteikia keičiamo dydžio AI infrastruktūrą.


Diegiant AI infrastruktūrą paprastai suteikiama pakankamai skaičiavimo galių dideliems duomenų rinkiniams vykdyti ir apdoroti. Dėl šių reikalavimų gali prireikti keičiamo dydžio metodų, leidžiančių dirbtinio intelekto modeliams veikti esant dideliam darbo krūviui nepakenkiant našumui.

Kodėl įmonės turi išplėsti savo AI infrastruktūrą

AI sistemos , nepaisant to, jie taip pat reikalauja daug resursų ir paprastai reikalauja didelių skaičiavimo pajėgumų ir galimybės apdoroti aukšto lygio duomenis. Kadangi reikia pažangesnių AI programų ir didesnio masto, mastelio keitimas tampa vis svarbesnis. Mastelio keitimas užtikrina, kad AI sistemos gali susidoroti su didėjančiu darbo krūviu neprarandant našumo.

Duomenų apimties išplėtimas

Didėjantis duomenų kiekis AI sistemoms kelia susirūpinimą daugeliu aspektų. Dauguma AI modelių, ypač pagrįstų giliu mokymusi, labai priklauso nuo didelio duomenų kiekio mokymo ir išvadų metu. Tačiau be tinkamos keičiamo dydžio infrastruktūros, tokios apdorojimo ir interpretavimo didžiulis duomenų kiekis yra kliūtis .

Optimizuotas našumas

Keičiama AI aparatinė įranga palaiko patikimą ir stabilų veikimą, nepaisant drastiškai didelių skaičiavimo apkrovų. Naudojant „Kubernetes“, AI užduočių horizontalus mastelio keitimas yra paprastas, o dinamiškas kopijų numerių dydžio keitimas gali būti atliekamas kaip būtinybės funkcija. Priešingai, „Docker“ konteineriai palaiko ploną, izoliuotą aplinką AI modeliams paleisti, kur išteklių konfliktas nėra našumo kliūtis.

Efektyvus išteklių valdymas

Efektyvus išteklių naudojimas yra raktas į ekonomišką ir tvarų AI diegimą. „Kubernetes“ išteklių užklausos ir apribojimai leidžia tiksliai valdyti procesoriaus ir atminties išteklius, išvengiant nepakankamo ir per didelio aprūpinimo. „Docker“ išteklių valdymas užpildo spragą išskirdamas konteinerio išteklius.

AI infrastruktūros mastelio keitimas naudojant „Kubernetes“ ir „Docker“.

Konteineris yra vienas iš keičiamo dirbtinio intelekto infrastruktūros evoliucijos etapų. AI programos ir jos priklausomybių talpinimas „Docker“ konteineryje užtikrina nuoseklumą visose kūrimo, testavimo ir diegimo aplinkose.


Pirmiausia, norėdami įdiegti aplinką, turite apibrėžti Dockerfile. „Dockerfile“ yra instrukcijų, kaip sukurti „Docker“ vaizdą, serija. Jis deklaruoja pagrindinį vaizdą, reikalingas priklausomybes ir pradines sąrankos komandas, kurios taikomos jūsų programai. Toliau pateikiamas pagrindinis „Python“ mašininio mokymosi modelio „Docker“ failas:


 # Use an official Python runtime as a parent image FROM python:3.9-slim # Set the working directory in the container WORKDIR /usr/src/app # Copy the current directory contents into the container COPY . . # Install any needed packages specified in requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Expose the port the app runs on EXPOSE 5000 # Define environment variable ENV NAME World # Run the app CMD ["python", "./app.py"]


Jei „Dockerfile“ yra paruoštas, galite sukurti „Docker“ vaizdą ir paleisti konteinerį. Vykdykite šias komandas:

 # Build the Docker image docker build -t ml-model:latest . # Run the container docker run -p 5000:5000 ml-model:latest


Dockerized AI modelio diegimas Kubernetes

Kubernetes suteikia platų orkestravimo funkcijų spektrą, leidžiantį efektyviai valdyti programas konteinerinėje infrastruktūroje. „Docker“ vaizdo diegimas „Kubernetes“ užtikrina, kad visada veiktų nurodytas programos kopijų skaičius. Toliau pateikiamas failo deployment.yaml, kurį galite naudoti, pavyzdys įdiegti „Dockerized“ mašininio mokymosi modelį :


 apiVersion: apps/v1 kind: Deployment metadata: name: ml-model-deployment spec: replicas: 3 selector: matchLabels: app: ml-model template: metadata: labels: app: ml-model spec: containers: - name: ml-model-container image: ml-model:latest ports: - containerPort: 5000


Aukščiau pateiktame kodo fragmente parodyta, kaip įdiegti AI modelį, tačiau taip pat turite padaryti modelį prieinamą iš išorės. Turėsite jį atskleisti nustatydami Kubernetes paslaugą. Toliau pateikiamas service.yaml pavyzdys:


 apiVersion: v1 kind: Service metadata: name: ml-model-service spec: selector: app: ml-model ports: - protocol: TCP port: 80 targetPort: 5000 type: LoadBalancer


Naudokite kubectl komandinės eilutės įrankį, kad pritaikytumėte diegimo ir paslaugų konfigūracijas:


 # Deploy the application kubectl apply -f deployment.yaml # Expose the service kubectl apply -f service.yaml


Mastelio keitimas naudojant Kubernetes

„Kubernetes“ suteikia puikias DI aplinkos mastelio keitimo galimybes, maksimaliai padidindama išteklių panaudojimą ir našumą. Horizontalus mastelio keitimas atliekamas pridedant papildomų konteinerių, o vertikalus mastelio keitimas apima papildomų išteklių, pvz., CPU arba atminties, pridėjimą prie konteinerio.

Horizontalus mastelio keitimas

Horizontalus mastelio keitimas naudojamas siekiant padidinti AI sistemos kopijų (Pod) skaičių, kad būtų galima atlikti didesnį darbo krūvį. Procesui reikia įjungti dinaminį mastelio keitimą, atsižvelgiant į kopijų skaičių. Tokiam procesui įjungti naudojama komanda yra „kubectl scale“. Konkreti komanda naudojama nustatant diegimą, kad jis veiktų ne daugiau kaip penkiose kopijose:


„kubectl scale --replicas=5 deployment/ml-model-deployment“.


Komanda padidina ml-model-deployment mastelį, kad būtų naudojamos penkios mašininio mokymosi modelio konteinerio kopijos. Sistema dinamiškai aprūpina daugiau Pod, kad vėliau atitiktų reikiamą skaičių.

Automatinis mastelio keitimas naudojant Horizontal Pod Autoscaler (HPA)

„Kubernetes“ palengvina automatinį mastelio keitimą naudojant „Horizontal Pod Autoscaler“ (HPA). HPA dinamiškai koreguoja kopijų skaičių pagal išteklių naudojimą, ty procesorių arba atmintį, atsižvelgiant į nustatytas ribas. Žemiau parodyta YAML konfigūracija yra tinkamas HPA pavyzdys, kuris dinamiškai keičiamas pagal ml modelio diegimą, atsižvelgiant į procesoriaus naudojimą:


 apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: ml-model-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: ml-model-deployment minReplicas: 2 maxReplicas: 10 targetCPUUtilizationPercentage: 50


Šioje sąrankoje scaleTargetRef naudojamas apibrėžiant dislokavimo mastelį, ty ml-model-deployment. Minimalus kopijų skaičius nustatomas naudojant MinReplicas, o didžiausias kopijų skaičius valdomas naudojant maxReplicas. Be to, procesoriaus panaudojimo procentas nustatomas naudojant targetCPUUtilizationPercentage, ty iki 50%.


CPU panaudojimas daugiau nei 50 % visuose poduose automatiškai padidina kopijų skaičių iki 10. Kai tik procesoriaus panaudojimas nukrenta žemiau nustatyto procento, „Kubernetes“ automatiškai sumažina kopijų skaičių, kad atlaisvintų išteklius.

Vertikalus mastelio keitimas

Horizontalus mastelio keitimas daugiausia skirtas didesniam srautui susidoroti, o vertikalus mastelio keitimas suteikia daugiau išteklių (pvz., CPU arba atminties) esamiems konteineriams. Procesas yra padidinti arba sumažinti išteklių užklausas ir apribojimus „Kubernetes“ diegime. Norint padidinti ml-model-deployment procesoriaus ir atminties ribas, reikia atidaryti failą deployment.yaml:


 apiVersion: apps/v1 kind: Deployment metadata: name: ml-model-deployment spec: replicas: 3 selector: matchLabels: app: ml-model template: metadata: labels: app: ml-model spec: containers: - name: ml-model-container image: ml-model:latest ports: - containerPort: 5000 resources: requests: cpu: "1" memory: "2Gi" limits: cpu: "2" memory: "4Gi"


Šioje atnaujintoje konfigūracijoje:

  • užklausose nurodomi minimalūs konteineriui reikalingi ištekliai.
  • ribos apibrėžia maksimalius išteklius, kuriuos konteineris gali naudoti.


L O A D I N G
. . . comments & more!

About Author

Natapong Sornprom HackerNoon profile picture
Natapong Sornprom@dataengonline
Data Engineering, Business Intelligence, Cloud Solution Architecture and AI

PABAIGTI ŽYMES

ŠIS STRAIPSNIS BUVO PRISTATYMAS...