Slide 1

Slide 1 text

Deep Past Challenge振り返り(+α) 2026年8⽉7⽇ 奥村 悠希 第6回 関東Kaggler会

Slide 2

Slide 2 text

⾃⼰紹介 • 奥村 悠希 • ⼤学時代はメタマテリアルの研究 • 電磁気学 • 物理Kaggler(?) • Competitions Grandmaster • 最近はCodinGameが気になっている CodinGame: https://www.codingame.com/ 第6回 関東Kaggler会 2

Slide 3

Slide 3 text

コンペ戦績 NLPが多いが、NLP が好きな訳では無い 第6回 関東Kaggler会 3

Slide 4

Slide 4 text

今⽇の内容 • Deep Past Challenge 5位解法概要 • Orbit Wars追試の記録 • コスパ良く⾦メダル / Prizeを取るには︖ 第6回 関東Kaggler会 4

Slide 5

Slide 5 text

Deep Past Challenge 概要 • 通称アッカド語コンペ • アッカド語の翻字を英語に翻訳する • 評価指標 • BLEUとchrF++の幾何平均 • データ • train.csv︓翻字と英語の⽂章の組が約1500件 • published_texts.csv︓翻字のみの⽂章が約8000件 • pdf︓翻訳が掲載されている学術論⽂が約20件 • その他固有名詞の辞書等 第6回 関東Kaggler会 5

Slide 6

Slide 6 text

アッカド語 • 古代メソポタミアで話されていた⾔語 • 北部︓アッシリア⽅⾔、南部︓バビロニア⽅⾔ • コンペでは約4000年前の古アッシリア語が対象 • 特徴 • 語形変化が多い • 動詞の形に主語の⼈称・数・性を含められる • 時代や地域で綴りや表現が変化する 第6回 関東Kaggler会 6

Slide 7

Slide 7 text

翻字 • 楔の組み合わせをラテン⽂字に置き換えたもの • 専⾨家が⽂脈に応じて判断 • ⽋損や注釈も表記 翻字 翻訳 https://www.ebl.lmu.de/library/U.30198 第6回 関東Kaggler会 7

Slide 8

Slide 8 text

例⽂ 商⼈たちが残した⽂書が対象 a-na en-nam-a-šur qí-bi-ma um-ma ša-ta-na-ma 30 ma-na URUDU SIG₅ kunu-ki-a a-lu-ú-a na-áš-a-ku-um a-ma-kam ma-lá ta-le-e-ú a-na KÙ.BABBAR ta-e-er-ma To Ennam-Aššur from Šāt-Anna: Aluwa brings you 30 minas of good copper under my seal. Convert it to silver there as best you can. (シャト・アンナからエンナム・アッシュルへ。 アルワが、私の封印を施した良質の銅30ミナをあなたのもとへ運びます。そちら で、できるだけ有利な条件で銀に換えてください。) 第6回 関東Kaggler会 8

Slide 9

Slide 9 text

不完全なtrain.csv • 翻字と翻訳でアラインしていないサンプルが多かった • 1位はtrain.csvを捨てている • 原⽂はPDFファイルにあるため TÚG ku-ta-ni 1.5 GÍN.TA a-na 2 mana 6.5 GÍN KÙ.BABBAR a-na ir-nu-id a-dí-in ù-ku-tani a-na ma-na 2 GÍN KÙ.BABBAR a-ḫu-qar il₅-qé ku-ta-ni SIG₅-tim ma-na KÙ.BABBAR i-dí-in ku-sí-tám ma-na 8 GÍN il₅-qé ma lu-kà-i-il₅ ana-aḫ-DINGIR i-dí-in ší-tí KÙ.BABBAR DUMU -ḫi-im 0.5 ma-na.TA il₅-qé ta šu-ut-ma il₅-qé e-zi-ib ša 0.6666 ma-na i-nu-mì I sold kutānu-textiles at 1.5 shekels a piece for 2 minas 6.5 shekels of silver to Irnuid. 翻字 翻訳 第6回 関東Kaggler会 9

Slide 10

Slide 10 text

PDF • 翻訳が英語、トルコ語、ドイツ語と⾊々 • 翻字/翻訳の配置レイアウトが異なる • ここから綺麗に対訳ペアを抽出するゲーム 第6回 関東Kaggler会 10

Slide 11

Slide 11 text

ベースライン • train.csvでByT5を学習 • ByT5︓テキストを1⽂字ずつUTF-8のバイト単位で処理 • 表記揺れが多いアッカド語と相性が良い áàéèíìúù āēīū âêîû šṣṭḫ a₂ a₃ il₅ lu₂ na₄ https://arxiv.org/pdf/2105.13626 第6回 関東Kaggler会 11

Slide 12

Slide 12 text

5位解法サマリー • • • • モデル︓ByT5 variants(best submission︓ByT5-xl) データ • PDFデータ︓VLMベースのパイプラインを⽤いて抽出 • EvaCun(時代が異なるアッカド語対訳コーパス) • Pseudo-labelingとback-translationによって⽣成した合成データ 学習 • • • 推論 • • stage1︓published_texts.csvの翻字データで継続事前学習 → EvaCun FT→ PDFデータ FT stage2︓stage1モデルで合成データ⽣成 & FT stage3︓PDFデータで最終FT fold間でweight averaging(no ensemble) CTranslate2とビームサーチを使⽤ 第6回 関東Kaggler会 12

Slide 13

Slide 13 text

VLMを⽤いた対訳ペア抽出 • • • VLMにPDFをそのまま⼊⼒しても、⼀定の精度で対訳ペアは抽出可能 • ただ完璧ではなく、対訳ペアの対応付け誤りやハルシネーション も発⽣ 抽出精度を⾼めるため、VLMによる処理を3段階に分割 1. ⽂書のヘッダから発掘番号を抽出 2. 発掘番号に対応する翻字と翻訳を抽出 3. ドイツ語・トルコ語の翻訳⽂を英訳 VLMはQwen3.5-27BやQwen 3.5 Plus (397B) を使⽤ 第6回 関東Kaggler会 13

Slide 14

Slide 14 text

発掘番号の抽出 第6回 関東Kaggler会 14

Slide 15

Slide 15 text

翻字/翻訳の抽出 • 発掘番号ごとに、対応する翻字と翻訳を抽出 • train.csvまたはpublished_texts.csvに収録されている ⽂章は、既存データを利⽤ 第6回 関東Kaggler会 15

Slide 16

Slide 16 text

翻訳⽂の英訳 • Gemini 3.1 Flash-LiteやQwen3.5-27Bを⽤いて英訳 • Few-shot例をプロンプトに追加 • レーベンシュタイン距離に基づき、⼊⼒翻字に類似し たサンプルを選択 第6回 関東Kaggler会 16

Slide 17

Slide 17 text

合成データ • Pseudo-labeling • published_texts.csvに収録された英訳のない翻字を順 ⽅向モデルに⼊⼒し、疑似英訳を⽣成 • Back-translation • Qwen3.5-27Bを⽤いて、アッカド語⽂書の英訳を模し た英⽂を1万件⽣成 • ⽣成した英⽂を逆翻訳モデルに⼊⼒し、対応する疑似 翻字を⽣成 第6回 関東Kaggler会 17

Slide 18

Slide 18 text

学習 基礎的な翻字表現の学習、合成データによる学習、対象時代 (古アッシリア語)のPDFデータへの適応を段階的に実施 • • • Stage1︓ベースモデルの構築 • published_texts.csvの翻字データを⽤いて継続事前学習 • • T5のspan corruptionを使⽤ EvaCun(新アッシリア語や新バビロニア語)でFT -> PDFデータでFT Stage2︓合成データによる学習 • Stage1のモデルを使⽤し、擬似ラベリングと逆翻訳によって学習⽤ペアを⽣成 • 合成データでFT Stage3︓PDFデータによる最終FT • 対象時代の学術PDFから抽出した翻字・翻訳ペアを使⽤ • PDFデータで最終FTを⾏い、対象時代の語彙や表現にモデルを適応 第6回 関東Kaggler会 18

Slide 19

Slide 19 text

推論 • 推論の最適化 • モデルをCTranslate2形式に変換し、Hugging Face⽐ で推論を約5倍⾼速化 • ByT5はvLLM未対応 • int8_float32量⼦化により、2基のT4 GPUでByT5-xxl (13Bくらい)が動作可能 • Model Soups • 複数のfoldモデルの重みを平均 https://github.com/opennmt/ctranslate2 第6回 関東Kaggler会 19

Slide 20

Slide 20 text

評価 • train.csvの25%をhold-outセットとして使⽤ • 教師強制時のCE損失を主なローカル評価指標に採⽤ • LBスコアとの相関を確認 • 速い • train.csvには不完全な対訳が含まれるためか、BLEU・ chrF++は不安定 • CE損失は安定する⼀⽅、対訳の不整合を捉えにくい点 に注意(⻑い⼊⼒を途中までしか翻訳しないなど) 第6回 関東Kaggler会 20

Slide 21

Slide 21 text

Ablation Study ハイパラ(学習step数、lr、バッチサイズ等)を揃えて、ByT5-xlを学習 Model PDF data only + CPT (T5 span corruption) + EvaCun + tablet context(*) + synthetic data + 4 fold weight average CPT EvaCun Synthetic Tablet Private LB data context 35.4 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ Public LB 35.1 38.9 38.0 39.7 39.8 40.7 38.7 39.2 40.2 40.8 40.1 (*)5位解法参照︓https://www.kaggle.com/competitions/deep-past-initiative-machine-translation/writeups/5th-solution 第6回 関東Kaggler会 21

Slide 22

Slide 22 text

まとめ • コンペ概要 • アッカド語の翻字を英語に翻訳 • 勝ち筋 • PDFから⾼品質な対訳ペアを抽出 • pseudo-labelingやback-translation等、有効な合成 データの作成 他上位解法は素敵記事を参照 (ihiratchさん「Kaggle アッカド語コンペの振り返りと1位解法 + α の紹介」、 https://zenn.dev/ihiratch/articles/3f8a1d2873ebca) 第6回 関東Kaggler会 22

Slide 23

Slide 23 text

Orbit Wars 概要 中⽴・敵惑星を奪って⽣産拠点を増やし、艦船総数を最⼤化する • 2⼈戦 / 4⼈戦 • 500ターン • ⾏動空間 • • [from_planet_id, direction_angle, num_ships] どの惑星から、どの⽅向に、何隻発 射するか 第6回 関東Kaggler会 23

Slide 24

Slide 24 text

上位解法の傾向 • • • 盤⾯特徴量 • 前⽅予測した結果を含む • 「Nターン後に、この惑星に、どのプレイヤーから何隻の艦隊が 到着するか」 アーキテクチャ • 惑星のみを⼊⼒とするtransformer • モデルは「どの惑星に発射するか」を選び、発射⾓度は後で計算する • 艦船の情報は前⽅予測特徴量で処理 学習⽅法 • Self-play RL • 模倣学習スタートではなく、スクラッチからの学習が多め 第6回 関東Kaggler会 24

Slide 25

Slide 25 text

計算機事情 1st B200 x 32 2nd H100 x 8 3rd RTX Pro 6000 Blackwell x 2 第6回 関東Kaggler会 25

Slide 26

Slide 26 text

モデルサイズ 1st 200M 2nd 4.3M 3rd 6.5M 第6回 関東Kaggler会 26

Slide 27

Slide 27 text

追試の⽅針 • • スクラッチからのRL • 4⼈戦は省略m(_ _)m • 2⼈戦に⽐べてランダム性が⾼いため • できるだけ低コストでモデル性能を向上させる • 学習効率を⾼める • モデルサイズを⼩さく抑える ⽬標勝率 • ⾦メダル圏︓最終提出モデルに対して65%以上 • Prize圏︓最終提出モデルに対して80%以上(?) 第6回 関東Kaggler会 27

Slide 28

Slide 28 text

最終提出モデルとの勝率(11位~20位) 最終LB順位 チーム 2⼈戦の勝率 11 moriiiiiiiiim(53986435) 6/30 = 20.00% 12 One Man Wrecking Machine(53993035) 9/27 = 33.33% 13 Luca(53993524) 16/43 = 37.21% 14 M & J & M.ver2(53992808) 8/24 = 33.33% 15 dragon warrior(53977843) 16/38 = 42.11% 16 Azat Akhtyamov(53993443) 22/48 = 45.83% 17 Vadasz & Ascalon(53993965) 15/50 = 30.00% 18 Slawek Biel(53992086) 26/57 = 45.61% 19 Golden Orbit Goblins(53993589) 34/87 = 39.08% 20 LuckyXC&me(53967856) 54/113 = 47.79% 第6回 関東Kaggler会 ⾦圏 28

Slide 29

Slide 29 text

最終提出モデルとの勝率(1位~10位) 最終LB順位 チーム 2⼈戦の勝率 1 Isaiah @ Tufa Labs(53993189) —(0試合) 2 Hober Malloc(53982490) 2/10 = 20.00% 3 Felix M Neumann(53974193) 0/5 = 0.00% 4 Jake Will(53961520) 0/5 = 0.00% 5 TonyK(53983137) 0/6 = 0.00% 6 flg(53913042) 2/12 = 16.67% 7 Audun Ljone Henriksen(53993677) 0/5 = 0.00% 8 Ender(53979034) 1/8 = 12.50% 9 Boey(53992481) 2/22 = 9.09% 10 Xiangyu Liu(53945598) 6/23 = 26.09% 第6回 関東Kaggler会 Prize圏 29

Slide 30

Slide 30 text

私なりのお安い構成 • • • • 盤⾯特徴量 • 20ターン先の前⽅予測を含む • 惑星の位置は相対特徴量で表現 アーキテクチャ • 惑星のみを⼊⼒とするtransformer • 相対特徴量はedge attentionで処理 ⾏動空間 • 全発射かつ20ターン以内に到着する発射に限定(2位と同様) 学習⽅法 • スクラッチからのvanilla self-play RL(PPO) • 最初に600Kモデルを学習→2.6Mモデルに蒸留 & 学習 第6回 関東Kaggler会 30

Slide 31

Slide 31 text

特徴量 惑星特徴量(これが20ターン分) Edge特徴量 特徴量名 内容 特徴量名 内容 timestep ゲーム全体における予測時点 distance 現在の惑星中⼼間距離 orbital_radius ボード中⼼から惑星までの距 離 orbital_radius_delta targetとsourceの公転半 径差 production 惑星の⽣産⼒ 中⼼から⾒たsourceと targetの⾓度差のsin/cos player_ships ⾃分が所有している場合の艦 船数 orbit_angle_delta_s in/cos all_in_turns neutral_ships 中⽴惑星の場合の艦船数 sourceの全艦船を送った 場合の到着ターン opponent13_ships 敵1-3が所有している場合の艦 船数 capture_margin 到着時点での艦船数余裕 angular_velocity 惑星の公転⾓速度 第6回 関東Kaggler会 31

Slide 32

Slide 32 text

アーキテクチャ • 2位と6位のハイブリッド • 惑星特徴量は時間⽅向に畳み込んで埋め込みを⽣成(2位) • Edge特徴量はattentionとpolicy headの計算に使⽤(6位) Source惑星をi、target惑星をjとして q#! k" + 𝑾𝑬 𝒆𝒊𝒋 𝑠!" = 𝑑' 𝛼!" = softmax" 𝑠!" z! = 2 𝛼!" 𝑊( h" + b( + 𝑾𝑬 𝒆𝒊𝒋 " self-attentionの計算 (keyとvalueにEdge特徴量を加算) 2位のアーキテクチャ https://www.kaggle.com/competitions/orbit-wars/writeups/2nd-place-solution-for-orbit-wars https://www.kaggle.com/competitions/orbit-wars/writeups/6th-rl-league-search-with-a-custom-edge-atte 第6回 関東Kaggler会 32

Slide 33

Slide 33 text

損失関数 通常のPolicy Loss、Value Loss、Entropy Bonusに加え、以下を追加 • Best checkpointとのKL Loss、Value Loss • 惑星ごとの平均発射率を10%に抑える正則化項(4位) ℒ!"!#$ = ℒ%%& + 𝑐' ℒ' − 𝑐( ℋ +𝒄𝑵 𝓛𝑵𝒐𝑶𝒑 +𝒄𝝅𝑻 𝓛𝐭𝐞𝐚𝐜𝐡𝐞𝐫)𝒑𝒐𝒍𝒊𝒄𝒚 + 𝒄𝑽𝑻 𝓛𝐭𝐞𝐚𝐜𝐡𝐞𝐫)𝒗𝒂𝒍𝒖𝒆 4位解法: https://www.kaggle.com/competitions/orbit-wars/discussion/723325 第6回 関東Kaggler会 艦船の乱射 33

Slide 34

Slide 34 text

結果 600Kでも⾦メダルは射程圏内に⼊りそう 学習環境step数 パラメータ数 ⼆⼿先貪欲探索(*) 821,035,008 600K 57.2% 1,753,546,752 600K 62.2% 2,625,110,016 600K 65.4% 2,625,110,016 600K 3,529,179,136 600K 3,529,179,136 600K ✓ 最終サブに対する勝率 69.2% 66.2% ✓ 68.0% (*)6位解法を参照: https://www.kaggle.com/competitions/orbit-wars/writeups/6th-rl-league-search-with-a-custom-edge-atte 第6回 関東Kaggler会 34

Slide 35

Slide 35 text

結果 • 600Kを2.6Mに蒸留してから学習 • 2.6Mなら⾦メダルは堅そうだが、Prize獲得にはまだ改善が必要そう 学習環境step数 パラメータ数 569,311,232 2.6M 569,311,232 2.6M 1,101,594,624 2.6M 1,101,594,624 2.6M 1,505,886,208 2.6M 1,505,886,208 2.6M 2,000,000,000 2.6M 2,000,000,000 2.6M ⼆⼿先貪欲探索 最終サブに対する勝率 70.6% ✓ 71.2% 72.2% ✓ 74.8% 75.4% ✓ 73.2% 75.6% ✓ 第6回 関東Kaggler会 76.0% 35

Slide 36

Slide 36 text

まとめ • • • コンペ概要 • 惑星を奪って⽣産拠点を増やし、艦船総数を最⼤化するゲーム 計算コスト軽めの構成を組んで追試を実施 • 前⽅予測の特徴量 • 相対特徴量を作り、edge attentionで考慮 • ⼩さいモデルで先に学習してから、⼤きいモデルに蒸留 ⾦メダルは堅そうだが、Prize獲得はまだ改善が必要 • ここまではRTX5090 x 1で2~3週間くらい計算すればいけるはず • (実はまだ計算中だが、性能は伸び続けている) 第6回 関東Kaggler会 36

Slide 37

Slide 37 text

第6回 関東Kaggler会 37