今日、ソーシャルメディアは巨大なニュースソースです。 ユーザーは、FacebookやTwitterなどのプラットフォームを利用してニュースを利用しています。 保険会社、最初の回答者、法執行機関、政府機関などの特定の業界では、発生している関連イベントに関するニュースを迅速に処理できると、これらのイベントがまだ展開している間に行動を起こすのに役立ちます。
複雑なNLP(自然言語処理)モデルのトレーニングを伴わないソリューションを探すために、テキストデータから価値を抽出しようとする組織にとっては珍しいことではありません。 これらの組織では、事前にトレーニングされたNLPモデルを使用する方が実用的です。 さらに、選択したモデルが成功指標を満たさない場合、組織は別のモデルを簡単に選択して再評価できるようにしたいと考えています。
現在、次のおかげで、テキストデータから情報を抽出することがこれまでになく簡単になっています。
- トランスなどの最先端の汎用NLPアーキテクチャの台頭
- 開発者とデータサイエンティストがクラウド上で次のようなサービスを使用して機械学習(ML)モデルを迅速に構築、トレーニング、デプロイする必要がある機能 アマゾンセージメーカー
- 数百の言語で事前にトレーニングされた数千のNLPモデルが利用可能であり、次のようなプラットフォームでコミュニティによって提供される複数のフレームワークがサポートされています。 フェイスハブを抱き締める
この投稿では、Twitterからのニュースを消費し、HuggingFaceHubの事前トレーニング済みモデルを使用してツイートを分類するリアルタイムアラートシステムを構築する方法を紹介します。 このソリューションをゼロショット分類に使用できます。つまり、事実上すべてのカテゴリセットでツイートを分類し、SageMakerを使用してモデルをデプロイしてリアルタイムで推論できます。
または、ソーシャルメディアの相互作用を分析することで顧客の会話への洞察を探し、ブランド認知度を深めたい場合は、 AI駆動のソーシャルメディアダッシュボード。 ソリューションは使用します Amazon Comprehend、完全に管理されたNLPサービスであり、機械学習の経験を必要とせずに、テキスト内の貴重な洞察とつながりを明らかにします。
ゼロショット学習
NLPと自然言語理解(NLU)の分野は急速に進化し、テキスト分類、質問応答、要約、テキスト生成などのユースケースに対応しています。 この進化は、一部には、トランスなどの最先端の汎用アーキテクチャの台頭のおかげで可能になりましたが、そのようなモデルのトレーニングに利用できるより多くのより高品質のテキストコーパスも利用可能になりました。
トランスフォーマーアーキテクチャは複雑なニューラルネットワークであり、ゼロからトレーニングするには、ドメインの専門知識と大量のデータが必要です。 一般的な方法は、BERT、RoBERTa、T5、GPT-2、DistilBERTなどの事前トレーニング済みの最先端のトランスフォーマーを使用して、モデルを特定のユースケースに微調整(転移学習)することです。
それでも、事前にトレーニングされたNLPモデルで転移学習を実行することでさえ、多くの場合、困難な作業になる可能性があり、大量のラベル付きテキストデータとデータをキュレートする専門家のチームが必要になります。 この複雑さにより、ほとんどの組織はこれらのモデルを効果的に使用できませんが、ゼロショット学習は、MLの実践者や組織がこの欠点を克服するのに役立ちます。
ゼロショット学習は、分類器がトレーニング中にXNUMXセットのラベルで学習し、推論中に分類器がこれまでに見たことのない別のラベルセットで評価される特定のMLタスクです。 NLPでは、自然言語推論(NLI)タスクでトレーニングされたゼロショットシーケンス分類子を使用して、微調整せずにテキストを分類できます。 この投稿では、人気のあるNLIを使用します バート ツイートを分類するためのモデルbart-large-mnli。 これは、事前にトレーニングされた大規模なモデル(1.6 GB)であり、HuggingFaceモデルハブで利用できます。
Hugging Faceは、100を超える言語で事前にトレーニングされた数千のNLPモデル(トランスフォーマー)を備え、TensorFlowやPyTorchなどのさまざまなフレームワークをサポートするオープンソースプラットフォーム(Hugging Face Hub)を管理するAI企業です。 トランスフォーマーライブラリは、開発者とデータサイエンティストが、分類、情報抽出、質問応答、要約、翻訳、テキスト生成などの複雑なNLPおよびNLUタスクを開始するのに役立ちます。
AWSとHuggingFace NLPモデルの採用を簡素化および加速するために協力してきました。 PyTorchまたはTensorFlowでトレーニングと推論を行うためのディープラーニングコンテナ(DLC)のセット、およびSageMakerPythonSDKのHuggingFace推定と予測が利用可能になりました。 これらの機能は、あらゆるレベルの専門知識を持つ開発者がNLPを簡単に開始するのに役立ちます。
ソリューションの概要
選択したTwitterアカウントからリアルタイムでツイートを取得する実用的なソリューションを提供します。 ソリューションのデモンストレーションには、Amazon Web Services(Amazon Web Services(@awscloud)、AWSセキュリティ(@AWSセキュリティ情報)、およびAmazon Science(@アマゾンサイエンス)、コンテンツをセキュリティ、データベース、コンピューティング、ストレージ、機械学習のいずれかのカテゴリに分類します。 モデルが信頼スコアが40%を超えるカテゴリを返す場合、通知が送信されます。
次の例では、モデルはAmazon Web Servicesからのツイートを機械学習カテゴリに分類し、信頼スコアは97%で、アラートを生成しました。
このソリューションは、(Hugging Face Hubからの)Hugging Faceの事前トレーニング済みトランスフォーマーモデルに依存して、推論時に提供される一連のラベルに基づいてツイートを分類します。モデルをトレーニングする必要はありません。 次のスクリーンショットは、その他の例とそれらがどのように分類されたかを示しています。
自分で解決策を試すことをお勧めします。 からソースコードをダウンロードするだけです GitHubリポジトリ READMEファイルの展開手順に従います。
ソリューションのアーキテクチャ
このソリューションは、Twitterのエンドポイントへのオープンな接続を維持し、新しいツイートが到着すると、キューにメッセージを送信します。 コンシューマーはキューからメッセージを読み取り、分類エンドポイントを呼び出し、結果に応じてエンドユーザーに通知します。
以下は、ソリューションのアーキテクチャ図です。
ソリューションワークフローは、次のコンポーネントで構成されています。
- このソリューションは、TwitterのStream APIに依存して、構成されたルールに一致するツイート(対象のアカウントからのツイート)をリアルタイムで取得します。 そのために、コンテナ内で実行されているアプリケーションは、Twitterのエンドポイントへのオープンな接続を維持します。 参照する Twitter API のガイドをご参照ください。
- コンテナはで実行されます Amazon エラスティック コンテナ サービス (Amazon ECS)は、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを容易にする、フルマネージドのコンテナオーケストレーションサービスです。 単一のタスクは、によって管理されるサーバーレスインフラストラクチャで実行されます AWSファーゲート.
- TwitterBearerトークンは安全に保存されます AWS SystemsManagerパラメータストア、の機能 AWS システム マネージャー これは、構成データとシークレット用の安全な階層ストレージを提供します。 コンテナイメージはでホストされています Amazon エラスティック コンテナ レジストリ (Amazon ECR)、高性能ホスティングを提供するフルマネージドコンテナレジストリ。
- 新しいツイートが到着するたびに、コンテナアプリケーションはそのツイートを Amazon シンプル キュー サービス (Amazon SQS)キュー。 Amazon SQSは、マイクロサービス、分散システム、サーバーレスアプリケーションを分離して拡張できる、フルマネージドのメッセージキューイングサービスです。
- ソリューションのロジックは、 AWSラムダ 関数。 Lambdaは、サーバーレスのイベント駆動型コンピューティングサービスです。 この関数は、キューから新しいツイートを消費し、エンドポイントを呼び出すことによってそれらを分類します。
- エンドポイントはHuggingFaceモデルに依存しており、SageMakerでホストされています。 エンドポイントは推論を実行し、ツイートのクラスを出力します。
- 分類に応じて、関数はを介して通知を生成します Amazon シンプル通知サービス (Amazon SNS)、フルマネージドメッセージングサービス。 SNSトピックをサブスクライブでき、複数の宛先がその通知を受信できます(を参照してください)。 AmazonSNSイベントの宛先)。 たとえば、通知を電子メールメッセージとして受信トレイに配信できます(を参照)。 電子メール通知).
SageMakerを使用してHuggingFaceモデルをデプロイする
10,000を超える公開モデルのいずれかをから選択できます。 フェイスモデルハブを抱き締める を使用してSageMakerでそれらをデプロイします 顔推論DLCを抱き締める.
使用時 AWS CloudFormation、公開されているもののXNUMXつを選択します 顔推論コンテナを抱き締める モデルとタスクを構成します。 このソリューションは、 facebook / bart-large-mnli モデルとゼロショット分類タスクですが、以下のモデルのいずれかを選択できます ゼロショット分類 Hugging FaceModelHubで。 これらを構成するには、次のコードのように、CloudFormationテンプレートでHF_MODEL_IDおよびHF_TASK環境変数を設定します。
または、AWS CloudFormationを使用していない場合は、数行のコードで同じ結果を得ることができます。 参照する モデルをAmazonSageMakerにデプロイする のガイドをご参照ください。
コンテンツを分類するには、SageMakerエンドポイントを呼び出すだけです。 以下はPythonコードスニペットです。
注意してください × の値 マルチクラス 各クラスのすべての確率の合計が合計1になることを示すパラメーター。
ソリューションの改善
ツイートとモデルの結果を保存することで、ここで提案するソリューションを強化できます。 Amazon シンプル ストレージ サービス (Amazon S3)、オブジェクトストレージサービスは3つのオプションです。 ツイート、結果、その他のメタデータをJSONオブジェクトとしてSXNUMXバケットに書き込むことができます。 次に、を使用してそのコンテンツに対してアドホッククエリを実行できます。 アマゾンアテナ、標準SQLを使用してAmazonS3のデータを簡単に分析できるインタラクティブなクエリサービス。
履歴を使用して、洞察を抽出するだけでなく、カスタムモデルをトレーニングすることもできます。 Hugging Faceサポートを使用して、SageMakerで独自のデータを使用してモデルをトレーニングできます。 詳細については AmazonSageMakerでトレーニングを実行する.
実際の使用例
お客様はすでにSageMakerでHuggingFaceモデルを試しています。 SegurosBolívar、1939年に設立されたコロンビアの金融および保険会社はその一例です。
「私たちは、顧客と保険ブローカー向けの脅威通知ソリューションを開発しました。 Hugging Faceの事前トレーニング済みNLPモデルを使用して、関連するアカウントからのツイートを分類し、クレームを軽減するための防止戦略として、ほぼリアルタイムで顧客への通知を生成します。 クレームは、顧客がさらされているリスクのレベルを認識していないために発生します。 このソリューションにより、お客様の意識を高め、リスクを具体的な状況で測定可能なものに変えることができます。」
–Julian Rico、SegurosBolívarの研究および知識の責任者。
SegurosBolívarはAWSと協力して、ソリューションを再構築しました。 現在はSageMakerに依存しており、この投稿で説明されているものに似ています。
まとめ
ゼロショット分類は、カスタムテキスト分類器をトレーニングするためのデータがほとんどない場合、またはカスタムNLPモデルをトレーニングする余裕がない場合に理想的です。 特殊なユースケースでは、テキストが特定の単語や用語に基づいている場合は、カスタムトレーニングセットに基づく教師あり分類モデルを使用することをお勧めします。
この投稿では、AWSでHuggingFaceゼロショットモデルを使用してニュース分類子を構築する方法を紹介しました。 ニュースソースとしてTwitterを使用しましたが、特定のニーズにより適したニュースソースを選択できます。 さらに、CloudFormationテンプレートで選択したモデルを指定するだけで、モデルを簡単に変更できます。
ソースコードについては、 GitHubリポジトリ 完全なセットアップ手順が含まれています。 自分で複製、変更、デプロイ、実行できます。 また、これを出発点として使用し、カテゴリとアラートロジックをカスタマイズしたり、同様のユースケース向けに別のソリューションを構築したりすることもできます。
ぜひお試しいただき、ご感想をお聞かせください。 いつものように、私たちはあなたのフィードバックを楽しみにしています。 通常のAWSサポートの連絡先に送信するか、 SageMakerのAWSフォーラム.
著者について
デビッドラレド LATAMのAWSEnvisionEngineeringのプロトタイピングアーキテクトであり、複数の機械学習プロトタイプの開発を支援してきました。 以前は機械学習エンジニアとして働いており、5年以上機械学習を行っています。 彼の関心分野は、NLP、時系列、エンドツーエンドのMLです。
ラファエルワーネック は、ブラジルを拠点とするAWSEnvisionEngineeringのシニアプロトタイピングアーキテクトです。 以前は、Amazon.com.brおよびAmazon RDSPerformanceInsightsでソフトウェア開発エンジニアとして働いていました。
ヴィクラムエランゴ は、米国バージニア州に拠点を置くAmazonWebServicesのAI/MLスペシャリストソリューションアーキテクトです。 Vikramは、金融および保険業界の顧客が設計と思考のリーダーシップを発揮して、機械学習アプリケーションを大規模に構築および展開できるように支援します。 彼は現在、自然言語処理、責任あるAI、推論の最適化、および企業全体でのMLのスケーリングに焦点を当てています。 余暇には、家族と一緒に旅行、ハイキング、料理、キャンプを楽しんでいます。