Veeva Systems は、グローバルライフサイエンス業界向けのクラウドベースソフトウェアのプロバイダーであり、臨床、規制、品質など、さまざまな分野に対応する製品を提供しています。 ヴィーヴァ Vaultプラットフォーム はコンテンツとデータの両方を単一のプラットフォームで管理します。これにより、コンテンツ、データ、ワークフローを使用してエンドツーエンドプロセスを管理する強力なアプリケーションを展開できます。 Vaultプラットフォームはオープンアーキテクチャと包括的なAPIを提供し、ビジネスアプリケーションの迅速な構成と変更によるカスタマイズを可能にし、他のシステムとのシームレスな統合により、Veeva Vault機能の拡張、データの移行、または処理の自動化を実現します。
商業空間におけるそのような製品のXNUMXつは Veeva Vaultプロモマット。 400か国以上の165を超えるライフサイエンス企業が、商用コンテンツとデジタルアセット管理をVeeva Vault PromoMatsに依存しています。
Veeva Vault PromoMatsは、デジタル資産管理とレビューおよび配信機能を組み合わせ、簡単なレビューと承認に加えて、チャネル全体での自動コンテンツ配信と引き出しを提供し、すべてのデジタル資産と資料の完全な可視性と制御を提供します。 Veeva Vault PromoMatsは、ローカルの製品マネージャーが必要なものにすばやくアクセスし、検索し、見つけることができる準拠コンテンツの単一の情報源を提供します。
典型的なデジタルマーケティングチームは、Veeva Vault PromoMatsを使用して、世界中の従業員にマーケティング資産を保存、検索、キュレート、レビュー、および配布します。 これらのアセットは、電子メール、Webページ、画像、ビデオ、およびオーディオファイルからのものです。 再利用を促進するために、マーケティングチームは通常、グローバルに分散したヒューマンチームを使用して、これらのアセットを分析およびタグ付けし、簡単に検索できるようにします。 この現在のプロセスは、誤った、一貫性のない、非効率的なタグ付けの影響を受けやすく、人間のチームが特定の資産を見つけるために貴重なサイクルを費やす結果になります。 組織は通常、コンテンツを正確かつ簡単に検索できるようにレビュアーの軍隊を配置します。これにより、コストが増加するだけでなく、チームに無差別の重労働に集中するように強制します。
これらの手動プロセスを自動化するには、顧客から逆戻りして、次のことができるソリューションが必要です。
- コンテンツタイプ(メール、テキスト、画像、メディアファイルなど)を特定する
- コンテンツを区別し、識別されたコンテンツタイプに対応する分類値を自動化する
- 資産タグ付けの自動化を有効にし、これらの資産を簡単に検索するソリューションを提供します
- タグ付けのための機械学習(ML)値などによる継続的な強化
この投稿では、使用方法を示します Amazon AIサービス Veeva Vaultに保存されている豊富なコンテンツを大規模に、迅速かつ確実に、コスト効率よく分析します。 この投稿では、全体的なアーキテクチャ、ソリューションとダッシュボードを展開する手順、およびアセットメタデータのタグ付けの使用例について説明します。 この使用例の概念実証コードベースの詳細については、 GitHubレポ.
ソリューションの概要
次の図は、ソリューションのアーキテクチャを示しています。
使い方 Veeva Vault API と AVAIPoller
AWSラムダ 関数、Veeva PromoMatsの内部データフローを設定します。これにより、更新を取得できます。 Amazon Simple Storage Service(Amazon S3)。 これらの更新は、必要に応じて、定期的、イベントドリブン、またはバッチで行うことができます。 の AVAIPoller
関数はVeeva認証を処理し、 アマゾンクラウドウォッチ 時間ベースのトリガー(5分ごと)。定期的にVeeva Vault APIを呼び出してデータを取り込みます。 この頻度を変更するには、 AWS CloudFormation この投稿で提供されるテンプレート。
AVAIPoller
関数は、最初の実行のすべてのデータを取得することから始まります。 その後は、前回の実行以降に作成または変更されたVeeva Vaultアセットを取得します。
この関数は、Amazon S3に受信アセットを保存し、メッセージを Amazon Simple Queue Service(Amazon SQS) キュー。 Amazon SQSを使用すると、アーキテクチャのプロデューサーセクションとプロセッサセクションが疎結合になり、受信した更新を停止せずにプロセッサセクションへの変更をデプロイできます。
XNUMX番目のポーラー関数(AVAIQueuePoller
)頻繁な間隔(XNUMX分ごと)でSQSキューを読み取り、着信アセットを処理します。 受信メッセージのタイプに応じて、ソリューションはさまざまなAWS AIサービスを使用してデータから洞察を導き出します。 いくつかの例は次のとおりです。
- テキストファイル –関数は エンティティの検出 の操作 アマゾンコンプリヘンドメディカル、自然言語処理(NLP)サービス。MLを使用して、構造化されていないテキストから関連する医療情報を簡単に抽出できます。 この操作は、Aなどのカテゴリのエンティティを検出します
natomy
,Medical_Condition
,Medication
,Protected_Health_Information
,Test_Treatment_Procedure
。 結果の出力は、Protected_Health_Information
、および残りの情報は、信頼スコアとともに平坦化され、 Amazon DynamoDB この情報は、Elasticsearch Kibanaクラスターにプロットされます。 実際のアプリケーションでは、Amazon Comprehend Medicalを使用することもできます ICD-10-CMまたはRxNorm 検出された情報を医療オントロジーにリンクして、ダウンストリームのヘルスケアアプリケーションがそれをさらに分析するために使用できる機能。 - 画像 –関数は 検出ラベル 方法 Amazonの再認識 入力画像のラベルを検出します。 これらのラベルは、画像に埋め込まれた豊富な情報を識別するタグとして機能します。 HumanまたはPersonなどのラベルが80%を超える信頼スコアで検出された場合、コードは 顔検出 目、鼻、口などの主要な顔の特徴を探して、入力画像から顔を検出する方法。 Amazon Rekognitionは、これらすべての情報を関連する信頼スコアとともに配信します。信頼スコアは、フラット化されてDynamoDBテーブルに保存されます。
- 音声録音 –オーディオアセットの場合、コードは 文字起こしジョブの開始 非同期メソッド Amazon Transcribe 着信音声をテキストに転記し、一意の識別子を
TranscriptionJobName
。 コードでは、音声言語を英語(米国)と想定していますが、Veeva Vaultからの情報に関連付けるように変更することもできます。 コードは 文字起こしジョブの取得 メソッドと同じ一意の識別子を渡しますTranscriptionJobName
ジョブが完了するまでループします。 Amazon TranscribeはS3バケットで出力ファイルを配信します。これはコードによって読み取られ、削除されます。 コードはテキスト処理ワークフロー(前述)を呼び出して、書き起こされた音声からエンティティを抽出します。 - スキャンしたドキュメント(PDF) –ライフサイエンス資産の大部分はPDFで表されます。これらは、科学雑誌や研究論文から薬物ラベルまで何でもかまいません。 アマゾンテキストラック スキャンしたドキュメントからテキストとデータを自動的に抽出するサービスです。 コードは startdocumentTextDetection ドキュメント内のテキストを検出する非同期ジョブを開始するメソッド。 コードは
JobId
呼び出しへの応答で返されました getDocumentTextDetection ジョブが完了するまでループします。 出力JSON構造には、検出されたテキストの行と単語、およびそれが識別する各要素の信頼スコアが含まれているため、結果の使用方法について十分な情報に基づいて決定できます。 コードはJSON構造を処理してテキストのテキストを再作成し、テキスト処理ワークフローを呼び出してテキストからエンティティを抽出します。
DynamoDBテーブルには、処理されたすべてのデータが格納されます。 ソリューションは DynamoDBストリームとAWS Lambdaトリガー (AVAIPopulateES
)Elasticsearch Kibanaクラスターにデータを入力します。 AVAIPopulateES関数は、DynamoDBテーブルで発生するすべての更新、挿入、削除操作に対して発生し、Elasticsearchインデックスに対応するレコードをXNUMXつ挿入します。 これらのレコードは、Kibanaを使用して視覚化できます。
このソリューションは、デジタル資産の処理、タグ付け、および包括的な検索を可能にするサーバーレスの従量課金方式を提供します。 さらに、各管理対象コンポーネントには、複数のアベイラビリティーゾーンへの自動デプロイメントによって組み込まれた高可用性があります。 ために Amazon Elasticsearch Service(Amazon ES)、あなたが選ぶことができます XNUMX AZオプション ドメインの可用性を向上させます。
前提条件
このチュートリアルでは、次の前提条件を満たしている必要があります。
- An AWSアカウント 適切に AWS Identity and Access Management(IAM) CloudFormationテンプレートを起動する権限
- Veeva Vault PromoMatsドメインの適切なアクセス認証情報
- 前述の資格情報にアクセス可能なPromoMats Vaultのデジタルアセット
ソリューションの展開
CloudFormationスタックを使用してソリューションをデプロイします。 スタックは、以下を含む必要なすべてのリソースを作成します。
- 着信アセットを保存するS3バケット。
- プロデューサー機能間の疎結合として機能するSQS FIFOキュー(
AVAIPoller
)およびポーラー機能(AVAIQueuePoller
). - Amazon AIサービスの出力を格納するDynamoDBテーブル。
- 分析されたタグを視覚化するためのAmazon ES Kibana(ELK)クラスター。
- 必要なLambda関数:
- avaipoller – 5分ごとにトリガーされます。 を使用してVeeva Vaultをポーリングするために使用されます Veevaクエリ言語、アセットをAWSに取り込み、メッセージをSQSキューにプッシュします。
- avaiqueuepoller – 1分ごとにトリガーされます。 SQSキューのポーリング、Amazon AIサービスを使用したアセットの処理、およびDynamoDBテーブルへの入力に使用されます。
- avaipopulees – DynamoDBテーブルで更新、挿入、または削除があるとトリガーされます。 DynamoDBから変更をキャプチャし、ELKクラスターに入力するために使用されます。
- Amazon CloudWatchイベント トリガーするルール
AVAIPoller
&AVAIQueuePoller
。 これらのトリガーは、現時点ではDISABLED状態です。 - スコープを絞った方法でAIサービスを操作するために必要なIAMの役割とポリシー。
開始するには、次の手順を実行します。
- にサインインする AWSマネジメントコンソール IAMユーザー名とパスワードを使用します。
- 選択する 発射スタック 新しいタブで開きます:
- ソフトウェア設定ページで、下図のように スタックを作成 ページ、選択 Next.
- ソフトウェア設定ページで、下図のように スタックの詳細を指定する ページで、スタックの名前を指定します。
- パラメータの値を入力します。
- 選択する Next.
- ソフトウェア設定ページで、下図のように スタックオプションを構成する ページで、すべてをデフォルトのままにして、 Next.
- ソフトウェア設定ページで、下図のように レビュー ページ、 機能と変換 セクションで、XNUMXつのチェックボックスをオンにします。
- 選択する スタックを作成.
- スタックの実行が完了するのを待ちます。 上のスタック作成プロセスからさまざまなイベントを調べることができます イベント
- スタックの作成が完了したら、 リソース タブをクリックして、CloudFormationテンプレートが作成したすべてのリソースを表示します。
- ソフトウェア設定ページで、下図のように 出力 タブ、値をコピー
ESDomainAccessPrincipal
.
これは、IAMロールのARNです。 AVAIPopulateES
関数が想定します。 後でそれを使用して、Amazon ESドメインへのアクセスを設定します。
Amazon ESとKibanaのセットアップ
このセクションでは、Elasticsearchクラスターのセキュリティ保護と、Kibanaに安全にアクセスするためのローカルプロキシのインストールについて説明します。
- Amazon ESコンソールで、この例用に作成したドメインを選択します。
- を選択 アクセスポリシーの変更.
- ドメインアクセスポリシー、選択する カスタムアクセスポリシー。
- アクセスポリシーがクリアされます ポップアップウィンドウ、選択 クリアして続行.
- 次のページで、Amazon ESドメインへのアクセスをロックダウンするようにこれらのステートメントを設定します。
- IPv4アドレスを許可する – IPアドレス。
- IAM ARNを許可 –の価値
ESDomainAccessPrincipal
以前にコピーしました。
- 選択する 送信。これにより、アクセスを許可するアクセスポリシーが作成されます。
AVAIPopulateES
あなたのIPアドレスからの機能とKibanaへのアクセス。 アクセスポリシーの詳細については、次を参照してください。 アクセスポリシーの構成. - ドメインのステータスが次のように表示されるのを待ちます
Active
. - CloudWatchコンソールの、 イベント 、選択する キャンペーンのルール.
CloudFormationテンプレートが作成したXNUMXつの無効なルールを確認できます。
- 各ルールを選択し、選択してそれらを有効にします 有効にします メニュー。
5〜8分で、データが流入し始め、Elasticsearchクラスターにエンティティが作成されます。 これらのエンティティをKibanaで視覚化できるようになりました。 これを行うには、オープンソースプロキシを使用します aws-es-キバナ。 コンピュータにプロキシをインストールするには、次のコードを入力します。
ドメインエンドポイントは、 出力 下のCloudFormationスタックのタブ ESDomainEndPoint
。 次の出力が表示されます。
視覚化の作成とタグ付けされたコンテンツの分析
このステップでは、インデックスを設定して視覚化を作成します。 アセットはAIサービスによって処理されるため、その出力はDynamoDBテーブルに収集されます。 テーブルの各行は、インデックス内のXNUMXつのドキュメントに対応し、Kibana視覚化の作成に使用されます。 この投稿は、ファイル内のいくつかの再利用可能なアセットを提供します esconfig.zip.
たとえば、アセットを使用します AVAI_ES_Entity_Dashboard.ndjson
Kibanaでサンプルの視覚化を作成します。 はじめに、この投稿では事前に作成されたダッシュボードを提供しています。これは、さまざまな視覚化を使用して、マイニングされたデータのさまざまなディメンションを読みやすい形式で表示します。
コンピューター上にフォルダーを作成し、そこに.zipファイルをダウンロードできます。 ElasticsearchクラスターとKibanaを構成するには、ファイルを解凍し、次の手順を実行します。
- Kibanaダッシュボードを開くには、KibanaのURLをコピーして、ブラウザーウィンドウに貼り付けます。
- ソフトウェア設定ページで、下図のように マネージメントコンソール、選択する インデックスパターン.
- 選択する インデックスパターンを作成する.
- インデックスパターン テキストボックス、入力
avai_index
. - 選択する 次のステップ.
- 時間フィルタ フィールド名、選択する タイムスタンプ.
- 選択する インデックスパターンを作成する.
いくつかの視覚化を構築するKibanaでフィールド名と属性名を確認できます。 - ソフトウェア設定ページで、下図のように マネージメントコンソール、選択する 保存されたオブジェクト.
- 選択する インポート に移動します
AVAI_ES_Entity_Dashboard.ndjson
以前にダウンロードして抽出したアーティファクトの下のファイル。 - 選択する インポート.
一部のインデックスパターンが存在しないことを示すメッセージウィンドウが表示されます。 - 新しいインデックスパターンのドロップダウンメニューから、 アバイインデックス.
- 選択する すべての変更を確認.
これにより、インポートされたビジュアライゼーションが新しく作成されたインデックスと関連付けられます。 という新しいダッシュボードが表示されます AVAI_ダッシュボード. - 選択する ダッシュボード 選択して AVAI_ダッシュボード.
- 別のブラウザーウィンドウで、Veevaドメインにログインし、いくつかのサンプルデータ(画像、PDF、オーディオファイルなど)を入力します。
抽出されたエンティティから生成された視覚化を含むダッシュボードが表示されます。 次の視覚化は、アセットから抽出された最も一般的な用語を示す用語クラウドです。
分析された総資産、分析された総タグ、人間の顔の総資産、平均信頼スコアなどのメトリックを表示する他の視覚化があります。 次のスクリーンショットは、次の視覚化を示しています。
- 操作タイプごとの平均信頼スコア
- 操作の数
- 人の顔の総資産
- 資産タイプの分布
- 検出されたタグのタイプごとに分類された、日付ヒストグラム上のタグの傾向
次の視覚化は、顔の感情の種類ごとに分類された顔属性の傾向を示しています。
さまざまな視覚化とオプションを試して、独自のビジュアルダッシュボードを構築できます。
清掃
今後の料金が発生しないように、使用していないリソースは削除してください。
まとめ
この投稿では、Amazon AIサービスを使用してVeeva Vault PromoMats(またはその他のVeeva Vaultオファリング)の機能を拡張し、貴重な情報をすばやく簡単に抽出する方法を説明しました。 完璧なML出力はありませんが、人間の行動に非常に近くなり、チームの努力のかなりの部分を相殺するのに役立ちます。 MLソリューションの出力を確認するために小さな容量を割り当てながら、この追加容量を付加価値タスクに使用できます。 このソリューションは、コストの最適化、タグ付けの一貫性の実現、既存の資産の迅速な発見を可能にするのにも役立ちます。
最後に、データの所有権を維持し、コンテンツを処理、保存、ホストできるAWSサービスを選択できます。 AWSは、お客様の同意なしにコンテンツにアクセスしたり、目的を問わず使用したりすることはなく、マーケティングや広告のための情報を取得するために顧客データを使用することもありません。 詳細については、 データプライバシーに関するよくある質問.
追加の機能拡張により、このソリューションの機能をさらに拡張することもできます。 たとえば、この投稿のAI / MLサービスに加えて、次を使用して構築されたカスタムMLモデルを簡単に追加できます アマゾンセージメーカー アーキテクチャに。 ループバックメカニズムを構築して、タグをVeeva Vaultに更新し、アセットの自動タグ付けを有効にすることもできます。 これにより、チームはアセットをすばやく見つけて見つけやすくなります。
Veeva Systemsはこのコンテンツを確認および承認しました。 Veeva Vault関連の追加の質問については、jade.bezuidenhout @ veeva.comでJade Bezuidenhout(Veeva Systemsの製品アライアンス、シニアプロダクトマネージャー)に連絡してください。
著者について
Mayank Thakkarは、AWSのグローバルヘルスケアおよびライフサイエンスチームのシニアソリューションアーキテクトであり、サーバーレス、人工知能、機械学習ベースのソリューションの構築を専門としています。 AWSでは、世界の製薬会社と緊密に連携して、実際の業界の問題の解決に焦点を当てた最先端のソリューションを構築しています。 仕事とは別に、マヤンクは妻と一緒に、家の焼失や浸水を防ごうとしながら、6人の元気でいたずら好きな男の子、アーリアン(4)とキアーン(XNUMX)を育てています。