👤

Kaggle PII Data Detection 上位ソリューションまとめ

2024/05/05に公開

内容

以下のコンペの上位ソリューションを表でまとめました。
https://www.kaggle.com/competitions/pii-detection-removal-from-educational-data

前提の説明は省いているため、参加されていた方向けのまとめとなります。

pii Top Solutionまとめ

rank model backbone Training Method model数 max_length stride CV Strategy additional data ensemble method PostProcess その他 URL
1 deberta(おそらくv3-large) - PIIが存在しないデータは削除しなかった
- o_weight = 0.05
- lstm layerを追加した
- Knowledge Distillation(学習済みの教師モデルが出力するlogitを正解として学習した。)
- 予測クラスは13 labels(本来は15、多分trainに存在しないI-[PII]を削除したのだと思う。)
10 1600~2048 なし ? - nbroad
- mpware
weighted voting ensemble
- 重みつけsoftmaxの出力値の和を計算し、voteing_thr以下は出力しない
- 値はCVに対しOptunaで計算した
- 各モデルごとに、softに最適な閾値を決定するため
- ラベルごとに閾値を設ける
- NAME_STUDENTがキャメルケースかどうか
他多数
- link
2 deberta-v3-large - is_split_into_wordsを利用した。単語が複数のトークンで表現される場合の平均出力確率を利用した。
- ターゲットからB-とI-接頭辞を除去し、予測するクラスを7つに絞った。
- full train
6 512, 1024 and 2048 32 ? - nbroad(weightを0.5で利用) ?(bag of 6 models) - 長さ1とキャメルケースではないNAME_STUDENTをOにした。 - link
3 deberta-v3-large - mpwareでpretrainingを行う
- competition + nbroadでFine tuning
1 ? なし PIIの有無 - mpware
- nbroad
- - Oによる閾値
- (多分)I-NAME始まりを B-NAMEに修正する
- link
4 deberta-v3-large - Focal Loss
- BiLSTM and GRU head
- 空白文字を全て[SPACE]としてTokenizerに追加
- optunaを用いて、異なるモデルに対する最適な重みと閾値を取得した。
10 Training
- 1280
Inference
- 4000
1024 Stratified based on PII - nbroad
- 自分で生成(やり方はhttps://www.kaggle.com/competitions/pii-detection-removal-from-educational-data/discussion/472221)
- train.jsonのPIIでないデータの人名を言い換えて、データセットとして追加する。言い換えにはhttps://huggingface.co/kalpeshk2011/dipper-paraphraser-xxl(言い換え用の生成モデル)を利用する。
? - 数字を含むSTUDENT_NAMEを削除
- instructor namesを削除
unicodedataによる正規化 link
5 deberta-v3-large - full train
- Oのweightを小さくする
- lstm layerの追加
- B- I-は使わず、NAME_STUDENTなどをラベルに利用
- freeze layer
12 Training/Inference
- 128/128
- 512/512
- 1536/4096
384 ? - nbroad
- mpware
- pjmath
vote - 空白の削除
- B, Iを正しくする
- 正規表現
- 冠詞の有無( The の後に名前以外がくる、など)
AMP(推論時間削減) link
  • 共通しているのは
    • deberta-v3-large
    • nbroad、mpwareのデータを利用
    • max_lengthを設定している(truncation=Falseではない)

Discussion