「Amazon SageMaker JumpStartを使用して、2行のコードでファウンデーションモデルを展開して微調整する」

「Amazon SageMaker JumpStartを使って、2行のコードでファウンデーションモデルを展開し、微調整する方法」

私たちは、Amazon SageMaker JumpStart SDKの簡略化バージョンを発表することをお知らせいたします。このSDKは、基本モデルの構築、トレーニング、展開を簡単にするものです。予測コードも簡略化されています。本記事では、簡略化されたSageMaker Jumpstart SDKを使用して、わずか数行のコードで基本モデルの使用を開始する方法をご紹介します。

デプロイとトレーニングのための簡略化されたSageMaker JumpStart SDKの詳細については、JumpStartModelクラスを使用した低コードデプロイJumpStartEstimatorクラスを使用した低コードのファインチューニングを参照してください。

ソリューションの概要

SageMaker JumpStartは、機械学習(ML)の始め方をサポートするためのさまざまな問題タイプの事前訓練されたオープンソースモデルを提供しています。これらのモデルは、展開前に段階的にトレーニングおよびファインチューニングすることができます。JumpStartは、一般的なユースケースのインフラストラクチャをセットアップするためのソリューションテンプレートや、Amazon SageMakerでの機械学習(ML)の実行用の実行可能なサンプルノートブックも提供しています。Amazon SageMaker StudioのSageMaker JumpStartランディングページを通じて、事前訓練されたモデル、ソリューションテンプレート、および例にアクセスできます。またはSageMaker Python SDKを使用することもできます。

SageMaker JumpStart SDKの新機能を示すために、Hugging FaceのFlan T5 XLモデルを使用して要約タスクのテキスト生成に使用する方法を紹介します。また、わずか数行のコードでFlan T5 XLモデルを要約タスクのためにファインチューニングする方法も紹介します。Llama2、Falcon、Mistral AIなどの他のモデルを使用してテキスト生成を行うこともできます。

この解決策のFlan T5 XLを使用したノートブックは、GitHubリポジトリで見つけることができます。

モデルのデプロイと呼び出し

SageMaker JumpStartにホストされている基本モデルにはモデルIDがあります。モデルIDの完全なリストについては、事前訓練済みモデルテーブル付きの組み込みアルゴリズムを参照してください。この記事では、Flan T5 XLテキスト生成モデルのモデルIDを使用します。モデルオブジェクトをインスタンス化し、deployメソッドを呼び出すことで、SageMakerエンドポイントにモデルをデプロイします。次のコードを参照してください:

from sagemaker.jumpstart.model import JumpStartModel# 必要に応じて大きなモデルに置き換えてくださいpretrained_model = JumpStartModel(model_id="huggingface-text2text-flan-t5-base")pretrained_predictor = pretrained_model.deploy()

次に、Flan T5 XLモデルを使用して、提供されたテキストの要約を作成するためにモデルを呼び出します。新しいSDKインターフェースにより、モデルの呼び出しが簡単になりました。テキストをパラメータとして予測器に渡し、モデルからの応答をPythonの辞書として返します。

text = """コンテンツを要約 - Amazon Comprehendは、ドキュメントの内容に関する洞察を抽出するために自然言語処理(NLP)を使用します。Amazon Comprehendは、ドキュメント内のエンティティ、キーフレーズ、言語、感情などの共通要素を認識することで洞察を開発します。Amazon Comprehendを使用して、ドキュメントの構造を理解して新しい製品を作成することができます。たとえば、Amazon Comprehendを使用して、ソーシャルネットワーキングのフィードから製品のメンションを検索したり、キーフレーズを含むドキュメントリポジトリ全体をスキャンしたりすることができます。Amazon Comprehendのドキュメント分析機能には、Amazon ComprehendコンソールまたはAmazon Comprehend APIを使用することができます。小規模なワークロードのためにリアルタイム分析を実行することもできますし、大量のドキュメントセットに対して非同期の分析ジョブを開始することもできます。Amazon Comprehendが提供する事前訓練済みモデル、または分類とエンティティ認識用に独自のカスタムモデルをトレーニングすることもできます。"""query_response = pretrained_predictor.predict(text)print(query_response["generated_text"])

以下は要約タスクの出力です:

Amazon Comprehendの動作方法を理解してください。Amazon Comprehendを使用してドキュメントを分析します。

モデルを微調整して展開する

SageMaker JumpStart SDKは、JumpStartEstimatorという新しいクラスを提供し、微調整を簡素化します。微調整データの場所を指定し、必要に応じてバリデーションデータセットも渡すことができます。モデルを微調整した後、Estimatorオブジェクトのdeployメソッドを使用して、微調整済みモデルを展開します:

from sagemaker.jumpstart.estimator import JumpStartEstimatorestimator = JumpStartEstimator(    model_id=model_id,)estimator.set_hyperparameters(instruction_tuned="True", epoch="3", max_input_length="1024")estimator.fit({"training": train_data_location})finetuned_predictor = estimator.deploy()

SageMaker SDKの新しいクラスをカスタマイズする

新しいSDKでは、JumpStartモデルの展開と微調整をデフォルトで行うことができます。ただし、オプションを上書きして展開と呼び出しをカスタマイズすることもできます。たとえば、モデルの展開時にインスタンスタイプを上書きする方法は次のコードで示されています:

finetuned_predictor = estimator.deploy(instance_type='ml.g5.2xlarge')

SageMaker JumpStart SDKのdeploy関数は、デフォルトのコンテンツタイプとシリアライザを自動的に選択します。入力ペイロードの形式を変更する場合は、serializersオブジェクトとcontent_typesオブジェクトを使用して、使用しているモデルのmodel_idを渡すことで利用可能なオプションを確認できます。次のコードでは、シリアライザとしてJSONSerializer、コンテンツタイプとしてapplication/jsonを設定してペイロードの入力形式をJSONに設定しています:

from sagemaker import serializersfrom sagemaker import content_typesserializer_options = serializers.retrieve_options(model_id=model_id, model_version=model_version)content_type_options = content_types.retrieve_options(model_id=model_id, model_version=model_version)pretrained_predictor.serializer = serializers.JSONSerializer()pretrained_predictor.content_type = 'application/json'

次に、JSON形式のペイロードを使用して要約タスクのFlan T5 XLモデルを呼び出すことができます。次のコードでは、JSON形式のペイロードに推論パラメータも渡して、より正確な応答を作成しています:

from sagemaker import serializersinput_text= """Summarize this content - Amazon Comprehend uses natural language processing (NLP) to extract insights about the content of documents. It develops insights by recognizing the entities, key phrases, language, sentiments, and other common elements in a document. Use Amazon Comprehend to create new products based on understanding the structure of documents. For example, using Amazon Comprehend you can search social networking feeds for mentions of products or scan an entire document repository for key phrases.You can access Amazon Comprehend document analysis capabilities using the Amazon Comprehend console or using the Amazon Comprehend APIs. You can run real-time analysis for small workloads or you can start asynchronous analysis jobs for large document sets. You can use the pre-trained models that Amazon Comprehend provides, or you can train your own custom models for classification and entity recognition. """parameters = {    "max_length": 600,    "num_return_sequences": 1,    "top_p": 0.01,    "do_sample": False,}payload = {"text_inputs": input_text, **parameters} #JSON Input formatpretrained_predictor.serializer = serializers.JSONSerializer()query_response = pretrained_predictor.predict(payload)print(query_response["generated_texts"][0])

ホスティングや微調整の入力およびその他のオプションをカスタマイズする方法についての詳細は、JumpStartModelおよびJumpStartEstimatorクラスのドキュメントを参照してください。

結論

この記事では、数行のコードでSageMaker JumpStart SDKを使用してタスクベースおよび基礎モデルを構築、トレーニング、展開する方法をご紹介しました。Hugging Face Flan T5-XLモデルを例にして、JumpStartModelおよびJumpStartEstimatorなどの新しいクラスを紹介しました。コンテンツ作成、コード生成、質問応答、要約、分類、情報抽出などのユースケースに応じて、他のSageMaker JumpStart基盤モデルのどれでも使用できます。SageMaker JumpStartで利用可能なモデルの一覧をご覧いただくには、Built-in Algorithms with pre-trained Model Tableを参照してください。SageMaker JumpStartは、多くの人気のある問題タイプに対してタスク固有のモデルもサポートしています。

私たちはSageMaker JumpStart SDKのシンプルなインターフェースが、あなたが迅速に始めることを助け、より速く結果を出すことができるようになることを願っています。私たちは、あなたがシンプルなSageMaker JumpStart SDKを使ってエキサイティングなアプリケーションを作成する方法をお聞きするのを楽しみにしています!

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

Deep Learningモデルのトレーニングをスーパーチャージ

90%に到達すると精度が初めのほうでは簡単に向上しますが、それ以上の改善を得るためには非常に力を入れなければならないとい...

データサイエンス

企業がOpenAIのChatGPTに類似した自社の大規模言語モデルを構築する方法

最近の数年間で、言語モデルは大きな注目を集め、自然言語処理、コンテンツ生成、仮想アシスタントなど、さまざまな分野を革...

データサイエンス

「データ分析のためのトップ10のAIツール」

ビジネスデータは日々複雑化しており、それを理解するためには高度な手法が必要です。従来のデータ分析手法は、手作業に依存...

機械学習

「拡散を支配するための1つの拡散:マルチモーダル画像合成のための事前学習済み拡散モデルの調節」

画像生成AIモデルは、ここ数ヶ月でこの領域を席巻しています。おそらく、midjourney、DALL-E、ControlNet、またはStable dDif...

データサイエンス

データから洞察力へ:KubernetesによるAI/MLの活用

「KubernetesがAI/MLと連携することで、AI/MLのワークロードに対して細粒度の制御、セキュリティ、弾力性を提供する方法を発...

人工知能

「DALL·E 3の最も優れた20の使用例とプロンプト」

OpenAIは、テキストから画像を生成するプラットフォームであるDALL-E 3の大規模なアップデートを発表しましたこのアップデー...