ファイザーは、デジタルバイオマーカーデータを大規模に処理するためのサーバーレスアーキテクチャをアップグレードし、より柔軟で設定可能なものにした。彼らは、AWS Step Functionsと他のサーバーレスサービスで構築されたファイル処理パイプラインと、データ取り込みと処理のためのカスタムPythonパッケージを使用するフレームワークを作成した。
ファイザーのシニアデータサイエンティスト、ルーカス・アダモヴィッチ氏がデジタルバイオマーカーの重要性について語る。
デジタルバイオマーカーは、生理学的・行動学的データを定量的・客観的に測定するものである。デジタルバイオマーカーは、高度に構造化された臨床現場とは対照的に、自由な生活活動をよりよく表現するデジタル機器を使用して収集・測定される。このアプローチでは、大量のデータが生成され、それを処理する必要がある。
ファイザーは、デジタルバイオマーカーを処理するためのスケーラブルで費用対効果の高いソリューションを必要としており、2020年にAWS上でサーバーレスアーキテクチャを構築した。オリジナルのアーキテクチャは、ストレージにAWS S3、データ処理ロジックの実行にAWS ECS、S3イベントサブスクリプションとデータ集約にLambda関数を組み合わせた。このソリューションは、少数のアルゴリズムをサポートし、数種類のバイオマーカーのみを対象としていた。
最近、同社はこのオリジナルの設計を練り直し、複数のデータソースと異なるパラメータセットを持つ異なるアルゴリズムをサポートするようにした。また、SciKit-Digital-Health(SKDH)Pythonパッケージを作成し、デジタルバイオマーカーを計算するアルゴリズムと、さまざまなデータ取り込み方法をサポートするコードを提供した。
改良されたソリューションは、ファイルの保存にS3、メタデータの保存にDynamoDB、プロセスのオーケストレーションにAWS Step Functions、データ処理ロジックの実行にAWS BatchwithFargate、メッセージングにAWS SQSを活用している。
![](https://imgopt.infoq.com/fit-in/1200x2400/filters:quality(80)/filters:no_upscale()/news/2023/07/pfizer-serverless-biomarkers/en/resources/1Screenshot-2023-05-24-at-10.37.16-AM Large-1690233235697.jpeg)
デジタルバイオマーカーカタログとファイル処理のワークフロー(出典:AWS Architecture Blog)
全体的なアーキテクチャは、2つの処理ワークフローで構成されている。1つ目は、YAML形式のスタディ設定詳細を含む新しい設定ファイルがないか、S3バケットをスキャンする。新しいコンフィギュレーション・ファイルが見つかった場合、ワークフローはコンフィギュレーション・ファイルで設定されたバケットが存在し、関連するデータ・ファイルが含まれているかどうかを検証する。その後、ワークフローはスタディバケット内の設定されたファイルに対するファイル処理をトリガーする。
2つ目のワークフローは、スタディデータとメタデータファイルの処理に焦点を当てている。まず、オプションでメタデータをDynamoDBのテーブルに挿入し、処理要件が満たされるかどうかをチェックし、満たされるまで待機する。要件が満たされると、AWS Fargate上で実行されるバッチジョブが実行される。バッチジョブは、設定されたバージョンのSKDHパッケージに基づいてデジタルバイオマーカーを計算し、生成された結果は研究のS3バケットにアップロードされる。
チームは、AWS CloudFormation をBoto3ライブラリ、AWS CLIと共に使用して、アーキテクチャをサポートするために必要なインフラリソースを管理した。