{
  "id": 684211,
  "title": "10th Place Solution — Seq2Seq + CPT + Pseudo-Labeling",
  "url": "/competitions/deep-past-initiative-machine-translation/writeups/10th-place-solution-seq2seq-cpt-pseudo-label",
  "author_name": "",
  "post_date": "2026-03-24T03:33:53.300Z",
  "votes": 21,
  "comment_count": 2,
  "views": 0,
  "content": "<h1>Overview</h1>\n<p>Our final solution is an ensemble of three sequence-to-sequence models — ByT5-Large, ByT5-XL, and MADLAD-400-3B-MT — all initialised from continual pretraining (CPT) checkpoints and further improved with pseudo-labeled data on <code>published_texts.csv</code>.</p>\n<p>The overall pipeline consists of three stages:</p>\n<ol>\n<li>Continual pretraining (CPT) on domain-specific Akkadian text</li>\n<li>Supervised fine-tuning (SFT) on sentence-level translation data</li>\n<li>Pseudo-labeling and retraining using additional unlabeled corpus data</li>\n</ol>\n<p>The final submission ensembles predictions from all three retrained models + MBR decoding.</p>\n<hr>\n<h1>External Data</h1>\n<p>To supplement the official training data, we incorporated two external resources from Kaggle:</p>\n<ul>\n<li>Old Assyrian grammar references and linguistic materials</li>\n<li>Scanned PDFs of Kültepe tablets, primary archaeological sources for Old Assyrian cuneiform</li>\n</ul>\n<p>Source: <a href=\"https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/discussion/668485\" target=\"_blank\">https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/discussion/668485</a></p>\n<hr>\n<h1>Data Preprocessing</h1>\n<p>Scanned tablet PDFs were processed with <strong>GLM-OCR (0.9B)</strong>, with each page handled independently to extract Akkadian/English text pairs.</p>\n<h2>Post-OCR Processing</h2>\n<p>We then used the Gemini, GPT, and Claude APIs for:</p>\n<ul>\n<li>Sentence alignment</li>\n<li>OCR noise removal</li>\n<li>Text normalisation</li>\n</ul>\n<p>The same alignment and cleaning pipeline was applied to the <code>published_texts</code> corpus before using it for pseudo-labeling.</p>\n<p>To ensure a reliable evaluation setup, we reserved one held-out fold exclusively for validation and excluded it from all training stages.</p>\n<hr>\n<h1>Model Candidates</h1>\n<p>We experimented with several strong sequence-to-sequence backbones:</p>\n<ul>\n<li>ByT5 variants</li>\n<li>mT5 variants</li>\n<li>MADLAD-400-3B-MT</li>\n</ul>\n<p>ByT5 was particularly well-suited to this task: its byte-level tokenisation handles rare scripts and low-frequency transliteration patterns more robustly than standard subword tokenisation. MADLAD-400-3B-MT was included to add diversity to the final ensemble.</p>\n<hr>\n<h1>Stage 1 — Continual Pretraining (CPT)</h1>\n<p>Each model was first trained for 3 epochs of continual pretraining on document-level Akkadian text, combining:</p>\n<ul>\n<li>Official training data</li>\n<li>Cleaned external corpus data</li>\n</ul>\n<p>This stage adapts the pretrained multilingual models to the Akkadian domain before introducing translation supervision.</p>\n<hr>\n<h1>Stage 2 — Supervised Fine-tuning (SFT)</h1>\n<p>Starting from CPT checkpoints, each model was fine-tuned at the sentence level on parallel translation data, again combining:</p>\n<ul>\n<li>Official training data</li>\n<li>Cleaned external data</li>\n</ul>\n<p>The CPT → SFT pipeline consistently outperformed direct fine-tuning, likely because CPT first helps the model internalise the structure and distribution of the target language.</p>\n<hr>\n<h1>Stage 3 — Pseudo-Labeling on Published Texts</h1>\n<p>We selected the best single model based on cross-validation and leaderboard performance, and used it to generate pseudo-labels for the <code>published_texts</code> corpus at the sentence level.</p>\n<p>Three final models were retrained on the combined dataset — official training data, cleaned external Assyrian data, and pseudo-labeled published texts:</p>\n<table>\n<thead>\n<tr>\n<th>Model</th>\n<th>Public</th>\n<th>Private</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ByT5-Large</td>\n<td>37.4</td>\n<td>39.3</td>\n</tr>\n<tr>\n<td>ByT5-XL</td>\n<td>37.6</td>\n<td>39.2</td>\n</tr>\n<tr>\n<td>MADLAD-400-3B-MT</td>\n<td>37.3</td>\n<td>38.9</td>\n</tr>\n<tr>\n<td><strong>Ensemble</strong></td>\n<td><strong>38.5</strong></td>\n<td><strong>39.9</strong></td>\n</tr>\n</tbody>\n</table>",
  "messages": [
    {
      "id": "3427402",
      "postDate": "03/24/2026 03:28:21",
      "content": "<h1>Overview</h1>\n<p>Our final solution is an ensemble of three sequence-to-sequence models — ByT5-Large, ByT5-XL, and MADLAD-400-3B-MT — all initialised from continual pretraining (CPT) checkpoints and further improved with pseudo-labeled data on <code>published_texts.csv</code>.</p>\n<p>The overall pipeline consists of three stages:</p>\n<ol>\n<li>Continual pretraining (CPT) on domain-specific Akkadian text</li>\n<li>Supervised fine-tuning (SFT) on sentence-level translation data</li>\n<li>Pseudo-labeling and retraining using additional unlabeled corpus data</li>\n</ol>\n<p>The final submission ensembles predictions from all three retrained models + MBR decoding.</p>\n<hr>\n<h1>External Data</h1>\n<p>To supplement the official training data, we incorporated two external resources from Kaggle:</p>\n<ul>\n<li>Old Assyrian grammar references and linguistic materials</li>\n<li>Scanned PDFs of Kültepe tablets, primary archaeological sources for Old Assyrian cuneiform</li>\n</ul>\n<p>Source: <a href=\"https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/discussion/668485\" target=\"_blank\">https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/discussion/668485</a></p>\n<hr>\n<h1>Data Preprocessing</h1>\n<p>Scanned tablet PDFs were processed with <strong>GLM-OCR (0.9B)</strong>, with each page handled independently to extract Akkadian/English text pairs.</p>\n<h2>Post-OCR Processing</h2>\n<p>We then used the Gemini, GPT, and Claude APIs for:</p>\n<ul>\n<li>Sentence alignment</li>\n<li>OCR noise removal</li>\n<li>Text normalisation</li>\n</ul>\n<p>The same alignment and cleaning pipeline was applied to the <code>published_texts</code> corpus before using it for pseudo-labeling.</p>\n<p>To ensure a reliable evaluation setup, we reserved one held-out fold exclusively for validation and excluded it from all training stages.</p>\n<hr>\n<h1>Model Candidates</h1>\n<p>We experimented with several strong sequence-to-sequence backbones:</p>\n<ul>\n<li>ByT5 variants</li>\n<li>mT5 variants</li>\n<li>MADLAD-400-3B-MT</li>\n</ul>\n<p>ByT5 was particularly well-suited to this task: its byte-level tokenisation handles rare scripts and low-frequency transliteration patterns more robustly than standard subword tokenisation. MADLAD-400-3B-MT was included to add diversity to the final ensemble.</p>\n<hr>\n<h1>Stage 1 — Continual Pretraining (CPT)</h1>\n<p>Each model was first trained for 3 epochs of continual pretraining on document-level Akkadian text, combining:</p>\n<ul>\n<li>Official training data</li>\n<li>Cleaned external corpus data</li>\n</ul>\n<p>This stage adapts the pretrained multilingual models to the Akkadian domain before introducing translation supervision.</p>\n<hr>\n<h1>Stage 2 — Supervised Fine-tuning (SFT)</h1>\n<p>Starting from CPT checkpoints, each model was fine-tuned at the sentence level on parallel translation data, again combining:</p>\n<ul>\n<li>Official training data</li>\n<li>Cleaned external data</li>\n</ul>\n<p>The CPT → SFT pipeline consistently outperformed direct fine-tuning, likely because CPT first helps the model internalise the structure and distribution of the target language.</p>\n<hr>\n<h1>Stage 3 — Pseudo-Labeling on Published Texts</h1>\n<p>We selected the best single model based on cross-validation and leaderboard performance, and used it to generate pseudo-labels for the <code>published_texts</code> corpus at the sentence level.</p>\n<p>Three final models were retrained on the combined dataset — official training data, cleaned external Assyrian data, and pseudo-labeled published texts:</p>\n<table>\n<thead>\n<tr>\n<th>Model</th>\n<th>Public</th>\n<th>Private</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ByT5-Large</td>\n<td>37.4</td>\n<td>39.3</td>\n</tr>\n<tr>\n<td>ByT5-XL</td>\n<td>37.6</td>\n<td>39.2</td>\n</tr>\n<tr>\n<td>MADLAD-400-3B-MT</td>\n<td>37.3</td>\n<td>38.9</td>\n</tr>\n<tr>\n<td><strong>Ensemble</strong></td>\n<td><strong>38.5</strong></td>\n<td><strong>39.9</strong></td>\n</tr>\n</tbody>\n</table>",
      "rawMarkdown": "# Overview\nOur final solution is an ensemble of three sequence-to-sequence models — ByT5-Large, ByT5-XL, and MADLAD-400-3B-MT — all initialised from continual pretraining (CPT) checkpoints and further improved with pseudo-labeled data on `published_texts.csv`.\n\nThe overall pipeline consists of three stages:\n1. Continual pretraining (CPT) on domain-specific Akkadian text\n2. Supervised fine-tuning (SFT) on sentence-level translation data\n3. Pseudo-labeling and retraining using additional unlabeled corpus data\n\nThe final submission ensembles predictions from all three retrained models + MBR decoding.\n\n---\n\n# External Data\nTo supplement the official training data, we incorporated two external resources from Kaggle:\n- Old Assyrian grammar references and linguistic materials\n- Scanned PDFs of Kültepe tablets, primary archaeological sources for Old Assyrian cuneiform\n\nSource: https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/discussion/668485\n\n---\n\n# Data Preprocessing\nScanned tablet PDFs were processed with **GLM-OCR (0.9B)**, with each page handled independently to extract Akkadian/English text pairs.\n\n## Post-OCR Processing\nWe then used the Gemini, GPT, and Claude APIs for:\n- Sentence alignment\n- OCR noise removal\n- Text normalisation\n\nThe same alignment and cleaning pipeline was applied to the `published_texts` corpus before using it for pseudo-labeling.\n\nTo ensure a reliable evaluation setup, we reserved one held-out fold exclusively for validation and excluded it from all training stages.\n\n---\n\n# Model Candidates\nWe experimented with several strong sequence-to-sequence backbones:\n- ByT5 variants\n- mT5 variants\n- MADLAD-400-3B-MT\n\nByT5 was particularly well-suited to this task: its byte-level tokenisation handles rare scripts and low-frequency transliteration patterns more robustly than standard subword tokenisation. MADLAD-400-3B-MT was included to add diversity to the final ensemble.\n\n---\n\n# Stage 1 — Continual Pretraining (CPT)\nEach model was first trained for 3 epochs of continual pretraining on document-level Akkadian text, combining:\n- Official training data\n- Cleaned external corpus data\n\nThis stage adapts the pretrained multilingual models to the Akkadian domain before introducing translation supervision.\n\n---\n\n# Stage 2 — Supervised Fine-tuning (SFT)\nStarting from CPT checkpoints, each model was fine-tuned at the sentence level on parallel translation data, again combining:\n- Official training data\n- Cleaned external data\n\nThe CPT → SFT pipeline consistently outperformed direct fine-tuning, likely because CPT first helps the model internalise the structure and distribution of the target language.\n\n---\n\n# Stage 3 — Pseudo-Labeling on Published Texts\nWe selected the best single model based on cross-validation and leaderboard performance, and used it to generate pseudo-labels for the `published_texts` corpus at the sentence level.\n\nThree final models were retrained on the combined dataset — official training data, cleaned external Assyrian data, and pseudo-labeled published texts:\n\n| Model | Public | Private |\n|---|---|---|\n| ByT5-Large | 37.4 | 39.3 |\n| ByT5-XL | 37.6 | 39.2 |\n| MADLAD-400-3B-MT | 37.3 | 38.9 |\n| **Ensemble** | **38.5** | **39.9** |",
      "votes": null
    },
    {
      "id": "3427726",
      "postDate": "03/24/2026 13:06:05",
      "content": "<p>nice work <a href=\"https://www.kaggle.com/xyzdivergence\" target=\"_blank\">@xyzdivergence</a>  .. can you please tell me how much time it took for you to byt5-xl and inference time and also the hardware you use for training ? did you use any lora setting to train byt5-xl?</p>",
      "rawMarkdown": "nice work @xyzdivergence  .. can you please tell me how much time it took for you to byt5-xl and inference time and also the hardware you use for training ? did you use any lora setting to train byt5-xl?",
      "votes": null
    },
    {
      "id": "3427748",
      "postDate": "03/24/2026 13:43:01",
      "content": "<p>Model: byt5-xl (no lora)</p>\n<ul>\n<li>Training time: 1–2 hours (10 epochs)</li>\n<li>Hardware used: H200/B200 GPUs</li>\n<li>Inference time: 4 hours (batch size = 8, max length = 512) on x1 T4 GPU</li>\n</ul>",
      "rawMarkdown": "Model: byt5-xl (no lora)\n- Training time: 1–2 hours (10 epochs)\n- Hardware used: H200/B200 GPUs\n- Inference time: 4 hours (batch size = 8, max length = 512) on x1 T4 GPU",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3427726,
      "author_name": "aman1391",
      "author_url": "",
      "post_date": "03/24/2026 13:06:05",
      "content": "<p>nice work <a href=\"https://www.kaggle.com/xyzdivergence\" target=\"_blank\">@xyzdivergence</a>  .. can you please tell me how much time it took for you to byt5-xl and inference time and also the hardware you use for training ? did you use any lora setting to train byt5-xl?</p>",
      "votes": null,
      "replies": [
        {
          "id": 3427748,
          "author_name": "xyzdivergence",
          "author_url": "",
          "post_date": "03/24/2026 13:43:01",
          "content": "<p>Model: byt5-xl (no lora)</p>\n<ul>\n<li>Training time: 1–2 hours (10 epochs)</li>\n<li>Hardware used: H200/B200 GPUs</li>\n<li>Inference time: 4 hours (batch size = 8, max length = 512) on x1 T4 GPU</li>\n</ul>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3427402": "# Overview\nOur final solution is an ensemble of three sequence-to-sequence models — ByT5-Large, ByT5-XL, and MADLAD-400-3B-MT — all initialised from continual pretraining (CPT) checkpoints and further improved with pseudo-labeled data on `published_texts.csv`.\n\nThe overall pipeline consists of three stages:\n1. Continual pretraining (CPT) on domain-specific Akkadian text\n2. Supervised fine-tuning (SFT) on sentence-level translation data\n3. Pseudo-labeling and retraining using additional unlabeled corpus data\n\nThe final submission ensembles predictions from all three retrained models + MBR decoding.\n\n---\n\n# External Data\nTo supplement the official training data, we incorporated two external resources from Kaggle:\n- Old Assyrian grammar references and linguistic materials\n- Scanned PDFs of Kültepe tablets, primary archaeological sources for Old Assyrian cuneiform\n\nSource: https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/discussion/668485\n\n---\n\n# Data Preprocessing\nScanned tablet PDFs were processed with **GLM-OCR (0.9B)**, with each page handled independently to extract Akkadian/English text pairs.\n\n## Post-OCR Processing\nWe then used the Gemini, GPT, and Claude APIs for:\n- Sentence alignment\n- OCR noise removal\n- Text normalisation\n\nThe same alignment and cleaning pipeline was applied to the `published_texts` corpus before using it for pseudo-labeling.\n\nTo ensure a reliable evaluation setup, we reserved one held-out fold exclusively for validation and excluded it from all training stages.\n\n---\n\n# Model Candidates\nWe experimented with several strong sequence-to-sequence backbones:\n- ByT5 variants\n- mT5 variants\n- MADLAD-400-3B-MT\n\nByT5 was particularly well-suited to this task: its byte-level tokenisation handles rare scripts and low-frequency transliteration patterns more robustly than standard subword tokenisation. MADLAD-400-3B-MT was included to add diversity to the final ensemble.\n\n---\n\n# Stage 1 — Continual Pretraining (CPT)\nEach model was first trained for 3 epochs of continual pretraining on document-level Akkadian text, combining:\n- Official training data\n- Cleaned external corpus data\n\nThis stage adapts the pretrained multilingual models to the Akkadian domain before introducing translation supervision.\n\n---\n\n# Stage 2 — Supervised Fine-tuning (SFT)\nStarting from CPT checkpoints, each model was fine-tuned at the sentence level on parallel translation data, again combining:\n- Official training data\n- Cleaned external data\n\nThe CPT → SFT pipeline consistently outperformed direct fine-tuning, likely because CPT first helps the model internalise the structure and distribution of the target language.\n\n---\n\n# Stage 3 — Pseudo-Labeling on Published Texts\nWe selected the best single model based on cross-validation and leaderboard performance, and used it to generate pseudo-labels for the `published_texts` corpus at the sentence level.\n\nThree final models were retrained on the combined dataset — official training data, cleaned external Assyrian data, and pseudo-labeled published texts:\n\n| Model | Public | Private |\n|---|---|---|\n| ByT5-Large | 37.4 | 39.3 |\n| ByT5-XL | 37.6 | 39.2 |\n| MADLAD-400-3B-MT | 37.3 | 38.9 |\n| **Ensemble** | **38.5** | **39.9** |",
    "3427726": "nice work @xyzdivergence  .. can you please tell me how much time it took for you to byt5-xl and inference time and also the hardware you use for training ? did you use any lora setting to train byt5-xl?",
    "3427748": "Model: byt5-xl (no lora)\n- Training time: 1–2 hours (10 epochs)\n- Hardware used: H200/B200 GPUs\n- Inference time: 4 hours (batch size = 8, max length = 512) on x1 T4 GPU"
  },
  "source": "meta"
}