Azure AI Studio 中的微調 Phi-3 模型

重要

本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

Azure AI Studio 服務可讓您使用名為「微調」的程序,為個人資料集量身打造大型語言模型。 微調為特定工作和應用程式啟用自訂和最佳化,以提供重要的價值。 這會導致改善效能、成本效益、降低延遲,以及量身打造的輸出。

在本文中,您將了解如何在 Azure AI Studio 中微調 Phi-3 系列的小型語言模型 (SLM) 作為隨用隨付計費的服務。

Phi-3 系列的 SLM 是一組指令微調的生成式文字模型。 Phi-3 模型是可用的功能最強大、成本效益最高的小型語言模型 (SLM),在各種語言、推理、編碼和數學基準中都優於相同大小和下一大小的模型。

重要

處於預覽狀態的模型會在模型目錄中的模型卡片上標示為 預覽

Phi-3 Mini 是 3.8B 參數、輕量型、最先進的開放模型,以 Phi-2 所用的資料集 (綜合資料和經過篩選的網站) 為基礎,著重於高品質、推理密集的資料。 此模型屬於 Phi-3 模型系列,而 Mini 版本有 4K 和 128K 兩種變體,這是它可以支援的內容長度 (以語彙基元為單位)。

此模型進行了嚴格的增強程序,結合受監督的微調和直接喜好設定最佳化,以確保精確的指示遵循和健全的安全措施。 在根據測試常識、語言理解、數學、程式碼、長內容和邏輯推理的基準進行評估時,Phi-3 Mini-4K-Instruct 和 Phi-3 Mini-128K-Instruct 展示了強大且最先進的效能參數少於 130 億個模型。

當透過隨用隨付的服務進行微調時,適用於 Phi 3 的 Azure AI Studio 中提供以下模型:

  • Phi-3-mini-4k-instruct (預覽)
  • Phi-3-mini-128k-instruct (預覽)

目前支援在位於美國東部 2 的專案中微調 Phi-3 模型。

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請建立付費 Azure 帳戶以開始。

  • AI Studio 中樞

    重要

    對於 Phi-3 系列模型,隨用隨付模型微調供應項目僅適用於在美國東部 2 區域中建立的中樞。

  • AI Studio 專案

  • Azure 角色型存取控制 (Azure RBAC) 可用來授與 Azure AI Studio 作業的存取權限。 若要執行本文中的步驟,您的使用者帳戶必須獲指派資源群組上的 Azure AI 開發人員角色

    如存取權限的需詳細資訊,請參閱 Azure AI Studio 中的角色型存取控制

訂用帳戶提供者註冊

確認訂用帳戶已向 Microsoft.Network 資源提供者註冊。

  1. 登入 Azure 入口網站
  2. 從左側功能表中選取 [訂用帳戶]
  3. 選取您要使用的訂用帳戶。
  4. 從左側功能表中選取 [設定]>[資源提供者]
  5. 確認 Microsoft.Network 位於資源提供者清單中。 否則,請加以新增。

資料準備

準備您的定型和驗證資料以微調模型。 您的定型資料和驗證資料集包含您想要執行模型之方式的輸入和輸出範例。

請確定所有定型範例都遵循預期的推斷格式。 若要有效地微調模型,請確定平衡且多樣化的資料集。

這涉及維護資料平衡,包括各種案例,並定期精簡定型資料以符合真實世界的期望,最終導致更精確且平衡的模型回應。

不同的模型類型需要不同格式的定型資料。

聊天完成

您使用的定型和驗證資料必須格式化為 JSON Lines (JSONL) 文件。 針對 Phi-3-mini-128k-instruct,微調資料集必須採用聊天完成 API 使用的交談格式。

範例檔案格式

    {"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
    {"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
    {"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

支援的檔案類型為 JSON Lines。 檔案會上傳至預設資料存放區,並在您的專案中提供。

微調 Phi-3 模型

若要微調 Phi-3 模型:

  1. 請登入 Azure AI Studio

  2. 選擇您想要從 Azure AI Studio 模型目錄中微調的模型。

  3. 在模型的 [詳細資料] 頁面上,選取 [微調]

  4. 選取您要在其中微調模型的專案。 若要使用隨用隨付模型微調供應項目,您的工作區必須屬於美國東部 2 區域。

  5. 在微調精靈上,選取 [Azure AI Studio 條款] 的連結以深入了解使用規定。 您也可以選取 [Azure AI Studio 供應項目詳細資料] 索引標籤,以了解所選模型的價格。

  6. 如果這是您第一次在專案中微調模型,則必須從 Azure AI Studio 為您的專案訂閱特定的供應項目 (例如,Phi-3-mini-128k-instruct)。 此步驟會要求您的帳戶具有必要條件中所列的 Azure 訂用帳戶權限和資源群組權限。 每個專案都有自己的特定 Azure AI Studio 供應項目的訂用帳戶,可讓您控制及監視支出。 選取 [訂閱並微調]

    注意

    為專案訂閱特定的 Azure AI Studio 供應項目 (在此案例中為 Phi-3-mini-128k-instruct) 時,您的帳戶必須具有專案建立所在之訂用帳戶層級的參與者擁有者存取權。 或者,可以為您的使用者帳戶指派具有必要條件中所列的 Azure 訂用帳戶權限和資源群組權限的自訂角色。

  7. 當您為專案註冊特定 Azure AI Studio 供應項目之後,就不需要再次訂閱相同工作區中的相同供應項目的後續微調。 因此,您不需要具有後續微調的訂用帳戶層級權限。 如果您適用此案例,請選取 [繼續微調]

  8. 輸入已微調模型的名稱,選擇性輸入標記和描述。

  9. 選取定型資料以微調您的模型。 如需詳細資訊,請參閱資料準備

    注意

    如果您的訓練/驗證檔案位於無認證的資料存放區中,則必須允許工作區受控識別存取您的資料存放區,才能使用無認證的儲存空間繼續進行 MaaS 的微調。 在 [資料存放區] 頁面上,按一下 [更新驗證] 後 > 選取下列選項:

    在 Azure Machine Learning 工作室 (傳統版) 中使用工作區受控識別來預覽及分析資料。

    請確定所有定型範例都遵循預期的推斷格式。 若要有效地微調模型,請確定平衡且多樣化的資料集。 這涉及維護資料平衡,包括各種案例,並定期精簡定型資料以符合真實世界的期望,最終導致更精確且平衡的模型回應。

    • 用於定型的批次大小。 當設定為 -1 時,batch_size 會計算為訓練集中範例的 0.2%,最大值為 256。
    • 微調學習速率是預先定型所用原始學習速率乘以此乘數。 建議您試驗介於 0.5 到 2 之間的值。 根據經驗,我們發現較大的學習率通常在較大的批次大小表現得更好。 必須介於 0.0 到 5.0 之間。
    • 定型 Epoch 的數目。 Epoch 是指透過資料集的完整循環。
  10. 工作參數是選擇性步驟和進階選項 - 微調超參數對於在真實世界應用程式中最佳化大型語言模型 (LLM) 至關重要。 可讓您改善效能和有效率的資源使用量。 使用者可以選擇保留預設設定,或者進階使用者可以自訂參數,例如 Epoch 或學習率。

  11. 檢閱您的選取項目,然後繼續進行模型定型。

微調模型之後,您就可以部署模型,並在自己的應用程式中、遊樂場或提示流程中使用。 如需詳細資訊,請參閱如何使用 Azure AI Studio 部署 Phi-3 系列的大型語言模型

清除微調模型

您可以從 Azure AI Studio 或模型詳細資料頁面中的微調模型清單中刪除微調模型。 從 [微調] 頁面選取要刪除的已微調模型,然後選取 [刪除] 按鈕以刪除已微調模型。

注意

如果自訂模型具有現有部署,則無法刪除自訂模型。 您必須先刪除模型部署,才能刪除自訂模型。

成本和配額

微調為服務之 Phi-3 模型的成本和配額考量

微調為服務的 Phi 模型是由 Microsoft 提供,並與 Azure AI Studio 整合以供使用。 部署或微調模型時,您可以在部署精靈上的 [定價和條款] 索引標籤下找到定價。

內容篩選

部署為使用隨用隨付服務的模型會受到 Azure AI 內容安全的保護。 部署至即時端點時,您可以選擇退出此功能。 啟用 Azure AI 內容安全後,提示和完成都會通過旨在偵測及防止有害內容輸出的一組分類模型。 內容篩選 (預覽) 系統會偵測並針對輸入提示和輸出完成中潛在有害內容的特定類別採取動作。 深入了解 Azure AI 內容安全 (部分機器翻譯)。

下一步