සමාගම් ස්වයංක්රීය වැඩ බර කළමනාකරණය කිරීම සඳහා කෘතිම බුද්ධි (AI) යටිතල පහසුකම් වැඩි වැඩියෙන් භාවිතා කරයි. එහි ප්රතිඵලයක් ලෙස,
AI යටිතල පහසුකම් යෙදවීම සාමාන්යයෙන් විශාල දත්ත කට්ටල ක්රියාත්මක කිරීමට සහ සැකසීමට ප්රමාණවත් පරිගණක බලයක් සපයයි. මෙම ඉල්ලීම්, කාර්ය සාධනයට හානියක් නොවන පරිදි විශාල වැඩ බරක් මත AI ආකෘති ක්රියාත්මක කිරීමට හැකි වන පරිමාණය කළ හැකි ක්රම සඳහා අවශ්යතාවය බවට පරිවර්තනය විය හැකිය.
බොහෝ අංශවලින් AI පද්ධති සඳහා වර්ධනය වන දත්ත ප්රමාණය කනස්සල්ලට කරුණකි. බොහෝ AI ආකෘති, විශේෂයෙන් ගැඹුරු ඉගෙනීම මත පදනම් වූ ඒවා, පුහුණුව සහ අනුමාන අතරතුර විශාල දත්ත ප්රමාණයක් මත දැඩි ලෙස රඳා පවතී. කෙසේ වෙතත්, ප්රමාණවත් පරිමාණය කළ හැකි යටිතල පහසුකම් නොමැතිව, එවැනි සැකසුම් සහ අර්ථ නිරූපණය කිරීම
පරිමාණය කළ හැකි AI දෘඪාංග, දැඩි ලෙස අතිමහත් පරිගණක බරක් තිබියදීත් විශ්වාසදායක සහ ස්ථාවර කාර්ය සාධනයක් සඳහා සහාය වේ. Kubernetes සමඟ, AI රැකියා තිරස් පරිමාණය කිරීම පහසු වන අතර, අනුරූ සංඛ්යා ගතිකව ප්රතිප්රමාණනය කිරීම අවශ්යතාවයක කාර්යයක් ලෙස කළ හැකිය. ඊට වෙනස්ව, සම්පත් ගැටුම කාර්ය සාධන බාධකයක් නොවන AI ආකෘති ධාවනය කිරීම සඳහා ඩොකර් බහාලුම් කෙට්ටු, හුදකලා පරිසරයන්ට සහාය වේ.
සම්පත් කාර්යක්ෂමව භාවිතා කිරීම පිරිවැය-ඵලදායී සහ තිරසාර AI යෙදවීම සඳහා යතුරයි. Kubernetes හි සම්පත් ඉල්ලීම් සහ සීමාවන්, අඩුවෙන් සැපයීම සහ අධික ලෙස සැපයීම වළක්වා ගැනීමෙන් සියුම් CPU සහ මතක සම්පත් කළමනාකරණයට ඉඩ සලසයි. Docker හි සම්පත් කළමනාකරණය බහාලුම් සම්පත් හුදකලා කිරීමෙන් පරතරය පුරවයි.
පරිමාණය කළ හැකි කෘතිම බුද්ධි යටිතල පහසුකම් පරිණාමයේ සන්ධිස්ථානවලින් එකක් වන්නේ බහාලුම්කරණයයි. ඩොකර් බහාලුමක් තුළ AI යෙදුම සහ එහි යැපීම් බහාලුම්කරණය කිරීම සංවර්ධනය, පරීක්ෂණ සහ යෙදවුම් පරිසරයන් පුරාවට අනුකූලතාව සහතික කරයි.
පළමුව, පරිසරය ස්ථාපනය කිරීම සඳහා ඔබ Dockerfile එකක් අර්ථ දැක්විය යුතුය. Dockerfile යනු Docker රූපයක් ගොඩනඟන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් මාලාවකි. එය මූලික රූපයක්, අවශ්ය පරායත්තතා සහ ඔබේ යෙදුමට අදාළ වන මූලික සැකසුම් විධාන ප්රකාශ කරයි. පහත දැක්වෙන්නේ Python යන්ත්ර ඉගෙනුම් ආකෘතියක් සඳහා වන මූලික Dockerfile එකකි:
# 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"]
Dockerfile සූදානම් නම්, ඔබට Docker රූපය ගොඩනගා කන්ටේනරය ධාවනය කළ හැකිය. පහත විධානයන් ක්රියාත්මක කරන්න:
# Build the Docker image docker build -t ml-model:latest . # Run the container docker run -p 5000:5000 ml-model:latest
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
ඉහත කේත කොටසෙහි AI ආකෘතිය යෙදවිය යුතු ආකාරය පෙන්වයි, නමුත් ඔබ ආකෘතිය බාහිරව ප්රවේශ විය හැකි බවට පත් කළ යුතුය. Kubernetes සේවාවක් අර්ථ දැක්වීමෙන් ඔබට එය නිරාවරණය කිරීමට අවශ්ය වනු ඇත. පහත service.yaml උදාහරණයක් නිරූපණය කරයි:
apiVersion: v1 kind: Service metadata: name: ml-model-service spec: selector: app: ml-model ports: - protocol: TCP port: 80 targetPort: 5000 type: LoadBalancer
යෙදවීම සහ සේවා වින්යාසයන් යෙදීමට kubectl විධාන රේඛා මෙවලම භාවිතා කරන්න:
# Deploy the application kubectl apply -f deployment.yaml # Expose the service kubectl apply -f service.yaml
Kubernetes AI පරිසරයන්ට විශිෂ්ට පරිමාණ හැකියාවන් සපයන අතර, සම්පත් භාවිතය සහ කාර්ය සාධනය උපරිම කරයි. තිරස් පරිමාණය කිරීම සිදු කරනු ලබන්නේ අතිරේක බහාලුම් එකතු කිරීමෙනි, සහ සිරස් පරිමාණය කිරීම යනු බහාලුමකට CPU හෝ මතකය වැනි අමතර සම්පත් එකතු කිරීමයි.
ඉහළ වැඩ බරක් හැසිරවීම සඳහා AI පද්ධතියක අනුරූ ගණන (Pods) පරිමාණය කිරීමට තිරස් පරිමාණය භාවිතා කරයි. ක්රියාවලියට අනුරූ ගණන අනුව ගතික පරිමාණය සක්රීය කිරීම අවශ්ය වේ. එවැනි ක්රියාවලියක් සක්රීය කිරීමට භාවිතා කරන විධානය `kubectl scale` වේ. උපරිම අනුරූ පහක් දක්වා ක්රියාත්මක වන පරිදි යෙදවීම සැකසීමට විශේෂිත විධානය භාවිතා කරයි:
`kubectl පරිමාණය --replicas=5 deployment/ml-model-deployment`
යන්ත්ර ඉගෙනුම් ආකෘති බහාලුම්වල අනුරූ පහක් භාවිතා කිරීම සඳහා විධානය ml-model-යෙදීම පරිමාණය කරයි. පසුව අවශ්ය සංඛ්යාව සපුරාලීම සඳහා පද්ධතිය ගතිකව තවත් Pods සපයයි.
කුබර්නෙට්ස් විසින් තිරස් පොඩ් ස්වයංක්රීය පරිමාණකය (HPA) භාවිතයෙන් ස්වයංක්රීය පරිමාණය පහසු කරයි. HPA විසින් සම්පත් භාවිතය, එනම් CPU හෝ මතකය මත පදනම්ව, නියම කරන ලද සීමාවන්ට අදාළව අනුරූ ගණන ගතිකව සකස් කරයි. පහත දැක්වෙන YAML වින්යාසය CPU භාවිතයට ප්රතිචාර වශයෙන් ml-model-යෙදීම සඳහා ගතිකව පරිමාණය කරන HPA එකක අදාළ උදාහරණයකි:
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
මෙම සැකසුම තුළ, පරිමාණය කළ යුතු යෙදවීම, එනම් ml-model-deployment අර්ථ දැක්වීමට scaleTargetRef භාවිතා කරයි. අවම අනුරූ ගණන MinReplicas භාවිතයෙන් සකසා ඇති අතර, උපරිම අනුරූ ගණන maxReplicas භාවිතයෙන් පාලනය වේ. ඊට අමතරව, CPU භාවිත ප්රතිශතය targetCPUUtilizationPercentage භාවිතයෙන් සකසා ඇත, එනම්, 50% දක්වා.
සියලුම Pods හරහා 50%කට වඩා CPU භාවිතය ස්වයංක්රීයව අනුරූ ගණන උපරිම 10 දක්වා ඉහළ යාමට හේතු වේ. CPU භාවිතය නියමිත ප්රතිශතයට වඩා පහත වැටුණු වහාම, සම්පත් මුදා හැරීම සඳහා Kubernetes ස්වයංක්රීයව අනුරූ ගණන අඩු කරයි.
තිරස් පරිමාණය ප්රධාන වශයෙන් වැඩි තදබදයක් සමඟ කටයුතු කිරීම සඳහා වන අතර, සිරස් පරිමාණය මඟින් පවතින බහාලුම් සඳහා වැඩි සම්පත් (CPU හෝ මතකය වැනි) සපයයි. ක්රියාවලිය වන්නේ Kubernetes යෙදවීමේදී සම්පත් ඉල්ලීම් සහ සීමාවන් ඉහළ හෝ පහළට පරිමාණය කිරීමයි. ml-model-යෙදවීමේ CPU සහ මතක සීමාවන් ඉහළ නැංවීම සඳහා, 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"
මෙම යාවත්කාලීන කළ වින්යාසය තුළ: