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

快速提交Ray任務

PAI DLC支持基于Ray框架的任務類型,您可以直接提交Ray框架的訓練腳本至DLC中進行訓練,無需搭建Ray集群或進行底層Kubernetes的配置。同時,您可以享受DLC提供的完善日志和指標監控等服務,幫助您更好的管理任務。本文為您介紹如何提交Ray類型的訓練任務。

前提條件

如果使用SDK提交訓練任務,需要配置環境變量。詳情請參見安裝Credentials工具Linux、macOSWindows系統配置環境變量

準備工作

準備節點鏡像

Ray集群包含HeadWorker兩種節點類型,DLC任務會同時使用指定的節點鏡像來搭建HeadWorker節點容器。創建任務后,DLC會自動構建Ray集群,并在準備就緒后,通過啟動一個submitter節點向該集群提交任務,該節點也會使用相同的鏡像。

Ray鏡像版本應>=2.6,同時必須至少安裝了ray[default]所包含的組件。支持使用的鏡像如下:

  • PAI官方鏡像:PAI平臺提供了安裝有Ray基礎組件的官方鏡像供您使用。image

  • Ray社區鏡像:

    使用GPU時需提供支持CUDA的鏡像,更多支持的鏡像版本,請查看官方Docker鏡像文檔

準備啟動命令和腳本文件

DLC任務的啟動命令會被用作 ray job submit 所提交的entrypoint命令。啟動命令可以填寫多行或單行,例如python /root/code/sample.py,其中:

  • sample.py為運行的Python腳本文件,您可以通過數據集代碼配置方式,將腳本文件掛載到DLC容器中。示例內容如下:

    import ray
    import os
    
    ray.init()
    
    @ray.remote
    class Counter:
        def __init__(self):
            # Used to verify runtimeEnv
            self.name = os.getenv("counter_name")
            # assert self.name == "ray"
            self.counter = 0
    
        def inc(self):
            self.counter += 1
    
        def get_counter(self):
            return "{} got {}".format(self.name, self.counter)
    
    counter = Counter.remote()
    
    for _ in range(50000):
        ray.get(counter.inc.remote())
        print(ray.get(counter.get_counter.remote()))
    
  • /root/code/為掛載路徑。

提交訓練任務

通過控制臺提交

  1. 進入新建任務頁面。

    1. 登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入DLC

    2. 分布式訓練(DLC)頁面,單擊新建任務

  2. 新建任務頁面,配置以下關鍵參數,其他參數配置詳情,請參見創建訓練任務

    參數

    描述

    示例值

    環境信息

    節點鏡像

    官方鏡像頁簽,選擇預置的Ray官方鏡像。

    ray:2.39.0-cpu-py312-ubuntu22.04

    啟動命令

    本任務需要執行的命令。

    python /root/code/sample.py

    三方庫配置

    支持通過配置三方庫列表來配置Ray環境運行依賴(runtime_env)。

    說明

    在生產環境中,強烈建議使用已經打包好的鏡像來執行任務,避免因為臨時安裝依賴庫造成的任務失敗。

    無需配置

    代碼配置

    通過在線配置本地上傳的方式,將準備好的腳本文件上傳到DLC容器中。

    使用本地上傳方式:

    • 示例代碼文件:sample.py。

    • 掛載路徑:/root/code/

    資源信息

    資源來源

    選擇使用公共資源資源配額提交訓練任務。

    說明

    Ray目前暫不支持閑時資源與競價資源,不支持任何搶占任務類型,任務本身也無法被搶占。

    公共資源

    框架

    框架類型。

    Ray

    任務資源

    • 任務節點數量:

      Ray集群可配置的任務節點類型為HeadWorker。配置資源時,Head節點數量必須為1,僅用于運行entrypoint腳本,不會被用作Ray Worker節點。通常還需至少一個Worker節點,但非強制。每個Ray任務自動生成一個Submitter節點執行啟動命令,并可通過其日志查看任務日志。預付費任務中,Submitter節點共享少量用戶資源;后付費任務會生成最小可用的資源類型節點。

    • 資源數量:

      Ray集群Worker節點上的Logical Resources與您在提交任務時配置的物理資源一致。例如,當您配置了18卡的GPU節點時,Ray集群Worker節點默認的資源大小也為8GPUs。

      資源配置需匹配任務需求,推薦使用少量大節點而非大量小節點。每個節點建議至少2 GiB內存,并隨 Task/Actor數量增加而擴大,以避免OOM錯誤。

    • 節點數量:均為1。

    • 資源規格:選擇ecs.g6.xlarge。

  3. 參數配置完成后,單擊確定

通過SDK提交

  1. 安裝Python DLC SDK。

    pip install alibabacloud_pai_dlc20201203==1.4.0
  2. 提交DLC Ray任務,示例代碼如下。

    #!/usr/bin/env python3
    
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_credentials.client import Client as CredClient
    
    from alibabacloud_pai_dlc20201203.client import Client as DLCClient
    from alibabacloud_pai_dlc20201203.models import CreateJobRequest
    
    region_id = '<region-id>'
    cred = CredClient()
    workspace_id = '12****'
    
    dlc_client = DLCClient(
        Config(credential=cred,
               region_id=region_id,
               endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id),
               protocol='http'))
    
    create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({
        'WorkspaceId': workspace_id,
        'DisplayName': 'dlc-ray-job',
        'JobType': 'RayJob',
        'JobSpecs': [
            {
                "Type": "Head",
                "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/ray:2.39.0-gpu-py312-cu118-ubuntu22.04",
                "PodCount": 1,
                "EcsSpec": 'ecs.c6.large',
            },
            {
                "Type": "Worker",
                "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/ray:2.39.0-gpu-py312-cu118-ubuntu22.04",
                "PodCount": 1,
                "EcsSpec": 'ecs.c6.large',
            },
        ],
        "UserCommand": "echo 'Prepare your ray job entrypoint here' && sleep 1800 && echo 'DONE'",
    }))
    job_id = create_job_resp.body.job_id
    print(f'jobId is {job_id}')
    

    其中:

    • region_id:阿里云區域ID。例如華東1(杭州)為cn-hangzhou。

    • workspace_id:工作空間ID。請在工作空間詳情頁面進行查看,具體操作,請參見管理工作空間

    • Image:請將<region-id>替換為實際的阿里云區域ID。例如華東1(杭州)為cn-hangzhou。

更多關于SDK的使用方法,請參見使用Python SDK

通過CLI提交

  1. 下載DLC客戶端工具,并完成用戶認證。具體操作,請參見準備工作

  2. 提交DLC Ray任務,示例代碼如下。

    ./dlc submit rayjob --name=my_ray_job \
      --workers=1 \
      --worker_spec=ecs.g6.xlarge \
      --worker_image=dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/ray:2.39.0-cpu-py312-ubuntu22.04 \
      --heads=1 \
      --head_image=dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/ray:2.39.0-cpu-py312-ubuntu22.04 \
      --head_spec=ecs.g6.xlarge \
      --command="echo 'Prepare your ray job entrypoint here' && sleep 1800 && echo 'DONE'" \
      --workspace_id=4****

    通過CLI提交任務的更多配置方法,請參見提交命令

常見問題

為什么Ray任務因環境準備耗時過長而超時失敗?

  • 檢查Head節點的日志,觀察Ray環境是否正常啟動。如果沒有則說明相關實例中Ray不可用,請參照準備工作章節準備支持Ray的鏡像。

image.png

  • 建議檢查Head節點的事件日志,如果顯示錯誤Readiness probe failed...,可能意味著該鏡像缺失Readiness check相關依賴或部分間接依賴不可用。建議在原鏡像中使用pipconda重新安裝ray[default]組件,或者嘗試基于Ray官方鏡像重新構建鏡像。