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

DLC LoRA訓練最佳實踐

本文為您介紹如何通過提交一個使用DLC計算資源的超參數調優實驗,進行LoRA模型訓練,以尋找最佳超參數配置。

前提條件

步驟一:創建數據集

創建OSS類型的數據集,通過數據集將OSS存儲目錄掛載到DLC路徑,用于存儲超參數調優實驗生成的數據文件。其中關鍵參數說明如下,其他參數使用默認配置,詳情請參見創建數據集:從阿里云云產品

  • 數據集名稱:自定義數據集名稱。

  • 選擇數據存儲:選擇腳本文件所在的OSS存儲目錄。

  • 屬性:選擇文件夾。

步驟二:新建實驗

進入新建實驗頁面,并按照以下操作步驟配置關鍵參數,其他參數配置詳情,請參見新建實驗。參數配置完成后,單擊提交

  1. 設置執行配置。

    參數

    描述

    任務類型

    選擇DLC

    資源組

    選擇公共資源組

    框架

    選擇Tensorflow

    數據集

    選擇步驟一中創建的數據集。

    節點鏡像

    選擇鏡像地址,并在文本框中輸入鏡像地址registry.cn-shanghai.aliyuncs.com/mybigpai/nni:diffusers

    該鏡像中已預先配置了以下數據:

    • 預訓練基礎模型:模型Stable-Diffusion-V1-5已預先配置在鏡像路徑/workspace/diffusers_model_data/model下。

    • LoRa訓練數據:pokemon已預先配置在鏡像路徑/workspace/diffusers_model_data/data下。

    • 訓練代碼:diffusers已預先配置在鏡像路徑/workspace/diffusers下。

    機器規格

    選擇GPU > 12vCPU+92GB Mem+1*NVIDIA V100 ecs.gn6e-c12g1.3xlarge

    節點數量

    配置為1。

    節點啟動命令

    cd /workspace/diffusers/examples/text_to_image && accelerate launch --mixed_precision="fp16" train_text_to_image_lora_eval.py \
        --pretrained_model_name_or_path="/workspace/diffusers_model_data/model" \
        --dataset_name="/workspace/diffusers_model_data/data" \
        --caption_column="text" \
        --resolution=512 --random_flip \
        --train_batch_size=8 \
        --val_batch_size=8 \
        --num_train_epochs=100 --checkpointing_steps=100 \
        --learning_rate=${lr} --lr_scheduler=${lr_scheduler} --lr_warmup_steps=0 \
        --rank=${rank} --adam_beta1=${adam_beta1} --adam_beta2=${adam_beta2} --adam_weight_decay=${adam_weight_decay} \
        --max_grad_norm=${max_grad_norm} \
        --seed=42 \
        --output_dir="/mnt/data/diffusers/pokemon/sd-pokemon_${exp_id}_${trial_id}" \
        --validation_prompts "a cartoon pikachu pokemon with big eyes and big ears" \
        --validation_metrics ImageRewardPatched \
        --save_by_metric val_loss 

    超參數

    每個超參數對應的約束類型和搜索空間配置如下:

    • lr:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加3個枚舉值,分別為1e-4、1e-52e-5。

    • lr_scheduler:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加3個枚舉值,分別為constant、cosinepolynomial。

    • rank:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加3個枚舉值,分別為4、3264。

    • adam_beta1:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加2個枚舉值,分別為0.90.95。

    • adam_beta2:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加2個枚舉值,分別為0.990.999。

    • adam_weight_decay:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加2個枚舉值,分別為1e-21e-3。

    • max_grad_norm:

      • 約束類型:choice。

      • 搜索空間:單擊image.png,增加3個枚舉值,分別為1、510。

    使用上述配置可以生成648種超參數組合,后續實驗會分別為每種超參數組合創建一個Trial,在每個Trial中使用一組超參數組合來運行腳本。

  2. 設置Trial配置。

    參數

    描述

    指標類型

    選擇stdout

    計算方式

    選擇best

    指標權重

    • key:val_loss=([0-9\\.]+)。

    • Value:1。

    指標來源

    配置為cmd1

    優化方向

    選擇越大越好

  3. 設置搜索配置。

    參數

    描述

    搜索算法

    選擇TPE

    最大搜索次數

    配置為5。

    最大并發量

    配置為2。

    開啟earlystop

    打開開關。

    start step

    5

步驟三:查看實現詳情和運行結果

  1. 實驗列表頁面,單擊實驗名稱,進入實驗詳情頁面。image

    在該頁面,您可以查看Trial的執行進度和狀態統計。實驗根據配置的搜索算法和最大搜索次數自動創建5Trial。

  2. 單擊Trial列表,您可以在該頁面查看該實驗自動生成的所有Trial列表,以及每個Trial的執行狀態、最終指標和超參數組合。image

    Trial運行時長大約持續5個小時。根據配置的優化方向(越大越好),從上圖可以看出,最終指標為0.087655對應的超參數組合較優。

步驟四:部署及推理模型服務

  1. 下載LoRA模型,并進行模型文件格式轉換。

    1. 實驗執行成功后,會在啟動命令指定的output_dir目錄下生成模型文件。您可以前往該實驗配置的數據集掛載的OSS路徑的checkpoint-best目錄中,查看并下載模型文件。詳情請參見控制臺快速入門image

    2. 執行以下命令,將pytorch_model.bin轉換成pytorch_model_converted.safetensors。

      wget http://automl-nni.oss-cn-beijing.aliyuncs.com/aigc/convert.py
      python convert.py --file pytorch_model.bin
  2. 部署Stable Diffusion WebUI服務。

    1. 進入模型在線服務(EAS)頁面。具體操作,請參見步驟一:進入模型在線服務頁面

    2. 模型在線服務(EAS)頁面,單擊部署服務,在自定義模型部署區域,單擊自定義部署

    3. 新建服務頁面,配置以下關鍵參數后,單擊部署

      參數

      描述

      服務名稱

      自定義服務名稱。本案例使用的示例值為:sdwebui_demo

      部署方式

      選擇鏡像部署AI-Web應用

      鏡像選擇

      PAI平臺鏡像列表中選擇stable-diffusion-webui;鏡像版本選擇4.2-standard

      說明

      由于版本迭代迅速,部署時鏡像版本選擇最高版本即可。

      模型配置

      單擊填寫模型配置,進行模型配置。

      • 模型配置選擇OSS掛載,將OSS路徑配置為步驟1中創建的OSS Bucket路徑。例如:oss://bucket-test/data-oss/

      • 掛載路徑:將您配置的OSS文件目錄掛載到鏡像的/code/stable-diffusion-webui路徑下。例如配置為:/code/stable-diffusion-webui/data-oss

      • 是否只讀:開關關閉。

      運行命令

      鏡像配置完成后,系統會自動配置運行命令。您需要在運行命令中增加--data-dir 掛載目錄,其中掛載目錄需要與模型配置掛載路徑的最后一級目錄一致。本方案在運行命令末尾增加--data-dir data-oss

      資源配置方法

      選擇常規資源配置

      資源配置選擇

      必須選擇GPU類型,實例規格推薦使用ml.gu7i.c16m60.1-gu30(性價比最高)。

      系統盤配置

      將額外系統盤設置為100 GB。

    4. 單擊部署。

      PAI會自動在您配置的OSS空文件目錄下創建如下目錄結構,并復制必要的數據到該目錄下。49a056cc3a4f03e3744bdbeb2bf784ad

  3. 上傳模型文件到指定路徑下,然后單擊目標服務操作列下的image>重啟服務,服務重啟成功后,即可生效。

    • 將上述步驟生成的模型文件pytorch_model_converted.safetensors上傳到OSSmodels/lora/目錄中。

    • revAnimated_v122基礎模型,上傳到OSSmodels/Stable-diffusion/目錄中。

  4. 單擊目標服務的服務方式列下的查看Web應用,在WebUI頁面進行模型推理驗證。

    使用Stable Diffusion模型

    WebUI頁面配置以下參數:

    • Stable Diffusion模型:選擇revAnimated_v122.safetensors。

    • 正向提示詞Prompt:在編輯框中輸入請求數據,例如a drawing of a green pokemon with red eyes

    • 采樣方法(Sampler):選擇DPM++2M Karras。

    • 迭代部署(Steps):配置為20。

    • 隨機數種子(Seed):配置為1。

    參數配置完成后,單擊生成。輸出結果示例如下:image

    使用Stable diffusionLoRA模型

    WebUI頁面配置以下參數:

    • Stable Diffusion模型:選擇revAnimated_v122.safetensors。

    • 正向提示詞Prompt:在編輯框中輸入請求數據,并將Lora模型的權重從<lora:pytorch_model_converted:1>調整為<lora:pytorch_model_converted:0.5>。例如a drawing of a green pokemon with red eyes <lora:pytorch_model_converted:0.5>

    • 單擊Lora頁簽,確認模型pytorch_model_converted.safetensors已成功加載。

    • 采樣方法(Sampler):選擇DPM++2M Karras。

    • 迭代部署(Steps):配置為20。

    • 隨機數種子(Seed):配置為1。

    參數配置完成后,單擊生成。輸出結果示例如下:image