{
  "id": 347891,
  "title": "Now You See Me: 7th Place Solution",
  "content": "<p>Thanks a lot to the host and Kaggle for this interesting competition and congrats to the winners.<br>\nOur solution is a great collaborative effort.<br>\nThank you <a href=\"https://www.kaggle.com/crodoc\" target=\"_blank\">@crodoc</a> <a href=\"https://www.kaggle.com/thedrcat\" target=\"_blank\">@thedrcat</a> <a href=\"https://www.kaggle.com/ivanaerlic\" target=\"_blank\">@ivanaerlic</a> <a href=\"https://www.kaggle.com/tascj0\" target=\"_blank\">@tascj0</a> for teaming up.</p>\n<h1>Summary</h1>\n<p>Our solution is an ensemble of several transformer based models, which take a full essay (including special tokens) or a concatenation of all discourse_text in the essay as input.<br>\nKey points of our solution are a powerful MLM pre-training and soft pseudo labeling on previous competition data. Our MLM pipeline always forced special tokens to be masked and predicted which was important to detect span boundaries.</p>\n<h1>Cross-Validation</h1>\n<p>For cross-validation we used MultilabelStratifiedKFold on discourse effectiveness and topic clusters to make efficient split on essays.</p>\n<p>These folds were really stable and CV to LB correlation was great.<br>\nMost of our blending submissions have the same private and public lb score.</p>\n<h1>Modeling</h1>\n<p>Overall, we followed the token classification approach.<br>\nOur main modeling approach has input has follow:</p>\n<blockquote>\n  <p>[CLS] [cls_lead]  Hi, i'm Isaac, i'm going to be writing about how this face on Mars is a natural landform or if there is life on Mars that made it. The story is about how NASA took a picture of Mars and a face was seen on the planet. NASA doesn't know if the landform was created by life on Mars, or if it is just a natural landform. [end_lead]   [cls_position]  On my perspective, I think that the face is a natural landform because I dont think that there is any life on Mars. In these next few paragraphs, I'll be talking about how I think that is is a natural landform [end_position]…..[SEP]</p>\n</blockquote>\n<p>We feed this sample to the backbone and take cls embeddings or mean pooling between cls and end tokens for each discourse text.<br>\ncls embeddings works better than mean pooling for us.</p>\n<p><strong>Model Backbones</strong></p>\n<ul>\n<li>DeBERTa-Large</li>\n<li>DeBERTa-XLarge</li>\n<li>DeBERTa-V3-Large</li>\n</ul>\n<h1>What works</h1>\n<ul>\n<li>Pre-Training MLM</li>\n<li>Soft pseudo labeling</li>\n<li>Adversarial Weight Perturbation ( AWP)</li>\n<li>Stochastic Weight Averaging (SWA)</li>\n<li>Removing Dropout</li>\n<li>Random mask augmentation (token dropout)</li>\n</ul>\n<h1>Efficiency solution</h1>\n<p>Our best single model scored 0.562 with 8 min inference time.<br>\nThis single model finished 2nd place in the efficiency track and would make a gold medal score in the accuracy track.<br>\nUnfortunately this model was not included in any blend of the final submission for accuracy.<br>\nPlease refer to <a href=\"https://www.kaggle.com/competitions/feedback-prize-effectiveness/discussion/347488\" target=\"_blank\">this</a> post to read about our efficiency solution.</p>",
  "comments": [
    {
      "id": 1919290,
      "author_name": "Apa",
      "author_url": "",
      "post_date": "2022-08-30T09:47:10.340000",
      "content": "<p>Removing Dropout<br>\nRandom mask augmentation (token dropout)<br>\nAre there any papers on these two technologies that I can refer to?<br>\nI also tried to use AWP to optimize my algorithm but nan appeared during training, don't know if you have encountered the same situation</p>",
      "votes": 1,
      "replies": [
        {
          "id": 2004872,
          "author_name": "Amed",
          "author_url": "",
          "post_date": "2022-10-26T15:12:27.267000",
          "content": "<p>No nan for us.<br>\nyou can use the code below to identify pytorch modules leading to nans.</p>\n<pre><code>def nan_hook(name):\n    def hook(m, input, output):\n        if not torch.isfinite(output).all():\n            print(\"Invalid output in {}\".format(name))\n    return hook\n\nfor name, module in model.named_modules():\n    module.register_forward_hook(nan_hook(name))\n</code></pre>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1915061,
      "author_name": "DeepUnderstanding",
      "author_url": "",
      "post_date": "2022-08-26T16:24:49.317000",
      "content": "<p>Any  references to learn Adversarial Weight Perturbation?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 1915333,
          "author_name": "Vadim Irtlach",
          "author_url": "",
          "post_date": "2022-08-26T22:08:51.763000",
          "content": "<p>Google :). </p>",
          "votes": -2,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 4,
  "messages": [
    {
      "id": 1914198,
      "postDate": "2022-08-25T20:25:16.113Z",
      "content": "<p>Thanks a lot to the host and Kaggle for this interesting competition and congrats to the winners.<br>\nOur solution is a great collaborative effort.<br>\nThank you <a href=\"https://www.kaggle.com/crodoc\" target=\"_blank\">@crodoc</a> <a href=\"https://www.kaggle.com/thedrcat\" target=\"_blank\">@thedrcat</a> <a href=\"https://www.kaggle.com/ivanaerlic\" target=\"_blank\">@ivanaerlic</a> <a href=\"https://www.kaggle.com/tascj0\" target=\"_blank\">@tascj0</a> for teaming up.</p>\n<h1>Summary</h1>\n<p>Our solution is an ensemble of several transformer based models, which take a full essay (including special tokens) or a concatenation of all discourse_text in the essay as input.<br>\nKey points of our solution are a powerful MLM pre-training and soft pseudo labeling on previous competition data. Our MLM pipeline always forced special tokens to be masked and predicted which was important to detect span boundaries.</p>\n<h1>Cross-Validation</h1>\n<p>For cross-validation we used MultilabelStratifiedKFold on discourse effectiveness and topic clusters to make efficient split on essays.</p>\n<p>These folds were really stable and CV to LB correlation was great.<br>\nMost of our blending submissions have the same private and public lb score.</p>\n<h1>Modeling</h1>\n<p>Overall, we followed the token classification approach.<br>\nOur main modeling approach has input has follow:</p>\n<blockquote>\n  <p>[CLS] [cls_lead]  Hi, i'm Isaac, i'm going to be writing about how this face on Mars is a natural landform or if there is life on Mars that made it. The story is about how NASA took a picture of Mars and a face was seen on the planet. NASA doesn't know if the landform was created by life on Mars, or if it is just a natural landform. [end_lead]   [cls_position]  On my perspective, I think that the face is a natural landform because I dont think that there is any life on Mars. In these next few paragraphs, I'll be talking about how I think that is is a natural landform [end_position]…..[SEP]</p>\n</blockquote>\n<p>We feed this sample to the backbone and take cls embeddings or mean pooling between cls and end tokens for each discourse text.<br>\ncls embeddings works better than mean pooling for us.</p>\n<p><strong>Model Backbones</strong></p>\n<ul>\n<li>DeBERTa-Large</li>\n<li>DeBERTa-XLarge</li>\n<li>DeBERTa-V3-Large</li>\n</ul>\n<h1>What works</h1>\n<ul>\n<li>Pre-Training MLM</li>\n<li>Soft pseudo labeling</li>\n<li>Adversarial Weight Perturbation ( AWP)</li>\n<li>Stochastic Weight Averaging (SWA)</li>\n<li>Removing Dropout</li>\n<li>Random mask augmentation (token dropout)</li>\n</ul>\n<h1>Efficiency solution</h1>\n<p>Our best single model scored 0.562 with 8 min inference time.<br>\nThis single model finished 2nd place in the efficiency track and would make a gold medal score in the accuracy track.<br>\nUnfortunately this model was not included in any blend of the final submission for accuracy.<br>\nPlease refer to <a href=\"https://www.kaggle.com/competitions/feedback-prize-effectiveness/discussion/347488\" target=\"_blank\">this</a> post to read about our efficiency solution.</p>",
      "rawMarkdown": "Thanks a lot to the host and Kaggle for this interesting competition and congrats to the winners.\nOur solution is a great collaborative effort.\nThank you @crodoc @thedrcat @ivanaerlic @tascj0 for teaming up.\n\n# Summary\nOur solution is an ensemble of several transformer based models, which take a full essay (including special tokens) or a concatenation of all discourse_text in the essay as input.\nKey points of our solution are a powerful MLM pre-training and soft pseudo labeling on previous competition data. Our MLM pipeline always forced special tokens to be masked and predicted which was important to detect span boundaries.\n \n# Cross-Validation\nFor cross-validation we used MultilabelStratifiedKFold on discourse effectiveness and topic clusters to make efficient split on essays.\n\nThese folds were really stable and CV to LB correlation was great.\nMost of our blending submissions have the same private and public lb score.\n \n# Modeling\nOverall, we followed the token classification approach.\nOur main modeling approach has input has follow:\n> [CLS] [cls_lead]  Hi, i'm Isaac, i'm going to be writing about how this face on Mars is a natural landform or if there is life on Mars that made it. The story is about how NASA took a picture of Mars and a face was seen on the planet. NASA doesn't know if the landform was created by life on Mars, or if it is just a natural landform. [end_lead]   [cls_position]  On my perspective, I think that the face is a natural landform because I dont think that there is any life on Mars. In these next few paragraphs, I'll be talking about how I think that is is a natural landform [end_position].....[SEP]\n\nWe feed this sample to the backbone and take cls embeddings or mean pooling between cls and end tokens for each discourse text.\ncls embeddings works better than mean pooling for us.\n\n**Model Backbones**\n- DeBERTa-Large\n- DeBERTa-XLarge\n- DeBERTa-V3-Large\n \n \n# What works\n- Pre-Training MLM\n- Soft pseudo labeling\n- Adversarial Weight Perturbation ( AWP)\n- Stochastic Weight Averaging (SWA)\n- Removing Dropout\n- Random mask augmentation (token dropout)\n \n# Efficiency solution\nOur best single model scored 0.562 with 8 min inference time.\nThis single model finished 2nd place in the efficiency track and would make a gold medal score in the accuracy track.\nUnfortunately this model was not included in any blend of the final submission for accuracy.\nPlease refer to [this](https://www.kaggle.com/competitions/feedback-prize-effectiveness/discussion/347488) post to read about our efficiency solution.\n",
      "votes": 25
    },
    {
      "id": 1919290,
      "postDate": "2022-08-30T09:47:10.340Z",
      "content": "<p>Removing Dropout<br>\nRandom mask augmentation (token dropout)<br>\nAre there any papers on these two technologies that I can refer to?<br>\nI also tried to use AWP to optimize my algorithm but nan appeared during training, don't know if you have encountered the same situation</p>",
      "rawMarkdown": "Removing Dropout\nRandom mask augmentation (token dropout)\nAre there any papers on these two technologies that I can refer to?\nI also tried to use AWP to optimize my algorithm but nan appeared during training, don't know if you have encountered the same situation",
      "votes": 1,
      "replies": [
        {
          "id": 2004872,
          "postDate": "2022-10-26T15:12:27.267Z",
          "content": "<p>No nan for us.<br>\nyou can use the code below to identify pytorch modules leading to nans.</p>\n<pre><code>def nan_hook(name):\n    def hook(m, input, output):\n        if not torch.isfinite(output).all():\n            print(\"Invalid output in {}\".format(name))\n    return hook\n\nfor name, module in model.named_modules():\n    module.register_forward_hook(nan_hook(name))\n</code></pre>",
          "rawMarkdown": "No nan for us.\nyou can use the code below to identify pytorch modules leading to nans.\n\n```\ndef nan_hook(name):\n    def hook(m, input, output):\n        if not torch.isfinite(output).all():\n            print(\"Invalid output in {}\".format(name))\n    return hook\n\nfor name, module in model.named_modules():\n    module.register_forward_hook(nan_hook(name))\n```"
        }
      ]
    },
    {
      "id": 1915061,
      "postDate": "2022-08-26T16:24:49.317Z",
      "content": "<p>Any  references to learn Adversarial Weight Perturbation?</p>",
      "rawMarkdown": "Any  references to learn Adversarial Weight Perturbation?\n",
      "replies": [
        {
          "id": 1915333,
          "postDate": "2022-08-26T22:08:51.763Z",
          "content": "<p>Google :). </p>",
          "rawMarkdown": "Google :). ",
          "votes": -2
        }
      ]
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T17:52:59Z",
  "competition_id": 35308,
  "competition_slug": "feedback-prize-effectiveness",
  "team_id": 8672529,
  "solution_url": "/competitions/feedback-prize-effectiveness/writeups/now-you-see-me-now-you-see-me-7th-place-solution"
}