より多くの組織がより深い洞察を推進するために機械学習(ML)に移行するにつれて、彼らが遭遇するXNUMXつの重要な障害は、ラベル付けとライフサイクル管理です。 ラベル付けとは、データを識別し、ラベルを追加してコンテキストを提供し、MLモデルがデータから学習できるようにすることです。 ラベルは、オーディオファイルのフレーズ、写真の車、またはMRIの臓器を示す場合があります。 MLモデルがデータに対して機能できるようにするには、データのラベル付けが必要です。 ライフサイクル管理は、ML実験を設定し、結果を取得するために使用されるデータセット、ライブラリ、バージョン、およびモデルを文書化するプロセスと関係があります。 チームは、XNUMXつのアプローチに落ち着く前に、何百もの実験を実行する場合があります。 その実験の要素の記録がなければ、戻ってそのアプローチを再現することは難しい場合があります。
多くのMLの例とチュートリアルは、ターゲット値を含むデータセットから始まります。 ただし、実際のデータには必ずしもそのような目標値があるとは限りません。 たとえば、感情分析では、人は通常、レビューが肯定的、否定的、または混合であるかどうかを判断できます。 ただし、レビューは、判断値が付加されていないテキストのコレクションで構成されています。 を作成するには 教師あり学習 この問題を解決するためのモデルには、高品質のラベル付きデータセットが不可欠です。 Amazon SageMakerグラウンドトゥルース はフルマネージドのデータラベリングサービスであり、MLの非常に正確なトレーニングデータセットを簡単に構築できます。
AWSでDatabricksをデータおよび分析プラットフォームとして使用して抽出、変換、および読み込み(ETL)タスクを実行する組織の場合、最終的な目標は、多くの場合、教師あり学習モデルのトレーニングです。 この投稿では、DatabricksがGroundTruthおよび アマゾンセージメーカー データのラベル付けとモデルの配布用。
ソリューションの概要
Ground Truthは、MLの非常に正確なトレーニングデータセットを簡単に構築できる、完全に管理されたデータラベリングサービスです。 Ground Truthコンソールを使用して、カスタムまたは組み込みのデータラベル付けワークフローを数分で作成できます。 これらのワークフローは、3D点群、ビデオ、画像、テキストなど、さまざまなユースケースをサポートしています。 さらに、Ground Truthは、MLモデルを使用してデータにラベルを付ける自動データラベルを提供します。
公開されているAmazonカスタマーレビューデータセットでモデルをトレーニングします。 大まかに言うと、手順は次のとおりです。
- ラベル付けする生のデータセットを抽出し、次の場所に移動します Amazon シンプル ストレージ サービス (Amazon S3)。
- SageMakerでラベリングジョブを作成してラベリングを実行します。
- サンプルを使用してDatabricksプラットフォーム上のレビューテキストの感情を分類するために、単純なScikit-learn線形学習者モデルを構築してトレーニングします ノート.
- MLフロー MLOpsを作成および実行し、モデルアーティファクトを保存するコンポーネント。
- を使用してモデルをSageMakerエンドポイントとしてデプロイします MLflowSageMakerライブラリ リアルタイム推論用。
次の図は、GroundTruthとMLflowを使用したラベリングとMLジャーニーを示しています。
SageMakerでラベリングジョブを作成する
感情分析モデルを構築しているため、AmazonCustomerReviewsデータセットからテキスト部分のみを抽出します。 抽出したら、テキストをS3バケットに入れ、SageMakerコンソールを介してGroundTruthラベリングジョブを作成します。
ソフトウェア設定ページで、下図のように ラベル付けジョブを作成する ページで、すべての必須フィールドに入力します。 このページの手順の一部として、Ground Truthを使用すると、ジョブマニフェストファイルを生成できます。 Ground Truthは、入力マニフェストファイルを使用して、ラベリングジョブ内のファイルまたはオブジェクトの数を識別し、適切な数のタスクが作成されて、人間(またはマシン)のラベラーに送信されるようにします。 ファイルは自動的にS3バケットに保存されます。 次のステップは、タスクカテゴリとタスク選択を指定することです。 このユースケースでは、 テキスト タスクカテゴリとして、および テキスト分類 タスク選択用の単一のラベルが付いています。これは、レビューテキストが単一の感情(ポジティブ、ネガティブ、またはニュートラル)を持つことを意味します。
最後に、テキストデータにラベルを付ける方法について、ラベラー向けのシンプルで簡潔な手順を記述します。 指示はラベリングツールに表示され、オプションでこの時点でアノテーターのビューを確認できます。 最後に、ジョブを送信し、コンソールで進行状況を監視します。
ラベル付け作業の進行中に、ラベル付けされたデータを確認することもできます。 出力 タブ。 各レビューテキストとラベル、および作業が人間または機械によって行われたかどうかを監視できます。 人間が行うラベリング作業を100%選択するか、機械注釈を選択することで、作業をスピードアップし、人件費を削減できます。
ジョブが完了すると、ラベル付けジョブの概要には、出力マニフェストとラベル付けされたデータセットへのリンクが含まれます。 また、Amazon S3にアクセスして、S3バケットフォルダーから両方をダウンロードすることもできます。
次のステップでは、Databricksノートブックを使用します。 MLフロー、およびGroundTruthでラベル付けされたデータセット シキット学習 モデル。
ラベル付きデータセットをAmazonS3からダウンロードします
まず、AmazonS3からラベル付きデータセットをダウンロードします。 マニフェストはJSON形式で保存され、DatabricksのSparkDataFrameに読み込まれます。 感情分析モデルをトレーニングするには、GroundTruthラベリングジョブによって注釈が付けられたレビューテキストと感情のみが必要です。 select()を使用して、これらXNUMXつの機能を抽出します。 次に、データセットをPySparkDataFrameからPandasDataFrameに変換します。これは、Scikit-learnアルゴリズムにはPandasDataFrame形式が必要なためです。
次に、Scikit-learnを使用します CountVectorizer
レビューテキストをバイグラムベクトルに変換するには、 ngram_range
最大値を2にします。 CountVectorizer
テキストをトークンカウントのマトリックスに変換します。 次に、 TfidfTransformer
バイグラムベクトルを用語頻度-逆ドキュメント頻度(TF-IDF)形式に変換します。
バイグラムベクトルを使用したトレーニングとTF-IDFを使用したバイグラムの精度スコアを比較します。 TF-IDFは、単語がドキュメントのコレクション内のドキュメントにどの程度関連しているかを評価する統計的尺度です。 レビューテキストは比較的短い傾向があるため、TF-IDFが予測モデルのパフォーマンスにどのように影響するかを観察できます。
MLflow実験を設定する
MLflowはDatabricksによって開発され、現在は オープンソースプロジェクト。 MLflowはMLライフサイクルを管理するため、実験を簡単に追跡、再作成、公開できます。
MLflow実験を設定するには、 mlflow.sklearn.autolog()
ハイパーパラメータ、メトリック、モデルアーティファクトの自動ロギングをいつでも有効にする estimator.fit()
, estimator.fit_predict()
, & estimator.fit_transform()
と呼ばれます。 または、を呼び出して手動でこれを行うことができます mlflow.log_param()
& mlflow.log_metric()
.
変換されたデータセットを確率的勾配降下法(SGD)学習を使用して線形分類器に適合させます。 SGDを使用すると、損失の勾配が一度にXNUMXサンプルずつ推定され、強度スケジュールが減少するにつれてモデルが更新されます。
以前に準備したXNUMXつのデータセットは、 train_and_show_scores()
トレーニングのための機能。 トレーニング後、モデルを登録してそのアーティファクトを保存する必要があります。 を使用しております mlflow.sklearn.log_model()
そうすることができません。
デプロイする前に、実験の結果を確認し、XNUMXつの実験(XNUMXつはバイグラム用、もうXNUMXつはTF-IDFを使用したバイグラム用)を選択して比較します。 このユースケースでは、バイグラムTF-IDFでトレーニングされたXNUMX番目のモデルのパフォーマンスがわずかに向上したため、そのモデルを選択してデプロイします。 モデルが登録されたら、モデルをデプロイし、モデルのステージを本番環境に変更します。 これは、MLflow UIで、または次のコードを使用して実行できます。 transition_model_version_stage()
.
モデルをSageMakerエンドポイントとしてデプロイしてテストする
トレーニング済みモデルをデプロイする前に、SageMakerでモデルをホストするDockerコンテナを構築する必要があります。 これを行うには、コンテナをビルドしてプッシュする単純なMLflowコマンドを実行します。 Amazon エラスティック コンテナ レジストリ (Amazon ECR)AWSアカウントで。
これで、AmazonECRコンソールで画像URIを見つけることができます。 画像URIをとして渡します image_url
パラメータ、および使用 DEPLOYMENT_MODE_CREATE
これが新しいデプロイメントである場合は、modeパラメーター。 既存のエンドポイントを新しいバージョンで更新する場合は、 DEPLOYMENT_MODE_REPLACE
.
SageMakerエンドポイントをテストするために、エンドポイント名と入力データをパラメーターとして受け取る関数を作成します。
まとめ
この投稿では、Ground Truthを使用して生のデータセットにラベルを付ける方法と、ラベル付けされたデータを使用してScikit-learnを使用して単純な線形分類器をトレーニングする方法を示しました。 この例では、MLflowを使用してハイパーパラメーターとメトリックを追跡し、本番環境グレードのモデルを登録し、トレーニング済みモデルをエンドポイントとしてSageMakerにデプロイします。 データを処理するためのDatabricksに加えて、このユースケース全体を自動化できるため、新しいデータが導入されたときに、ラベルを付けてモデルに処理することができます。 これらのパイプラインとモデルを自動化することで、データサイエンスチームは、日々のデータ更新の管理に時間を費やす代わりに、新しいユースケースに焦点を当て、より多くの洞察を明らかにすることができます。
開始するには、チェックアウトしてください Amazon SageMakerGroundTruthを使用してデータにラベルを付ける にサインアップ AWSでのDatabricksの14日間の無料トライアル。 DatabricksがSageMakerや、次のような他のAWSサービスとどのように統合されるかについて詳しく知る AWSグルー & Amazonレッドシフト訪問 AWSのデータブリックス.
さらに、この投稿で使用されている次のリソースを確認してください。
以下を使用してください ノート 始めるために。
著者について
ルミオルセン AWSパートナープログラムのソリューションアーキテクトです。 彼女は現在の役割でサーバーレスおよび機械学習ソリューションを専門としており、自然言語処理技術のバックグラウンドを持っています。 彼女は余暇のほとんどを娘と過ごし、太平洋岸北西部の自然を探索しています。
Igor Alekseevは、AWSのデータと分析のパートナーソリューションアーキテクトです。 Igorは戦略的パートナーと協力して、AWSに最適化された複雑なアーキテクチャの構築を支援しています。 AWSに参加する前は、データ/ソリューションアーキテクトとして、Hadoopエコシステムのいくつかのデータレイクを含む多くのプロジェクトをビッグデータに実装していました。 データエンジニアとして、彼はAI/MLを不正検出とオフィスオートメーションに適用することに携わっていました。 Igorのプロジェクトは、通信、金融、公安、製造、ヘルスケアなど、さまざまな業界で行われました。 以前は、Igorはフルスタックエンジニア/技術リーダーとして働いていました。
ナゼール・アーメド は、AWSビジネスをサポートするDatabricksのシニアパートナーソリューションアーキテクトです。 Naseerは、AWSでのデータウェアハウジング、ビジネスインテリジェンス、アプリ開発、コンテナ、サーバーレス、機械学習アーキテクチャを専門としています。 彼はDatabricksで2021SMEof the yearに選ばれ、熱心な暗号愛好家です。
- "
- 100
- 2021
- 3d
- 私たちについて
- 正確な
- 添加
- アルゴリズム
- すべて
- Amazon
- 分析
- 分析論
- アプリ
- アプリ開発
- 適用
- アプローチ
- オーディオ
- オート
- オートメーション
- 利用できます
- AWS
- 背景
- 基礎
- ビッグデータ
- ビルド
- 建物
- 構築します
- 内蔵
- ビジネス
- ビジネス・インテリジェンス
- 自動車
- 例
- カテゴリー
- 選択する
- 分類
- コード
- コレクション
- 通信部
- 複雑な
- 領事
- コンテナ
- 含まれています
- コスト
- 作成した
- 作成
- クリプト
- 電流プローブ
- カスタム
- データ
- データサイエンス
- より深い
- 展開します
- 展開する
- 展開
- 検出
- 発展した
- 開発
- 難しい
- ディストリビューション
- デッカー
- ドキュメント
- そうではありません
- ドライブ
- 簡単に
- エコシステム
- enable
- エンドポイント
- エンジニア
- 本質的な
- 推定
- 例
- 実験
- 特徴
- フィールズ
- 最後に
- ファイナンス
- フィット
- フォーカス
- フォロー中
- 形式でアーカイブしたプロジェクトを保存します.
- 詐欺
- 無料版
- フル
- function
- 生成する
- 目標
- 行く
- ヘルスケア
- ハイ
- 非常に
- 認定条件
- How To
- HTTPS
- 人間
- 人間
- 何百
- 識別
- 識別する
- 画像
- 実装
- 含めて
- 産業
- 洞察
- インテリジェンス
- 関係する
- IT
- ジョブ
- Jobs > Create New Job
- キー
- ラベリング
- ラベル
- 労働
- 言語
- つながる
- LEARN
- 学習
- レベル
- 図書館
- リンク
- 負荷
- 機械
- 機械学習
- 製
- 作る
- マネージド
- 管理
- 管理する
- 手動で
- 製造業
- マトリックス
- だけど
- メトリック
- 混合
- ML
- モデル
- モニター
- 他には?
- 最も
- ナチュラル
- 自然
- ノート
- 数
- オファー
- 注文
- 組織
- その他
- 太平洋
- パートナー
- パートナー
- パフォーマンス
- 人
- プラットフォーム
- ポイント
- 正の
- 問題
- プロセス
- 生産
- 演奏曲目
- プロジェクト(実績作品)
- 提供します
- 公共
- パブリッシュ
- Raw
- への
- 記録
- 登録
- 登録された
- 関連した
- の提出が必要です
- リソース
- 結果
- レビュー
- レビュー
- ラン
- ランニング
- 安全性
- 科学
- 感情
- サーバレス
- サービス
- サービス
- セッションに
- 設定
- ショート
- 簡単な拡張で
- So
- 溶液
- ソリューション
- 解決する
- 専門にする
- 支出
- スタック
- ステージ
- start
- 開始
- 統計的
- ストレージ利用料
- 戦略的
- サポート
- 支援する
- ターゲット
- タスク
- チーム
- テクノロジー
- test
- 介して
- 時間
- トークン
- ツール
- 追跡する
- トレーニング
- 最適化の適用
- トライアル
- チュートリアル
- ui
- 究極の
- 明らかにする
- 更新版
- つかいます
- 通常
- 値
- 多様
- ビデオ
- 詳しく見る
- かどうか
- 無し
- 仕事
- 働いていました
- 作品
- 年