{
  "id": 177418,
  "title": "How many model we can blend?",
  "url": "/competitions/birdsong-recognition/discussion/177418",
  "author_name": "",
  "post_date": "2020-08-25T21:02:47.848074Z",
  "votes": null,
  "comment_count": 11,
  "views": 0,
  "content": "<p>In this competition there is restriction for testing time that limits this time with one hour. That makes impossible to use many models for blending. In order to decide how many model we can use I suggest to do it in experimental way:</p>\n<ul>\n<li>For each submission we know time for submission (T min) and our model's size (S Mb).</li>\n<li>S/T can be a estimation for size for 1 minute of evaluation.</li>\n<li>Gathering different S/T that you share with society we can get better estimation (S/T)*. Each separate estimation S/T can be unstable cause of model's variance and submission time estimation error.</li>\n<li>(S/T)* can help you to decide, how many of your model you can use.</li>\n</ul>\n<p><strong>Here</strong> I will post current estimation for (S/T)*. Lets start with one of my submissions:</p>\n<ul>\n<li>S=105.61 MB</li>\n<li>T=24 min (so long!)</li>\n<li>(S/T)*=(105.61 / 24)=4.4 MB/min</li>\n</ul>",
  "messages": [
    {
      "id": "985594",
      "postDate": "08/25/2020 21:02:47",
      "content": "<p>In this competition there is restriction for testing time that limits this time with one hour. That makes impossible to use many models for blending. In order to decide how many model we can use I suggest to do it in experimental way:</p>\n<ul>\n<li>For each submission we know time for submission (T min) and our model's size (S Mb).</li>\n<li>S/T can be a estimation for size for 1 minute of evaluation.</li>\n<li>Gathering different S/T that you share with society we can get better estimation (S/T)*. Each separate estimation S/T can be unstable cause of model's variance and submission time estimation error.</li>\n<li>(S/T)* can help you to decide, how many of your model you can use.</li>\n</ul>\n<p><strong>Here</strong> I will post current estimation for (S/T)*. Lets start with one of my submissions:</p>\n<ul>\n<li>S=105.61 MB</li>\n<li>T=24 min (so long!)</li>\n<li>(S/T)*=(105.61 / 24)=4.4 MB/min</li>\n</ul>",
      "rawMarkdown": "In this competition there is restriction for testing time that limits this time with one hour. That makes impossible to use many models for blending. In order to decide how many model we can use I suggest to do it in experimental way:\n- For each submission we know time for submission (T min) and our model's size (S Mb).\n- S/T can be a estimation for size for 1 minute of evaluation.\n- Gathering different S/T that you share with society we can get better estimation (S/T)*. Each separate estimation S/T can be unstable cause of model's variance and submission time estimation error.\n- (S/T)* can help you to decide, how many of your model you can use.\n\n**Here** I will post current estimation for (S/T)*. Lets start with one of my submissions:\n - S=105.61 MB\n - T=24 min (so long!)\n - (S/T)*=(105.61 / 24)=4.4 MB/min",
      "votes": null
    },
    {
      "id": "985635",
      "postDate": "08/25/2020 22:14:41",
      "content": "<p>I think most of the time for evaluation is for audio clip loading. I've tried blending with two or three models but the time for submission increased only slightly which means prediction is made in a few minutes for the whole dataset. If we share the input feature between models, the submission time won't increase so much.</p>",
      "rawMarkdown": "I think most of the time for evaluation is for audio clip loading. I've tried blending with two or three models but the time for submission increased only slightly which means prediction is made in a few minutes for the whole dataset. If we share the input feature between models, the submission time won't increase so much.",
      "votes": null
    },
    {
      "id": "985745",
      "postDate": "08/26/2020 01:51:37",
      "content": "<p><a href=\"https://www.kaggle.com/koza4ukdmitrij\" target=\"_blank\">@koza4ukdmitrij</a> What about profiling each component of your code to see what part needs optimization to cut processing time?</p>",
      "rawMarkdown": "koza4ukdmitrij What about profiling each component of your code to see what part needs optimization to cut processing time?",
      "votes": null
    },
    {
      "id": "985840",
      "postDate": "08/26/2020 03:44:29",
      "content": "<p>Which method of reading audio files is the fastest in your opinion? I met somewhere on the forum that some methods are faster.</p>",
      "rawMarkdown": "Which method of reading audio files is the fastest in your opinion? I met somewhere on the forum that some methods are faster.",
      "votes": null
    },
    {
      "id": "985900",
      "postDate": "08/26/2020 05:03:10",
      "content": "<p>I don't know, how I can do that during submussion. I can add profiling in the inference notebook, but I can see the output for a hidden test set. </p>",
      "rawMarkdown": "I don't know, how I can do that during submussion. I can add profiling in the inference notebook, but I can see the output for a hidden test set.",
      "votes": null
    },
    {
      "id": "985906",
      "postDate": "08/26/2020 05:08:56",
      "content": "<p>Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only. </p>",
      "rawMarkdown": "Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only.",
      "votes": null
    },
    {
      "id": "985993",
      "postDate": "08/26/2020 06:24:35",
      "content": "<p>In some cases, using CPU Notebook is one way. It takes a lot of time to submit, but you can use it for 9 hours.<br>\nThis is my beginner's opinion…</p>",
      "rawMarkdown": "In some cases, using CPU Notebook is one way. It takes a lot of time to submit, but you can use it for 9 hours.\nThis is my beginner's opinion...",
      "votes": null
    },
    {
      "id": "986170",
      "postDate": "08/26/2020 09:05:36",
      "content": "<p>Agree, I have to take into account only GPU evaluation, cause GPU is available during final submussion. </p>",
      "rawMarkdown": "Agree, I have to take into account only GPU evaluation, cause GPU is available during final submussion.",
      "votes": null
    },
    {
      "id": "986425",
      "postDate": "08/26/2020 13:31:11",
      "content": "<p><a href=\"https://www.kaggle.com/koza4ukdmitrij\" target=\"_blank\">@koza4ukdmitrij</a> not sure if you can print any type of metric while the notebook/code is running on testing.</p>",
      "rawMarkdown": "koza4ukdmitrij not sure if you can print any type of metric while the notebook/code is running on testing.",
      "votes": null
    },
    {
      "id": "986685",
      "postDate": "08/26/2020 17:29:10",
      "content": "<p>I confirm that time for evaluation is mainly for audio clips loading. Pay attention to not load same clip multiple times if you want to ensemble multiple models. I've just tried to ensemble 4 CV5 models (so 20 inferences) to get a baseline and it runs in around 70-80min with GPU.</p>",
      "rawMarkdown": "I confirm that time for evaluation is mainly for audio clips loading. Pay attention to not load same clip multiple times if you want to ensemble multiple models. I've just tried to ensemble 4 CV5 models (so 20 inferences) to get a baseline and it runs in around 70-80min with GPU.",
      "votes": null
    },
    {
      "id": "987009",
      "postDate": "08/26/2020 22:59:19",
      "content": "<p>I'm not sure since I always use librosa.load. I'm not sure how many portions of time are spent on loading, but the total inference time for one model takes around 20 - 22min.</p>",
      "rawMarkdown": "I'm not sure since I always use librosa.load. I'm not sure how many portions of time are spent on loading, but the total inference time for one model takes around 20 - 22min.",
      "votes": null
    },
    {
      "id": "987014",
      "postDate": "08/26/2020 23:03:05",
      "content": "<blockquote>\n  <p>Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only.</p>\n</blockquote>\n<p>Yep, I think so. One thing I forgot to write above is T0 includes the time to convert the audio clips to audio features. If you are to use different audio features for different models, or to do TTA with different audio features, then it takes more time.</p>",
      "rawMarkdown": "> Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only.\n\nYep, I think so. One thing I forgot to write above is T0 includes the time to convert the audio clips to audio features. If you are to use different audio features for different models, or to do TTA with different audio features, then it takes more time.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 985635,
      "author_name": "hidehisaarai1213",
      "author_url": "",
      "post_date": "08/25/2020 22:14:41",
      "content": "<p>I think most of the time for evaluation is for audio clip loading. I've tried blending with two or three models but the time for submission increased only slightly which means prediction is made in a few minutes for the whole dataset. If we share the input feature between models, the submission time won't increase so much.</p>",
      "votes": null,
      "replies": [
        {
          "id": 985840,
          "author_name": "sapr3s",
          "author_url": "",
          "post_date": "08/26/2020 03:44:29",
          "content": "<p>Which method of reading audio files is the fastest in your opinion? I met somewhere on the forum that some methods are faster.</p>",
          "votes": null,
          "replies": [
            {
              "id": 987009,
              "author_name": "hidehisaarai1213",
              "author_url": "",
              "post_date": "08/26/2020 22:59:19",
              "content": "<p>I'm not sure since I always use librosa.load. I'm not sure how many portions of time are spent on loading, but the total inference time for one model takes around 20 - 22min.</p>",
              "votes": null,
              "replies": []
            }
          ]
        },
        {
          "id": 985906,
          "author_name": "koza4ukdmitrij",
          "author_url": "",
          "post_date": "08/26/2020 05:08:56",
          "content": "<p>Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only. </p>",
          "votes": null,
          "replies": [
            {
              "id": 987014,
              "author_name": "hidehisaarai1213",
              "author_url": "",
              "post_date": "08/26/2020 23:03:05",
              "content": "<blockquote>\n  <p>Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only.</p>\n</blockquote>\n<p>Yep, I think so. One thing I forgot to write above is T0 includes the time to convert the audio clips to audio features. If you are to use different audio features for different models, or to do TTA with different audio features, then it takes more time.</p>",
              "votes": null,
              "replies": []
            }
          ]
        },
        {
          "id": 986685,
          "author_name": "mpware",
          "author_url": "",
          "post_date": "08/26/2020 17:29:10",
          "content": "<p>I confirm that time for evaluation is mainly for audio clips loading. Pay attention to not load same clip multiple times if you want to ensemble multiple models. I've just tried to ensemble 4 CV5 models (so 20 inferences) to get a baseline and it runs in around 70-80min with GPU.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 985745,
      "author_name": "cv13j0",
      "author_url": "",
      "post_date": "08/26/2020 01:51:37",
      "content": "<p><a href=\"https://www.kaggle.com/koza4ukdmitrij\" target=\"_blank\">@koza4ukdmitrij</a> What about profiling each component of your code to see what part needs optimization to cut processing time?</p>",
      "votes": null,
      "replies": [
        {
          "id": 985900,
          "author_name": "koza4ukdmitrij",
          "author_url": "",
          "post_date": "08/26/2020 05:03:10",
          "content": "<p>I don't know, how I can do that during submussion. I can add profiling in the inference notebook, but I can see the output for a hidden test set. </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 986425,
          "author_name": "cv13j0",
          "author_url": "",
          "post_date": "08/26/2020 13:31:11",
          "content": "<p><a href=\"https://www.kaggle.com/koza4ukdmitrij\" target=\"_blank\">@koza4ukdmitrij</a> not sure if you can print any type of metric while the notebook/code is running on testing.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 985993,
      "author_name": "teyosan1229",
      "author_url": "",
      "post_date": "08/26/2020 06:24:35",
      "content": "<p>In some cases, using CPU Notebook is one way. It takes a lot of time to submit, but you can use it for 9 hours.<br>\nThis is my beginner's opinion…</p>",
      "votes": null,
      "replies": [
        {
          "id": 986170,
          "author_name": "koza4ukdmitrij",
          "author_url": "",
          "post_date": "08/26/2020 09:05:36",
          "content": "<p>Agree, I have to take into account only GPU evaluation, cause GPU is available during final submussion. </p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "985594": "In this competition there is restriction for testing time that limits this time with one hour. That makes impossible to use many models for blending. In order to decide how many model we can use I suggest to do it in experimental way:\n- For each submission we know time for submission (T min) and our model's size (S Mb).\n- S/T can be a estimation for size for 1 minute of evaluation.\n- Gathering different S/T that you share with society we can get better estimation (S/T)*. Each separate estimation S/T can be unstable cause of model's variance and submission time estimation error.\n- (S/T)* can help you to decide, how many of your model you can use.\n\n**Here** I will post current estimation for (S/T)*. Lets start with one of my submissions:\n - S=105.61 MB\n - T=24 min (so long!)\n - (S/T)*=(105.61 / 24)=4.4 MB/min",
    "985635": "I think most of the time for evaluation is for audio clip loading. I've tried blending with two or three models but the time for submission increased only slightly which means prediction is made in a few minutes for the whole dataset. If we share the input feature between models, the submission time won't increase so much.",
    "985745": "koza4ukdmitrij What about profiling each component of your code to see what part needs optimization to cut processing time?",
    "985840": "Which method of reading audio files is the fastest in your opinion? I met somewhere on the forum that some methods are faster.",
    "985900": "I don't know, how I can do that during submussion. I can add profiling in the inference notebook, but I can see the output for a hidden test set.",
    "985906": "Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only.",
    "985993": "In some cases, using CPU Notebook is one way. It takes a lot of time to submit, but you can use it for 9 hours.\nThis is my beginner's opinion...",
    "986170": "Agree, I have to take into account only GPU evaluation, cause GPU is available during final submussion.",
    "986425": "koza4ukdmitrij not sure if you can print any type of metric while the notebook/code is running on testing.",
    "986685": "I confirm that time for evaluation is mainly for audio clips loading. Pay attention to not load same clip multiple times if you want to ensemble multiple models. I've just tried to ensemble 4 CV5 models (so 20 inferences) to get a baseline and it runs in around 70-80min with GPU.",
    "987009": "I'm not sure since I always use librosa.load. I'm not sure how many portions of time are spent on loading, but the total inference time for one model takes around 20 - 22min.",
    "987014": "> Thank you for response! So, I can submit solution without any model, find time T0 and just substruct the T0 from a future time T and (T-T0) will be an estimation for model time only.\n\nYep, I think so. One thing I forgot to write above is T0 includes the time to convert the audio clips to audio features. If you are to use different audio features for different models, or to do TTA with different audio features, then it takes more time."
  },
  "source": "meta"
}