

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 基盤モデルをファインチューニングする
<a name="canvas-fm-chat-fine-tune"></a>

Amazon SageMaker Canvas からアクセスできる基盤モデルは、さまざまな汎用タスクに役立ちます。ただし、特定のユースケースがあり、独自のデータに基づいてレスポンスをカスタマイズする場合は、基盤モデルを*ファインチューニング*できます。

基盤モデルをファインチューニングするには、サンプルプロンプトとモデルレスポンスで構成されるデータセットを指定します。次に、データに対して基盤モデルをトレーニングします。最後に、ファインチューニングされた基盤モデルは、より具体的なレスポンスを提供できるようになります。

次のリストには、Canvas でファインチューニングできる基盤モデルが含まれています。
+ Titan Express
+ Falcon-7B
+ Falcon-7B-Instruct
+ Falcon-40B-Instruct
+ Falcon-40B
+ Flan-T5-Large
+ Flan-T5-Xl
+ Flan-T5-Xxl
+ MPT-7B
+ MPT-7B-Instruct

モデルをファインチューニングしながら、Canvas アプリケーションの各基盤モデルに関するより詳細な情報にアクセスできます。詳細については、「[モデルをファインチューニングする](#canvas-fm-chat-fine-tune-procedure-model)」を参照してください。

このトピックでは、Canvas で基盤モデルをファインチューニングする方法について説明します。

## [開始する前に]
<a name="canvas-fm-chat-fine-tune-prereqs"></a>

基盤モデルをファインチューニングする前に、Canvas で Ready-to-use モデルのアクセス許可と Amazon Bedrock との信頼関係を持つ AWS Identity and Access Management 実行ロールがあることを確認してください。これにより、Amazon Bedrock は基盤モデルをファインチューニングしながらロールを引き受けることができます。

Amazon SageMaker AI ドメインを設定または編集する際は、1) Canvas Ready-to-use モデルの設定アクセス許可を有効にし、2) SageMaker が Amazon Bedrock との信頼関係をアタッチする IAM 実行ロールである Amazon Bedrock ロールを作成または指定する必要があります。これらの設定の実行に関する詳細については、「[Amazon SageMaker Canvas を設定するための前提条件](canvas-getting-started.md#canvas-prerequisites)」を参照してください。

(SageMaker AI がユーザーに代わってロールを作成するのではなく) 独自の IAM 実行ロールを使用する場合は、Amazon Bedrock ロールを手動で設定できます 。Amazon Bedrock との独自の IAM 実行ロールの信頼関係の設定の詳細については、「[Canvas で Amazon Bedrock と生成 AI 機能を使用する権限をユーザーに付与する](canvas-fine-tuning-permissions.md)」を参照してください。

また、大規模言語モデル (LLMs) をファインチューニングするためにフォーマットされたデータセットも必要です。以下は、データセットの要件のリストです。
+ データセットは表形式であり、テキストデータの少なくとも 2 つの列 (モデルへのプロンプト例を含む 1 つの入力列とモデルからのレスポンス例を含む 1 つの出力列) が含まれている必要があります。

  例を次に示します。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html)
+ データセットには少なくとも 100 個のテキストペア (対応する入力項目と出力項目の行) を含めることをお勧めします。これにより、ファインチューニングに十分なデータが基盤モデルに確実に含まれ、レスポンスの精度が向上します。
+ 各入力項目と出力項目には、最大 512 文字を含める必要があります。基盤モデルをファインチューニングした際に、それより長いものは 512 文字に短縮されます。

Amazon Bedrock モデルをファインチューニングするときは、Amazon Bedrock のクォータに従う必要があります。詳細については、*Amazon Bedrock ユーザーガイド*の「[Model customization quotas](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#model-customization-quotas)」を参照してください。

Canvas の一般的なデータセットの要件と制限の詳細については、「[データセットの作成](canvas-import-dataset.md)」を参照してください。

## 基盤モデルの微調整
<a name="canvas-fm-chat-fine-tune-procedure"></a>

Canvas アプリケーションで次のいずれかの方法を使用して、基盤モデルをファインチューニングできます。
+ 基盤モデルとの **[コンテンツの生成、抽出、要約]** のチャット中に、**[モデルを微調整]** アイコン (![Fine-tune model icon.](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/canvas/wrench-icon-small.png)) を選択します。
+ 基盤モデルとのチャット中にレスポンスを 2 回以上再生成した場合は、Canvas によって **[モデルを微調整]** するオプションが表示されます。次のスクリーンショットは、この画面の外観を示しています。  
![チャットに表示されている [基盤モデルを微調整] オプションのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/canvas/fine-tuning-ingress.png)
+ **[自分のモデル]** ページで、**[新しいモデル]** を選択して新しいモデルを作成し、**[基盤モデルを微調整]** を選択します。
+ **Ready-to-use モデル**のホームページで、**[独自のモデルを作成]** を選択し、**[新しいモデルを作成する]** ダイアログボックスで、**[基盤モデルを微調整]** を選択します。
+ **[Data Wrangler]** タブでデータセットを参照している最中に、データセットを選択し、**[モデルを作成する]** を選択できます。次に、**[基盤モデルを微調整]** を選択します。

モデルのファインチューニングを開始したら、次の操作を行います。

### データセットを選択する
<a name="canvas-fm-chat-fine-tune-procedure-select"></a>

モデルのファインチューニングの **[選択]** タブで、基盤モデルをトレーニングするデータを選択します。

既存のデータセットを選択するか、「[[開始する前に]](#canvas-fm-chat-fine-tune-prereqs)」のセクションに記載されている要件を満たす新しいデータセットを作成します。データセットの作成方法の詳細については、「[データセットの作成](canvas-import-dataset.md)」を参照してください。

データセットを選択または作成し、先に進む準備ができたら、**[データセットを選択]** を選択します。

### モデルをファインチューニングする
<a name="canvas-fm-chat-fine-tune-procedure-model"></a>

データを選択すると、トレーニングを開始し、モデルをファインチューニングする準備が整います。

**[微調整]** タブで、次の作業を行います。

1. (オプション) **[基盤モデルの詳細情報]** を選択して、各モデルと、デプロイする基盤モデルの決定に役立つ詳細情報にアクセスします。

1. **[最大 3 つのベースモデルを選択する]** では、ドロップダウンメニューを開き、トレーニングジョブ中にファインチューニングする最大 3 つの基盤モデル (最大 2 つの JumpStart モデルと 1 つの Amazon Bedrock モデル) を選択します。複数の基盤モデルをファインチューニングすることで、パフォーマンスを比較し、ユースケースに最適なモデルを最終的にデフォルトのモデルとして選択できます。デフォルトのモデルの詳細については、「[モデルリーダーボードでモデル候補を表示する](canvas-evaluate-model-candidates.md)」を参照してください。

1. **[入力列を選択]** で、モデルプロンプト例を含むデータセット内のテキストデータの列を選択します。

1. **[出力列を選択]** で、モデルレスポンスの例を含むデータセット内のテキストデータの列を選択します。

1. (オプション) トレーニングジョブの詳細設定を行うには、**[モデルの設定]** を選択します。高度なモデル構築設定の詳細については、「[高度なモデル構築設定](canvas-advanced-settings.md)」を参照してください。

   **[モデルの設定]** ポップアップウィンドウで、以下の操作を行います。

   1. **[ハイパーパラメータ]** では、選択したモデルごとに ** [エポック数]**、**[バッチサイズ]**、**[学習率]**、**[学習率のウォームアップステップ]** を調整できます。これらのパラメータの詳細については、[JumpStart ドキュメントの「Hyperparameters」のセクション](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-fine-tune.html#jumpstart-hyperparameters)を参照してください。

   1. **[データ分割]** では、**[トレーニングセット]** と **[検証セット]** の間でデータを分割する方法の割合を指定できます。

   1. **[最大ジョブランタイム]** では、Canvas がビルドジョブを実行する最大時間を設定できます。この機能は JumpStart 基盤モデルでのみ使用できます。

   1. 設定を行ったら、 **[保存]** を選択します。

1. **[微調整]** を選択して、選択した基盤モデルのトレーニングを開始します。

ファインチューニングジョブが開始されたら、ページを離れることができます。**[自分のモデル]** ページでモデルが **[準備完了]** と表示されると、モデルの使用準備が整い、ファインチューニングされた基盤モデルのパフォーマンスを分析できるようになります。

### ファインチューニングされた基盤モデルを分析する
<a name="canvas-fm-chat-fine-tune-procedure-analyze"></a>

ファインチューニングされた基盤モデルの **[分析]** タブでは、モデルのパフォーマンスを確認できます。

このページの **[概要]** タブには、Perplexity および Loss スコアのほか、トレーニング中のモデルの経時的な改善を視覚化する分析が表示されます。次のスクリーンショットは、**[概要]** タブを示しています。

![Canvas でファインチューニングされた基盤モデルの [分析] タブ。Perplexity と Loss 曲線を示しています。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-analyze-2.png)


このページには、次の視覚化が表示されます。
+ **Perplexity 曲線**は、モデルがシーケンス内の次の単語をどの程度予測するか、またはモデルの出力がどの程度文法的であるかを測定します。トレーニング中にモデルが改善されるにつれて、スコアが下がり、時間の経過とともに低くなってフラット化する曲線となるのが理想です。
+ **Loss 曲線**は、正しい出力とモデルの予測出力の差を定量化します。時間の経過とともに減少してフラット化する Loss 曲線は、モデルが正確な予測を行う能力を向上させていることを示しています。

**[高度なトメトリクス]** タブには、モデルのハイパーパラメータと追加のメトリクスが表示されます。次のスクリーンショットのようになります。

![Canvas でファインチューニングされた基盤モデルの [高度なメトリクス] タブのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-metrics.png)


**[高度なメトリクス]** タブには次の情報が含まれています。
+ **[説明可能性]** セクションには、モデルのファインチューニングを誘導するためにジョブの前に設定された値である **[ハイパーパラメータ]** が含まれています。「[モデルをファインチューニングする](#canvas-fm-chat-fine-tune-procedure-model)」セクションのモデルの高度な設定でカスタムハイパーパラメータを指定しなかった場合は、Canvas によってデフォルトのハイパーパラメータが選択されます。

  JumpStart モデルでは、モデルによって生成された概要の品質を評価する高度なメトリクスである [ROUGE (Recall-Oriented Understudy for Gisting Evaluation)](https://en.wikipedia.org/wiki/ROUGE_(metric)) も表示できます。これは、モデルが文章の要点をどの程度うまく要約できるかを測定します。
+ **[アーティファクト]** セクションには、ファインチューニングジョブ中に生成されたアーティファクトへのリンクが表示されます。Amazon S3 に保存されているトレーニングおよび検証データ、およびモデル評価レポートへのリンクにアクセスできます (詳細については、次の段落を参照してください)。

モデル評価のインサイトをさらに取得するには、モデルとデータのバイアスを検出するのに役立つ機能である [SageMaker Clarify](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html) を使用して生成されるレポートをダウンロードします。まず、ページ下部の **[評価レポートの生成]** を選択してレポートを生成します。レポートが生成されたら、**[レポートのダウンロード]** を選択するか、**[アーティファクト]** セクションに戻ることで、レポート全体をダウンロードできます。

Python コードでファインチューニングジョブをレプリケートする方法を示す Jupyter Notebook にアクセスすることもできます。これを使用して、ファインチューニングジョブのレプリケートまたはプログラムによる変更を行うことも、Canvas がモデルをファインチューニングする方法をより深く理解することもできます。モデルノートブックとそのアクセス方法の詳細については、「[モデルノートブックをダウンロードする](canvas-notebook.md)」を参照してください。

ファインチューニングされた基盤モデルの **[分析]** タブで情報を解釈する方法の詳細については、「[モデル評価](canvas-evaluate-model.md)」のトピックを参照してください。

**[概要]** タブと **[高度なメトリクス]** タブを分析した後、**モデルリーダーボード**を開くこともできます。リーダーボードには、ビルド中にトレーニングされたベースモデルのリストが表示されます。Loss スコアが最も低いモデルは、最もパフォーマンスの高いモデルと見なされ、**[分析]** タブに表示される分析のモデルである **[デフォルトのモデル]** として選択されます。テストしてデプロイできるのはデフォルトのモデルのみです。モデルリーダーボードとデフォルトのモデルの変更方法の詳細については、「[モデルリーダーボードでモデル候補を表示する](canvas-evaluate-model-candidates.md)」を参照してください。

### チャットでファインチューニングされた基盤モデルをテストする
<a name="canvas-fm-chat-fine-tune-procedure-test"></a>

ファインチューニングされた基盤モデルのパフォーマンスを分析した後は、それをテストしたり、そのレスポンスをベースモデルと比較したりできます。ファインチューニングされた基盤モデルは、**[コンテンツの生成、抽出、要約]** 機能のチャットでテストできます。

次のいずれかの方法を選択して、ファインチューニングされたモデルとのチャットを開始します。
+ ファインチューニングされたモデルの **[分析]** タブで、**[Ready-to-use 基盤モデルでテストする]** を選択します。
+ Canvas の **[Ready-to-use モデル]** ページで、**[コンテンツの生成、抽出、要約]** を選択します。次に、**[新しいチャット]** を選択し、テストするモデルのバージョンを選択します。

モデルがチャットで起動し、他の基盤モデルと同様に操作できるようになります。チャットにさらにモデルを追加すると、出力を比較できます。チャット機能の詳細については、「[SageMaker Canvas の生成 AI 基盤モデル](canvas-fm-chat.md)」を参照してください。

## ファインチューニングされた基盤モデルを運用する
<a name="canvas-fm-chat-fine-tune-mlops"></a>

Canvas でモデルをファインチューニングした後は、以下の操作を実行できます。
+ モデルを SageMaker モデルレジストリに登録して、組織の MLOps プロセスに統合します。詳細については、「[モデルのバージョンを SageMaker AI モデルレジストリに登録する](canvas-register-model.md)」を参照してください。
+ モデルを SageMaker AI エンドポイントにデプロイし、アプリケーションまたはウェブサイトからモデルにリクエストを送信して予測 (または*推論*) を取得します。詳細については、「[モデルをエンドポイントにデプロイする](canvas-deploy-model.md)」を参照してください。

**重要**  
登録してデプロイできるのは、Amazon Bedrock ベースのモデルではなく、JumpStart ベースの、ファインチューニングされた基盤モデルのみです。