{
  "id": 587404,
  "title": "12th Solution",
  "url": "/competitions/waveform-inversion/writeups/working-hard-12th-solution",
  "author_name": "",
  "post_date": "2025-07-01T01:26:32.700Z",
  "votes": 31,
  "comment_count": 4,
  "views": 0,
  "content": "<p>First, I’d like to thank the competition organizers, as well as Bartley. I started paying attention to this competition 18 days ago, and without Bartley’s baseline, I probably wouldn’t have participated.<br>\nAlso, big thanks to my teammates for their efforts.</p>\n<h3>Baseline</h3>\n<p>Together with <a href=\"https://www.kaggle.com/carlosgdcj\" target=\"_blank\">@carlosgdcj</a> and <a href=\"https://www.kaggle.com/sjtuwangshuo\" target=\"_blank\">@sjtuwangshuo</a>, we trained a Stable Diffusion model to generate vel-to-seis data, producing about five times the amount of data compared to OpenFWI.<br>\nBased on Bartley’s model architecture, we applied min_max(log(x)) normalization on the inputs and trained a baseline model that achieved 19.3 on the leaderboard.</p>\n<h3>Online Augmented Training</h3>\n<p>After discovering the original vel-to-seis forward function, I re-implemented an accelerated version that could reach about 120 samples/s on a 5090 GPU  (opened here:  <a href=\"https://github.com/lhwcv/vel_forward_v2\" target=\"_blank\">https://github.com/lhwcv/vel_forward_v2</a>)<br>\nThis enabled us to perform online data augmentation during training.<br>\nWe mixed the training and test data, where the velocity labels of the test set were generated using the aforementioned function.<br>\nWe also trained a simple classifier, which allowed us to split up the test set family by family so that each teammate could handle a few families.<br>\nAt this stage, we improved our score to 13.2.</p>\n<h3>Further Improvement on Test Set Only</h3>\n<p>We then fine-tuned on mini-batches of test-only data using the previous model, where the validation was directly based on seis reconstruction error.<br>\nThis step brought our score down to 12.5.<br>\nFinally, we directly optimized the velocity using the gradient-enabled FWM function on StyleA/B, without any model — just taking the model output as initialization and optimizing it directly.<br>\nThis pushed our final score to 12.3.</p>\n<h3>Summary</h3>\n<p>We truly enjoyed reading the Rank 1 solution.<br>\nBig congratulations to everyone for such interesting approaches and for keeping the leaderboard nearly shake-up free in the end.</p>",
  "messages": [
    {
      "id": "3237212",
      "postDate": "07/01/2025 01:01:41",
      "content": "<p>First, I’d like to thank the competition organizers, as well as Bartley. I started paying attention to this competition 18 days ago, and without Bartley’s baseline, I probably wouldn’t have participated.<br>\nAlso, big thanks to my teammates for their efforts.</p>\n<h3>Baseline</h3>\n<p>Together with <a href=\"https://www.kaggle.com/carlosgdcj\" target=\"_blank\">@carlosgdcj</a> and <a href=\"https://www.kaggle.com/sjtuwangshuo\" target=\"_blank\">@sjtuwangshuo</a>, we trained a Stable Diffusion model to generate vel-to-seis data, producing about five times the amount of data compared to OpenFWI.<br>\nBased on Bartley’s model architecture, we applied min_max(log(x)) normalization on the inputs and trained a baseline model that achieved 19.3 on the leaderboard.</p>\n<h3>Online Augmented Training</h3>\n<p>After discovering the original vel-to-seis forward function, I re-implemented an accelerated version that could reach about 120 samples/s on a 5090 GPU  (opened here:  <a href=\"https://github.com/lhwcv/vel_forward_v2\" target=\"_blank\">https://github.com/lhwcv/vel_forward_v2</a>)<br>\nThis enabled us to perform online data augmentation during training.<br>\nWe mixed the training and test data, where the velocity labels of the test set were generated using the aforementioned function.<br>\nWe also trained a simple classifier, which allowed us to split up the test set family by family so that each teammate could handle a few families.<br>\nAt this stage, we improved our score to 13.2.</p>\n<h3>Further Improvement on Test Set Only</h3>\n<p>We then fine-tuned on mini-batches of test-only data using the previous model, where the validation was directly based on seis reconstruction error.<br>\nThis step brought our score down to 12.5.<br>\nFinally, we directly optimized the velocity using the gradient-enabled FWM function on StyleA/B, without any model — just taking the model output as initialization and optimizing it directly.<br>\nThis pushed our final score to 12.3.</p>\n<h3>Summary</h3>\n<p>We truly enjoyed reading the Rank 1 solution.<br>\nBig congratulations to everyone for such interesting approaches and for keeping the leaderboard nearly shake-up free in the end.</p>",
      "rawMarkdown": "First, I’d like to thank the competition organizers, as well as Bartley. I started paying attention to this competition 18 days ago, and without Bartley’s baseline, I probably wouldn’t have participated.\nAlso, big thanks to my teammates for their efforts.\n\n### Baseline\n\n    Together with @carlosgdcj and @sjtuwangshuo, we trained a Stable Diffusion model to generate vel-to-seis data, producing about five times the amount of data compared to OpenFWI.\nBased on Bartley’s model architecture, we applied min_max(log(x)) normalization on the inputs and trained a baseline model that achieved 19.3 on the leaderboard.\n\n### Online Augmented Training\n\n    After discovering the original vel-to-seis forward function, I re-implemented an accelerated version that could reach about 120 samples/s on a 5090 GPU  (opened here:  https://github.com/lhwcv/vel_forward_v2)\nThis enabled us to perform online data augmentation during training.\nWe mixed the training and test data, where the velocity labels of the test set were generated using the aforementioned function.\nWe also trained a simple classifier, which allowed us to split up the test set family by family so that each teammate could handle a few families.\nAt this stage, we improved our score to 13.2.\n\n### Further Improvement on Test Set Only\n\n    We then fine-tuned on mini-batches of test-only data using the previous model, where the validation was directly based on seis reconstruction error.\n    This step brought our score down to 12.5.\n    Finally, we directly optimized the velocity using the gradient-enabled FWM function on StyleA/B, without any model — just taking the model output as initialization and optimizing it directly.\nThis pushed our final score to 12.3.\n\n### Summary\n\nWe truly enjoyed reading the Rank 1 solution.\nBig congratulations to everyone for such interesting approaches and for keeping the leaderboard nearly shake-up free in the end.",
      "votes": null
    },
    {
      "id": "3237217",
      "postDate": "07/01/2025 01:07:07",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/lihaoweicvch\" target=\"_blank\">@lihaoweicvch</a> for the Grandmaster title!!!<br>\nCool solution, some parts are similar in our solutions, I can only do like 90 samples per second on 5090 for vel_to_seis, your implementation must be really optimized!</p>",
      "rawMarkdown": "Congratulations @lihaoweicvch for the Grandmaster title!!!\nCool solution, some parts are similar in our solutions, I can only do like 90 samples per second on 5090 for vel_to_seis, your implementation must be really optimized!",
      "votes": null
    },
    {
      "id": "3237218",
      "postDate": "07/01/2025 01:07:08",
      "content": "<p>Very interesting. It seems I followed the same path as you, except I used fourier deeponet code instead of writing my own. Yours being much faster was key it seems. Will you publish it?</p>",
      "rawMarkdown": "Very interesting. It seems I followed the same path as you, except I used fourier deeponet code instead of writing my own. Yours being much faster was key it seems. Will you publish it?",
      "votes": null
    },
    {
      "id": "3237229",
      "postDate": "07/01/2025 01:25:05",
      "content": "<p>opened here: <a href=\"https://github.com/lhwcv/vel_forward_v2\" target=\"_blank\">https://github.com/lhwcv/vel_forward_v2</a></p>",
      "rawMarkdown": "opened here: https://github.com/lhwcv/vel_forward_v2",
      "votes": null
    },
    {
      "id": "3237230",
      "postDate": "07/01/2025 01:25:46",
      "content": "<p>thank you very much, learn a lot from you</p>",
      "rawMarkdown": "thank you very much, learn a lot from you",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3237217,
      "author_name": "harshitsheoran",
      "author_url": "",
      "post_date": "07/01/2025 01:07:07",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/lihaoweicvch\" target=\"_blank\">@lihaoweicvch</a> for the Grandmaster title!!!<br>\nCool solution, some parts are similar in our solutions, I can only do like 90 samples per second on 5090 for vel_to_seis, your implementation must be really optimized!</p>",
      "votes": null,
      "replies": [
        {
          "id": 3237230,
          "author_name": "lihaoweicvch",
          "author_url": "",
          "post_date": "07/01/2025 01:25:46",
          "content": "<p>thank you very much, learn a lot from you</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 3237218,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "07/01/2025 01:07:08",
      "content": "<p>Very interesting. It seems I followed the same path as you, except I used fourier deeponet code instead of writing my own. Yours being much faster was key it seems. Will you publish it?</p>",
      "votes": null,
      "replies": [
        {
          "id": 3237229,
          "author_name": "lihaoweicvch",
          "author_url": "",
          "post_date": "07/01/2025 01:25:05",
          "content": "<p>opened here: <a href=\"https://github.com/lhwcv/vel_forward_v2\" target=\"_blank\">https://github.com/lhwcv/vel_forward_v2</a></p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3237212": "First, I’d like to thank the competition organizers, as well as Bartley. I started paying attention to this competition 18 days ago, and without Bartley’s baseline, I probably wouldn’t have participated.\nAlso, big thanks to my teammates for their efforts.\n\n### Baseline\n\n    Together with @carlosgdcj and @sjtuwangshuo, we trained a Stable Diffusion model to generate vel-to-seis data, producing about five times the amount of data compared to OpenFWI.\nBased on Bartley’s model architecture, we applied min_max(log(x)) normalization on the inputs and trained a baseline model that achieved 19.3 on the leaderboard.\n\n### Online Augmented Training\n\n    After discovering the original vel-to-seis forward function, I re-implemented an accelerated version that could reach about 120 samples/s on a 5090 GPU  (opened here:  https://github.com/lhwcv/vel_forward_v2)\nThis enabled us to perform online data augmentation during training.\nWe mixed the training and test data, where the velocity labels of the test set were generated using the aforementioned function.\nWe also trained a simple classifier, which allowed us to split up the test set family by family so that each teammate could handle a few families.\nAt this stage, we improved our score to 13.2.\n\n### Further Improvement on Test Set Only\n\n    We then fine-tuned on mini-batches of test-only data using the previous model, where the validation was directly based on seis reconstruction error.\n    This step brought our score down to 12.5.\n    Finally, we directly optimized the velocity using the gradient-enabled FWM function on StyleA/B, without any model — just taking the model output as initialization and optimizing it directly.\nThis pushed our final score to 12.3.\n\n### Summary\n\nWe truly enjoyed reading the Rank 1 solution.\nBig congratulations to everyone for such interesting approaches and for keeping the leaderboard nearly shake-up free in the end.",
    "3237217": "Congratulations @lihaoweicvch for the Grandmaster title!!!\nCool solution, some parts are similar in our solutions, I can only do like 90 samples per second on 5090 for vel_to_seis, your implementation must be really optimized!",
    "3237218": "Very interesting. It seems I followed the same path as you, except I used fourier deeponet code instead of writing my own. Yours being much faster was key it seems. Will you publish it?",
    "3237229": "opened here: https://github.com/lhwcv/vel_forward_v2",
    "3237230": "thank you very much, learn a lot from you"
  },
  "source": "meta"
}