カスタム分類モデルでの予測の品質を向上させるには、Amazon Comprehendを使用します
「予測の品質を向上させるために、Amazon Comprehendのカスタム分類モデルを活用しましょう」
人工知能(AI)と機械学習(ML)は、企業や政府機関を含むさまざまな組織で広く採用されています。自然言語処理(NLP)や使いやすいAI / MLサービス(Amazon Textract、Amazon Transcribe、およびAmazon Comprehend)の進歩により、非構造化データの処理が容易になりました。組織は、Amazon ComprehendなどのAI / MLサービスを使用して、非構造化データとの分類モデルを構築し、以前は得られなかった深い洞察を得るようになりました。最小限の努力で事前に学習されたモデルを使用できますが、適切なデータの整理やモデルの調整がなければ、AI / MLモデルのすべての利点を実現することはできません。
この記事では、Amazon Comprehendを使用してカスタム分類モデルを構築および最適化する方法を説明します。Amazon Comprehendを使用して多ラベルのカスタム分類モデルを構築し、精度、適合率、再現率、F1スコアなどのパフォーマンスメトリックを満たすためにトレーニングデータセットを準備し、モデルを調整するためのガイドラインを提供します。Amazon Comprehendのモデルトレーニングの出力アーティファクトである混同行列を使用してモデルのパフォーマンスを調整し、トレーニングデータの改善方法についてもアドバイスします。
ソリューションの概要
このソリューションでは、Amazon Comprehendを使用して最適化されたカスタム分類モデルを構築する方法を示します。データの準備、モデルの作成、モデルのパフォーマンスメトリックの分析、分析に基づいた推論の最適化など、いくつかの手順を経て説明します。この過程では、Amazon SageMakerのノートブックとAWS Management Consoleを使用します。
データの準備、モデルの構築、モデルの調整におけるベストプラクティスと最適化技術についても説明します。
- 「AWS Trainiumを使用した高速で費用効果の高いLLaMA 2の微調整」
- 「Amazon SageMaker JumpStartを使用してFalconでHCLS文書要約アプリケーションを作成する」
- 「時系列予測と再帰型ニューラルネットワーク」
前提条件
SageMakerのノートブックインスタンスを持っていない場合は、作成することができます。手順については、Amazon SageMakerノートブックインスタンスの作成を参照してください。
データの準備
この分析では、Kaggleの有害コメント分類データセットを使用します。このデータセットには6つのラベルと158,571のデータポイントが含まれています。しかし、各ラベルには、全体のデータの10%未満しか正例としてデータがありません。そのうち2つのラベルは1%未満です。
ラベルをパイプ(|)で区切って分割するAmazon Comprehendの二列CSV形式に既存のKaggleデータセットを変換します。Amazon Comprehendでは、各データポイントに少なくとも1つのラベルが必要です。このデータセットでは、提供されたラベルのいずれにも該当しないデータポイントがいくつかあります。これらのデータポイントのうち、有害でないものを正としてcleanという新しいラベルを作成します。最後に、一貫性のあるデータセットを各ラベルごとに80/20の比率でトレーニングとテストのデータセットに分割します。
データの準備にはData-Preparationノートブックを使用します。以下の手順では、Kaggleデータセットを使用してモデルのためのデータを準備します。
- ナビゲーションペインのノートブックインスタンスを選択します。
- 構成済みのノートブックインスタンスを選択し、Open Jupyterを選択します。
- NewメニューでTerminalを選択します。
- 以下のコマンドをターミナルで実行して、この記事のために必要なアーティファクトをダウンロードします。
cd SageMakerwget https://aws-ml-blog.s3.amazonaws.com/artifacts/amazon-comprehend-improve-prediction-quality/comprehend-blog-artifacts.zipunzip comprehend-blog-artifacts.ziprm comprehend-blog-artifacts.zipmkdir assets
- ターミナルウィンドウを閉じます。
それでは、3つのノートブックとtrain.csvファイルが表示されるはずです。
- ノートブックData-Preparation.ipynbを選択します。
- ノートブックのすべてのステップを実行します。
これらのステップは、生のKaggleデータセットをカリキュレーションされたトレーニングおよびテストデータセットとして準備します。カリキュレートされたデータセットは、ノートブックとAmazon Simple Storage Service(Amazon S3)に保存されます。
大規模なマルチラベルデータセットを取り扱う際に考慮すべきデータ準備のガイドラインは次のとおりです:
- データセットは、ラベルごとに最低でも10のサンプルを持っている必要があります。
- Amazon Comprehendは最大100のラベルを受け付けます。これは増やすことができるソフトリミットです。
- データセットファイルが正しくフォーマットされていることを確認してください。間違った区切り文字は空のラベルを導入する可能性があります。
- すべてのデータポイントにはラベルが必要です。
- トレーニングおよびテストデータセットは、ラベルごとにバランスの取れたデータ分布を持つ必要があります。ランダムな分布を使用しないでください。それは、トレーニングおよびテストデータセットにバイアスを導入する可能性があります。
カスタム分類モデルを構築する
データの準備段階で作成したカリキュレートされたトレーニングおよびテストデータセットを使用してモデルを構築します。次のステップでAmazon Comprehendのマルチラベルカスタム分類モデルを作成します:
- Amazon Comprehendコンソールで、ナビゲーションペインでカスタム分類を選択します。
- 新しいモデルを作成を選択します。
- モデル名には、toxic-classification-modelを入力します。
- バージョン名には、1を入力します。
- 注釈とデータ形式はマルチラベルモードを使用を選択します。
- トレーニングデータセットには、Amazon S3上のカリキュレートされたトレーニングデータセットの場所を入力します。
- カスタマー提供テストデータセットを選択し、Amazon S3上のカリキュレートされたテストデータの場所を入力します。
- 出力データには、Amazon S3の場所を入力します。
- IAMロールで、IAMロールを作成を選択し、名前のサフィックスとして「comprehend-blog」と指定します。
- カスタム分類モデルのトレーニングとモデルの作成を開始するために、作成を選択します。
以下のスクリーンショットは、Amazon Comprehendコンソール上でカスタム分類モデルの詳細を示しています。
モデルのパフォーマンスを調整する
以下のスクリーンショットは、モデルのパフォーマンスメトリクスを示しています。これには、精度、再現率、F1スコア、正解率などの主要なメトリクスが含まれています。
モデルがトレーニングされて作成された後、データセットから生成されたoutput.tar.gzファイルには、データセットのラベルと各ラベルの混同行列が含まれています。モデルの予測パフォーマンスをさらにチューニングするには、各クラスへの予測確率を理解する必要があります。これを行うには、データポイントごとにAmazon Comprehendが割り当てたスコアを特定するために解析ジョブを作成する必要があります。
解析ジョブを作成するには、次の手順を完了します:
- Amazon Comprehendコンソールで、ナビゲーションペインで解析ジョブを選択します。
- ジョブの作成を選択します。
- 名前に
toxic_train_data_analysis_job
を入力します。 - 解析タイプにはカスタム分類を選択します。
- 分類モデルおよびフライホイールには
toxic-classification-model
を指定します。 - バージョンには1を指定します。
- 入力データS3の場所には、カリキュレートされたトレーニングデータファイルの場所を入力します。
- 入力形式には1行ごとのドキュメントを選択します。
- 出力データS3の場所には、場所を入力します。
- アクセス許可では、既存のIAMロールを使用を選択し、以前に作成したロールを選択します。
- 解析ジョブを開始するためにジョブの作成を選択します。
- ジョブの詳細を表示するために解析ジョブを選択します。ジョブの詳細の下にあるジョブIDをメモしてください。次のステップでジョブIDを使用します。
クレジットされたテストデータの開始分析ジョブの手順を繰り返します。分析ジョブの予測出力を使用してモデルの予測確率について学びます。トレーニングおよびテストの分析ジョブのジョブIDをメモしてください。
Model-Threshold-Analysis.ipynbノートブックを使用して、すべての可能な閾値で出力をテストし、scikit-learnのprecision_recall_curve
関数を使用して予測確率に基づいて出力をスコアリングします。さらに、各閾値でF1スコアを計算することもできます。
Model-Threshold-Analysisノートブックには、Amazon Comprehendの分析ジョブIDが入力として必要です。Amazon ComprehendコンソールからジョブIDを取得できます。すべてのステップをModel-Threshold-Analysisノートブックで実行して、すべてのクラスの閾値を観察します。
閾値が上がるにつれて適合率が上昇し、再現率は逆になります。両者のバランスを見つけるために、F1スコアを使用して、その曲線上の顕著なピークでバランスを見つけます。F1スコアのピークは、モデルのパフォーマンスを改善できる特定の閾値に対応しています。ほとんどのラベルは、0.5の閾値の周りにあることに注意してください。ただし、脅威ラベルの閾値は0.04の周りにあります。
最適化されていない特定のラベルの場合、デフォルトの0.5の閾値ではパフォーマンスが低下するため、この閾値を使用します。最適化された閾値を使用することで、テストデータのモデルの結果が脅威ラベルの0.00から0.24に向上します。各ラベルに共通の基準(> 0.7のような標準値)ではなく、閾値に対応する最大のF1スコアをベンチマークとして、そのラベルの陽性と陰性を判断するために使用します。
未表示クラスの処理
不均衡なデータセットに効果的なもう1つのアプローチは、過剰サンプリングです。未表示クラスを過剰サンプリングすることで、モデルは未表示クラスをより頻繁に見ることができ、それらのサンプルの重要性を強調します。最適化されたデータセットを作成するためにOversampling-underrepresented.ipynbノートブックを使用します。
このデータセットでは、評価データセットでのモデルのパフォーマンスがサンプルを追加することでどのように変化するかをテストしました。過剰サンプリング手法を使用して、未表示クラスの出現頻度を増やしてパフォーマンスを向上させます。
この特定のケースでは、10、25、50、100、200、および500の陽性例でテストしました。データポイントを繰り返していることに注意してください。未表示クラスの重要性を強調することで、モデルのパフォーマンスを改善しています。
コスト
Amazon Comprehendでは、処理されるテキスト文字数に基づいて支払いが行われます。実際の費用については、Amazon Comprehendの価格設定を参照してください。
クリーンアップ
この解決策の実験が終了したら、この例で展開されたすべてのリソースを削除してリソースをクリーンアップしてください。これにより、アカウントの継続的な費用を回避することができます。
結論
この記事では、データの準備、予測確率を使用したモデルチューニング、アンダーリプレゼンテッドデータクラスの処理技術に関するベストプラクティスとガイダンスを提供しました。これらのベストプラクティスとテクニックを使用して、Amazon Comprehendのカスタム分類モデルのパフォーマンスメトリクスを向上させることができます。
Amazon Comprehendに関する詳細情報は、Amazon Comprehend 開発者リソースにアクセスしてビデオリソースやブログ記事を探し、AWS ComprehendのFAQを参照してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「Googleバードを効果的に使用する5つの方法」
- 「すべてのビジネスが生成的AIを受け入れるのを支援するための新しいツールを発表します」と発表します
- 「グラフ彩色の魅力的な世界を探索する」
- 「ファウンデーションモデルの安全で準拠した利用を可能にする生成AIゲートウェイを作成する」
- 「Amazon SageMaker Canvas UIとAutoML APIを使用して、時系列の予測を最大50%高速化しましょう」
- 「CDS HooksとAWS HealthLakeを使用してCRDを自動化して事前承認を行う」
- AIにおける幻覚の克服:事実に基づく強化学習ハイブリッドフレームワークが大規模な多モーダルモデルのビジョン・言語の整合性を最適化する方法