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

Qwen2.5-Coder模型的訓練、評測、壓縮與部署實踐

通義千問2.5-Coder(Qwen2.5-Coder)是阿里云最新推出的、專注于代碼處理的Qwen大語言模型系列,亦稱為CodeQwen。該系列提供六種主流模型尺寸:0.5B、1.5B、3B、7B、14B32B,以滿足不同開發(fā)人員的多樣化需求。通過對海量代碼數(shù)據(jù)進行訓練,Qwen2.5-Coder在保持強大數(shù)學和推理能力的基礎上,顯著增強了在代碼應用場景中的表現(xiàn)。PAI已對該系列模型進行全面支持,本文以通義千問2.5-Coder-32B-Instruct模型為例為您介紹如何在Model Gallery中部署、微調(diào)、評測和壓縮該系列模型。

簡介

Qwen2.5-Coder是由阿里云推出的一款具備強大編程能力的模型,支持多達128K tokens 的上下文,并兼容92種編程語言。該模型在多個代碼相關任務中表現(xiàn)卓越,包括多語言代碼生成、代碼補全和代碼修復等。在Qwen2.5-Coder的基礎上,阿里云通過指令微調(diào),推出了Qwen2.5-Coder-Instruct,進一步提升了模型在各項任務中的性能,并展現(xiàn)了出色的泛化能力。

  • 多編程語言能力

    Qwen2.5-Coder-Instruct展示了卓越的多編程語言能力。通過McEval評估基準對模型進行廣泛測試,涵蓋40多種編程語言,包括一些小眾語言,結果顯示模型在多語言任務中表現(xiàn)優(yōu)異。

  • 代碼推理

    Qwen2.5-Coder-Instruct 在代碼推理任務上表現(xiàn)突出。采用CRUXEval作為評估基準,模型展示了強大的推理能力。值得注意的是,隨著代碼推理能力的提升,模型在復雜指令執(zhí)行方面的表現(xiàn)也有所增強,這為進一步探索代碼能力對通用推理能力的影響提供了新的視角。

  • 數(shù)學能力

    Qwen2.5-Coder-Instruct在數(shù)學和代碼任務中均表現(xiàn)出色。作為代碼的基礎學科,數(shù)學與代碼密切相關,模型在這兩方面的優(yōu)異表現(xiàn)體現(xiàn)了其強大的理科綜合能力。

  • 基礎能力

    在通用能力評估中,Qwen2.5-Coder-Instruct保持了Qwen2.5的優(yōu)勢,證明了其在廣泛任務中的適用性和穩(wěn)定性。

通過以上特性,Qwen2.5-Coder系列模型為多語言編程和復雜任務處理提供了強有力的技術支持。

運行環(huán)境要求

  • 本示例目前支持在華北2(北京)、華東2(上海)、華南1(深圳)、華東1(杭州)、華北6(烏蘭察布)、新加坡等地域使用Model Gallery模塊運行。

  • 資源配置要求:

    模型規(guī)模

    資源要求

    Qwen2.5-Coder-0.5B/1.5B

    • 訓練階段:使用16GB顯存(例如T4、P100、V100)及以上卡型。

    • 部署階段:最低卡型配置為單卡P4,推薦部署機型為單卡GU30、單卡A10、單卡V100、單卡T4等。

    Qwen2.5-Coder-3B/7B

    • 訓練階段:使用24GB顯存(例如A10、T4)及以上卡型。

    • 部署階段:最低卡型配置為單卡P100、單卡T4、單卡V100(gn6v)等,推薦部署機型為單卡GU30、單卡A10等;

    Qwen2.5-Coder-14B

    • 訓練階段:使用32GB顯存(例如V100)及以上卡型。

    • 部署階段:最低卡型配置為單卡L20、單卡GU60、雙卡GU30等,推薦部署機型為雙卡GU60、雙卡L20等。

    Qwen2.5-Coder-32B

    • 訓練階段:使用80GB顯存(例如A800/H800)及以上卡型。

    • 部署階段:最低卡型配置為雙卡GU60、雙卡L20、四卡A10等,推薦部署機型為四卡GU60、四卡L20、8V100-32G等。

通過PAI-Model Gallery使用模型

模型部署和調(diào)用

  1. 進入Model Gallery頁面。

    1. 登錄PAI控制臺。

    2. 在頂部左上角根據(jù)實際情況選擇地域。

    3. 在左側(cè)導航欄選擇工作空間列表,單擊指定工作空間名稱,進入對應工作空間內(nèi)。

    4. 在左側(cè)導航欄選擇快速開始 > Model Gallery

  2. Model Gallery頁面右側(cè)的模型列表中,單擊通義千問2.5-Coder-32B-Instruct模型卡片,進入模型詳情頁面。

  3. 單擊右上角部署,配置推理服務名稱以及部署使用的資源信息,即可將模型部署到EAS推理服務平臺。

    image

  4. 使用推理服務。

    PAI-Model Gallery > 任務管理 > 部署任務中單擊已部署的服務名稱,在服務詳情頁面右上角單擊查看WEB應用,即可通過ChatLLM WebUI進行實時交互。

    image

模型微調(diào)訓練

PAI-Model Gallery為通義千問2.5-Coder-32B-Instruct模型配置了SFTDPO兩種微調(diào)算法,您可以通過開箱即用的方式對該模型進行微調(diào)。

SFT監(jiān)督微調(diào)

SFT訓練算法支持使用JSON格式輸入,每條數(shù)據(jù)由問題、答案組成,分別用"instruction"、"output"字段表示,例如:

[
  {
    "instruction": "Create a function to calculate the sum of a sequence of integers.",
    "output": "# Python code\ndef sum_sequence(sequence):\n  sum = 0\n  for num in sequence:\n    sum += num\n  return sum"
  },
  {
    "instruction": "Generate a Python code for crawling a website for a specific type of data.",
    "output": "import requests\nimport re\n\ndef crawl_website_for_phone_numbers(website):\n    response = requests.get(website)\n    phone_numbers = re.findall('\\d{3}-\\d{3}-\\d{4}', response.text)\n    return phone_numbers\n    \nif __name__ == '__main__':\n    print(crawl_website_for_phone_numbers('www.example.com'))"
  }
]

DPO直接偏好優(yōu)化

DPO訓練算法支持使用JSON格式輸入,每條數(shù)據(jù)由問題、預期模型輸出的答案、不希望模型輸出的答案組成,分別用"prompt"、"chosen"、"rejected"字段表示,例如:

[
  {
    "prompt": "Create a function to calculate the sum of a sequence of integers.",
    "chosen": "# Python code\ndef sum_sequence(sequence):\n  sum = 0\n  for num in sequence:\n    sum += num\n  return sum",
    "rejected": "[x*x for x in [1, 2, 3, 5, 8, 13]]"
  },
  {
    "prompt": "Generate a Python code for crawling a website for a specific type of data.",
    "chosen": "import requests\nimport re\n\ndef crawl_website_for_phone_numbers(website):\n    response = requests.get(website)\n    phone_numbers = re.findall('\\d{3}-\\d{3}-\\d{4}', response.text)\n    return phone_numbers\n    \nif __name__ == '__main__':\n    print(crawl_website_for_phone_numbers('www.example.com'))",
    "rejected": "def remove_duplicates(string): \n    result = \"\" \n    prev = '' \n\n    for char in string:\n        if char != prev: \n            result += char\n            prev = char\n    return result\n\nresult = remove_duplicates(\"AAABBCCCD\")\nprint(result)"
  }
]
  1. 模型詳情頁單擊右上角訓練。關鍵配置如下:

    • 數(shù)據(jù)集配置:當完成數(shù)據(jù)的準備,您可以將數(shù)據(jù)上傳到對象存儲OSS Bucket中,或是通過指定一個數(shù)據(jù)集對象,選擇NASCPFS存儲上的數(shù)據(jù)集。您也可以使用PAI預置的公共數(shù)據(jù)集,直接提交任務測試算法。

    • 計算資源配置:算法需要使用A800/H800(80GB顯存)及以上的GPU資源,請確保選擇使用的資源配額內(nèi)有充足的計算資源。其他規(guī)模的模型所需資源規(guī)格,請參見運行環(huán)境要求。

    • 超參數(shù)配置:訓練算法支持的超參信息如下,您可以根據(jù)使用的數(shù)據(jù),計算資源等調(diào)整超參,或是使用算法默認配置的超參。

      超參數(shù)

      類型

      默認值

      是否必須

      描述

      training_strategy

      string

      sft

      訓練算法,可以為SFTDPO。

      learning_rate

      float

      5e-5

      學習率,用于控制模型權重,調(diào)整幅度。

      num_train_epochs

      int

      1

      訓練數(shù)據(jù)集被重復使用的次數(shù)。

      per_device_train_batch_size

      int

      1

      每個GPU在一次訓練迭代中處理的樣本數(shù)量。較大的批次大小可以提高效率,也會增加顯存的需求。

      seq_length

      int

      128

      序列長度,指模型在一次訓練中處理的輸入數(shù)據(jù)的長度。

      lora_dim

      int

      32

      LoRA維度,當lora_dim>0時,使用LoRA/QLoRA輕量化訓練。

      lora_alpha

      int

      32

      LoRA權重,當lora_dim>0時,使用LoRA/QLoRA輕量化訓練,該參數(shù)生效。

      dpo_beta

      float

      0.1

      模型在訓練過程中對偏好信息的依賴程度。

      load_in_4bit

      bool

      true

      模型是否以4 bit加載。

      lora_dim>0、load_in_4bittrueload_in_8bitfalse時,使用4 bit QLoRA輕量化訓練。

      load_in_8bit

      bool

      false

      模型是否以8 bit加載。

      lora_dim>0、load_in_4bitfalseload_in_8bittrue時,使用8 bit QLoRA輕量化訓練。

      gradient_accumulation_steps

      int

      8

      梯度累積步驟數(shù)。

      apply_chat_template

      bool

      true

      算法是否為訓練數(shù)據(jù)加上模型默認的chat template,以Qwen2系列模型為例,格式為:

      • 問題:<|im_end|>\n<|im_start|>user\n + instruction + <|im_end|>\n

      • 答案:<|im_start|>assistant\n + output + <|im_end|>\n

      system_prompt

      string

      You are a helpful assistant

      模型訓練使用的系統(tǒng)提示語。

  2. 單擊訓練,PAI-Model Gallery自動跳轉(zhuǎn)到模型訓練頁面,并開始進行訓練,您可以查看訓練任務狀態(tài)和訓練日志。

    image

    訓練好的模型會自動注冊到AI資產(chǎn)-模型管理中,您可以查看或部署對應的模型,詳情請參見注冊及管理模型

模型評測

科學、高效的模型評測,不僅能幫助開發(fā)者有效地衡量和對比不同模型的性能,更能指導他們進行精準地模型選擇和優(yōu)化,加速AI創(chuàng)新和應用落地。

PAI-Model Gallery為通義千問2.5-Coder-32B-Instruct模型配置了評測算法,您可以通過開箱即用的方式對該模型(或微調(diào)后的模型)進行評測。關于模型評測詳細的操作說明,請參見模型評測大模型評測最佳實踐。

模型壓縮

經(jīng)過訓練后的模型在部署之前可以對模型進行量化壓縮,可有效減少存儲和計算資源的使用。關于模型壓縮詳細的操作說明,請參見模型壓縮

相關參考