本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
借助 Amazon SageMaker AI,您可以托管预先训练好的基础模型,而无需从头开始创建自己的模型。但是,要根据业务的独特需求量身定制通用基础模型,您必须创建一个经过微调的版本。一种具有成本效益的微调技术是低等级适应(LoRa)。LoRa背后的原则是,大型基础模型中只有一小部分需要更新以适应新的任务或领域。LoRa 适配器仅需几个额外的适配器层即可增强基础模型的推断。
如果您使用 SageMaker AI 推理组件托管基础模型,则可以通过创建适配器推理组件来使用 LoRa 适配器对该基础模型进行微调。创建适配器推理组件时,需要指定以下内容:
-
包含适配器推理组件的基本推理组件。基础推理组件包含您要调整的基础模型。适配器推理组件使用您分配给基础推理组件的计算资源。
-
您在亚马逊 S3 中存储 LoRa 适配器的位置。
创建适配器推理组件后,可以直接调用它。当你这样做时, SageMaker AI 会将适配器与基本模型结合起来,以增强生成的响应。
开始前的准备工作
在创建适配器推理组件之前,必须满足以下要求:
-
你有一个基础推理组件,其中包含要调整的基础模型。您已将此推理组件部署到 A SageMaker I 终端节点。
有关将推理组件部署到终端节点的更多信息,请参阅为实时推理部署模型。
-
您有一个 LoRa 适配器模型,并且您已将模型工件作为
tar.gz
文件存储在 Amazon S3 中。在创建适配器推断组件时,您可以指定项目的 S3 URI。
以下示例使用适用于 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
密钥。当您调用适配器推理组件时,它由基础推理组件加载。适配器推理组件使用基础推理组件的计算资源。
有关使用适用于 Python 的 SDK (Boto3) 创建和部署推理组件的更多信息,请参阅。使用 Python 部署模型 SDKs
创建适配器推理组件后,您可以通过在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
— 推理请求的提示。
有关使用适用于 Python 的 SDK (Boto3) 调用推理组件的更多信息,请参阅。调用模型进行实时推理