Professional Machine Learning Engineer

Question 46

あなたは売上数値を予測する本番システムを構築し、管理しています。本番モデルは市場の変化に対応する必要があるため、モデルの精度は非常に重要です。本番環境にデプロイされて以来、モデルは変更されていませんが、モデルの精度は着実に低下しています。 モデルの精度が着実に低下している原因として、最も可能性が高い問題は何ですか?

A.
データの品質が低い
B.
モデルの再トレーニング不足
C.
情報を捉えるためのモデルの層が少なすぎる
D.
モデルのトレーニング、評価、検証、テスト時のデータ分割比率が不適切
Question 47

あなたは、世界中の顧客に衣料品を販売する小売業者に勤務しています。あなたは、機械学習(ML)モデルが安全な方法で構築されるようにする任務を負っています。具体的には、モデルで使用される可能性のある機密性の高い顧客データを保護する必要があります。データサイエンスチームが使用している機密データを含む4つのフィールド(AGE(年齢)、IS_EXISTING_CUSTOMER(既存顧客か否か)、LATITUDE_LONGITUDE(緯度経度)、SHIRT_SIZE(シャツのサイズ))を特定しました。データサイエンスチームがトレーニング目的でデータを利用できるようにする前に、これらのデータに対して何をすべきですか?

A.
すべてのフィールドをトークン化し、実際の値をハッシュ化されたダミー値に置き換える。
B.
主成分分析(PCA)を使用して、4つの機密フィールドを1つのPCAベクトルに削減する。
C.
AGE(年齢)を分位数に入れ、LATITUDE_LONGITUDE(緯度経度)を単精度に丸めることでデータを粗視化する。他の2つのフィールドはすでに可能な限り粗視化されている。
D.
すべての機密データフィールドを削除し、データサイエンスチームに非機密データを使用してモデルを構築するよう依頼する。
Question 48

あなたは雑誌出版社に勤務しており、顧客が年間購読を解約するかどうかを予測するタスクを担当しています。探索的データ分析において、毎年90%の個人が購読を更新し、わずか10%の個人が購読を解約することがわかりました。ニューラルネットワーク分類器を訓練した後、あなたのモデルは購読を解約する人々を99%の精度で予測し、購読を更新する人々を82%の精度で予測します。これらの結果をどのように解釈すべきですか?

A.
これは良い結果ではありません。なぜなら、モデルは購読を解約する顧客よりも購読を更新する顧客に対して高い精度を持つべきだからです。
B.
これは良い結果ではありません。なぜなら、モデルは人々が常に購読を更新すると予測するよりも性能が悪いからです。
C.
これは良い結果です。なぜなら、このグループのデータが少ないため、購読を解約する顧客の予測はより困難だからです。
D.
これは良い結果です。なぜなら、両方のグループの精度が80%を超えているからです。
Question 49

あなたは、Parquetファイルに保存されたデータで訓練されたモデルを構築しました。データには、Google Cloud上でホストされているHiveテーブル経由でアクセスします。これらのデータをPySparkで前処理し、CSVファイルとしてCloud Storageにエクスポートしました。前処理後、モデルを訓練し評価するための追加のステップを実行します。このモデル訓練をKubeflow Pipelinesでパラメータ化したいと考えています。どうすべきでしょうか?

A.
パイプラインからデータ変換ステップを削除する。
B.
PySpark変換ステップをコンテナ化し、パイプラインに追加する。
C.
Dataprocクラスタを起動し、変換を実行し、変換後のデータをCloud Storageに保存するContainerOpをパイプラインに追加する。
D.
Google Kubernetes Engineクラスタの別のノードプールにApache Sparkをデプロイする。このSparkインスタンスに対応する変換ジョブを呼び出すContainerOpをパイプラインに追加する。
Question 50

あなたは、自社のソーシャルメディアページへのユーザー投稿の感情を検出し、システム障害やバグを特定するためのMLモデルを開発しました。Pub/Subから取り込まれたデータに対してリアルタイム予測を提供するためにDataflowを使用しています。モデルのトレーニングイテレーションを複数回行い、実行ごとに最新の2つのバージョンを稼働させ続ける予定です。バージョン間でトラフィックを80:20の比率で分割し、最新モデルがトラフィックの大部分を受け取るようにしたいと考えています。パイプラインをできるだけシンプルに保ち、必要な管理を最小限に抑えたい場合、どうすべきでしょうか?

A.
モデルをVertex AIエンドポイントにデプロイし、`traffic-split=0=80, PREVIOUS_MODEL_ID=20` 設定を使用する。
B.
モデルをApp Engineアプリケーション内にラップし、`--splits PREVIOUS_VERSION=0.2, NEW_VERSION=0.8` 設定を使用する。
C.
モデルをCloud Runコンテナ内にラップし、`REVISION1=20, REVISION2=80` リビジョン設定を使用する。
D.
Dataflow内で `beam.Partition()` を使用してランダム分割を実装し、パーティション関数でVertex AIエンドポイントを呼び出す。