計算巢實現大模型微調——如何發佈一個微調服務

前言

各位看官,最近是否被大模型相關信息刷屏了呢,鋪天蓋地的大模型預訓練、微調等各種關鍵詞是否讓你眼花繚亂呢?在如此熱度之下,你有沒有想過自己親自動手部署一個大模型執行訓練或者微調呢,或許你曾經嘗試過卻被某個繁瑣的步驟勸退了呢?又或者你是模型的研究人員或開發人員,想要讓你的模型服務更多用戶、有更大的影響力?如果你有自己的基礎大模型供給其他人精調,卻苦於難以部署、難以讓用戶上手使用等各種問題,來試試計算巢吧,你的這些問題都將迎刃而解!

按照傳統方式,想要對一個大模型進行微調一共需要以下這些步驟:

首先需要創建雲資源或者使用線下資源,然後安裝各種GPU驅動和各種依賴環境。接着需要自己編寫微調腳本或者找一些開源的微調方法,然後就是一系列的pip install或者conda install。運氣好的話,你的微調能夠順利run起來,可是稍有差池,也許就會拋出各類錯誤讓你崩潰。講到這裏有沒有勾起你痛苦的回憶呢?沒關係,計算巢將爲你徹底解決這些煩惱!!!

本文將以ChatGLM高效微調爲例,爲各位展示在計算巢中如何發佈一個能夠實現大模型的零代碼微調的服務

服務部署步驟

1. 服務鏡像準備

本文是基於ECS鏡像進行部署的,所以第一步請在ECS控制檯製作包含ChatGLM高效微調代碼和運行環境的ECS鏡像。接下來請訪問計算巢創建關聯該鏡像的部署物。填寫部署物的基本信息並選擇關聯剛剛創建的ECS鏡像即可完成部署物的發佈。

2. 服務信息填寫

登陸到阿里雲計算巢控制檯點擊創建服務進行服務新建,填寫您要發佈服務的基本信息。

3. 部署信息填寫

3.1 資源編排模版填寫

接下來重點來咯~在服務部署信息中,我們需要填寫ROS模版或Terraform模版來定義我們所需要的資源和資源之間的依賴關係,文末給出了示例模版鏈接供大家參考。您也可以在ROS可視化編輯器中嘗試編寫自己的模版!

3.2 部署物關聯

如果您的模版成功通過校驗,那麼恭喜,我們的部署過程已經成功一大半了!

在前面我們已經準備好了部署物,現在可以派上用場了。點擊設置鏡像關聯,在實例創建時將自動基於我們的自定義鏡像拉起實例。

如果您不想要通過鏡像關聯的方式,也可以在ROS模版中定義RunCommand來初始化您所需要的環境,可以按照喜好隨意選擇兩種方式中的一種。

3.3 運維編排模版填寫

接下來還剩最後一步:定義微調運維操作。

運維操作是指使用通過運維編排(OOS)對創建的資源進行自動化運維。簡單來說,在這裏我們的目的是利用OOS及其集成的能力向目標ECS下發微調指令。

您在微調中需要的參數以及各種限制關係都可以通過您編寫的OOS模版進行填寫或選擇。這些參數最終將組裝成爲Shell或Python腳本下發到指定ECS上從而執行微調任務。編寫好的模版呈現效果長下面這樣 :

微調操作中的參數是通過OOS模版Parameters字段設置的,而Parameters中設置的參數最終會在RunCommand中被引用,下面給出一個簡單的示例幫助您理解OOS模版。詳細示例參考文末給出的示例模版鏈接。

FormatVersion: OOS-2019-06-01
Description: 執行指定微調腳本運維操作
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地域ID
    AssociationProperty: RegionId
    Default: '{
  { ACS::RegionId }}'
  workingDir:
    Type: String
    Default: /root/ChatGLM-Efficient-Tuning
    Description: 腳本執行路徑
   ...
Tasks:
    Properties:
      commandContent: |-
        #!/bin/bash
        write your finetune script here
      workingDir: '{
  {workingDir}}'
      instanceId: '{
  { ACS::TaskLoopItem }}'
      commandType: RunShellScript
      timeout: '{
  {timeout}}'

與ROS模版類似,我們也提供了一個執行ChatGLM微調任務的OOS模版供您參考,或者您也可以在OOS控制檯編寫您的OOS模版來定製運維操作。

4. 發佈服務

至此,創建一個大模型微調服務的所有必要操作都已經完成,點擊“保存並提交審覈”即可在審覈通過後成功發佈服務!!!

經過以上步驟,用戶將在計算巢服務頁面看到您剛剛創建的大模型微調服務,用戶點擊即可部署屬於自己的大模型微調服務,並且一鍵執行微調,真正做到零代碼實現微調。

總結

本文詳細介紹瞭如何在計算巢中發佈一個大模型微調服務。通過計算巢在私有化部署場景下提供的一鍵部署、高效運維等多種能力,最大程度上簡化了大模型部署和微調的流程,使大模型的使用門檻降低最低。歡迎各位來計算巢試用體驗~~

參考模版鏈接

ChatGLM微調服務發佈ROS模版:https://github.com/aliyun/ros-templates/blob/master/compute-nest-best-practice/opensource/chatglm-finetune/template.yaml

ChatGLM微調OOS模版:https://github.com/aliyun/ros-templates/blob/master/compute-nest-best-practice/opensource/chatglm-finetune/oos/finetune.yaml

點擊立即免費試用雲產品 開啓雲上實踐之旅!

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章