「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

データサイエンス

デコード Transformersを平易な英語で説明します

コード、数学、またはキー、クエリ、値の言及なし

AI研究

CMUとプリンストンの研究者がマンバを発表:多様なモードのディープラーニングアプリケーションにおいてトランスフォーマーの効率を超えるSSMアーキテクチャの画期的な進展

現代の機械学習において、ファウンデーションモデルは、大量のデータで事前に学習され、その後に下流のタスクに対して改変さ...

AIニュース

Windows 12はAIの魔法機能を搭載:テクノロジーの未来への一端

Microsoft(マイクロソフト)は、次世代のWindows OSの大規模なアップデート「ハドソンバレー」と呼ばれるものを熱心に開発し...

AI研究

「タンパク質設計の革命:ディープラーニングの改良により成功率が10倍に向上したこのAI研究」

タンパク質はほぼすべての疾患を統治するポリマー構造です。主な問題は、どのタンパク質がそれに対応するタンパク質ポリマー...

AIニュース

「インドが最新のAIを活用してペイメント詐欺に取り組む方法」

今日のデジタル時代において、オンライン取引に関連する詐欺は増加しており、金融機関と規制当局に重大な課題をもたらしてい...

AIニュース

アマゾンがベッドロックを展開:AIモデルの評価と人間のベンチマーキング

開発において、Amazon Bedrockは、特定のニーズに合わせて選択し、比較し、最適なファウンデーションモデル(FM)を選択する...