{
  "id": 667065,
  "title": "Beginner's Guide & Baseline Approaches",
  "url": "/competitions/deep-past-initiative-machine-translation/discussion/667065",
  "author_name": "",
  "post_date": "2026-01-10T22:54:52.550763500Z",
  "votes": 6,
  "comment_count": 1,
  "views": 0,
  "content": "<p>I've put together a comprehensive starter notebook and wanted to share some key insights about this fascinating competition. Whether you're new to machine translation or ancient languages, this should help you get started quickly!</p>\n<p><strong>What Makes This Competition Unique?</strong></p>\n<p>We're translating 4,000-year-old Akkadian business records into modern English. This isn't just another NMT task - it's pushing AI to decode humanity's earliest written language! Here's why it's challenging:</p>\n<ul>\n<li>Limited training data (~1,500 document-level examples)</li>\n<li>Document vs Sentence mismatch (train: documents, test: ~4,000 sentences)</li>\n<li>No native speakers (language extinct for 2000+ years)</li>\n<li>Complex cuneiform script (signs have multiple meanings depending on context)</li>\n<li>Fragmentary texts (many tablets are damaged)</li>\n<li>Domain-specific vocabulary (heavy focus on commerce/administration)</li>\n</ul>\n<p>⚠️ Key Challenge: Training data is at document-level (~1,500 documents), but test data is at sentence-level (~4,000 sentences from ~400 documents). You'll want to split the training documents into sentences using <em>Sentences_Oare_FirstWord_LinNum.csv</em>!</p>\n<p>The competition uses geometric mean of <em>BLEU</em> and <em>chrF++</em>:</p>\n<ul>\n<li>BLEU: Measures word/phrase-level accuracy</li>\n<li>chrF++: Measures character-level similarity (better for morphology)</li>\n<li>Final Score = √(BLEU × chrF++)</li>\n</ul>\n<p>This means you can't neglect either metric; both need to be strong! </p>\n<p><strong>Baseline Approaches I've Tested</strong></p>\n<ol>\n<li><p>Data Preprocessing - CRITICAL FIRST STEP\nThe competition provides detailed formatting guidelines for cleaning transliterations:</p>\n<ul>\n<li>Remove modern scribal notations (!, ?, /, :, etc.)</li>\n<li>Standardize gaps and breaks ([x] → )</li>\n<li>Normalize subscripts (il₅ → il5)</li>\n<li>Handle special characters (š → sz, ṣ → s,, etc.)</li>\n<li>Process determinatives (semantic markers like {d} for deity, {ki} for place)</li></ul>\n<p>See the notebook for a complete clean_transliteration() function.</p></li>\n<li><p>MarianMT ( NOT RECOMMENDED)</p>\n<ul>\n<li>❌ Not trained on ancient languages</li>\n<li>❌ Essentially fails completely</li></ul>\n<p>Skip this and go straight to ByT5/mBART</p></li>\n<li><p>Simple Dictionary Baseline (Sanity Check)</p>\n<ul>\n<li>✅ Quick to implement (builds word-to-word mapping from training data)</li>\n<li>✅ Better than nothing!</li>\n<li>❌ Simple word matching</li></ul>\n<p>Use case: Verify your pipeline works</p></li>\n<li><p>ByT5 (Character-Level Model) - RECOMMENDED</p>\n<ul>\n<li>✅ Fast and easy to implement</li>\n<li>✅ Works at character/byte level (perfect for ancient scripts!)</li>\n<li>✅ Better with rare words and morphology</li>\n<li>✅ Recent research shows strong performance on ancient text</li>\n<li>❌ Not trained on ancient languages</li></ul></li>\n<li><p>mBART (Multilingual Model)</p>\n<ul>\n<li>✅ Strong multilingual pre-training</li>\n<li>✅ Proven success on low-resource languages</li></ul></li>\n</ol>\n<p><strong>Recommended Next Steps</strong></p>\n<p>For Beginners:</p>\n<ul>\n<li>Start with my starter notebook</li>\n<li>Try the MarianMT baseline to get familiar with the pipeline</li>\n<li>Split training documents into sentences using <em>Sentences_Oare_FirstWord_LinNum.csv</em></li>\n<li>Fine-tune ByT5-small on sentence-level data</li>\n<li>Monitor both BLEU and chrF++ during training</li>\n</ul>\n<p>For Advanced Competitors:</p>\n<ul>\n<li>Extract additional data from supplemental files (could give 5,000-10,000+ more examples!)<ul>\n<li>Use <em>published_texts.csv</em> (~8,000 transliterations)</li>\n<li>Extract translations from <em>publications.csv</em> (~880 PDFs via OCR + LLM)</li>\n<li>Align using document IDs and convert to English</li></ul></li>\n<li>Fine-tune larger models (ByT5-base, mBART-large)</li>\n<li>Use OA_Lexicon_eBL.csv dictionary for vocabulary enhancement</li>\n<li>Experiment with data augmentation</li>\n<li>Try ensemble methods (combine multiple models)</li>\n<li>Consider few-shot prompting with LLMs (GPT-4, Claude) + dictionary context</li>\n</ul>\n<p>Link to my notebook: <a href=\"https://www.kaggle.com/code/eunicetu/dataset-overview-starter-baselines\" target=\"_blank\">https://www.kaggle.com/code/eunicetu/dataset-overview-starter-baselines</a></p>",
  "messages": [
    {
      "id": "3389321",
      "postDate": "01/10/2026 22:54:52",
      "content": "<p>I've put together a comprehensive starter notebook and wanted to share some key insights about this fascinating competition. Whether you're new to machine translation or ancient languages, this should help you get started quickly!</p>\n<p><strong>What Makes This Competition Unique?</strong></p>\n<p>We're translating 4,000-year-old Akkadian business records into modern English. This isn't just another NMT task - it's pushing AI to decode humanity's earliest written language! Here's why it's challenging:</p>\n<ul>\n<li>Limited training data (~1,500 document-level examples)</li>\n<li>Document vs Sentence mismatch (train: documents, test: ~4,000 sentences)</li>\n<li>No native speakers (language extinct for 2000+ years)</li>\n<li>Complex cuneiform script (signs have multiple meanings depending on context)</li>\n<li>Fragmentary texts (many tablets are damaged)</li>\n<li>Domain-specific vocabulary (heavy focus on commerce/administration)</li>\n</ul>\n<p>⚠️ Key Challenge: Training data is at document-level (~1,500 documents), but test data is at sentence-level (~4,000 sentences from ~400 documents). You'll want to split the training documents into sentences using <em>Sentences_Oare_FirstWord_LinNum.csv</em>!</p>\n<p>The competition uses geometric mean of <em>BLEU</em> and <em>chrF++</em>:</p>\n<ul>\n<li>BLEU: Measures word/phrase-level accuracy</li>\n<li>chrF++: Measures character-level similarity (better for morphology)</li>\n<li>Final Score = √(BLEU × chrF++)</li>\n</ul>\n<p>This means you can't neglect either metric; both need to be strong! </p>\n<p><strong>Baseline Approaches I've Tested</strong></p>\n<ol>\n<li><p>Data Preprocessing - CRITICAL FIRST STEP\nThe competition provides detailed formatting guidelines for cleaning transliterations:</p>\n<ul>\n<li>Remove modern scribal notations (!, ?, /, :, etc.)</li>\n<li>Standardize gaps and breaks ([x] → )</li>\n<li>Normalize subscripts (il₅ → il5)</li>\n<li>Handle special characters (š → sz, ṣ → s,, etc.)</li>\n<li>Process determinatives (semantic markers like {d} for deity, {ki} for place)</li></ul>\n<p>See the notebook for a complete clean_transliteration() function.</p></li>\n<li><p>MarianMT ( NOT RECOMMENDED)</p>\n<ul>\n<li>❌ Not trained on ancient languages</li>\n<li>❌ Essentially fails completely</li></ul>\n<p>Skip this and go straight to ByT5/mBART</p></li>\n<li><p>Simple Dictionary Baseline (Sanity Check)</p>\n<ul>\n<li>✅ Quick to implement (builds word-to-word mapping from training data)</li>\n<li>✅ Better than nothing!</li>\n<li>❌ Simple word matching</li></ul>\n<p>Use case: Verify your pipeline works</p></li>\n<li><p>ByT5 (Character-Level Model) - RECOMMENDED</p>\n<ul>\n<li>✅ Fast and easy to implement</li>\n<li>✅ Works at character/byte level (perfect for ancient scripts!)</li>\n<li>✅ Better with rare words and morphology</li>\n<li>✅ Recent research shows strong performance on ancient text</li>\n<li>❌ Not trained on ancient languages</li></ul></li>\n<li><p>mBART (Multilingual Model)</p>\n<ul>\n<li>✅ Strong multilingual pre-training</li>\n<li>✅ Proven success on low-resource languages</li></ul></li>\n</ol>\n<p><strong>Recommended Next Steps</strong></p>\n<p>For Beginners:</p>\n<ul>\n<li>Start with my starter notebook</li>\n<li>Try the MarianMT baseline to get familiar with the pipeline</li>\n<li>Split training documents into sentences using <em>Sentences_Oare_FirstWord_LinNum.csv</em></li>\n<li>Fine-tune ByT5-small on sentence-level data</li>\n<li>Monitor both BLEU and chrF++ during training</li>\n</ul>\n<p>For Advanced Competitors:</p>\n<ul>\n<li>Extract additional data from supplemental files (could give 5,000-10,000+ more examples!)<ul>\n<li>Use <em>published_texts.csv</em> (~8,000 transliterations)</li>\n<li>Extract translations from <em>publications.csv</em> (~880 PDFs via OCR + LLM)</li>\n<li>Align using document IDs and convert to English</li></ul></li>\n<li>Fine-tune larger models (ByT5-base, mBART-large)</li>\n<li>Use OA_Lexicon_eBL.csv dictionary for vocabulary enhancement</li>\n<li>Experiment with data augmentation</li>\n<li>Try ensemble methods (combine multiple models)</li>\n<li>Consider few-shot prompting with LLMs (GPT-4, Claude) + dictionary context</li>\n</ul>\n<p>Link to my notebook: <a href=\"https://www.kaggle.com/code/eunicetu/dataset-overview-starter-baselines\" target=\"_blank\">https://www.kaggle.com/code/eunicetu/dataset-overview-starter-baselines</a></p>",
      "rawMarkdown": "I've put together a comprehensive starter notebook and wanted to share some key insights about this fascinating competition. Whether you're new to machine translation or ancient languages, this should help you get started quickly!\n\n**What Makes This Competition Unique?**\n\nWe're translating 4,000-year-old Akkadian business records into modern English. This isn't just another NMT task - it's pushing AI to decode humanity's earliest written language! Here's why it's challenging:\n\n- Limited training data (~1,500 document-level examples)\n- Document vs Sentence mismatch (train: documents, test: ~4,000 sentences)\n- No native speakers (language extinct for 2000+ years)\n- Complex cuneiform script (signs have multiple meanings depending on context)\n- Fragmentary texts (many tablets are damaged)\n- Domain-specific vocabulary (heavy focus on commerce/administration)\n\n⚠️ Key Challenge: Training data is at document-level (~1,500 documents), but test data is at sentence-level (~4,000 sentences from ~400 documents). You'll want to split the training documents into sentences using *Sentences_Oare_FirstWord_LinNum.csv*!\n\nThe competition uses geometric mean of *BLEU* and *chrF++*:\n\n- BLEU: Measures word/phrase-level accuracy\n- chrF++: Measures character-level similarity (better for morphology)\n- Final Score = √(BLEU × chrF++)\n\nThis means you can't neglect either metric; both need to be strong! \n\n**Baseline Approaches I've Tested**\n0. Data Preprocessing - CRITICAL FIRST STEP\nThe competition provides detailed formatting guidelines for cleaning transliterations:\n\n    - Remove modern scribal notations (!, ?, /, :, etc.)\n    - Standardize gaps and breaks ([x] → <gap>)\n    - Normalize subscripts (il₅ → il5)\n    - Handle special characters (š → sz, ṣ → s,, etc.)\n    - Process determinatives (semantic markers like {d} for deity, {ki} for place)\n\n    See the notebook for a complete clean_transliteration() function.\n\n1. MarianMT ( NOT RECOMMENDED)\n\n    - ❌ Not trained on ancient languages\n    - ❌ Essentially fails completely\n\n    Skip this and go straight to ByT5/mBART\n\n2. Simple Dictionary Baseline (Sanity Check)\n\n    - ✅ Quick to implement (builds word-to-word mapping from training data)\n    - ✅ Better than nothing!\n    - ❌ Simple word matching\n\n    Use case: Verify your pipeline works\n\n3. ByT5 (Character-Level Model) - RECOMMENDED\n\n    - ✅ Fast and easy to implement\n    - ✅ Works at character/byte level (perfect for ancient scripts!)\n    - ✅ Better with rare words and morphology\n    - ✅ Recent research shows strong performance on ancient text\n    - ❌ Not trained on ancient languages\n\n4. mBART (Multilingual Model)\n\n    - ✅ Strong multilingual pre-training\n    - ✅ Proven success on low-resource languages\n\n**Recommended Next Steps**\n\nFor Beginners:\n- Start with my starter notebook\n- Try the MarianMT baseline to get familiar with the pipeline\n- Split training documents into sentences using *Sentences_Oare_FirstWord_LinNum.csv*\n- Fine-tune ByT5-small on sentence-level data\n- Monitor both BLEU and chrF++ during training\n\nFor Advanced Competitors:\n\n- Extract additional data from supplemental files (could give 5,000-10,000+ more examples!)\n    - Use *published_texts.csv* (~8,000 transliterations)\n    - Extract translations from *publications.csv* (~880 PDFs via OCR + LLM)\n    - Align using document IDs and convert to English\n- Fine-tune larger models (ByT5-base, mBART-large)\n- Use OA_Lexicon_eBL.csv dictionary for vocabulary enhancement\n- Experiment with data augmentation\n- Try ensemble methods (combine multiple models)\n- Consider few-shot prompting with LLMs (GPT-4, Claude) + dictionary context\n\nLink to my notebook: https://www.kaggle.com/code/eunicetu/dataset-overview-starter-baselines",
      "votes": null
    },
    {
      "id": "3390681",
      "postDate": "01/13/2026 18:03:23",
      "content": "<p>Just a quick note, under \"Handle special characters\" you have (š → sz, ṣ → s,, etc.)</p>\n<p>The test set uses special characters, rather than the ASCII conversions, i.e. ( š, not sz, and ṣ, not s, )</p>\n<p>(also note the test set uses h rather than ḫ )</p>\n<p>And it looks like the markdown format removed your &lt; gap &gt; &lt; big_gap &gt; which is why we have resorted to inserting a couple spaces when talking about it here (not in the actual text).</p>",
      "rawMarkdown": "Just a quick note, under \"Handle special characters\" you have (š → sz, ṣ → s,, etc.)\n\nThe test set uses special characters, rather than the ASCII conversions, i.e. ( š, not sz, and ṣ, not s, )\n\n(also note the test set uses h rather than ḫ )\n\nAnd it looks like the markdown format removed your < gap > < big_gap > which is why we have resorted to inserting a couple spaces when talking about it here (not in the actual text).",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3390681,
      "author_name": "deeppast",
      "author_url": "",
      "post_date": "01/13/2026 18:03:23",
      "content": "<p>Just a quick note, under \"Handle special characters\" you have (š → sz, ṣ → s,, etc.)</p>\n<p>The test set uses special characters, rather than the ASCII conversions, i.e. ( š, not sz, and ṣ, not s, )</p>\n<p>(also note the test set uses h rather than ḫ )</p>\n<p>And it looks like the markdown format removed your &lt; gap &gt; &lt; big_gap &gt; which is why we have resorted to inserting a couple spaces when talking about it here (not in the actual text).</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "3389321": "I've put together a comprehensive starter notebook and wanted to share some key insights about this fascinating competition. Whether you're new to machine translation or ancient languages, this should help you get started quickly!\n\n**What Makes This Competition Unique?**\n\nWe're translating 4,000-year-old Akkadian business records into modern English. This isn't just another NMT task - it's pushing AI to decode humanity's earliest written language! Here's why it's challenging:\n\n- Limited training data (~1,500 document-level examples)\n- Document vs Sentence mismatch (train: documents, test: ~4,000 sentences)\n- No native speakers (language extinct for 2000+ years)\n- Complex cuneiform script (signs have multiple meanings depending on context)\n- Fragmentary texts (many tablets are damaged)\n- Domain-specific vocabulary (heavy focus on commerce/administration)\n\n⚠️ Key Challenge: Training data is at document-level (~1,500 documents), but test data is at sentence-level (~4,000 sentences from ~400 documents). You'll want to split the training documents into sentences using *Sentences_Oare_FirstWord_LinNum.csv*!\n\nThe competition uses geometric mean of *BLEU* and *chrF++*:\n\n- BLEU: Measures word/phrase-level accuracy\n- chrF++: Measures character-level similarity (better for morphology)\n- Final Score = √(BLEU × chrF++)\n\nThis means you can't neglect either metric; both need to be strong! \n\n**Baseline Approaches I've Tested**\n0. Data Preprocessing - CRITICAL FIRST STEP\nThe competition provides detailed formatting guidelines for cleaning transliterations:\n\n    - Remove modern scribal notations (!, ?, /, :, etc.)\n    - Standardize gaps and breaks ([x] → <gap>)\n    - Normalize subscripts (il₅ → il5)\n    - Handle special characters (š → sz, ṣ → s,, etc.)\n    - Process determinatives (semantic markers like {d} for deity, {ki} for place)\n\n    See the notebook for a complete clean_transliteration() function.\n\n1. MarianMT ( NOT RECOMMENDED)\n\n    - ❌ Not trained on ancient languages\n    - ❌ Essentially fails completely\n\n    Skip this and go straight to ByT5/mBART\n\n2. Simple Dictionary Baseline (Sanity Check)\n\n    - ✅ Quick to implement (builds word-to-word mapping from training data)\n    - ✅ Better than nothing!\n    - ❌ Simple word matching\n\n    Use case: Verify your pipeline works\n\n3. ByT5 (Character-Level Model) - RECOMMENDED\n\n    - ✅ Fast and easy to implement\n    - ✅ Works at character/byte level (perfect for ancient scripts!)\n    - ✅ Better with rare words and morphology\n    - ✅ Recent research shows strong performance on ancient text\n    - ❌ Not trained on ancient languages\n\n4. mBART (Multilingual Model)\n\n    - ✅ Strong multilingual pre-training\n    - ✅ Proven success on low-resource languages\n\n**Recommended Next Steps**\n\nFor Beginners:\n- Start with my starter notebook\n- Try the MarianMT baseline to get familiar with the pipeline\n- Split training documents into sentences using *Sentences_Oare_FirstWord_LinNum.csv*\n- Fine-tune ByT5-small on sentence-level data\n- Monitor both BLEU and chrF++ during training\n\nFor Advanced Competitors:\n\n- Extract additional data from supplemental files (could give 5,000-10,000+ more examples!)\n    - Use *published_texts.csv* (~8,000 transliterations)\n    - Extract translations from *publications.csv* (~880 PDFs via OCR + LLM)\n    - Align using document IDs and convert to English\n- Fine-tune larger models (ByT5-base, mBART-large)\n- Use OA_Lexicon_eBL.csv dictionary for vocabulary enhancement\n- Experiment with data augmentation\n- Try ensemble methods (combine multiple models)\n- Consider few-shot prompting with LLMs (GPT-4, Claude) + dictionary context\n\nLink to my notebook: https://www.kaggle.com/code/eunicetu/dataset-overview-starter-baselines",
    "3390681": "Just a quick note, under \"Handle special characters\" you have (š → sz, ṣ → s,, etc.)\n\nThe test set uses special characters, rather than the ASCII conversions, i.e. ( š, not sz, and ṣ, not s, )\n\n(also note the test set uses h rather than ḫ )\n\nAnd it looks like the markdown format removed your < gap > < big_gap > which is why we have resorted to inserting a couple spaces when talking about it here (not in the actual text)."
  },
  "source": "meta"
}