

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon SageMaker JumpStart Foundation 模型
<a name="jumpstart-foundation-models"></a>

Amazon SageMaker JumpStart 針對內容撰寫、程式碼產生、問題回答、文案撰寫、摘要、分類、資訊擷取等使用案例提供最先進的基礎模型。使用 JumpStart 基礎模型建置您自己的生成式 AI 解決方案，並將自訂解決方案與其他 SageMaker AI 功能整合。如需詳細資訊，請參閱[開始使用 Amazon SageMaker JumpStart](https://aws.amazon.com/sagemaker/jumpstart/getting-started/)。

基礎模型是一個大型的預先訓練模型，可以適應許多下游任務，並且通常是開發更專業模型的起點。基礎模型的範例包括 LLaMa-3-70b、BLOOM 176B、FLAN-T5 XL 或 GPT-J 6B，這些模型已針對大量文字資料進行預先訓練，並可針對特定語言任務進行微調。

Amazon SageMaker JumpStart 加入並維護公開可用的基礎模型，供您存取、自訂並整合到您的機器學習生命週期中。如需詳細資訊，請參閱[公開的基礎模型](jumpstart-foundation-models-latest.md#jumpstart-foundation-models-latest-publicly-available)。Amazon SageMaker JumpStart 也包含來自第三方供應商的專屬基礎模型。如需詳細資訊，請參閱[專屬基礎模型](jumpstart-foundation-models-latest.md#jumpstart-foundation-models-latest-proprietary)。

若要開始探索和試驗可用模型，請參閱[JumpStart 基礎模型用量](jumpstart-foundation-models-use.md)。所有基礎模型都可以透過程式設計方式與 SageMaker Python SDK 搭配使用。如需詳細資訊，請參閱[搭配 SageMaker Python SDK 使用基礎模型](jumpstart-foundation-models-use-python-sdk.md)。

如需選擇模型時應注意事項的更多資訊，請參閱[模型來源和授權協議](jumpstart-foundation-models-choose.md)。

如需有關自訂和微調基礎模型的詳細資訊，請參閱[基礎模型自訂](jumpstart-foundation-models-customize.md)。

有關基礎模型的更多一般資訊，請參閱文獻[關於基礎模型的機會和風險](https://arxiv.org/abs/2108.07258)。

**Topics**
+ [可用的基礎模型](jumpstart-foundation-models-latest.md)
+ [JumpStart 基礎模型用量](jumpstart-foundation-models-use.md)
+ [模型來源和授權協議](jumpstart-foundation-models-choose.md)
+ [基礎模型自訂](jumpstart-foundation-models-customize.md)
+ [在 Studio 中評估文字產生基礎模型](jumpstart-foundation-models-evaluate.md)
+ [範例筆記本](jumpstart-foundation-models-example-notebooks.md)

# 可用的基礎模型
<a name="jumpstart-foundation-models-latest"></a>

Amazon SageMaker JumpStart 提供最先進、內建公開可用和專屬的基礎模型，可自訂並整合到您的生成式 AI 工作流程中。

## 公開的基礎模型
<a name="jumpstart-foundation-models-latest-publicly-available"></a>

Amazon SageMaker JumpStart 啟動並維護來自第三方來源的開放原始碼基礎模型。若要開始使用其中一種公開提供的模型，請參閱[JumpStart 基礎模型用量](jumpstart-foundation-models-use.md)或探索其中一種可用的模型[範例筆記本](jumpstart-foundation-models-example-notebooks.md)。在公開模型的特定範例筆記本中，嘗試切換模型 ID 以嘗試使用相同模型系列中的不同模型。

如需有關使用 SageMaker Python SDK 部署公開 JumpStart 基礎模型的模型識別碼和資源的詳細資訊，請參閱[搭配 SageMaker Python SDK 使用基礎模型](jumpstart-foundation-models-use-python-sdk.md)。

根據定義，基礎模型可以適應許多下游任務。基礎模型是針對大量一般網域資料進行訓練，並且可針對多個使用案例實作或自訂相同的模型。選擇基礎模型後，請先定義特定任務，例如產生文字或產生影像。

### 公開可用的時間序列預測模型
<a name="jumpstart-foundation-models-choose-task-time-series-forecasting"></a>

時間序列預測模型旨在分析及預測一段時間的序列資料。這些模型可以套用至各種領域，例如金融、氣象預測或能源需求預測。Chronos 模型專為時間序列預測任務量身打造，可根據歷史資料模式進行準確的預測。


| 模型名稱 | 模型 ID | 模型來源 | 可微調 | 
| --- | --- | --- | --- | 
| Chronos T5 小 | autogluon-forecasting-chronos-t5-small | Amazon | 否 | 
| Chronos T5 基礎 | autogluon-forecasting-chronos-t5-base | Amazon | 否 | 
| Chronos T5 大 | autogluon-forecasting-chronos-t5-large | Amazon | 否 | 
| Chronos-Bolt 小 | autogluon-forecasting-chronos-bolt-small | Amazon |  否  | 
| Chronos-Bolt 基礎 | autogluon-forecasting-chronos-bolt-base | Amazon |  否  | 

### 公開可用的文字產生模型
<a name="jumpstart-foundation-models-choose-task-text-generation"></a>

文字生成基礎模型可用於各種下游任務，包括文字摘要、文字分類、問答、長篇內容生成、短格式文案寫作、資訊提取等。

若要探索最新的文字產生基礎模型，請使用 [Amazon SageMaker JumpStart 產品說明頁面上的](https://aws.amazon.com/sagemaker/jumpstart/getting-started/?sagemaker-jumpstart-cards.sort-by=item.additionalFields.priority&sagemaker-jumpstart-cards.sort-order=asc&awsf.sagemaker-jumpstart-filter-product-type=product-type%23foundation-model&awsf.sagemaker-jumpstart-filter-text=ml-task-type%23text-generation&awsf.sagemaker-jumpstart-filter-vision=*all&awsf.sagemaker-jumpstart-filter-tabular=*all&awsf.sagemaker-jumpstart-filter-audio-tasks=*all&awsf.sagemaker-jumpstart-filter-multimodal=*all&awsf.sagemaker-jumpstart-filter-RL=*all&awsm.page-sagemaker-jumpstart-cards=1)**文字產生**篩選器。您也可以直接在 Amazon SageMaker Studio 使用者介面或 SageMaker Studio Classic 使用者介面中根據任務來探索基礎模型。只有公開可用的文字產生模型子集可在 JumpStart 中進行微調。如需詳細資訊，請參閱[在 Amazon SageMaker Studio Classic 中使用基礎模型](jumpstart-foundation-models-use-studio.md)。

### 公開可用的影像產生模型
<a name="jumpstart-foundation-models-choose-task-image-generation"></a>

JumpStart 提供多種穩定擴散影像產生基礎模型，包括穩定性 AI 的基礎模型，以及針對 Hugging Face 特定文字轉影像任務的預先訓練模型。如果您需要微調文字到影像的基礎模型，則可以使用穩定性 AI 中的穩定擴散 2.1 基礎。如果您想要探索已針對特定藝術風格進行訓練的模型，可以直接在 Amazon SageMaker Studio 使用者介面或 SageMaker Studio Classic 使用者介面中探索來自 Hugging Face 的眾多第三方模型其中一種。

若要探索最新的影像產生 JumpStart 基礎模型，請使用 [開始使用 Amazon SageMaker JumpStart](https://aws.amazon.com/sagemaker/jumpstart/getting-started/?sagemaker-jumpstart-cards.sort-by=item.additionalFields.priority&sagemaker-jumpstart-cards.sort-order=asc&awsf.sagemaker-jumpstart-filter-product-type=product-type%23foundation-model&awsf.sagemaker-jumpstart-filter-text=*all&awsf.sagemaker-jumpstart-filter-vision=*all&awsf.sagemaker-jumpstart-filter-tabular=*all&awsf.sagemaker-jumpstart-filter-audio-tasks=*all&awsf.sagemaker-jumpstart-filter-multimodal=ml-task-type%23txt2img&awsf.sagemaker-jumpstart-filter-RL=*all&awsm.page-sagemaker-jumpstart-cards=1) 產品說明頁面上的**文字轉換影像**篩選器。若要開始使用您選擇的文字轉影像基礎模型，請參閱[JumpStart 基礎模型用量](jumpstart-foundation-models-use.md)。

## 專屬基礎模型
<a name="jumpstart-foundation-models-latest-proprietary"></a>

Amazon SageMaker JumpStart 可讓您存取來自第三方供應商的專屬基礎模型，例如 [AI21 Lab](https://www.ai21.com/)、[Cohere](https://cohere.com/)和 [LightOn](https://www.lighton.ai/)。

若要開始使用這些專屬模型之一，請參閱[JumpStart 基礎模型用量](jumpstart-foundation-models-use.md)。若要使用專屬基礎模型，您必須先訂閱 AWS Marketplace中的模型。訂閱模型後，前往 Studio 或 SageMaker Studio Classic 中的基礎模型。如需詳細資訊，請參閱[SageMaker JumpStart 預先訓練模型](studio-jumpstart.md)。

若要探索最新專屬基礎模型的各種使用案例，請參閱[開始使用 Amazon SageMaker JumpStart](https://aws.amazon.com/sagemaker/jumpstart/getting-started/?sagemaker-jumpstart-cards.sort-by=item.additionalFields.priority&sagemaker-jumpstart-cards.sort-order=asc&awsf.sagemaker-jumpstart-filter-product-type=product-type%23foundation-model&awsf.sagemaker-jumpstart-filter-text=*all&awsf.sagemaker-jumpstart-filter-vision=*all&awsf.sagemaker-jumpstart-filter-tabular=*all&awsf.sagemaker-jumpstart-filter-audio-tasks=*all&awsf.sagemaker-jumpstart-filter-multimodal=*all&awsf.sagemaker-jumpstart-filter-RL=*all&sagemaker-jumpstart-cards.q=proprietary&sagemaker-jumpstart-cards.q_operator=AND)。

# JumpStart 基礎模型用量
<a name="jumpstart-foundation-models-use"></a>

透過 Amazon SageMaker Studio,Studio 或 Amazon SageMaker Studio Classic 選擇、訓練或部署基礎模型、以程式設計方式搭配 SageMaker Python SDK 使用 JumpStart 基礎模型，並直接透過 SageMaker AI 主控台探索 JumpStart 基礎模型。

**Topics**
+ [在 Studio 中使用基礎模型](jumpstart-foundation-models-use-studio-updated.md)
+ [在 Amazon SageMaker Studio Classic 中使用基礎模型](jumpstart-foundation-models-use-studio.md)
+ [搭配 SageMaker Python SDK 使用基礎模型](jumpstart-foundation-models-use-python-sdk.md)
+ [在 SageMaker AI 主控台中探索基礎模型](jumpstart-foundation-models-use-console.md)

# 在 Studio 中使用基礎模型
<a name="jumpstart-foundation-models-use-studio-updated"></a>

Amazon SageMaker Studio 允許您直接透過 Studio 使用者介面微調、部署和評估公開可用和專屬的 JumpStart 基礎模型。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](studio.md)。

若要開始使用，請導覽至 Amazon SageMaker Studio 中的 JumpStart 登陸頁面。您可以從**首頁**或左側面板功能表存取它。在 **JumpStart** 登陸頁面上，您可以從公開可用和專屬模型的提供者探索模型中樞，並搜尋模型。

在每個模型中樞中，您可以依**最受喜歡**、**最多下載**、**最近更新**或依任務篩選模型。選擇模型以檢視其詳細資訊卡。在模型詳細資訊卡上，您可以選擇**微調**、**部署**或**評估**模型，視可用的選項而定。請注意，並非所有模型都可用於微調或評估。

如需開始使用 Amazon SageMaker Studio 的詳細資訊，請參閱[Amazon SageMaker Studio](studio-updated.md)。

**Topics**
+ [在 Studio 中微調模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)
+ [在 Studio 中部署模型](jumpstart-foundation-models-use-studio-updated-deploy.md)
+ [在 Studio 中評估模型](jumpstart-foundation-models-use-studio-updated-evaluate.md)
+ [在 Amazon Bedrock 中使用您的 SageMaker JumpStart 模型](jumpstart-foundation-models-use-studio-updated-register-bedrock.md)

# 在 Studio 中微調模型
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune"></a>

微調會在新資料集上訓練預先訓練的模型，而不需要從頭開始訓練。這個程序也稱為移轉學習，可以利用較小的資料集和較短的訓練時間來產生精確的模型。若要微調 JumpStart 基礎模型，請導覽至 Studio 使用者介面中的模型詳細資訊卡。如需如何在 Studio 中開啟 JumpStart 的詳細資訊，請參閱[在 Studio 中開啟 JumpStart](studio-jumpstart.md#jumpstart-open-studio)。導覽至您選擇的模型詳細資訊卡後，選擇右上角的**訓練**。請注意，並非所有模型都微調功能。

**重要**  
某些基礎模型必須先明確接受終端使用者授權協議 (EULA)，才能進行微調。如需詳細資訊，請參閱[在 Amazon SageMaker Studio 接受 EULA](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula-studio)。

## 模型設定
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune-model"></a>

在 Amazon SageMaker Studio 中使用預先訓練的 JumpStart 基礎模型時，預設會填入**模型成品位置 (Amazon S3 URI)**。若要編輯預設 Amazon S3 URI，請選擇**輸入模型成品位置**。並非所有模型都支援變更模型成品位置。

## 資料設定
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune-data"></a>

在**資料**欄位中，提供訓練資料集位置的 Amazon S3 URI 點。預設 Amazon S3 URI 指向範例訓練資料集。若要編輯預設的 Amazon S3 URI，請選擇**輸入訓練資料集**並變更 URI。請務必檢閱 Amazon SageMaker Studio 中的模型詳細資訊卡，以取得格式化訓練資料的相關資訊。

## 超參數
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune-hyperparameters"></a>

您可以自訂用於微調模型的訓練工作的超參數。每個可微調模型的可用超參數視模型而有所不同。

以下超參數在模型中很常見：
+ **時期** - 一個時期是整個資料集的一個循環。一個批次包括多個間隔，多個批次最終組成一個時期。執行多個週期，直到模型的精準度達到可接受的程度，或者當誤差率降至可接受的程度以下為止。
+ **學習速率** - 值應該在時期之間改變的量。在改良模型時，會推動其內部權重，並檢查錯誤率以查看模型是否有所改善。典型的學習速率是 0.1 或 0.01，其中 0.01 是較小的調整，可能會導致訓練需要很長時間才能收斂，而 0.1 則大得多，可能導致訓練過衝。它是您可以調整以訓練模型的主要超參數之一。請注意，針對文字模型，較小的學習速率要 (BERT 為 5e-5) 可能會帶來更準確的模型。
+ **Batch 大小** - 每個間隔從資料集中選擇要傳送到 GPU 進行訓練的記錄數。

檢閱 Studio UI 中模型詳細資訊卡中工具提示的提示和其他資訊，以進一步了解您所選擇模型特定的超參數。

如需超參數的詳細資訊，請參閱[通常支援的微調超參數](jumpstart-foundation-models-fine-tuning.md#jumpstart-foundation-models-fine-tuning-hyperparameters)。

## 部署
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune-instance"></a>

為您的訓練任務指定訓練執行個體類型和輸出成品位置。您只能從與您在微調 Studio 使用者介面時所選模型相容的執行個體中選擇。預設輸出成品位置是 SageMaker AI 預設儲存貯體。若要變更輸出成品位置，請選擇**輸入輸出成品位置**，然後變更 Amazon S3 URI。

## 安全
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune-security"></a>

指定用於訓練任務的安全設定，包括 SageMaker AI 用來訓練模型的 IAM 角色、訓練任務是否應連線至虛擬私有雲端 (VPC)，以及任何可保護您資料的加密金鑰。

## 其他資訊
<a name="jumpstart-foundation-models-use-studio-updated-fine-tune-additional-info"></a>

在**其他資訊**欄位中，您可以編輯訓練任務名稱。您也可以新增和移除採用鍵值對形式的標籤，以協助組織和分類微調訓練任務。

提供微調組態的資訊之後，請選擇**提交**。如果您選擇微調的預先訓練基礎模型在訓練之前必須明確接受最終使用者授權協議 (EULA)，則會在快顯視窗中提供 EULA。若要接受 EULA 的條款，請選擇**接受**。在下載或使用模型之前，您有責任審查並遵守任何適用的授權條款，並確保這些條款適用於您的使用案例。

# 在 Studio 中部署模型
<a name="jumpstart-foundation-models-use-studio-updated-deploy"></a>

若要部署 JumpStart 基礎模型，請在 Studio 使用者介面中導覽至模型詳細資訊卡。如需如何在 Studio 中開啟 JumpStart 的詳細資訊，請參閱[在 Studio 中開啟 JumpStart](studio-jumpstart.md#jumpstart-open-studio)。導覽至您選擇的模型詳細資訊頁面後，請選擇 Studio 使用者介面右上角的**部署**。然後，依照[使用 SageMaker Studio 部署模型](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deploy-models.html#deploy-models-studio)中的步驟進行。

**重要**  
部分基礎模型需要在部署前明確接受終端使用者授權協議 (EULA)。如需詳細資訊，請參閱[在 Amazon SageMaker Studio 接受 EULA](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula-studio)。

# 在 Studio 中評估模型
<a name="jumpstart-foundation-models-use-studio-updated-evaluate"></a>

Amazon SageMaker JumpStart 與 Studio 中的 SageMaker Clarify 基礎模型評估 (FME) 整合。如果 JumpStart 模型有可用的內建評估功能，您可以在 JumpStart Studio 使用者介面中選擇模型詳細資訊頁面右上角的**評估**。如需詳細資訊，請參閱[評估基礎模型](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-evaluate.html)。

# 在 Amazon Bedrock 中使用您的 SageMaker JumpStart 模型
<a name="jumpstart-foundation-models-use-studio-updated-register-bedrock"></a>

您可以註冊您已從 Amazon SageMaker JumpStart 部署到 Amazon Bedrock 的模型。使用 Amazon Bedrock，您可以在多個端點之後託管模型。您也可以使用 Amazon Bedrock 功能，例如客服和知識庫。如需有關使用 Amazon Bedrock 模型的詳細資訊，請參閱[https://docs.aws.amazon.com/bedrock/latest/userguide/amazon-bedrock-marketplace.html](https://docs.aws.amazon.com/bedrock/latest/userguide/amazon-bedrock-marketplace.html)。

**重要**  
若要將模型遷移至 Amazon Bedrock，建議您將 [AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html) 政策連接至 IAM 角色。如果您無法連接受管政策，請確定您的 IAM 角色具有下列許可：  

****  

```
{
    	"Version":"2012-10-17",		 	 	 
    	"Statement": [
    		{
    			"Sid": "BedrockAll",
    			"Effect": "Allow",
    			"Action": [
    				"bedrock:*"
    			],
    			"Resource": "*"
    		},
    		{
    			"Sid": "DescribeKey",
    			"Effect": "Allow",
    			"Action": [
    				"kms:DescribeKey"
    			],
    			"Resource": "arn:*:kms:*:::*"
    		},
    		{
    			"Sid": "APIsWithAllResourceAccess",
    			"Effect": "Allow",
    			"Action": [
    				"iam:ListRoles",
    				"ec2:DescribeVpcs",
    				"ec2:DescribeSubnets",
    				"ec2:DescribeSecurityGroups"
    			],
    			"Resource": "*"
    		},
    		{
    			"Sid": "MarketplaceModelEndpointMutatingAPIs",
    			"Effect": "Allow",
    			"Action": [
    				"sagemaker:CreateEndpoint",
    				"sagemaker:CreateEndpointConfig",
    				"sagemaker:CreateModel",
    				"sagemaker:CreateInferenceComponent",
    				"sagemaker:DeleteInferenceComponent",
    				"sagemaker:DeleteEndpoint",
    				"sagemaker:UpdateEndpoint"
    			],
    			"Resource": [
    				"arn:aws:sagemaker:*:*:endpoint/*",
    				"arn:aws:sagemaker:*:*:endpoint-config/*",
    				"arn:aws:sagemaker:*:*:model/*"
    			],
    			"Condition": {
    				"StringEquals": {
    					"aws:CalledViaLast": "bedrock.amazonaws.com"
    				}
    			}
    		},
    		{
    			"Sid": "BedrockEndpointTaggingOperations",
    			"Effect": "Allow",
    			"Action": [
    				"sagemaker:AddTags",
    				"sagemaker:DeleteTags"
    			],
    			"Resource": [
    				"arn:aws:sagemaker:*:*:endpoint/*",
    				"arn:aws:sagemaker:*:*:endpoint-config/*",
    				"arn:aws:sagemaker:*:*:model/*"
    			]
    		},
    		{
    			"Sid": "MarketplaceModelEndpointNonMutatingAPIs",
    			"Effect": "Allow",
    			"Action": [
    				"sagemaker:DescribeEndpoint",
    				"sagemaker:DescribeEndpointConfig",
    				"sagemaker:DescribeModel",
    				"sagemaker:DescribeInferenceComponent",
    				"sagemaker:ListEndpoints",
    				"sagemaker:ListTags"
    			],
    			"Resource": [
    				"arn:aws:sagemaker:*:*:endpoint/*",
    				"arn:aws:sagemaker:*:*:endpoint-config/*",
    				"arn:aws:sagemaker:*:*:model/*"
    			],
    			"Condition": {
    				"StringEquals": {
    					"aws:CalledViaLast": "bedrock.amazonaws.com"
    				}
    			}
    		},
    		{
    			"Sid": "BedrockEndpointInvokingOperations",
    			"Effect": "Allow",
    			"Action": [
    				"sagemaker:InvokeEndpoint",
    				"sagemaker:InvokeEndpointWithResponseStream"
    			],
    			"Resource": [
    				"arn:aws:sagemaker:*:*:endpoint/*"
    			],
    			"Condition": {
    				"StringEquals": {
    					"aws:CalledViaLast": "bedrock.amazonaws.com"
    				}
    			}
    		},
    		{
    			"Sid": "DiscoveringMarketplaceModel",
    			"Effect": "Allow",
    			"Action": [
    				"sagemaker:DescribeHubContent"
    			],
    			"Resource": [
    				"arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*",
    				"arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
    			]
    		},
    		{
    			"Sid": "AllowMarketplaceModelsListing",
    			"Effect": "Allow",
    			"Action": [
    				"sagemaker:ListHubContents"
    			],
    			"Resource": "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
    		},
    		{
    			"Sid": "RetrieveSubscribedMarketplaceLicenses",
    			"Effect": "Allow",
    			"Action": [
    				"license-manager:ListReceivedLicenses"
    			],
    			"Resource": [
    				"*"
    			]
    		},
    		{
    			"Sid": "PassRoleToSageMaker",
    			"Effect": "Allow",
    			"Action": [
    				"iam:PassRole"
    			],
    			"Resource": [
    				"arn:aws:iam::*:role/*Sagemaker*ForBedrock*"
    			],
    			"Condition": {
    				"StringEquals": {
    					"iam:PassedToService": [
    						"sagemaker.amazonaws.com",
    						"bedrock.amazonaws.com"
    					]
    				}
    			}
    		},
    		{
    			"Sid": "PassRoleToBedrock",
    			"Effect": "Allow",
    			"Action": [
    				"iam:PassRole"
    			],
    			"Resource": "arn:aws:iam::*:role/*AmazonBedrock*",
    			"Condition": {
    				"StringEquals": {
    					"iam:PassedToService": [
    						"bedrock.amazonaws.com"
    					]
    				}
    			}
    		}
    	]
    }
```
Amazon Bedrock 完整存取政策僅提供對 Amazon Bedrock API 的許可。若要在 中使用 Amazon Bedrock AWS 管理主控台，您的 IAM 角色也必須具有下列許可：  

```
{
        "Sid": "AllowConsoleS3AccessForBedrockMarketplace",
        "Effect": "Allow",
        "Action": [
          "s3:GetObject",
          "s3:GetBucketCORS",
          "s3:ListBucket",
          "s3:ListBucketVersions",
          "s3:GetBucketLocation"
        ],
        "Resource": "*"
    }
```
如果您正在撰寫自己的政策，則必須包含允許資源其 Amazon Bedrock 市集動作的政策陳述式。例如，下列政策允許 Amazon Bedrock 針對您已部署至端點的模型使用 `InvokeModel` 操作。  

****  

```
{
    
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "BedrockAll",
                "Effect": "Allow",
                "Action": [
                    "bedrock:InvokeModel"
                ],
                "Resource": [
                "arn:aws:bedrock:us-east-1:111122223333:marketplace/model-endpoint/all-access"
                ]
            },
            {
                "Sid": "VisualEditor1",
                "Effect": "Allow",
                "Action": ["sagemaker:InvokeEndpoint"],
                "Resource": "arn:aws:sagemaker:us-east-1:111122223333:endpoint/*",
                "Condition": {
                    "StringEquals": {
                        "aws:ResourceTag/project": "example-project-id",
                        "aws:CalledViaLast": "bedrock.amazonaws.com"
                    }
                }
            }
        ]
    
}
```

部署模型之後，您便可以在 Amazon Bedrock 中使用該模型。若要查看您是否可以在 Amazon Bedrock 中使用它，請導覽至 Studio 使用者介面中的模型詳細資訊卡。如果模型卡表示 **Bedrock 準備就緒**，您可以向 Amazon Bedrock 註冊模型。

**重要**  
根據預設，Amazon SageMaker JumpStart 會停用您所部署模型的網路存取權。如果您已啟用網路存取權，您便無法將模型搭配 Amazon Bedrock 使用。如果您想要將模型搭配 Amazon Bedrock 使用，則必須在停用網路存取權的情況下重新部署模型。

若要搭配 Amazon Bedrock 使用，請導覽至**端點詳細資訊**頁面，然後選擇 Studio 使用者介面右上角的**搭配 Bedrock 使用**。看到快顯視窗後，選擇**向 Bedrock 註冊**。

# 在 Amazon SageMaker Studio Classic 中使用基礎模型
<a name="jumpstart-foundation-models-use-studio"></a>

您可以直接透過 Studio Classic 使用者介面微調與部署公開和專屬的 JumpStart 基礎模型。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊，請參閱 [Amazon SageMaker Studio](studio-updated.md)。  
Studio Classic 仍會針對現有工作負載進行維護，但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式，而且無法建立新的應用程式。建議您[將工作負載遷移至新的 Studio 體驗](studio-updated-migrate.md)。

若要開始使用 Studio Classic，請參閱[啟動 Amazon SageMaker Studio Classic](studio-launch.md)。

 ![\[JumpStart foundation models available in Amazon SageMaker Studio Classic.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/jumpstart/jumpstart-fm-studio.png) 

開啟 Amazon SageMaker Studio Classic 之後，請在導覽窗格的 SageMaker JumpStart 區段中選擇**模型、筆記本和解決方案**。然後，根據您的使用案例，向下捲動以尋找**基礎模型：文字產生**或**基礎模型：影像產生**區段。

您可以在建議的基礎模型卡片上選擇**檢視模型**，或選擇**探索所有模型**以查看用於產生文字或影像產生的所有可用基礎模型。如果您選擇查看所有可用的模型，則可以依工作、資料類型、內容類型或架構進一步篩選可用的模型。您也可以直接在搜尋列中**搜尋**模型名稱。如果您需要選取模型的指導，請參閱[可用的基礎模型](jumpstart-foundation-models-latest.md)。

**重要**  
某些基礎模型需要明確接受終端使用者授權協議 (EULA)。如需詳細資訊，請參閱[在 Amazon SageMaker Studio 接受 EULA](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula-studio)。

在 Studio Classic 中為您選擇的基礎模型選擇**檢視模型**之後，您可以部署模型。如需詳細資訊，請參閱[部署模型](jumpstart-deploy.md)。

您也可以在**在筆記本中執行**區段中選擇**開啟筆記本**，直接在 Studio Classic 中執行基礎模型的範例筆記本。

**注意**  
若要在 Studio Classic 中部署專屬基礎模型，您必須先訂閱 AWS Marketplace中的模型。 AWS Marketplace 連結會在 Studio Classic 內關聯的範例筆記本中提供。

如果模型可微調，您也可以微調模型。如需詳細資訊，請參閱[微調模型](jumpstart-fine-tune.md)。如需可微調 JumpStart 基礎模型的清單，請參閱[用於微調的基礎模型和超參數](jumpstart-foundation-models-fine-tuning.md)。

# 搭配 SageMaker Python SDK 使用基礎模型
<a name="jumpstart-foundation-models-use-python-sdk"></a>

所有 JumpStart 基礎模型都可以使用 SageMaker Python SDK 以程式設計方式部署 Python。

若要部署公開可用的基礎模型，您可以使用其模型 ID。您可以在[具備預先訓練模型表的內建演算法](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)中找到所有公開可用基礎模型的模型 ID。在**搜尋**列中搜尋基礎模型的名稱。使用**顯示項目**下拉式清單或分頁控制項來導覽可用的模型。

訂閱 AWS Marketplace中的模型後，必須使用模型套件資訊部署專屬模型。

您可以在 [可用的基礎模型](jumpstart-foundation-models-latest.md) 中找到 JumpStart 可用模型清單。

**重要**  
某些基礎模型需要明確接受終端使用者授權協議 (EULA)。如需詳細資訊，請參閱[使用 SageMaker Python SDK 接受 EULA](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula-python-sdk)。

下列各節說明如何使用 `JumpStartEstimator` 類別微調公開可用的基礎模型、使用 `JumpStartModel` 類別部署公開可用的基礎模型，以及使用 `ModelPackage` 類別部署專屬基礎模型。

**Topics**
+ [使用 `JumpStartEstimator` 類別微調公開可用的基礎模型](jumpstart-foundation-models-use-python-sdk-estimator-class.md)
+ [使用 `JumpStartModel` 類別部署公開可用的基礎模型](jumpstart-foundation-models-use-python-sdk-model-class.md)
+ [使用 `ModelPackage` 類別部署專屬基礎模型](jumpstart-foundation-models-use-python-sdk-proprietary.md)

# 使用 `JumpStartEstimator` 類別微調公開可用的基礎模型
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class"></a>

**注意**  
如需在私有彙整中樞內微調基礎模型的指示，請參閱[微調彙整中樞模型](jumpstart-curated-hubs-fine-tune.md)。

使用 SageMaker Python SDK，您可以僅使用數行程式碼微調內建演算法或預先訓練的模型。

1. 首先，在[具備預先訓練模型表的內建演算法](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)中找到您所選模型的模型 ID。

1. 使用模型 ID，將訓練任務定義為 JumpStart 估算器。

   ```
   from sagemaker.jumpstart.estimator import JumpStartEstimator
   
   model_id = "huggingface-textgeneration1-gpt-j-6b"
   estimator = JumpStartEstimator(model_id=model_id)
   ```

1. 在模型 `estimator.fit()` 上執行，指向要用於微調的訓練資料。

   ```
   estimator.fit(
       {"train": training_dataset_s3_path, "validation": validation_dataset_s3_path}
   )
   ```

1. 然後，使用 `deploy` 方法自動部署模型以進行推論。在此範例中，我們使用來自 Hugging Face 的 GPT-J 6B 模型。

   ```
   predictor = estimator.deploy()
   ```

1. 然後，您可以使用 `predict` 方法對部署的模型執行推論。

   ```
   question = "What is Southern California often abbreviated as?"
   response = predictor.predict(question)
   print(response)
   ```

**注意**  
此範例使用基礎模型 GPT-J 6B，其適用於各種文字產生使用案例，包括問題回答、具名實體辨識、摘要等。如需模型使用案例的更多相關資訊，請參閱[可用的基礎模型](jumpstart-foundation-models-latest.md)。

您可以在建立 `JumpStartEstimator` 時選擇性地指定模型版本或執行個體類型。如需 `JumpStartEstimator ` 類別及其參數的詳細資訊，請參閱 [JumpStartEstimator](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.jumpstart.estimator.JumpStartEstimator)。

## 檢查預設執行個體類型
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class-instance-types"></a>

使用 `JumpStartEstimator` 類別微調預先訓練的模型時，您可以選擇包含特定的模型版本或執行個體類型。所有 JumpStart 模型都有預設執行個體類型。使用下列程式碼檢索預設訓練執行個體類型：

```
from sagemaker import instance_types

instance_type = instance_types.retrieve_default(
    model_id=model_id,
    model_version=model_version,
    scope="training")
print(instance_type)
```

您可以使用 `instance_types.retrieve()` 方法查看所指定 JumpStart 模型的所有支援執行個體類型。

## 檢查預設超參數
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class-hyperparameters"></a>

若要檢查用於訓練的預設超參數，您可以使用 `hyperparameters` 類別中的 `retrieve_default()` 方法。

```
from sagemaker import hyperparameters

my_hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)
print(my_hyperparameters)

# Optionally override default hyperparameters for fine-tuning
my_hyperparameters["epoch"] = "3"
my_hyperparameters["per_device_train_batch_size"] = "4"

# Optionally validate hyperparameters for the model
hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)
```

如需超參數的詳細資訊，請參閱[通常支援的微調超參數](jumpstart-foundation-models-fine-tuning.md#jumpstart-foundation-models-fine-tuning-hyperparameters)。

## 檢查預設指標定義
<a name="jumpstart-foundation-models-use-python-sdk-estimator-class-metric-definitions"></a>

您也可以檢查預設指標定義：

```
print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))
```

# 使用 `JumpStartModel` 類別部署公開可用的基礎模型
<a name="jumpstart-foundation-models-use-python-sdk-model-class"></a>

您可以使用 SageMaker Python SDK，在數行程式碼中將內建演算法或預先訓練的模型部署至 SageMaker AI 端點。

1. 首先，在[具備預先訓練模型表的內建演算法](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)中找到您所選模型的模型 ID。

1. 使用模型 ID，將您的模型定義為 JumpStart 模型。

   ```
   from sagemaker.jumpstart.model import JumpStartModel
   
   model_id = "huggingface-text2text-flan-t5-xl"
   my_model = JumpStartModel(model_id=model_id)
   ```

1. 使用 `deploy` 方法自動部署模型以進行推論。在此範例中，我們使用來自 Hugging Face 的 FLAN-T5 XL 模型。

   ```
   predictor = my_model.deploy()
   ```

1. 然後，您可以使用 `predict` 方法對部署的模型執行推論。

   ```
   question = "What is Southern California often abbreviated as?"
   response = predictor.predict(question)
   print(response)
   ```

**注意**  
此範例使用基礎模型 FLAN-T5 XL，其適用於各種文字產生使用案例，包括問題回答、摘要、聊天機器人建立等。如需模型使用案例的更多相關資訊，請參閱[可用的基礎模型](jumpstart-foundation-models-latest.md)。

如需 `JumpStartModel ` 類別及其參數的詳細資訊，請參閱 [JumpStartModel](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.jumpstart.model.JumpStartModel)。

## 檢查預設執行個體類型
<a name="jumpstart-foundation-models-use-python-sdk-model-class-instance-types"></a>

使用 `JumpStartModel` 類別部署預先訓練的模型時，您可以選擇包含特定的模型版本或執行個體類型。所有 JumpStart 模型都有預設執行個體類型。使用下列程式碼檢索預設部署執行個體類型：

```
from sagemaker import instance_types

instance_type = instance_types.retrieve_default(
    model_id=model_id,
    model_version=model_version,
    scope="inference")
print(instance_type)
```

使用 `instance_types.retrieve()` 方法查看所指定 JumpStart 模型的所有支援執行個體類型。

## 使用推論元件將多個模型部署到共用端點
<a name="jumpstart-foundation-models-use-python-sdk-model-class-endpoint-types"></a>

推論元件是 SageMaker AI 託管物件，可用來將一或多個模型部署到端點，以提高彈性和可擴展性。您必須將 JumpStart 模型的 `endpoint_type` 變更為以推論元件為基礎，而不是預設的以模型為基礎端點。

```
predictor = my_model.deploy(
    endpoint_name = 'jumpstart-model-id-123456789012', 
    endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED
)
```

如需使用推論元件建立端點和部署 SageMaker AI 模型的詳細資訊，請參閱[與多個模型共享資源使用率](realtime-endpoints-deploy-models.md#deployed-shared-utilization)。

## 檢查有效的輸入和輸出推論格式
<a name="jumpstart-foundation-models-use-python-sdk-model-class-input-output"></a>

若要檢查有效的資料輸入和輸出格式以進行推論，您可以使用 `Serializers` 和 `Deserializers` 類別中的 `retrieve_options()` 方法。

```
print(sagemaker.serializers.retrieve_options(model_id=model_id, model_version=model_version))
print(sagemaker.deserializers.retrieve_options(model_id=model_id, model_version=model_version))
```

## 檢查支援的內容並接受類型
<a name="jumpstart-foundation-models-use-python-sdk-model-class-content-types"></a>

同樣地，您可以使用 `retrieve_options()` 方法來檢查支援的內容，並接受模型的類型。

```
print(sagemaker.content_types.retrieve_options(model_id=model_id, model_version=model_version))
print(sagemaker.accept_types.retrieve_options(model_id=model_id, model_version=model_version))
```

如需公用程式的詳細資訊，請參閱[公用程式 API](https://sagemaker.readthedocs.io/en/stable/api/utility/index.html)。

# 使用 `ModelPackage` 類別部署專屬基礎模型
<a name="jumpstart-foundation-models-use-python-sdk-proprietary"></a>

訂閱 AWS Marketplace中的模型後，必須使用模型套件資訊部署專屬模型。如需 SageMaker AI 和 的詳細資訊 AWS Marketplace，請參閱[在其中購買和銷售 Amazon SageMaker AI 演算法和模型 AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html)。若要尋找最新專屬模型 AWS Marketplace 的連結，請參閱 [Amazon SageMaker JumpStart 入門](https://aws.amazon.com/sagemaker/jumpstart/getting-started/?sagemaker-jumpstart-cards.sort-by=item.additionalFields.priority&sagemaker-jumpstart-cards.sort-order=asc&awsf.sagemaker-jumpstart-filter-product-type=product-type%23foundation-model&awsf.sagemaker-jumpstart-filter-text=*all&awsf.sagemaker-jumpstart-filter-vision=*all&awsf.sagemaker-jumpstart-filter-tabular=*all&awsf.sagemaker-jumpstart-filter-audio-tasks=*all&awsf.sagemaker-jumpstart-filter-multimodal=*all&awsf.sagemaker-jumpstart-filter-RL=*all&sagemaker-jumpstart-cards.q=proprietary&sagemaker-jumpstart-cards.q_operator=AND)。

訂閱您選擇的模型後 AWS Marketplace，您可以使用 SageMaker Python SDK 和與模型提供者相關聯的 SDK 部署基礎模型。例如，AI21 Labs、Cohere 和 LightOn 分別使用`"ai21[SM]"`、`cohere-sagemaker`、和 `lightonsage` 套件。

例如，若要使用 AI21 Labs 的 Jurassic-2 Jumbo Instruct 定義 JumpStart 模型，請使用下列程式碼：

```
import sagemaker
import ai21

role = get_execution_role()
sagemaker_session = sagemaker.Session()
model_package_arn = "arn:aws:sagemaker:us-east-1:865070037744:model-package/j2-jumbo-instruct-v1-1-43-4e47c49e61743066b9d95efed6882f35"

my_model = ModelPackage(
    role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session
)
```

如需逐步範例，請在 SageMaker Studio Classic 中尋找並執行與您選擇的專屬基礎模型相關聯的筆記本。如需詳細資訊，請參閱[在 Amazon SageMaker Studio Classic 中使用基礎模型](jumpstart-foundation-models-use-studio.md)。如需 SageMaker Python SDK 的詳細資訊，請參閱 [https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.model.ModelPackage](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.model.ModelPackage)。

# 在 SageMaker AI 主控台中探索基礎模型
<a name="jumpstart-foundation-models-use-console"></a>

您可以直接透過 Amazon SageMaker AI 主控台探索 JumpStart 基礎模型。

1. 開啟 Amazon SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左側導覽面板上找到 **JumpStart**，然後選擇**基礎模型**。

1. 瀏覽模型或搜尋特定模型。如果您需要模型選擇的指導，請參閱[可用的基礎模型](jumpstart-foundation-models-latest.md)。選擇**檢視模型**以檢視您選擇之基礎模型的詳細資訊頁面。

1. 如果該模型是專屬模型，請選擇模型詳細資訊頁面右上角的**訂閱**以訂閱 AWS Marketplace中的模型。您應該會收到一封電子郵件，確認訂閱所選擇的模型。如需 SageMaker AI 和 的詳細資訊 AWS Marketplace，請參閱[在其中購買和銷售 Amazon SageMaker AI 演算法和模型 AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html)。公開的基礎模型不需要訂閱。

1. 若要在 GitHub 中檢視範例筆記本，請選擇模型詳細資料頁面右上角的**檢視程式碼**。

1. 若要直接在 Amazon SageMaker Studio Classic 中檢視和執行範例筆記本，請選擇模型詳細資料頁面右上角的**在 Studio 中開啟筆記本**。

# 模型來源和授權協議
<a name="jumpstart-foundation-models-choose"></a>

Amazon SageMaker JumpStart 可讓您存取來自第三方來源和合作夥伴的數百個公開且專屬的基礎模型。您可以直接在 SageMaker AI 主控台、Studio 或 Studio Classic 中探索 JumpStart 基礎模型選取項目。

## 授權和模型來源
<a name="jumpstart-foundation-models-choose-source"></a>

Amazon SageMaker JumpStart 提供對公開和專屬基礎模型的存取。基礎模型由第三方開源和專屬提供商開放和維護。因此，它們會根據模型來源指定的不同授權來發行。請務必檢閱您使用的任何基礎模型的授權。在下載或使用內容之前，您有責任檢查並遵守任何適用的授權條款，並確定這些條款適用於您的使用案例。以下是一些常見基礎模型授權的例子：
+ Alexa Teacher Model
+ Apache 2.0
+ BigScience Responsible AI License v1.0
+ CreativeML Open RAIL\$1\$1-M 授權

同樣地，對於任何專屬的基礎模型，請務必檢閱並遵守模型供應商提供的任何使用條款和使用準則。如果您對特定專屬模型的授權資訊有任何疑問，請直接聯絡模型供應商。您可以在 AWS Marketplace中每個模型頁面的**支援**標籤中找到模型提供者聯絡資訊。

## 終端使用者授權協議
<a name="jumpstart-foundation-models-choose-eula"></a>

部分 JumpStart 基礎模型需要在使用前明確接受終端使用者授權協議 (EULA)。

### 在 Amazon SageMaker Studio 接受 EULA
<a name="jumpstart-foundation-models-choose-eula-studio"></a>

在 Studio 中微調、部署或評估 JumpStart 基礎模型之前，系統可能會提示您接受終端使用者授權協議。若要開始使用 Studio 中的 JumpStart 基礎模型，請參閱[在 Studio 中使用基礎模型](jumpstart-foundation-models-use-studio-updated.md)。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](studio.md)。

部分 JumpStart 基礎模型需要在部署前接受終端使用者授權協議。如果這適用於您選擇使用的基礎模型，則 Studio 會以包含 EULA 內容的視窗來提示您。在下載或使用模型之前，您有責任審查並遵守任何適用的授權條款，並確保這些條款適用於您的使用案例。

#### 在 Amazon SageMaker Studio Classic 中接受 EULA
<a name="jumpstart-foundation-models-choose-eula-studio-classic"></a>

在部署 JumpStart 基礎模型或在 Studio Classic 中開啟 JumpStart 基礎模型筆記本之前，系統可能會提示您接受終端使用者授權協議。若要開始使用 Studio Classic 中的 JumpStart 基礎模型，請參閱[在 Amazon SageMaker Studio Classic 中使用基礎模型](jumpstart-foundation-models-use-studio.md)。

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊，請參閱 [Amazon SageMaker Studio](studio-updated.md)。  
Studio Classic 仍會針對現有工作負載進行維護，但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式，而且無法建立新的應用程式。我們建議您[將工作負載遷移至新的 Studio 體驗](studio-updated-migrate.md)。

部分 JumpStart 基礎模型需要在部署前接受終端使用者授權協議。如果這適用於您選擇使用的基礎模型，Studio Classic 會在您選擇**部署**或**開啟筆記本**之後，提示您一個名為**檢閱使用者授權合約 (EULA) 和可接受使用政策 (AUP)**的視窗。在下載或使用模型之前，您有責任審查並遵守任何適用的授權條款，並確保這些條款適用於您的使用案例。

### 使用 SageMaker Python SDK 接受 EULA
<a name="jumpstart-foundation-models-choose-eula-python-sdk"></a>

下列各節說明如何在使用 SageMaker Python SDK 部署或微調 JumpStart 模型時明確宣告接受 EULA。如需利用 SageMaker Python SDK 開始使用 JumpStart 基礎模型的詳細資訊，請參閱[搭配 SageMaker Python SDK 使用基礎模型](jumpstart-foundation-models-use-python-sdk.md)。

開始之前，請務必備妥下列項目：
+ 升級至所使用模型的最新版本。
+ 安裝最新版本的 SageMaker Python SDK。

**重要**  
若要使用下列工作流程，您必須安裝 v[2.198.0](https://github.com/aws/sagemaker-python-sdk/releases/tag/v2.198.0) 或更新版本的 SageMaker Python SDK。

#### 部署 JumpStart 模型時接受 EULA
<a name="jumpstart-foundation-models-choose-eula-python-sdk-deploy"></a>

對於需要接受終端使用者授權協議的模型，您必須在部署 JumpStart 模型時明確宣告接受 EULA。

```
from sagemaker.jumpstart.model import JumpStartModel
model_id = "meta-textgeneration-llama-2-13b"
my_model = JumpStartModel(model_id=model_id)

# Declare EULA acceptance when deploying your JumpStart model
predictor = my_model.deploy(accept_eula=True)
```

依預設，此 `accept_eula` 值 為 `None`，且必須明確地重新定義為 `True`，才能接受終端使用者授權協議。如需詳細資訊，請參閱 [JumpStartModel](https://sagemaker.readthedocs.io/en/stable/api/inference/model.html#sagemaker.jumpstart.model.JumpStartModel)。

#### 微調 JumpStart 模型時接受 EULA
<a name="jumpstart-foundation-models-choose-eula-python-sdk-fine-tune"></a>

若微調的模型需要接受終端使用者授權協議，則您必須在執行 JumpStart 估算器的 `fit()` 方法時明確宣告接受 EULA。微調預先訓練的模型後，原始模型的權重會改變。因此，當您之後部署經微調的模型時，您不需要接受 EULA。

**注意**  
下列範例會設定 `accept_eula=False`。您應該手動將值變更為 `True`，以接受 EULA。

```
from sagemaker.jumpstart.estimator import JumpStartEstimator
model_id = "meta-textgeneration-llama-2-13b"

# Declare EULA acceptance when defining your JumpStart estimator
estimator = JumpStartEstimator(model_id=model_id)
estimator.fit(accept_eula=False,
{"train": training_dataset_s3_path, "validation": validation_dataset_s3_path}
)
```

`accept_eula` 值預設為 `None`，且必須明確地重新定義為 `fit()` 方法內的 `"true"`，才能接受終端使用者授權協議。如需詳細資訊，請參閱 [JumpStartEstimator](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.jumpstart.estimator.JumpStartEstimator)。

#### EULA 接受 SageMaker Python SDK 2.198.0 之前的版本
<a name="jumpstart-foundation-models-choose-eula-python-sdk-previous-version"></a>

**重要**  
使用 SageMaker Python SDK [2.198.0](https://github.com/aws/sagemaker-python-sdk/releases/tag/v2.198.0) 之前的版本時，您必須使用 SageMaker `Predictor` 類別來接受模型 EULA。

使用 SageMaker Python SDK 以程式設計方式部署 JumpStart 基礎模型之後，您可以使用 SageMaker `[Predictor](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html)` 類別對已部署的端點執行推論。對於需要接受終端使用者授權協議的模型，您必須在呼叫 `Predictor` 類別時明確宣告接受 EULA。

```
predictor.predict(payload, custom_attributes="accept_eula=true")
```

依預設，此 `accept_eula` 值 為 `false`，且必須明確地重新定義為 `true`，才能接受終端使用者授權協議。如果您嘗試在 `accept_eula` 設定為 `false` 時執行推論，預測值會傳回錯誤。如需利用 SageMaker Python SDK 開始使用 JumpStart 基礎模型的詳細資訊，請參閱[搭配 SageMaker Python SDK 使用基礎模型](jumpstart-foundation-models-use-python-sdk.md)。

**重要**  
`custom_attributes` 參數接受採用 `"key1=value1;key2=value2"` 格式的鍵值對。如果您多次使用相同的鍵，推論伺服器會使用與鍵相關聯的最後一個值。例如，如果您傳遞 `"accept_eula=false;accept_eula=true"` 給 `custom_attributes` 參數，則推論伺服器會將值 `true` 與 `accept_eula` 鍵產生關聯。

# 基礎模型自訂
<a name="jumpstart-foundation-models-customize"></a>

基礎模型是能夠解決各種任務的非常強大的模型。為了有效地解決大多數任務，這些模型需要某種形式的自訂。

第一次根據特定使用案例自訂基礎模型的建議方法是透過提示詞工程設計。為您的基礎模型提供精心設計、內容豐富的提示，有助於獲得所需的結果，而無需進行任何微調或改變模型權重。如需詳細資訊，請參閱[基礎模型的提示詞工程](jumpstart-foundation-models-customize-prompt-engineering.md)。

如果提示詞工程不足以將基礎模型自訂為特定任務，您可以在其他網域特定資料上微調基礎模型。如需詳細資訊，請參閱[用於微調的基礎模型和超參數](jumpstart-foundation-models-fine-tuning.md)。微調過程中會改變模型權重。

如果您想要使用知識庫中的資訊來自訂模型，而不需要任何重新訓練，請參閱[檢索增強生成](jumpstart-foundation-models-customize-rag.md)。

# 基礎模型的提示詞工程
<a name="jumpstart-foundation-models-customize-prompt-engineering"></a>

提示詞工程是設計和精簡語言模型的提示或輸入刺激，以產生特定類型的輸出的過程。提示詞工程包括選取適當的關鍵字、提供背景資訊，並以鼓勵模型產生所需回應的方式塑造輸入，而且是積極塑造基礎模型行為和輸出的重要技術。

有效的提示詞工程對於指導模型行為和達到所需的回應非常重要。透過提示詞工程設計，您可以控制模型的色調、風格和領域專業知識，而無需進一步涉及微調等自訂措施。我們建議您在考慮對其他資料微調模型之前，先花時間提示詞工程設計。目標是為模型提供足夠的上下文和指引，以便它可以在看不見或有限的資料案例中推廣和執行良好。

## 零樣本學習
<a name="jumpstart-foundation-models-customize-prompt-engineering-zero-shot"></a>

零樣本學習涉及訓練模型，以概括並對看不見的課程或任務進行預測。若要在零樣本學習環境中執行提示詞工程，我們建議您建構提示，明確提供目標工作和所需輸出格式的相關資訊。例如，如果您想要在模型在訓練期間看不到的一組類別上使用零樣本文字分類的基礎模型，則一個設計良好的提示可能是：`"Classify the following text as either sports, politics, or entertainment: [input text]."` 透過明確指定目標類別和預期的輸出格式，您可以引導模型即使在看不見的類別上也能做出準確的預測。

## 小樣本學習
<a name="jumpstart-foundation-models-customize-prompt-engineering-few-shot"></a>

小樣本學習涉及訓練具有有限資料量的模型，以用於新課程或任務。小樣本學習環境中的提示詞工程專注於設計提示，以有效使用有限的可用訓練資料。例如，如果您使用基礎模型進行影像分類工作，而且只有一些新影像類別的範例，您可以設計一個提示，其中包括可用的已標示範例，以及目標類別的預留位置。例如，提示可能是：`"[image 1], [image 2], and [image 3] are examples of [target class]. Classify the following image as [target class]"`。透過合併有限的標籤範例並明確指定目標類別，您可以引導模型一般化並進行準確的預測，即使在訓練資料最少的情況下也一樣。

## 支援的推論參數
<a name="jumpstart-foundation-models-customize-prompt-engineering-inference-params"></a>

變更推論參數也可能會影響對提示的回應。雖然您可以嘗試盡可能將最多的特異性和內容新增至提示，但您也可以使用支援的推論參數進行實驗。以下是一些常見支援推論參數範例：


| 推論參數 | Description | 
| --- | --- | 
| `max_new_tokens` | 基礎模型回應的輸出長度上限。有效值：整數，範圍：正整數。 | 
| `temperature` | 控制輸出中的隨機性。較高的溫度會導致輸出序列具有低機率的單字，而較低的溫度會導致輸出序列具有高機率的單字。如果 `temperature=0`，回應只會由最高機率的單字 (貪婪解碼) 組成。有效值：浮點數，範圍：正浮點數。 | 
| `top_p` | 在產生文字的每個步驟中，模型會從累積機率為 `top_p` 的最小可能單字集中取樣。有效值：浮動、範圍：0.0、1.0。 | 
| `return_full_text` | 如果為 `True`，則輸入文字是所產生輸出文字的一部分。有效值：布林值，預設值：False。 | 

如需基礎模型推論的詳細資訊，請參閱[使用 `JumpStartModel` 類別部署公開可用的基礎模型](jumpstart-foundation-models-use-python-sdk-model-class.md)。

如果提示詞工程不足以根據特定的業務需求、領域特定語言、目標任務或其他需求調整您的基礎模型，您可以考慮在其他資料上微調模型，或使用檢索增強生成 (RAG)，利用歸檔知識來源的增強內容來增強模型架構。如需詳細資訊，請參閱 [用於微調的基礎模型和超參數](jumpstart-foundation-models-fine-tuning.md) 或 [檢索增強生成](jumpstart-foundation-models-customize-rag.md) 。

# 用於微調的基礎模型和超參數
<a name="jumpstart-foundation-models-fine-tuning"></a>

基礎模型耗費大量計算，並且在一個大型的無標籤語料庫上進行過訓練。微調預先訓練過的基礎模型是一種經濟實惠的方式，可以利用其廣泛的功能，又能在您自己的小型語料庫上自訂模型。微調是一種涉及進一步訓練的自訂方法，並且會改變模型的權重。

有以下需求時，微調可能對您有用：
+ 根據特定業務需求自訂您的模型
+ 您的模型可以成功使用網域特定的語言，例如行業術語、技術術語或其他專業詞彙
+ 針對特定任務增強效能
+ 應用程式中的準確、相對和上下文感知回應
+ 更以事實為基礎，毒性更低，更符合特定要求的反應

根據您的使用案例和選擇的基礎模型，您可以採取兩種主要方法進行微調。

1. 如果您有興趣在特定網域資料上微調模型，請參閱[使用網域適應性微調大型語言模型 (LLM)](jumpstart-foundation-models-fine-tuning-domain-adaptation.md)。

1. 如果您對使用提示詞和回應範例的指令式微調感興趣，請參閱[使用提示指示微調大型語言模型 (LLM)](jumpstart-foundation-models-fine-tuning-instruction-based.md)。

## 可用於微調的基礎模型
<a name="jumpstart-foundation-models-fine-tuning-models"></a>

您可以微調下列任何 JumpStart 基礎模型：
+ Bloom 3B
+ Bloom 7B1
+ BloomZ 3B FP16
+ BloomZ 7B1 FP16
+ Code Llama 13B
+ Code Llama 13B Python
+ Code Llama 34B
+ Code Llama 34B Python
+ Code Llama 70B
+ Code Llama 70B Python
+ Code Llama 7B
+ Code Llama 7B Python
+ CyberAgentLM2-7B-Chat (CALM2-7B-Chat)
+ Falcon 40B BF16
+ Falcon 40B Instruct BF16
+ Falcon 7B BF16
+ Falcon 7B Instruct BF16
+ Flan-T5 基本
+ Flan-T5 大
+ Flan-T5 小
+ Flan-T5 XL
+ Flan-T5 XXL
+ Gemma 2B
+ Gemma 2B Instruct
+ Gemma 7B
+ Gemma 7B Instruct
+ GPT-2 XL
+ GPT-J 6B
+ GPT-Neo 1.3B
+ GPT-Neo 125M
+ GPT-NEO 2.7B
+ LightGPT Instruct 6B
+ Llama 2 13B
+ Llama 2 13B Chat
+ Llama 2 13B Neuron
+ Llama 2 70B
+ Llama 2 70B Chat
+ Llama 2 7B
+ Llama 2 7B Chat
+ Llama 2 7B Neuron
+ Mistral 7B
+ Mixtral 8x7B
+ Mixtral 8x7B Instruct
+ RedPajama INCITE Base 3B V1
+ RedPajama INCITE Base 7B V1
+ RedPajama INCITE Chat 3B V1
+ RedPajama INCITE Chat 7B V1
+ RedPajama INCITE Instruct 3B V1
+ RedPajama INCITE Instruct 7B V1
+ Stable Diffusion 2.1

## 通常支援的微調超參數
<a name="jumpstart-foundation-models-fine-tuning-hyperparameters"></a>

微調時，不同的基礎模型支援不同的超參數。以下是常見的支援超參數，可在訓練期間進一步自訂您的模型：


| 推論參數 | Description | 
| --- | --- | 
| `epoch` | 模型在訓練期間通過微調資料集的次數。必須是大於 1 的整數。 | 
| `learning_rate` |  處理完每批微調訓練範例後，模型權重更新的速率。必須是大於 0 的正浮點數。 | 
| `instruction_tuned` |  是否指示訓練模型。必須是 `'True'` 或 `'False'`。 | 
| `per_device_train_batch_size` |  用於訓練的每個 GPU 核心或 CPU 其批次大小。必須為正整數。 | 
| `per_device_eval_batch_size` |  用於評估的每個 GPU 核心或 CPU 其批次大小。必須為正整數。 | 
| `max_train_samples` |  為了偵錯或加速訓練，請將訓練範例的數量截斷至此值。值 -1 表示模型使用所有的訓練範例。必須為正整數或 -1。 | 
| `max_val_samples` |  為了偵錯或加速訓練，請將驗證範例的數量截斷至此值。值 -1 表示模型使用所有的驗證範例。必須為正整數或 -1。 | 
| `max_input_length` |  記號化後的總輸入序列長度上限。超過此長度的序列將被截斷。如果為 -1，則 `max_input_length` 會設定為 1024 和記號器所定義 `model_max_length` 的最小值。如果設定為正值，則 `max_input_length` 會設定為所提供值和記號器所定義 `model_max_length` 的最小值。必須為正整數或 -1。 | 
| `validation_split_ratio` |  如果沒有驗證管道，則訓練-驗證比率會從訓練資料中分割出來。必須介於 0 到 1 之間。 | 
| `train_data_split_seed` |  如果驗證資料不存在，這會固定將輸入訓練資料隨機分割至模型所使用的訓練和驗證資料。必須是整數。 | 
| `preprocessing_num_workers` |  用於預先處理的程序數目。如果為 `None`，則主要程序會用於預先處理。 | 
| `lora_r` |  低秩適應 (LoRA) r 值，做為權重更新的擴展因素。必須為正整數。 | 
| `lora_alpha` |  低秩適應 (LoRA) alpha 值，做為權重更新的擴展因素。通常為 `lora_r` 大小的 2 到 4 倍。必須為正整數。 | 
| `lora_dropout` |  低秩適應 (LoRA) 層的捨棄值必須是介於 0 到 1 之間的正浮點數。 | 
| `int8_quantization` |  如果為 `True`，則模型會以 8 位元精確度載入以進行訓練。 | 
| `enable_fsdp` |  如果為 `True`，則訓練會使用完全碎片資料平行處理。 | 

您在 Studio 中微調模型時，可以指定超參數值。如需詳細資訊，請參閱[在 Studio 中微調模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)。

您在使用 SageMaker Python SDK 微調模型時，也可以覆寫預設超參數值。如需詳細資訊，請參閱[使用 `JumpStartEstimator` 類別微調公開可用的基礎模型](jumpstart-foundation-models-use-python-sdk-estimator-class.md)。

# 使用網域適應性微調大型語言模型 (LLM)
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation"></a>

網域適應性微調可讓您利用預先訓練的基礎模型，並使用有限的網域特定資料為特定任務進行調整。如果提示詞工程無法提供足夠的自訂功能，您可以使用網域調整微調，讓您的模型使用領域特定語言，例如產業術語、技術用語或其他專業資料。此微調程序會改變模型的權重。

若要在網域特定的資料集上微調模型：

1. 準備您的訓練資料。如需說明，請參閱[準備和上傳訓練資料以進行域自適應微調](#jumpstart-foundation-models-fine-tuning-domain-adaptation-prepare-data)。

1. 建立您的微調訓練任務。如需說明，請參閱[為指令微調建立訓練任務](#jumpstart-foundation-models-fine-tuning-domain-adaptation-train)。

您可以在 [範例筆記本](#jumpstart-foundation-models-fine-tuning-domain-adaptation-examples) 中找到端對端範例。

網域適應性微調適用於下列基礎模型：

**注意**  
某些 JumpStart 基礎模型 (例如 Llama 2 7B) 需要先接受終端使用者授權協議，才能微調和執行推論。如需詳細資訊，請參閱[終端使用者授權協議](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula)。
+ Bloom 3B
+ Bloom 7B1
+ BloomZ 3B FP16
+ BloomZ 7B1 FP16
+ GPT-2 XL
+ GPT-J 6B
+ GPT-Neo 1.3B
+ GPT-Neo 125M
+ GPT-NEO 2.7B
+ Llama 2 13B
+ Llama 2 13B Chat
+ Llama 2 13B Neuron
+ Llama 2 70B
+ Llama 2 70B Chat
+ Llama 2 7B
+ Llama 2 7B Chat
+ Llama 2 7B Neuron

## 準備和上傳訓練資料以進行域自適應微調
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-prepare-data"></a>

域自適應微調的訓練資料可以 CSV、JSON 或 TXT 檔案格式提供。所有訓練資料都必須位於單一資料夾內的單一檔案中。

訓練資料取自 CSV 或 JSON 訓練資料檔案的**文字**欄。如果沒有任何欄的標籤為**文字**，則會從 CSV 或 JSON 訓練資料檔案的第一欄取得訓練資料。

以下是用於微調的 TXT 檔案內文範例：

```
This report includes estimates, projections, statements relating to our
business plans, objectives, and expected operating results that are “forward-
looking statements” within the meaning of the Private Securities Litigation
Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E
of ....
```

### 分割用於訓練和測試的資料
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-split-data"></a>

您可以選擇性地提供另一個包含驗證資料的資料夾。此資料夾也應該包含一個 CSV、JSON 或 TXT 檔案。如果沒有提供驗證資料集，則會保留某個數量的訓練資料供驗證之用。當您選擇超參數來微調模型時，可以調整用於驗證的訓練資料百分比。

### 將微調資料上傳至 Amazon S3
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-upload-data"></a>

將準備好的資料上傳至 Amazon Simple Storage Service (Amazon S3)，以便在微調 JumpStart 基礎模型時使用。您可以使用下列命令上傳資料：

```
from sagemaker.s3 import S3Uploader
import sagemaker
import random

output_bucket = sagemaker.Session().default_bucket()
local_data_file = "train.txt"
train_data_location = f"s3://{output_bucket}/training_folder"
S3Uploader.upload(local_data_file, train_data_location)
S3Uploader.upload("template.json", train_data_location)
print(f"Training data: {train_data_location}")
```

## 為指令微調建立訓練任務
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-train"></a>

將資料上傳至 Amazon S3 之後，您可以微調和部署 JumpStart 基礎模型。若要在 Studio 中微調模型，請參閱[在 Studio 中微調模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)。若要使用 SageMaker Python SDK 微調模型，請參閱[使用 `JumpStartEstimator` 類別微調公開可用的基礎模型](jumpstart-foundation-models-use-python-sdk-estimator-class.md)。

## 範例筆記本
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-examples"></a>

如需域自適應微調的詳細資訊，請參閱下列範例筆記本：
+ [SageMaker JumpStart 基礎模型 - 微調網域特定資料集上的文字產生 GPT-J 6B 模型](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/domain-adaption-finetuning-gpt-j-6b.html)
+ [在 JumpStart 微調 LLaMA 2 模型](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/llama-2-finetuning.html)

# 使用提示指示微調大型語言模型 (LLM)
<a name="jumpstart-foundation-models-fine-tuning-instruction-based"></a>

指令式微調使用標籤的範例來改善預先訓練的基礎模型在特定任務上的效能。帶有標籤的範例依指令被格式化為提示、回應和用詞。此微調程序會改變模型的權重。有關指令式微調的更多資訊，請參閱文獻[FLAN 簡介：更通用的指令微調語言模型](https://ai.googleblog.com/2021/10/introducing-flan-more-generalizable.html)和[擴展指令微調的語言模型。](https://arxiv.org/abs/2210.11416)

微調語言網路 (FLAN) 模型使用指令調整，讓模型更適合解決一般下游 NLP 任務。Amazon SageMaker JumpStart 在 FLAN 模型系列中提供了許多基礎模型。例如，FLAN-T5 模型會針對各種任務進行指令微調，以提升各種常見使用案例的零樣本表現。透過額外的資料和微調，指令式模型可以進一步適應訓練期間沒考慮到的更具體任務。

若要使用提示-回應對任務指示微調特定任務上的 LLM：

1. 在 JSON 檔案中準備您的指示。如需提示-回應對檔案所需格式和資料資料夾結構的詳細資訊，請參閱[準備和上傳訓練資料以進行指令微調](#jumpstart-foundation-models-fine-tuning-instruction-based-prepare-data)。

1. 建立您的微調訓練任務。如需說明，請參閱[為指令微調建立訓練任務](#jumpstart-foundation-models-fine-tuning-instruction-based-train)。

您可以在 [範例筆記本](#jumpstart-foundation-models-fine-tuning-instruction-based-examples) 中找到端對端範例。

只有一部分的 JumpStart 基礎模型與指令微調相容。指令式網域適應性微調適用於下列基礎模型：

**注意**  
某些 JumpStart 基礎模型 (例如 Llama 2 7B) 需要先接受終端使用者授權協議，才能微調和執行推論。如需詳細資訊，請參閱[終端使用者授權協議](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula)。
+ Flan-T5 基本
+ Flan-T5 大
+ Flan-T5 小
+ Flan-T5 XL
+ Flan-T5 XXL
+ Llama 2 13B
+ Llama 2 13B Chat
+ Llama 2 13B Neuron
+ Llama 2 70B
+ Llama 2 70B Chat
+ Llama 2 7B
+ Llama 2 7B Chat
+ Llama 2 7B Neuron
+ Mistral 7B
+ RedPajama INCITE Base 3B V1
+ RedPajama INCITE Base 7B V1
+ RedPajama INCITE Chat 3B V1
+ RedPajama INCITE Chat 7B V1
+ RedPajama INCITE Instruct 3B V1
+ RedPajama INCITE Instruct 7B V1

## 準備和上傳訓練資料以進行指令微調
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-prepare-data"></a>

指令微調的訓練資料必須以 JSON Lines 文字檔案格式提供，其中每一行都是字典。所有訓練資料都必須位於單一資料夾中。資料夾可以包含多個 .jsonl 檔案。

訓練資料夾也可以包含範本 JSON 檔案 (`template.json`)，該檔案描述資料的輸入和輸出格式。如果未提供任何範本檔案，則會使用下列範本檔案：

```
{
  "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}",
  "completion": "{response}"
}
```

根據 `template.json` 檔案，訓練資料的每個 .jsonl 項目都必須包含 `{instruction}`、`{context}`和 `{response}` 欄位。

如果您提供自訂範本 JSON 檔案，請使用 `"prompt"` 和 `"completion"` 金鑰來定義您自己的必要欄位。根據下列自訂範本 JSON 檔案，訓練資料的每個 .jsonl 項目都必須包含 `{question}`、`{context}` 和 `{answer}` 欄位：

```
{
  "prompt": "question: {question} context: {context}",
  "completion": "{answer}"
}
```

### 分割用於訓練和測試的資料
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-split-data"></a>

您可以選擇性地提供另一個包含驗證資料的資料夾。此資料夾也應該包含一或多個 .jsonl 檔案。如果沒有提供驗證資料集，則會保留某個數量的訓練資料供驗證之用。當您選擇超參數來微調模型時，可以調整用於驗證的訓練資料百分比。

### 將微調資料上傳至 Amazon S3
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-upload-data"></a>

將準備好的資料上傳至 Amazon Simple Storage Service (Amazon S3)，以便在微調 JumpStart 基礎模型時使用。您可以使用下列命令上傳資料：

```
from sagemaker.s3 import S3Uploader
import sagemaker
import random

output_bucket = sagemaker.Session().default_bucket()
local_data_file = "train.jsonl"
train_data_location = f"s3://{output_bucket}/dolly_dataset"
S3Uploader.upload(local_data_file, train_data_location)
S3Uploader.upload("template.json", train_data_location)
print(f"Training data: {train_data_location}")
```

## 為指令微調建立訓練任務
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-train"></a>

將資料上傳至 Amazon S3 之後，您可以微調和部署 JumpStart 基礎模型。若要在 Studio 中微調模型，請參閱[在 Studio 中微調模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)。若要使用 SageMaker Python SDK 微調模型，請參閱[使用 `JumpStartEstimator` 類別微調公開可用的基礎模型](jumpstart-foundation-models-use-python-sdk-estimator-class.md)。

## 範例筆記本
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-examples"></a>

如需指令微調的詳細資訊，請參閱下列範例筆記本：
+ [在 JumpStart 微調 LLaMA 2 模型](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/llama-2-finetuning.html)
+ [SageMaker JumpStart 簡介 - 使用 Mistral 模型產生文字](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/mistral-7b-instruction-domain-adaptation-finetuning.html)
+ [SageMaker JumpStart 簡介 - 使用 Falcon 模型產生文字](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/falcon-7b-instruction-domain-adaptation-finetuning.html)
+ [SageMaker JumpStart 基礎模型 - HuggingFace Text2Text 指令微調](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/instruction-fine-tuning-flan-t5.html)

# 檢索增強生成
<a name="jumpstart-foundation-models-customize-rag"></a>

基礎模型通常是離線訓練的，使得模型在訓練模型之後建立的任何資料都是不可知的。此外，基礎模型會在非常一般的網域語料庫上進行訓練，因此對於網域特定任務的效率較低。您可以使用檢索增強生成 (RAG) 從基礎模型外部擷取資料，並透過在上下文中新增相關擷取的資料來擴充提示。如需 RAG 模型架構的詳細資訊，請參閱[檢索增強生成的知識密集型 NLP 任務](https://arxiv.org/abs/2005.11401)。

使用 RAG，用於擴充提示的外部資料可以來自多個資料來源，例如文件儲存庫、資料庫或 API。第一步是將您的文件和任何使用者查詢轉換為相容的格式，以執行相關性搜尋。為了使格式相容，文件集合或知識庫以及使用者提交的查詢會使用嵌入語言模型轉換成數值表示。*嵌入*是在向量空間中將文字以數字表示的過程。RAG 模型架構比較了知識庫向量中的使用者查詢的嵌入。然後，原始使用者提示會附加來自知識庫中類似文件的相關上下文。然後將此增強提示發送到基礎模型。您可以非同步更新知識庫及相關嵌入。

 ![\[A model architecture diagram of Retrieval Augmented Generation (RAG).\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/jumpstart/jumpstart-fm-rag.jpg) 

檢索的文件應大到足以包含有用的內容，以協助增強提示，但小到足以符合提示的最大序列長度。您可以使用任務特定的 JumpStart 模型，例如來自 Hugging Face 的一般文字嵌入 (GTE) 模型，為您的提示和知識程式庫文件提供嵌入。比較提示和文件嵌入以尋找最相關的文件後，使用補充內容建構新的提示。然後，將增強的提示傳遞至您選擇的文字產生模型。

## 範例筆記本
<a name="jumpstart-foundation-models-customize-rag-examples"></a>

如需 RAG 基礎模型解決方案的詳細資訊，請參閱下列範例筆記本：
+ [檢索增強生成：使用 LangChain 和 Cohere 生成和 SageMaker JumpStart 嵌入模型回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_Cohere+langchain_jumpstart.html)
+ [檢索增強生成：使用 LLama-2、Pinecone 和自訂資料集回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_pinecone_llama-2_jumpstart.html)
+ [檢索增強生成：以開放原始碼的 LangChain 程式庫的自訂資料集為基礎回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_langchain_jumpstart.html)
+ [檢索增強生成：以自訂資料集為基礎回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_jumpstart_knn.html)
+ [檢索增強生成：使用 Llama-2 和文字嵌入模型回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_text_embedding_llama-2_jumpstart.html)
+ [Amazon SageMaker JumpStart - 文字嵌入與句子類似性](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/text-embedding-sentence-similarity.html)

您可以複製 [Amazon SageMaker AI 範例儲存庫](https://github.com/aws/amazon-sagemaker-examples/tree/main/introduction_to_amazon_algorithms/jumpstart-foundation-models)，以在 Studio 內您選擇的 Jupyter 環境中執行可用的 JumpStart 基礎模型範例。如需可用於在 SageMaker AI 中建立和存取 Jupyter 之應用程式的詳細資訊，請參閱[Amazon SageMaker Studio 中支援的應用程式](studio-updated-apps.md)。

# 在 Studio 中評估文字產生基礎模型
<a name="jumpstart-foundation-models-evaluate"></a>

**注意**  
Foundation Model Evaluations (FMEval) 為 Amazon SageMaker Clarify 的預覽版本，可能會有所變更。

**重要**  
若要使用 SageMaker Clarify Foundation Model Evaluations，您必須升級至新的 Studio 體驗。自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。基礎評估功能只能用於更新後的體驗。如需如何更新 Studio 的相關資訊，請參閱 [從 Amazon SageMaker Studio Classic 遷移](studio-updated-migrate.md)。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](studio.md)。

Amazon SageMaker JumpStart 與 Studio 中的 SageMaker Clarify Foundation Model Evaluations (FMEval) 整合。如果 JumpStart 模型有可用的內建評估功能，您可以在 JumpStart Studio 使用者介面中選擇模型詳細資訊頁面右上角的**評估**。如需導覽 JumpStart Studio 使用者介面的詳細資訊，請參閱[在 Studio 中開啟 JumpStart](studio-jumpstart.md#jumpstart-open-studio)，

使用 Amazon SageMaker JumpStart 透過 FMEval 評估以文字為基礎的基礎模型。您可以使用這些模型評估來比較一個模型、兩個模型之間或相同模型不同版本之間的模型品質和責任指標，以協助您量化模型風險。FMEval 可以評估執行下列任務的以文字為基礎模型：
+  **開放式產生** – 對沒有預先定義結構的文字產生自然人類回應。
+  **文字摘要** – 產生簡潔扼要的摘要，同時保留較大文字中包含的意義和關鍵資訊。
+  **問題回答** – 以自然語言產生問題的回答。
+  **分類 ** – 根據類別的內容，將類別 (例如 `positive` 對 `negative`) 指派給文字段落。

您可以使用 FMEval 根據特定基準自動評估模型回應。您也可以透過引入您的提示資料集，以根據自己的條件評估模型回應。FMEval 提供使用者介面 (UI)，引導您完成評估任務的設定和組態。您也可以在自己的程式碼中使用 FMEval 程式庫。

每個評估都需要兩個執行個體的配額：
+ 託管執行個體 – 託管和部署 LLM 的執行個體。
+ 評估執行個體 – 用於在託管執行個體上提示和執行 LLM 評估的執行個體。

如果您的 LLM 已部署，請提供端點，SageMaker AI 將使用**託管執行個體**來託管和部署 LLM。

如果您正在評估的 JumpStart 模型尚未部署到帳戶，FMEval 會在您的帳戶中為您建立暫時**託管執行個體**，並僅在評估期間保持其為已部署。FMEval 使用 JumpStart 為所選 LLM 建議的預設執行個體做為您的託管執行個體。您必須擁有此建議執行個體的足夠配額。

每個評估也會使用評估執行個體對 LLM 提供提示，並為來自 LLM 的回應進行評分。您還必須有足夠的配額和記憶體來執行評估演算法。評估執行個體的配額和記憶體需求通常小於託管執行個體所需的配額和記憶體。建議您選取 `ml.m5.2xlarge` 執行個體。如需配額與記憶體的詳細資訊，請參閱[解決在 Amazon SageMaker AI 中建立模型評估任務時的錯誤](clarify-foundation-model-evaluate-troubleshooting.md)。

自動評估可用於跨下列維度對 LLM 評分：
+ 準確性 – 用於文字摘要、問題回答和文字分類
+ 語意強健性 – 用於開放式產生、文字摘要和文字分類任務
+ 事實知識 – 用於開放式產生
+ 提示詞刻板化 – 用於開放式產生 
+  毒性 – 用於開放式產生、文字摘要和問題回答

您也可以使用人工評估來手動評估模型回應。FMEval 使用者介面會引導您完成工作流程，以選取一或多個模型、佈建資源，以及撰寫指示並聯絡人力資源。人工評估完成後，結果會顯示在 FMEval 中。

您可以透過 Studio 中的 JumpStart 登陸頁面存取模型評估，方法是選取要評估的模型，然後選擇**評估**。請注意，並非所有 JumpStart 模型都有可用的評估功能。如需如何設定、佈建和執行 FMEval 的詳細資訊，請參閱[什麼是基礎模型評估？](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-foundation-model-evaluate.html)

# 範例筆記本
<a name="jumpstart-foundation-models-example-notebooks"></a>

如需有關如何將公開的 JumpStart 基礎模型與 SageMaker Python SDK 搭配使用的步驟範例，請參閱下列有關產生文字、產生影像和模型自訂的筆記本。

**注意**  
專屬和公開的 JumpStart 基礎模型具有不同的 SageMaker AI Python SDK 部署工作流程。透過 Amazon SageMaker Studio Classic 或 SageMaker AI 主控台探索專屬基礎模型範例筆記本。如需詳細資訊，請參閱[JumpStart 基礎模型用量](jumpstart-foundation-models-use.md)。

您可以複製 [Amazon SageMaker AI 範例儲存庫](https://github.com/aws/amazon-sagemaker-examples/tree/main/introduction_to_amazon_algorithms/jumpstart-foundation-models)，以在 Studio 內您選擇的 Jupyter 環境中執行可用的 JumpStart 基礎模型範例。如需可用於在 SageMaker AI 中建立和存取 Jupyter 之應用程式的詳細資訊，請參閱[Amazon SageMaker Studio 中支援的應用程式](studio-updated-apps.md)。

## 時間序列預測
<a name="jumpstart-foundation-models-example-notebooks-time-series"></a>

您可以使用 Chronos 模型來預測時間序列資料。它們是以語言模型架構為基礎。使用 [SageMaker JumpStart 簡介 - 使用 Chronos 預測時間序列](https://github.com/aws/amazon-sagemaker-examples/blob/default/%20%20%20%20generative_ai/sm-jumpstart_time_series_forecasting.ipynb)筆記本來開始進行。

如需可用 Chronos 模型的詳細資訊，請參閱[可用的基礎模型](jumpstart-foundation-models-latest.md)。

## 產生文字
<a name="jumpstart-foundation-models-example-notebooks-text-generation"></a>

探索文字產生範例筆記本，包括有關一般文字產生工作流程、多語言文字分類、即時批次推論、小樣本學習、聊天機器人互動等的指引。
+ [SageMaker JumpStart 基礎模型 - HuggingFace Text2Text 以 FLAN-T5 XL 為例的文字產生](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/text2text-generation-flan-t5.html)
+ [SageMaker JumpStart 基礎模型 - BloomZ：多語言文字分類、問題與回答、程式碼產生、段落重新詞組等](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/text2text-generation-bloomz.html)
+ [SageMaker JumpStart 基礎模型 - HuggingFace Text2Text 批次轉換和即時批次推論](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/text2text-generation-Batch-Transform.html)
+ [SageMaker JumpStart 基礎模型 - GPT-J、GPT-Neo 小樣本學習](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/text-generation-few-shot-learning.html)
+ [SageMaker JumpStart 基礎模型 - 聊天機器人](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/text-generation-chatbot.html)
+ [SageMaker JumpStart 簡介 - 使用 Mistral 模型產生文字](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/mistral-7b-instruction-domain-adaptation-finetuning.html)
+ [SageMaker JumpStart 簡介 - 使用 Falcon 模型產生文字](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/falcon-7b-instruction-domain-adaptation-finetuning.html)

## 產生影像
<a name="jumpstart-foundation-models-example-notebooks-image-generation"></a>

開始使用文字到影像的穩定擴散模型，了解如何部署修復模型，並試著用簡單的工作流程來生成您狗狗的影像。
+ [JumpStart 簡介 - 文字轉影像](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart_text_to_image/Amazon_JumpStart_Text_To_Image.html)
+ [JumpStart 影像編輯簡介 - 穩定擴散修復](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart_inpainting/Amazon_JumpStart_Inpainting.html)
+ [為您的狗生成有趣的影像](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart_text_to_image/custom_dog_image_generator.html)

## 自訂模型
<a name="jumpstart-foundation-models-example-notebooks-model-customization"></a>

有時您的使用案例需要針對特定任務進行更大的基礎模型自訂。如需模型自訂方法的詳細資訊，請參閱[基礎模型自訂](jumpstart-foundation-models-customize.md)或探索下列其中一個範例筆記本。
+ [SageMaker JumpStart 基礎模型 - 微調網域特定資料集上的文字產生 GPT-J 6B 模型](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/domain-adaption-finetuning-gpt-j-6b.html)
+ [SageMaker JumpStart 基礎模型 - HuggingFace Text2Text 指令微調](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/instruction-fine-tuning-flan-t5.html)
+ [檢索增強生成：使用 LangChain 和 Cohere 生成和 SageMaker JumpStart 嵌入模型回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_Cohere+langchain_jumpstart.html)
+ [檢索增強生成：使用 LLama-2、Pinecone 和自訂資料集回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_pinecone_llama-2_jumpstart.html)
+ [檢索增強生成：以開放原始碼的 LangChain 程式庫的自訂資料集為基礎回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_langchain_jumpstart.html)
+ [檢索增強生成：以自訂資料集為基礎回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_jumpstart_knn.html)
+ [檢索增強生成：使用 Llama-2 和文字嵌入模型回答問題](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_text_embedding_llama-2_jumpstart.html)
+ [Amazon SageMaker JumpStart - 文字嵌入與句子類似性](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/text-embedding-sentence-similarity.html)