👤
Kaggle PII Data Detection 上位ソリューションまとめ
内容
以下のコンペの上位ソリューションを表でまとめました。
前提の説明は省いているため、参加されていた方向けのまとめとなります。
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