生成式 AI 開箱終極攻略:如何在 Amazon SageMaker JumpStart 上探索和微調生成式 AI 模型 Llama 2
Meta 開發的 Llama 2 基礎模型現已在 Amazon SageMaker JumpStart 中提供
Meta 開發的 Llama 2 基礎模型現已透過 Amazon SageMaker JumpStart 提供給客戶進行微調和部署。Llama 2 大型語言模型(LLM)家族是一系列預先訓練和微調的生成文字模型,其規模從 70 億到 700 億參數不等。經過微調的 LLM,稱為 Llama-2-chat,已針對對話使用案例進行優化。您可以輕鬆試用這些模型,並透過 SageMaker JumpStart 使用它們,SageMaker JumpStart 是一個機器學習(ML)中樞,提供對演算法、模型和 ML 解決方案的存取,讓您可以快速開始使用 ML。本文將逐步介紹如何透過 SageMaker JumpStart 探索、部署和微調 Llama 2 模型。
什麼是 Llama 2
Llama 2 是一種使用優化的 transformer 架構的自回歸語言模型。Llama 2 旨在用於英語的商業和研究用途。它提供一系列參數大小:70 億、130 億和 700 億,以及預先訓練和微調的變體。根據 Meta 的說法,經過調整的版本使用監督式微調(SFT)和強化學習(RLHF)與人類反饋相結合, 來符合人類對於有用性和安全性的偏好。Llama 2 是在公開可用來源的 2 萬億個 token 資料上預訓練。經過微調的模型適用於類似助理的聊天,而預訓練模型則可調整用於各種自然語言生成任務。無論開發人員使用哪個版本的模型,Meta 的負責任使用指南都可以協助指導可能需要的額外微調,以使用適當的安全緩解措施來定制和優化模型。
什麼是 SageMaker JumpStart
透過 SageMaker JumpStart,機器學習從業人員可以選擇部署和定制一系列公開可用基礎模型。機器學習從業人員可以將基礎模型部署到位於網路隔離的專用的 Amazon SageMaker 實例,並使用 SageMaker 進行模型訓練和部署來自訂模型。
您現在可以在 Amazon SageMaker Studio中透過幾次點擊 或通過 SageMaker Python SDK 以程序化的設計方式發現和部署 Llama 2,從而讓您可以從 SageMaker 功能(如 Amazon SageMaker Pipelines、Amazon SageMaker Debugger 或容器日誌)獲得模型效能和 MLOps 控制。該模型部署在 AWS 安全環境中,並在您的 VPC 控制下,有助於確保資料安全。
Llama 2 模型目前可在
- 可微調:us-east-1”, “us-west-2”,“eu-west-1”
- 僅推理:"us-west-2", "us-east-1", "us-east-2", "eu-west-1", "ap-southeast-1", "ap-southeast-2"
探索模型
您可以透過 SageMaker Studio UI 和 SageMaker Python SDK 存取 SageMaker JumpStart 中的基礎模型。在本節中,我們將介紹如何在 SageMaker Studio 中探索這些模型。
SageMaker Studio 是一個整合式開發環境(IDE),提供單一的基於網頁的視覺介面,您可以在其中存取專門設計的工具來執行所有 ML 開發步驟,從準備資料到建置、訓練和部署您的 ML 模型。如需開始使用和設定 SageMaker Studio 的更多詳細資訊,請參閱 Amazon SageMaker Studio。
一旦進入 SageMaker Studio,您就可以在 預建和自動化解決方案 下存取包含預先訓練的模型、筆記本和預建解決方案的 SageMaker JumpStart。
從 SageMaker JumpStart 登陸頁面,您可以瀏覽解決方案、模型、筆記本和其他資源。您可以在 基礎模型: 文字生成 轉盤中找到兩個旗艦 Llama 2 模型。
如果您看不到 Llama 2 模型,請關閉並重新啟動以更新您的 SageMaker Studio 版本。如需版本更新的更多資訊,請參閱 關閉和更新 Studio 應用程式。
您也可以選擇 探索所有文字生成模型 或在搜尋框中搜尋 llama 來找到其他四種模型變體。
您可以選擇模型卡片來檢視該模型的詳細資訊,例如授權、用於訓練的資料,以及如何使用。您也可以找到兩個按鈕 部署 和 開啟筆記本,它們可協助您使用該模型。
當您選擇任一按鈕時,將會顯示最終使用者授權合約和可接受使用政策的快顯視窗,供您確認。
確認後,您將進入下一步以使用該模型。
部署模型
當您選擇 部署 並確認條款後,模型部署將開始。或者,您也可以透過選擇 開啟筆記本 顯示的範例筆記本來部署。該範例筆記本提供了如何部署模型進行推理以及清理資源的端到端指導。
要使用筆記本進行部署,我們首先選擇適當的模型,由 model_id 指定。您可以使用以下程式碼在 SageMaker 上部署任何選定的模型:
這會使用預設設定 (包括預設實例類型和預設 VPC 設定) 在 SageMaker 上部署模型。您可以透過在 JumpStartModel 中指定非預設值來變更這些設定。部署後,您可以透過 SageMaker 預測器對已部署的端點執行推理:
經過微調的聊天模型 (Llama-2-7b-chat、Llama-2-13b-chat、Llama-2-70b-chat) 接受使用者與聊天助理之間的聊天記錄,並產生後續的聊天內容。預先訓練的模型 (Llama-2-7b、Llama-2-13b、Llama-2-70b) 需要一個字串提示,並對提供的提示完成執行文字。請參閱以下程式碼:
請注意,預設情況下 accept_eula 設為 false。您需要將 accept_eula 設為 true 才能成功調用端點。這樣做就表示您就接受了前面提到的使用者授權合約和可接受使用政策。您也可以下載授權合約。
用於傳遞 EULA 的 Custom_attributes 是鍵/值對。鍵和值由 = 分隔,對則由 ; 分隔。如果使用者傳遞相同的鍵多次,則保留最後一個值並傳遞給指令碼處理程序 (即在本例中用於條件邏輯)。例如,如果傳遞 accept_eula=false; accept_eula=true 給伺服器,則 accept_eula=true 將被保留並傳遞給指令碼處理程序。
推理參數控制端點上的文字生成過程。Maxium new tokenscontrol是指模型生成的輸出大小。請注意,這不同於單字數量,因為模型的詞彙並不等同於英語詞彙,每個token可能不是英語單字。溫度控制輸出的隨機性。溫度越高,輸出就越有創意和虛構成分。所有推理參數都是可選的。
下表列出了 SageMaker JumpStart 中提供的所有 Llama 模型,以及每個模型的 model_id、預設實例類型和支援的最大總 token 數 (輸入 token 數和生成 token 數之總和)。
請注意,SageMaker 端點有 60 秒的超時限制。因此,即使模型可以生成 4096 個tokens,如果文字生成超過 60 秒,請求將失敗。對於 7B、13B 和 70B 模型,我們建議將 max_new_tokens 設為不大於 1500、1000 和 500,同時將總token數保持在 4K 以下。
Llama-2-70b 的推理和範例提示
您可以將 Llama 模型用於任何文字的文字生成。透過文字生成,您可以執行各種任務,例如回答問題、語言翻譯、情感分析等。以下為端點的輸入有效負載程式碼:
以下是一些範例提示和模型生成的文字。所有輸出都是使用以下推理參數生成的。
在下一個範例中,我們展示如何在少量示例的上下文學習中使用 Llama 模型,我們會為模型提供一些訓練訓練樣本。請注意,我們只對已部署的模型進行推理,在此過程中,模型權重不會改變。
Llama-2-70b-chat 的推理和範例提示
對於針對對話使用案例進行優化的 Llama-2-Chat 模型,傳送給聊天模型端點的輸入是聊天助理與使用者之間的先前對話記錄。您可以詢問與到目前為止的對話有關的問題。您也可以提供系統配置,例如定義聊天助理行為的個性。傳送給端點的輸入有效負載如下所示:
以下是一些範例提示和模型生成的文字。所有輸出都是使用推理參數 {"max_new_tokens": 512, "top_p": 0.9, "temperature": 0.6} 生成的。
在以下範例中,使用者已經與助理討論過巴黎的旅遊景點。接下來,使用者詢問助理推建的第一個選項。
在以下範例中,我們設定了系統的配置
微調
在機器學習中,將在一個領域學習到的知識轉移到另一個領域的能力稱為遷移學習。您可以使用遷移學習在較小的數據集上產生準確的模型,所需的訓練成本遠低於訓練原始模型所需的成本。使用遷移學習,您可以在 1-2 小時內針對自己的數據集對 Llama 2 模型進行微調。您可以使用領域適應數據集和指令調整數據集來對基礎模型進行微調。目前,您可以在 SageMaker JumpStart 上訓練 Llama 2 7B 和 13B 模型。微調腳本基於該 存儲庫 提供的腳本。它們利用全分片資料並行 (FSDP) 庫以及低秩適應 (LoRA) 方法有效地微調模型。您可以調整 14 個超參數中的任何一個來調整微調以適應您的應用程式。要了解更多資訊,請參閱 在 SageMaker JumpStart 上微調 LLaMA 2 模型筆記本和 在 Amazon SageMaker JumpStart 上微調 Llama 2 進行文字生成 部落格文章。
要透過 Studio 訓練模型,您可以在模型卡片上點擊訓練按鈕。它將使用預設資料集和預設參數在 SageMaker 上訓練模型。
清理
完成筆記本後,請務必刪除所有資源,以刪除您在過程中建立的所有資源,並停止計費
predictor.delete_model()
predictor.delete_endpoint()
結論
在本文中,我們向您展示了如何在 SageMaker Studio 上開始使用 Llama 2 模型。有了這個功能,您可以存取包含數十億參數的六種 Llama 2 基礎模型。由於基礎模型是預先訓練的,它們還可以幫助降低訓練和基礎設施成本,並支援根據您的使用案例進行自訂。要開始使用 SageMaker JumpStart,請訪問以下資源:
關於Amazon Web Services
自 2006 年來,Amazon Web Services 一直在提供世界上服務最豐富、應用廣泛的雲端服務。AWS 不斷擴展可支持幾乎任何雲端工作負載的服務,為客戶提供超過 240 種功能全面的雲端服務,包括運算、儲存、資料庫、聯網、分析、機器學習與人工智慧、物聯網、行動、安全、混合雲、媒體,以及應用開發、部署和管理等方面,遍及 33 個地理區域內的 105 個可用區域(Availability Zones),並已公佈計畫在馬來西亞、墨西哥、紐西蘭、沙烏地阿拉伯和泰國等建立 6 個 AWS 地理區域、18 個可用區域。全球超過百萬客戶信任 AWS,包含發展迅速的新創公司、大型企業和政府機構。AWS 協助客戶強化自身基礎設施,提高營運上的彈性與應變能力,同時降低成本。欲瞭解更多 AWS 的相關資訊,請至: aws.amazon.com。