Model Evaluation on Amazon Bedrockを動かしてみた
この記事は2023年のAWS re:inventで発表されたBedrock関連の新機能、Model Evaluationについて触れた内容をまとめています。マネージメントコンソールからモデルの評価を行う方法や設定手順、結果の確認方法について説明されています。また、モデル評価の結果を詳細に解析することができ、提供されたデータセットに対するスコアや評価結果が判明することも紹介されています。Human evaluationを行う方法についても触れられていますが、データセットの用意には一部制約があるようです。Model Evaluationは複数のモデルに対して様々な尺度で評価を行うことができる機能であり、将来的にも取り上げる価値があるとのことです。
目次
この記事は「Amazon Bedrock Advent Calendar 2023」16日目の記事です。
2023年のAWS re:inventで発表されたBedrock関連の新機能のうち、「モデルの評価」をできる(らしい)Model Evaluationを触ってみました。
マネージメントコンソールからやってみる
とりあえず「やって覚えろ」で進めてみましょう。マネージメントコンソールでは、3つの評価方法が表示されています。
評価を自分でできる自信はないので、まずはCreate automatic evaluation
を試してみましょう。
Model evaluationを作成する
まずは名前と説明・そしてタグを設定します。
評価を行うモデルが選択できます。Autoの場合は1つのみ選べます。
どのようなタスクで評価するかも決めましょう。今回は使うことの多そうなText summarization
を選びました。
評価方法の設定が行えます。Accuracyは「精度」、Toxicityは「毒性」です。「精度の高い要約が作れているか?」や「攻撃的な内容を生成していないか?」などを評価できる・・・ように見えます。
結果を出力するS3バケットを指定しましょう。
ここでCORSエラーが出ることがあります。この場合は、バケットにCORSを設定しましょう。
最後にPermissionsを設定して作成します。
Completeまで、30分以上はかかっていました。試す場合は、会議や集中して作業する時間、お昼ご飯前などにここまで進めるとよいかもしれません。
モデル評価の結果を見てみる
完了すると、レポートが見れます。提供されたデータセットに対して、設定した項目でどれくらいのスコアを出したかなどが確認できました。
[Evaluation results location]がリンクなので移動してみました。ここにはデータセットごとにJSONLファイルが配置されています。中身を見ると、このような内容がずらっと記載されたJSONであることが確認できます。入力(プロンプト)内容なども確認できますので、詳細を見ていくのに使えそうですね。
[
{
"automatedEvaluationResult": {
"scores": [
{
"metricName": "Accuracy",
"result": 0.9111169576644897
},
{
"metricName": "Robustness",
"result": 12.645566147232966
},
{
"metricName": "Toxicity",
"result": 0.0008864242117851973
}
]
},
"inputRecord": {
"prompt": "Human: two bodies have been recovered from a flooded coal mine in yiyang city , central china 's henan province , as of #:## thursday morning , rescuers said . Assistant:",
"referenceResponse": "two bodies recovered from flooded coal mine in c. china"
},
"modelInvocations": [
{
"modelIdentifier": "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-lite-v1",
"responseText": "\n\ntwo bodies recovered from flooded coal mine in central china"
}
]
},
Human evaluationだと2モデルを比較できる
他の評価方法も少しだけ見てみました。Create human evaluation
では評価するモデルが2つまで選べます。
評価方法についても、かなり細かく指定できました。
ただしこちらはデータセットをS3バケットに用意する必要があります。
データセットの用意方法を調べるまでに至らなかったので、今回はここまでです。まだ「なるほど・・・?」という状況ではありますが、「複数のモデルに対して様々な尺度で評価が行える、それもほとんどノーコードで。」というのは、かなり魅力的な機能でないでしょうか。
もう少し触る機会ができれば、また続報記事を出していきたいと思います。