日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在ACK上如何使用AC2鏡像

更新時(shí)間:

Alibaba Cloud AI Containers(簡(jiǎn)稱AC2)提供了一系列的AI容器鏡像,與阿里云基礎(chǔ)設(shè)施(ECS、ACK等)深度集成優(yōu)化,極大地節(jié)省了AI應(yīng)用環(huán)境部署的成本。本文介紹了在ACK上如何運(yùn)行AC2容器進(jìn)行PyTorch訓(xùn)練。

創(chuàng)建ACK集群

在ACK上使用AC2,需要首先創(chuàng)建ACK集群,并確保集群中至少有一臺(tái)可用節(jié)點(diǎn)。更多信息,請(qǐng)參見創(chuàng)建ACK托管集群

說明

創(chuàng)建節(jié)點(diǎn)池時(shí),節(jié)點(diǎn)的默認(rèn)操作系統(tǒng)為「Alibaba Cloud Linux 3.2104」。對(duì)于x86-64架構(gòu)的CPU節(jié)點(diǎn),可以選擇「ContainerOS」作為節(jié)點(diǎn)系統(tǒng),以獲得更快的啟動(dòng)速度以及更小的性能開銷

連接并管理ACK集群

目前可以通過三種方式連接并管理集群:

  • 通過kubectl工具連接集群。Kubernetes提供了命令行工具用以管理K8s集群,通過kubectl工具連接集群,需要在客戶端機(jī)器上安裝kubectl,并確定通過公網(wǎng)還是私網(wǎng)來連接集群。更多信息,請(qǐng)參見獲取集群KubeConfig并通過kubectl工具連接集群

  • 使用CloudShell通過kubectl工具連接集群。CloudShell是阿里云推出的云命令行工具,通過容器服務(wù)控制臺(tái)啟動(dòng)CloudShell時(shí),CloudShell會(huì)預(yù)裝kubectl并自動(dòng)加載KubeConfig文件。更多信息,請(qǐng)參見在CloudShell上通過kubectl管理Kubernetes集群

使用AC2訓(xùn)練

AC2中提供了多種訓(xùn)練框架鏡像,鏡像中集成了不同的AI運(yùn)行框架,包括PyTorch、TensorFlow等,同時(shí)按照不同的運(yùn)行平臺(tái),內(nèi)置了經(jīng)過驗(yàn)證的NVIDIA驅(qū)動(dòng)、CUDA等運(yùn)行驅(qū)動(dòng)以及加速庫。為開發(fā)者節(jié)省了大量的環(huán)境部署時(shí)間。

PyTorch框架鏡像

運(yùn)行PyTorch CPU鏡像訓(xùn)練模型

  1. 在kubectl所在的客戶端機(jī)器上,創(chuàng)建Pod文件。

    1. 創(chuàng)建并打開文件。

      vim pytorch-training-cpu.yaml
    2. i鍵進(jìn)入編輯模式,將以下內(nèi)容復(fù)制到文件中。

      文件中指定AC2運(yùn)行鏡像,并傳入運(yùn)行命令。

      apiVersion: v1
      kind: Pod
      metadata:
        name: pytorch-training-cpu
        namespace: default
      spec:
        restartPolicy: OnFailure
        containers: 
        - name: pytorch-training
          image: ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch:2.3.0-alinux3.2304
          command:
            - "/bin/sh"
            - "-c"
          args:
          - "git clone https://github.com/pytorch/examples.git && python3 examples/mnist/main.py --no-cuda"
          workingDir: /root
    3. Esc鍵退出編輯模式,輸入:wq后按Enter鍵保存文件。

  2. 通過kubectl指定集群創(chuàng)建訓(xùn)練Pod。

    運(yùn)行后,該P(yáng)od將會(huì)下載PyTorch實(shí)例代碼,并運(yùn)行MNIST模型訓(xùn)練示例。

    kubectl create -f pytorch-training-cpu.yaml

    Pod創(chuàng)建成功會(huì)返回以下內(nèi)容。

    pod/pytorch-training-cpu created
  3. 使用kubectl檢查Pod狀態(tài)。

    kubectl get pods

    返回如下信息,其中創(chuàng)建的訓(xùn)練Pod名為pytorch-training-cpu。首次運(yùn)行容器時(shí),會(huì)從AC2拉取鏡像文件,此時(shí)STATUS顯示ContainerCreating。重復(fù)運(yùn)行該命令,直至狀態(tài)顯示Running

    NAME                   READY   STATUS    RESTARTS   AGE
    pytorch-training-cpu   1/1     Running   0          5m42s
  4. 使用以下命令查看Pod訓(xùn)練輸出。

    kubectl logs pytorch-training-cpu

    輸出日志類似以下內(nèi)容。

    Cloning into 'examples'...
    Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
    ...
    
    Train Epoch: 1 [0/60000 (0%)]   Loss: 2.305400
    Train Epoch: 1 [640/60000 (1%)] Loss: 1.359776
    ...
    
    Train Epoch: 14 [58880/60000 (98%)]     Loss: 0.011213
    Train Epoch: 14 [59520/60000 (99%)]     Loss: 0.000181
    
    Test set: Average loss: 0.0271, Accuracy: 9912/10000 (99%)
  5. 訓(xùn)練完畢后,再次檢查Pod狀態(tài),STATUS顯示Completed,此時(shí)使用以下命令清理集群。

    kubectl delete pods pytorch-training-cpu

    Pod清理完畢會(huì)返回以下內(nèi)容。

    pod "pytorch-training-cpu" deleted

運(yùn)行PyTorch GPU鏡像訓(xùn)練模型

  1. 在kubectl所在的客戶端機(jī)器上,創(chuàng)建Pod文件。

    1. 創(chuàng)建并打開文件。

      vim pytorch-training-gpu.yaml
    2. i鍵進(jìn)入編輯模式,將以下內(nèi)容復(fù)制到文件中。

      文件中申請(qǐng)GPU資源,指定AC2運(yùn)行鏡像,并傳入運(yùn)行命令。

      apiVersion: v1
      kind: Pod
      metadata:
        name: pytorch-training-gpu
        namespace: default
      spec:
        restartPolicy: OnFailure
        containers: 
        - name: pytorch-training
          image: ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch:2.3.0-cuda12.1.1-alinux3.2304
          command:
            - "/bin/sh"
            - "-c"
          args:
          - "git clone https://github.com/pytorch/examples.git && python3 examples/mnist/main.py"
          resources:
            limits:
              nvidia.com/gpu: 1
          workingDir: /root
    3. Esc鍵退出編輯模式,輸入:wq后按Enter鍵保存文件。

  2. 通過kubectl指定集群創(chuàng)建訓(xùn)練Pod。

    運(yùn)行后,該P(yáng)od將會(huì)下載PyTorch實(shí)例代碼,并運(yùn)行MNIST模型訓(xùn)練示例。

    kubectl create -f pytorch-training-gpu.yaml

    Pod創(chuàng)建成功會(huì)返回以下內(nèi)容。

    pod/pytorch-training-gpu created
  3. 使用kubectl檢查Pod狀態(tài)。

    kubectl get pods

    返回如下信息,其中創(chuàng)建的訓(xùn)練Pod名為pytorch-training-gpu。首次運(yùn)行容器時(shí),會(huì)從AC2拉取鏡像文件,此時(shí)STATUS顯示ContainerCreating。重復(fù)運(yùn)行該命令,直至狀態(tài)顯示Running

    NAME                   READY   STATUS    RESTARTS   AGE
    pytorch-training-gpu   1/1     Running   0          5m42s
  4. 使用以下命令查看Pod訓(xùn)練輸出。

    kubectl logs pytorch-training-gpu

    輸出日志類似以下內(nèi)容。

    Cloning into 'examples'...
    Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
    ...
    
    Train Epoch: 1 [0/60000 (0%)]   Loss: 2.282550
    Train Epoch: 1 [640/60000 (1%)] Loss: 1.384815
    ...
    
    Train Epoch: 14 [58880/60000 (98%)]     Loss: 0.001355
    Train Epoch: 14 [59520/60000 (99%)]     Loss: 0.002194
    
    Test set: Average loss: 0.0273, Accuracy: 9915/10000 (99%)
  5. 訓(xùn)練完畢后,再次檢查Pod狀態(tài),STATUS顯示Completed。此時(shí)使用以下命令清理集群。

    kubectl delete pods pytorch-training-gpu

    Pod清理完畢會(huì)返回以下內(nèi)容。

    pod "pytorch-training-gpu" deleted