本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用轉接器推論元件微調模型
使用 Amazon SageMaker AI,您可以託管預先訓練的基礎模型,而無需從頭開始建立自己的模型。不過,若要針對業務的獨特需求量身打造一般用途的基礎模型,您必須建立經過微調的版本。低秩適應 (LoRA) 是具成本效益的微調技術之一。LoRA 的原理是,只需更新大型基礎模型的一小部分,就能使模型適應新的任務或領域。LoRA 轉接器只需幾個額外的轉接器層,即可增強基本基礎模型的推論。
如果您使用 SageMaker AI 推論元件託管基本基礎模型,您可以透過建立轉接器推論元件來使用 LoRA 轉接器微調該基本模型。當您建立轉接器推論元件時,可以指定下列項目:
-
要包含轉接器推論元件的基本推論元件。基本推論元件包含您想要調整的基礎模型。轉接器推論元件會使用您指派給基本推論元件的運算資源。
-
您已在 Amazon S3 中存放 LoRA 轉接器的位置。
建立轉接器推論元件之後,您可以直接調用它。當您這麼做時,SageMaker AI 會將轉接器與基本模型結合,以增強產生的回應。
開始之前
您必須先符合下列需求,才能建立轉接器推論元件:
-
您有一個基本推論元件,其中包含要調整的基礎模型。您已將此推論元件部署至 SageMaker AI 端點。
如需將推論元件部署至端點的詳細資訊,請參閱部署用於即時推論的模型。
-
您有 LoRA 轉接器模型,而且已將模型成品儲存為 Amazon S3 中的
tar.gz檔案。您可以在建立轉接器推論元件時指定成品的 S3 URI。
下列範例使用 SDK for Python (Boto3) 來建立和調用轉接器推論元件。
範例 create_inference_component 呼叫以建立轉接器推論元件
下列範例會建立轉接器推論元件,並指派給基本推論元件:
sm_client.create_inference_component( InferenceComponentName =adapter_ic_name, EndpointName =endpoint_name, Specification={ "BaseInferenceComponentName":base_inference_component_name, "Container": { "ArtifactUrl":adapter_s3_uri}, }, )
當您在自己的程式碼中使用此範例時,請取代預留位置值,如下所示:
-
adapter_ic_name– 轉接器推論元件的唯一名稱。 -
endpoint_name– 託管基本推論元件的端點名稱。 -
base_inference_component_name– 基本推論元件的名稱,其中包含要調整的基礎模型。 -
adapter_s3_uri– 會使用 LoRA 轉接器成品尋找tar.gz檔案的 S3 URI。
您可以使用與正常推論元件的程式碼類似的程式碼,來建立轉接器推論元件。差別在於,對於 Specification 參數,您會省略 ComputeResourceRequirements 金鑰。當您調用轉接器推論元件時,會由基本推論元件載入該元件。轉接器推論元件使用基本推論元件的運算資源。
如需使用 SDK for Python (Boto3) 建立和部署推論元件的詳細資訊,請參閱使用 Python SDK 部署模型。
建立轉接器推論元件之後,您可以在 invoke_endpoint 請求中指定其名稱來調用它。
範例 invoke_endpoint 呼叫以調用轉接器推論元件
下列範例會調用轉接器推論元件:
response = sm_rt_client.invoke_endpoint( EndpointName =endpoint_name, InferenceComponentName =adapter_ic_name, Body = json.dumps( { "inputs":prompt, "parameters": {"max_new_tokens": 100, "temperature":0.9} } ), ContentType = "application/json", ) adapter_reponse = response["Body"].read().decode("utf8")["generated_text"]
當您在自己的程式碼中使用此範例時,請取代預留位置值,如下所示:
-
endpoint_name– 託管基本和轉接器推論元件的端點名稱。 -
adapter_ic_name– 轉接器推論元件的名稱。 -
prompt– 推論請求的提示。
如需使用 SDK for Python (Boto3) 調用推論元件的詳細資訊,請參閱調用模型以進行即時推論。