Amazon SageMakerを使用してモデルの精度を向上させるために、ファンデーションモデルを使用します

ファンデーションモデルを活用し、Amazon SageMakerを使ってモデルの精度向上を図ろう

Photo by Scott Webb on Unsplash

写真:Scott Webb – Unsplashから

住宅の価値を決定することは、機械学習(ML)の典型的な例です。HarrisonとRubinfeld(1978)によって重大な影響が与えられ、ボストンの住宅データセットとして非公式に知られる画期的な論文とデータセットが発表されました。この画期的な研究では、空気の品質を含む多くの要素に関連して、住宅価格の推定方法が提案されました。彼らの研究の主たる焦点である空気の品質を含め、さまざまな要素を考慮した住宅価格の推定は、データとMLをビジネスの意思決定に活用する学生や専門家にとって重要な教材となりました。

本記事では、ビジュアルな質問に回答するために特に設計されたオープンソースモデルの使用について説明します。ビジュアルな質問応答(VQA)では、自然言語で質問をし、質問に対して回答を受け取ることができます。本記事では、この技術を使用して、MLのユースケースにおける回帰モデルの精度向上およびビジュアルイメージの自動タグ付けのために、Amazon SageMakerというプラットフォームのサービスを活用する方法を提案します。

本記事で説明した内容をデモンストレーションするYouTubeビデオもご用意しています。主要なポイントを強調するため、ビデオの再生は途中から開始されます。本記事の読み終えた後に、ビデオをご視聴いただくことで、コンセプトをより深く理解できるでしょう。

基礎となるモデル

このソリューションは、Hugging Faceモデルレポジトリに公開されている基礎となるモデルの使用に焦点を当てています。ここでいう基礎となるモデルは、大量で多様なデータに事前学習された人工知能(AI)能力を指します。基礎となるモデルは、ゼロからモデルを学習する手間を省いてすぐに使用することができる場合もあります。一部の基礎モデルは、追加のパターンを教え込むことで微調整することができます。これにより、独自のユースケースや知識ベースに特有の正しい回答を提供することができます。

Hugging Faceレポジトリで、複数のVQAモデルから選択できます。本記事では、この執筆時点で最もダウンロード数が多いモデルを選択しました。この記事ではオープンソースモデルレポジトリからモデルを使用する能力を示していますが、同じコンセプトはゼロからトレーニングしたモデルや信頼性のある他のプロバイダーのモデルにも適用することができます。

クラシックなユースケースに対するモダンなアプローチ

家の価格の推定は、通常、物件の特徴を使用して表形式のデータを通じて行われます。考慮すべき特徴は数百にも及ぶことがありますが、例えば、居住スペースのサイズ、ベッドルームとバスルームの数、そして住居の場所などがあります。

機械学習は、オーディオ、静止画像、動画、自然言語など、表形式のデータ以外の様々な入力ソースを組み合わせることができます。AIでは、マルチモーダルという用語は、画像や表形式のデータなど、複数のメディアタイプを使用することを指します。この記事では、現代のデジタルワールドで生成される豊富なデジタルデータの中に含まれる隠れた価値を見つけ出すために、マルチモーダルデータを使用する方法を示します。

このアイディアを踏まえて、私たちは基礎となるモデルを使用して物件の画像から潜在的な特徴を抽出する方法を示します。画像に含まれる情報を活用することで、表形式のデータにはない洞察を得ることができ、モデルの精度を向上させることができます。本記事で説明する画像と表形式のデータは、AhmedとMoustafa(2016)によって元々GitHubで公開されたものです。

写真は千の言葉に値する

現在、VQAの機能を理解したので、以下の2枚のキッチンの画像を考えてみましょう。これらの画像から家の価値を評価するにはどうすればよいでしょうか?自分自身にいくつかの質問をすると良いですね。各写真は、あなたの頭の中で多くの質問を引き起こすかもしれません。それらの質問のいくつかは、家の評価プロセスを改善するための有意義な答えにつながるかもしれません。

写真のクレジット:Francesca Tosolini(左)およびSidekix Media(右)Unsplash

次のテーブルは、VQAの相互作用の折衷的な例を提供し、質問と対応する回答を示しています。回答はカテゴリ、連続値、またはバイナリの形で提供されることがあります。

例の質問 Foundation Modelからの例の回答
カウンタートップは何でできていますか? グラナイト、タイル、大理石、ラミネートなど
これは高価なキッチンですか? はい、いいえ
分離されたシンクは何個ありますか? 0個、1個、2個

参考アーキテクチャ

この投稿では、Amazon SageMaker Data Wranglerを使用して、データセット内の数千の写真に対して統一されたセットの視覚的な質問を行います。SageMaker Data Wranglerは、データの準備や特徴量エンジニアリングのプロセスを簡素化するために特別に設計されています。300以上の組み込みの変換を提供することで、SageMaker Data Wranglerは、ML向けの表形式データや画像データの準備にかかる時間を数週間から数分に短縮します。ここでは、SageMaker Data Wranglerが元の表形式データセットのデータ特徴量と、ファウンデーションモデルの画像特徴量を組み合わせてモデルのトレーニングを行います。

次に、Amazon SageMaker Canvasを使用して回帰モデルを構築します。SageMaker Canvasは、コードを書かずにモデルを構築し、2〜15分で予備的な結果を提供することができます。次のセクションでは、このソリューションのガイダンスを可能にするために使用される参考アーキテクチャを提供します。

Hugging Faceや他のプロバイダーからの多くの人気モデルは、Amazon SageMaker JumpStartでクリック一つで展開できます。これらのレポジトリには何十万ものモデルがあります。この投稿では、SageMaker JumpStartで利用できないモデルを選択しましたので、カスタマーデプロイメントが必要です。以下の図に示すように、Amazon SageMaker Studioのノートブックを使用して、Hugging Faceモデルを推論に使用するためのエンドポイントをデプロイします。ノートブックは、Hugging Faceのバイナリモデル、コンテナイメージへのポインタ、およびモデルの予測入力と出力に対応する目的に特化したinference.pyスクリプトを含むアセットを使用します。あなたがこれを読んでいる間に、利用可能なVQAモデルの組み合わせは変わるかもしれません。重要なのは、この時点で利用可能なVQAモデルを確認し、選択したモデルをデプロイする準備をすることで、各モデル固有のAPIリクエストとレスポンスの契約を持つことです。

VQAモデルがSageMakerエンドポイントで提供された後、SageMaker Data Wranglerを使用して、デジタル画像から抽出した表データとフィーチャを組み合わせ、モデルトレーニングのためにデータを整形します。 次の図は、完全なデータ変換ジョブが実行される方法を示しています。

次の図では、SageMaker Data Wranglerを使用してデータの準備タスクを組織化し、モデルトレーニングのためにSageMaker Canvasを使用します。まず、SageMaker Data WranglerはAmazon Location Serviceを使用して、生データで利用可能なZIPコードを緯度と経度の特徴に変換します。 2つ目に、SageMaker Data Wranglerは数千の写真をSageMakerホストエンドポイントにリアルタイム推論のために送信し、シーンごとに均一な一連の質問を行います。 これにより、キッチン、バスルーム、家の外観などで観察される特徴を記述する豊富な配列のフィーチャが得られます。 SageMaker Data Wranglerによってデータが準備された後、トレーニングデータセットはAmazon Simple Storage Service(Amazon S3)で利用できます。 S3のデータを入力として使用することで、SageMaker Canvasはコードを書くことなく、わずか2〜15分でモデルをトレーニングすることができます。

Data transformation using SageMaker Data Wrangler

次のスクリーンショットは、SageMaker Data Wranglerのワークフローを示しています。ワークフローは、Amazon S3に保存されている数千の家の写真で始まります。次に、シーン検出器がキッチンやバスルームなどのシーンを判断します。最後に、イメージに対してシーン固有の一連の質問が行われ、トレーニングに使用できるより豊かな表データセットが得られます。

以下は、SageMaker Data Wranglerのカスタム変換コードの例であり、基礎モデルとのインタラクションを行い、キッチンの写真に関する情報を取得します。上記のスクリーンショットでは、キッチンのフィーチャノードを選択すると、次のコードが表示されます:

 from botocore.config import Configimport jsonimport boto3import base64from pyspark.sql.functions import col, udf, struct, litdef get_answer(question,image): encoded_input_image = base64.b64encode(bytearray(image)).decode() payload = { "question": question, "image": encoded_input_image } payload = json.dumps(payload).encode('utf-8') response = boto3.client('runtime.sagemaker', config=Config(region_name='us-west-2')).invoke_endpoint(EndpointName='my-vqa-endpoint-name', ContentType='application/json', Body=payload) return json.loads(response['Body'].read())["predicted_answer"]vqaUDF = udf(lambda q,img: get_answer(q,img))# process only images of bathroom typedf = df[df['scene']=='kitchen']visual_questions = [ ('kitchen_floor_composition', 'what is the floor made of'), ('kitchen_floor_color', 'what color is the floor'), ('kitchen_counter_composition', 'what is the countertop made of'), ('kitchen_counter_color', 'what color is the countertop'), ('kitchen_wall_composition', 'what are the walls made of'), ('kitchen_refrigerator_stainless', 'is the refrigerator stainless steel'), ('kitchen_refrigerator_builtin', 'is there a built-in refrigerator'), ('kitchen_refrigerator_visible', 'is a refrigerator visible'), ('kitchen_cabinet_composition', 'what are the kitchen cabinets made of'), ('kitchen_cabinet_wood', 'what type of wood are the kitchen cabinets'), ('kitchen_window', 'does the kitchen have windows'), ('kitchen_expensive', 'is this an expensive kitchen'), ('kitchen_large', 'is this a large kitchen'), ('kitchen_recessed_lights', 'are there recessed lights') ]for i in visual_questions: df = df.withColumn(i[0], vqaUDF(lit(i[1]),col('image_col.data')))

セキュリティ上の考慮事項として、最初にSageMaker Data WranglerがAWS Identity and Access Management(IAM)を通じてSageMakerリアルタイムエンドポイントを呼び出すための有効化が必要です。同様に、SageMaker Data Wranglerを介して呼び出すAWSリソースも同様の許可が必要です。

SageMaker Data Wranglerの前後のデータ構造

このセクションでは、元の表形式データと拡張データの構造について説明します。拡張データには、この例のユースケースに相対する新しいデータフィーチャーが含まれています。あなたのアプリケーションでは、分類や回帰タスクをサポートするために画像に含まれる多様な質問のセットを想像する時間を取ってください。可能な限り多くの質問を想像し、それらが価値を提供していることを確認するためにテストしてください。

元の表形式データの構造

サンプルデータセットには、各物件ごとに4つの画像を含む535の表形式レコードが含まれています(詳細は、GitHubリポジトリを参照)。次の表は、元の表形式データの構造を示しています。

フィーチャー コメント
ベッドルームの数 .
バスルームの数 .
面積(平方フィート) .
ZIPコード .
価格 これは予測対象の変数です。

拡張データの構造

次の表は、画像から派生したいくつかの新しいフィーチャーを含む拡張データの構造を示しています。

フィーチャー コメント
ベッドルームの数 .
バスルームの数 .
面積(平方フィート) .
緯度 元のZIPコードをAmazon Location Serviceに渡すことで計算されます。これはZIPの重心値です。
経度 元のZIPコードをAmazon Location Serviceに渡すことで計算されます。これはZIPの重心値です。
ベッドルームにボールト天井があるかどうか 0 = いいえ;1 = はい
バスルームが高価かどうか 0 = いいえ;1 = はい
キッチンが高価かどうか 0 = いいえ;1 = はい
価格 これは予測対象の変数です。

SageMaker Canvasによるモデルトレーニング

SageMaker Data Wranglerの処理ジョブは、全体の表形式トレーニングデータセットをAmazon S3で完全に準備し、利用可能にします。次に、SageMaker CanvasがMLライフサイクルのモデル構築フェーズに取り組みます。CanvasはS3のトレーニングセットを開きます。モデルを理解することは、しばしば顧客の要件となります。コードを書かずに、わずか数回のクリックで、SageMaker Canvasはモデルのパフォーマンスに関する豊富な視覚フィードバックを提供します。以下のセクションのスクリーンショットに示されているように、SageMaker Canvasは単一のフィーチャーがモデルにどのように影響を与えるかを表示します。

オリジナルの表データと不動産画像から派生した特徴量で訓練されたモデル

以下のスクリーンショットから、物件の画像から開発された特徴が重要であることが分かります。これらの結果に基づき、元の表データセットの「ベッドルームの数」と比較して、「このキッチンは高価ですか」という質問の方がより重要であり、それぞれの特徴の重要度値は7.08と5.498です。

以下のスクリーンショットは、モデルに関する重要な情報を提供しています。まず、残差グラフでは、セット内のほとんどの点が紫色の領域に集まっていることが表示されています。ここでは、2つの外れ値がこのイラストのためにSageMaker Canvasの外に手動で注釈が付けられています。この外れ値は、真の家の価値と予測値の間の重要なギャップを表しています。さらに、0から100%の範囲を持つ可能性のあるR2値が76%で表示されています。これは、モデルが完璧ではなく、すべての種類の家の価値を完全に推定するための十分な情報点を持っていないことを示しています。

外れ値を使用して、より包括的なモデルを構築するための追加の信号を見つけて提案することができます。たとえば、これらの外れ値の物件には、プールが含まれているか、大きな土地に位置している可能性があります。データセットにはこれらの特徴が含まれていませんが、このデータを見つけて、「プールがある」という追加の特徴を含めて新しいモデルを訓練することができるかもしれません。次の試みでは、R2値が増加し、MAEとRMSEの値が減少することが理想です。

不動産画像から派生した特徴を使用せずに訓練されたモデル

次に、次のセクションに移る前に、画像からの特徴が役に立ったかどうかを調べてみましょう。以下のスクリーンショットは、VQAモデルからの特徴を持たない別のSageMaker Canvasで訓練されたモデルを示しています。モデルの誤差率が増加し、RMSEが282Kから352Kになったことが分かります。これから、画像からの3つの単純な質問がモデルの正確性を約20%向上させたと結論付けることができます。表示されていませんが、完全を期すために言及すると、VQAの特徴を提供した場合のモデルのR2値も悪化し、値は76%から62%に低下しました。これは、SageMaker Canvasが迅速な実験とデータ駆動のアプローチを容易にし、ビジネスのニーズに応じたモデルを提供する例です。

今後の展望

多くの組織が、特に2022年12月に一般的な事前訓練済みトランスフォーマー(GPTs)が正式に注目されるようになって以来、基礎モデルにますます関心を持っています。基礎モデルへの関心の大部分は、大規模な言語モデル(LLM)のタスクに集中していますが、コンピュータビジョンや、より狭い意味でここで説明されている専門的なVQAタスクなど、他の多様なユースケースも利用可能です。

この記事は、業界のユースケースを解決するためにマルチモーダルデータの使用をインスピレーションとする例です。VQAを使用した回帰モデルの使用と利点を示しましたが、これは次のような目的で画像のラベル付けやタグ付けにも使用できます。例えば、売り出し中または賃貸中の物件を検索したいとします。タイルの床や大理石のカウンタートップがある物件を見つけたい場合、候補の数が多く、それぞれの候補を見て目視でフィルタリングする必要があります。それに代わり、明示的にタグ付けされていなくても、これらの特徴を含むリスティングをフィルタリングできると想像してください。保険業界では、画像からのクレームの被害を推定したり、ビジネスワークフロールーティングでの次のアクションをルート設定する能力があります。ソーシャルメディアプラットフォームでは、写真を自動的にタグ付けして、後で使用できるようにすることができます。

まとめ

この記事では、SageMakerプラットフォームを使用して、基礎モデルによるコンピュータビジョンを使用してクラシックな機械学習のユースケースを改善する方法を示しました。提案されたソリューションの一環として、パブリックなモデルレジストリで利用可能な人気のあるVQAモデルを探し、リアルタイムの推論のためにSageMakerエンドポイントに展開しました。

次に、私たちはSageMaker Data Wranglerを使用して、一連の均一な質問が画像に対して行われ、豊富な表形式のデータが生成されるワークフローを構築しました。最後に、SageMaker Canvasを使用して回帰モデルをトレーニングしました。サンプルデータセットは非常にシンプルであり、意図的に不完全であることに注意することが重要です。それにもかかわらず、SageMaker Canvasを使用すると、ベースラインモデルの精度を理解し、精度を向上させるための追加のシグナルを見つけることが容易になります。

私たちは、この記事が組織が保有するマルチモーダルデータを活用するよう皆さんに励ましを与えたことを願っています。また、この記事がモデルトレーニングを反復プロセスとして考えるきっかけになることを願っています。素晴らしいモデルは、忍耐力を持って達成することができます。完璧に近いモデルは、ターゲットリークや過学習の結果かもしれません。理想的なシナリオは、良いが完璧ではないモデルから始めることです。エラー、損失、および残差プロットを使用することで、初期ベースラインの推定値の精度を向上させるための追加のデータシグナルを取得できます。

AWSは、MLサービスとクラウドインフラストラクチャの最も幅広く、最も深いセットを提供しており、MLをすべての開発者、データサイエンティスト、および専門家に提供しています。SageMakerプラットフォームについて詳しく知りたい場合は、AWSアカウントチームに連絡して会話を始めてください。また、SageMaker Data WranglerおよびSageMaker Canvasについてさらに読むことも検討してください。カスタム変換に関して。

参考文献

Ahmed, E. H., & Moustafa, M. (2016). House price estimation from visual and textual features. IJCCI 2016-Proceedings of the 8th International Joint Conference on Computational Intelligence, 3, 62–68.

Harrison Jr, D., & Rubinfeld, D. L. (1978). Hedonic housing prices and the demand for clean air. Journal of environmental economics and management, 5(1), 81-102.

Kim, W., Son, B. & Kim, I.. (2021). ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision. Proceedings of the 38th International Conference on Machine Learning, in Proceedings of Machine Learning Research. 139:5583-5594.

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