トークンごとにラベルを付けるモデルを評価します。シーケンスの長さがまちまちなので、 バッチにまとめるために pad_id でパディングを詰めておきます。 masked_accuracy(preds, labels, pad_id) を完成させてトークン精度を返してください。 例 labels = [[1, 2, 3]], preds = [[1, 9, 3]] → 位置 0・2 は正解、位置 1 は不正解 → 精度 = 2/3
トークンごとにラベルを付けるモデルを評価する問題です。シーケンスの長さがまちまちなので バッチにまとめるため pad_id でパディングを詰めた preds・labels を受け取り、 トークン精度を返す関数を完成させます。同じ shape の 整数 numpy 配列を扱い、数えるトークンが一つもない境界まで含めて、精度が意図どおり出るかを コードで検証します。
PyTorch でパディングの入ったバッチからトークン単位の精度を求め、公開された例と、数える トークンが一つもない境界ケース(数えるトークンがなければ 0.0 を返す)で指標を検証します。 トークン精度は、トークンごとにラベルを付けるモデル(固有表現抽出や品詞タグ付けのような トークン分類、翻訳や要約のような seq2seq)でよく使う評価指標で、長さの異なるシーケンスを 一つのバッチにまとめるときは空きセルをパディング(pad_id)で埋めます。