目次
こんにちは。若原です。
AutoML Natural Languageでオンライン予測をする記事はよく見かけますが、
バッチ予測の記事はあまり見かけないので、バッチ予測について書きます。
AutoML Natural Languageとは
カスタムの機械学習モデルをビルドしてデプロイし、ドキュメントの分析、分類、エンティティの識別、態度の評価を行えます。
バッチ予測の特長
オンライン予測とは違い、モデルをデプロイせずに非同期で予測を実行できます。
(モデルをデプロイしている時間のコストがかからない)
バッチ予測を実行する
予測の目的
夏目漱石の「こころ」のテキストから作者を予測する。
使用するモデル
小説の作者をカテゴリのラベル、小説をドキュメントとした教師データ作成して、モデルのトレーニングをしました。
(詳しい方法はこちら)
今回教師データとして使った作品 (青空文庫から用いました。)
作者 | タイトル |
---|---|
夏目漱石 | 吾輩は猫である |
夏目漱石 | 元日 |
夏目漱石 | 一夜 |
森鴎外 | 舞姫 |
森鴎外 | みちの記 |
森鴎外 | 妄想 |
予測するデータの用意
予測は1テキスト1ファイルの単位で、ファイルはGCSにアップロードする必要があります。
例)
GCSのファイルパス:
gs://bucket/kokoro.txt
ファイルの内容:
夏目漱石の「こころ」
次に、上記でGCSにアップロードしたファイルのパスを記述したCSVファイルを作成して、 同じくGCSにアップロードをします。
例)
GCSのファイルパス:
gs://bucket/predict.csv
ファイルの内容:
gs://bucket/kokoro.txt
※ ファイルパスを複数記入すれば複数の予測が可能です。
スクリプトで予測を実行
予測に使用するモデルのIDを調べます。
下記が実行するスクリプトの例です。
from google.cloud import automl
# プロジェクト番号
project_number = "000000000000"
# モデルのID
model_id = "TCN0000000000000000000"
# バッチ予測する対象のファイルパスの一覧が載ったファイルのGCSのファイルパス
input_uri = "gs://bucket/predict.csv"
# バッチ予測結果を出力するGCSのファイルパス
output_uri = "gs://bucket/result"
prediction_client = automl.PredictionServiceClient()
model_full_id = prediction_client.model_path(
project_number, "us-central1", model_id
)
gcs_source = automl.types.GcsSource(input_uris=[input_uri])
input_config = automl.types.BatchPredictInputConfig(gcs_source=gcs_source)
gcs_destination = automl.types.GcsDestination(output_uri_prefix=output_uri)
output_config = automl.types.BatchPredictOutputConfig(
gcs_destination=gcs_destination
)
prediction_client.batch_predict(model_full_id, input_config, output_config)
実行結果
GCSに次のようなファイルが生成されました。
gs://bucket/result/prediction-sample_{日付}/text_classification_1.jsonl
{"textSnippet":{"contentUri":"gs://bucket/kokoro.txt"},"annotations":[{"annotationSpecId":"AnnotationSpecId","classification":{"score":0.99810386},"displayName":"mori_ogai"},{"annotationSpecId":"AnnotationSpecId","classification":{"score":0.0018961655},"displayName":"natsume_soseki"}]}
今回は夏目漱石の「こころ」は森鴎外である可能性が高いと予測されました。
この予測に基づいてデータを活用する例としては、
下記など挙げられるかと思います。
“森鴎外を好む人に、夏目漱石の「こころ」を推薦する”
参考資料
株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。
grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud (GCP)、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。
お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。