Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
user:zeman:wmt [2010/08/29 11:42] zeman Nové obo pokusy. |
user:zeman:wmt [2012/01/18 17:06] zeman Sestavování experimentu. |
====== Danovy pokusy s Joshuou na WMT 2010 ====== | ====== Danovy pokusy s Joshuou na WMT 2012 ====== |
| |
http://matrix.statmt.org/ | http://matrix.statmt.org/ |
http://www.statmt.org/wmt10/translation-task.html | http://www.statmt.org/wmt11/translation-task.html |
http://svn.ms.mff.cuni.cz/projects/statmt/wiki/enhi/joshua | http://svn.ms.mff.cuni.cz/projects/statmt/wiki/enhi/joshua |
<code>/net/work/people/zeman/wmt</code> | <code>/net/work/people/zeman/wmt</code> |
===== Aktuální úkoly ===== | ===== Aktuální úkoly ===== |
| |
* Převést všechny pokusy pod Joshuu 1.3. | * Udělat pořádek v záznamech. |
| * Najít a oživit loňské pokusy s interpunkcí, zejména s uvozovkami. |
| * Převést všechny pokusy pod aktuální verzi Joshuy. |
| * Konečně převést Joshuu pod Emana. |
* Převést všechny pokusy na nové zacházení s velkými písmeny (viz Ondřej a čeština). | * Převést všechny pokusy na nové zacházení s velkými písmeny (viz Ondřej a čeština). |
* Dotáhnout do konce obo-max. | * Dotáhnout do konce obo-max. |
* Při klonování experimentu se musí kopírovat mert/decoder-config.txt.ZMERT.final a změnit v něm cesty! Pozor, mohla se změnit i cesta ke glue gramatice, pokud se změnila cesta k Joshuovi. | * Při klonování experimentu se musí kopírovat mert/decoder-config.txt.ZMERT.final a změnit v něm cesty! Pozor, mohla se změnit i cesta ke glue gramatice, pokud se změnila cesta k Joshuovi. |
* Upravit test.pl, aby před počítáním BLEU skóre odstraňoval přípony "_OOV". Otázka je, zda nemá totéž dělat i mert.pl (resp. zda se to odstraňování nemá zabudovat do parcoderu.pl). | * Pro všechny jazykové páry používat všechna dostupná data, tedy i Europarl, neomezovat se na News Commentary. To mj. znamená, že musím pro všechny páry získat nové baseliny. |
* Vyrobit end-to-end skript, abych mohl pouštět pokusy s menšími nároky na babysitting. | |
| |
===== Data ===== | ===== Data ===== |
| |
Ondřejovy augmented corpora se nacházejí v ''/home/bojar/diplomka/granty/emplus/wmt10/playground/augmented_corpora'' (což vede na ''/a/merkur3/TMP/bojar/wmt10/playground/augmented_corpora''). Za baseline se považuje trénování na zpravodajské části Czengu, tj. ''czeng092-ne''. Uvnitř jsou různé podjazyky podle úrovně analýzy. Zdá se, že baseline by mohly být např. ''enNa'' a ''csNa'', ale Ondřej prý pro WMT 2010 používal ''enNa2+stc'' a ''csN[ma]+stc'' (''csNa'' a ''csNm'' jsou prý identické). Faktor ''stc'' znamená //supervised truecasing,// čili truecasováno podle lemat. Ondřej korpus zarovnával podle lemat, tj. ''enNa-lemma-csNa-lemma-gdfa''. Český jazykový model Ondřej vyráběl z ''wmt10mono2'', a to šestigramový. | Ondřejovy augmented corpora se nacházejí v ''/home/bojar/diplomka/granty/emplus/wmt10/playground/augmented_corpora'' (což vede na ''/a/merkur3/TMP/bojar/wmt10/playground/augmented_corpora''). Za baseline se považuje trénování na zpravodajské části Czengu, tj. ''czeng092-ne''. Uvnitř jsou různé podjazyky podle úrovně analýzy. Zdá se, že baseline by mohly být např. ''enNa'' a ''csNa'', ale Ondřej prý pro WMT 2010 používal ''enNa2+stc'' a ''csN[ma]+stc'' (''csNa'' a ''csNm'' jsou prý identické). Faktor ''stc'' znamená //supervised truecasing,// čili truecasováno podle lemat. Ondřej korpus zarovnával podle lemat, tj. ''enNa-lemma-csNa-lemma-gdfa''. Český jazykový model Ondřej vyráběl z ''wmt10mono2'', a to šestigramový. |
| |
| Vysvětlení Ondrových pseudojazyků: |
| * Znaky za ''cs'', resp. ''en'', označují anotaci, kterou data prošla v TectoMT (Ondra na to má scénář v adresáři ''augmented_corpora'', ale možná to není commitnuté). |
| * ''Nm'' značí s normalizací (jako uvozovky, //'ll// apod.) a jen po morfologickou rovinu. |
| * ''Na'' je s normalizací až po t-rovinu, ale uloženo jako analytická, tj. co token, to analytický uzel, a některé mají kolonku t-lematu a formému neproškrtnutou. |
| * ''Na2'' je jako ''Na'', ale Ondra nějak měnil ten normalizační blok. Do soutěže šlo právě ''Na2''. |
| * ''Nt'' je linearizovaná t-rovina. |
| * ''X1'' je Ondrův pokus o frázovou interlingvu, tj. sice stále lineární, ale některé věci (jako zvratná zájmena nebo v angličtině další součástky slovesa) pravidlově přemístěny blíž ke slovesu. Neúspěšné, tak neví přesně. |
| * ''_txt'' je prostý text bez tokenizace, začátek všeho, odpovídá releasnutému CzEngovému plaintextu. |
| |
Ondřejův maximální paralelní korpus navíc obsahuje další části Czengu a korpus Emea: ''czeng092-ne+czeng092-eu+czeng092-fi+czeng092-te+czeng092-su+czeng092-we+emea2'' (alignment ''csNm-lemma-enNm-lemma-gdfa''). | Ondřejův maximální paralelní korpus navíc obsahuje další části Czengu a korpus Emea: ''czeng092-ne+czeng092-eu+czeng092-fi+czeng092-te+czeng092-su+czeng092-we+emea2'' (alignment ''csNm-lemma-enNm-lemma-gdfa''). |
| |
===== Náročnost ===== | ===== Náročnost ===== |
| |
==== obo-base1 ==== | |
| |
První pokus s Ondřejovými daty 3.3.2010, ale jen trigramový jazykový model. Proběhlo celkem bez potíží. | |
| |
==== obo-base2 ==== | |
| |
Snažím se vyrobit větší jazykové modely. Zatím (5.3.2010 dopoledne) doběhl čtyřgram, běží pentagram. | |
| |
Trénování 4gramového jazykového modelu trvalo půl hodiny a spotřebovalo něco mezi 10 a 15 GB. Trénování pentagramu trvalo asi 40 minut a spotřebovalo něco přes 18 GB. Hexagram trval hodinu a spotřeboval nejméně 23 GB (to byl poslední údaj, který jsem viděl, než jsem odešel). | |
| |
==== obo-base3 ==== | |
| |
Klon obo-base2. Používám Ondřejův hotový šestigramový model a pouštím rovnou MERT. | |
| |
==== obo-max ==== | ==== obo-max ==== |
| |
Na konci srpna 2010 oživuju pokusy s Joshuou 1.1. Začínám s Czengem 092-ne, alignment a překlad z ''enNa2+stc'' do ''csN[ma]+stc'', jak je napsáno výše, trigramový LM jen na jeho cílové straně. Až na ten jazykový model by to mělo odpovídat některému obo-base pokusu z února nebo března. | Na konci srpna 2010 oživuju pokusy s Joshuou 1.1. Začínám s Czengem 092-ne, alignment a překlad z ''enNa2+stc'' do ''csN[ma]+stc'', jak je napsáno výše, trigramový LM jen na jeho cílové straně. Až na ten jazykový model by to mělo odpovídat některému obo-base pokusu z února nebo března. |
| |
| | **Pokus** | **Dev WMT08** | **Test WMT09** | **Test WMT10** | **Poznámka** | **Datum** | |
| | encs:tmtrain-czeng092ne-lmtrain-czeng092ne-lm3 | 0.1053 | 0.0962 | | Ondrovo párování na lematech, trigram LM pouze z cílové strany paralelního korpusu. | 29.8.2010 | |
| | encs:tmtrain-czeng092ne-lmtrain-wmt10mono2-lm3 | 0.1266 | 0.1150 | | Jako předchozí, ale LM trigram na ''wmt10mono2''. | 29.8.2010 | |
| | encs:tmtrain-czeng092ne-lmtrain-wmt10mono2-lm4 | 0.1278 | 0.1198 | | Jako předchozí, ale LM je tetragram. | 29.8.2010 | |
| | encs:tmtrain-czeng092ne-lmtrain-wmt10mono2-lm5 | 0.1286 | 0.1179 | | Jako předchozí, ale LM je pentagram. | 29.8.2010 | |
| | encs:tmtrain-czeng092ne-lmtrain-wmt10mono2-lm6 | 0.1299 | 0.1176 | | Jako předchozí, ale LM je hexagram. | 29.8.2010 | |
| | encs:tmtrain-czengemea-lmtrain-wmt10mono2-lm3 | 0.1399 | 0.1346 | | Velký paralelní korpus (Czeng+Emea). | 6.9.2010 | |
| | encs:tmtrain-czengemea-lmtrain-wmt10mono2-lm4 | 0.1425 | 0.1372 | | Jako předchozí, ale LM je tetragram. | 6.9.2010 | |
| | encs:tmtrain-czengemea-lmtrain-wmt10mono2-lm5 | 0.1437 | 0.1368 | | Jako předchozí, ale LM je pentagram. | 6.9.2010 | |
| | encs:tmtrain-czengemea-lmtrain-wmt10mono2-lm6 | 0.1435 | 0.1368 | | Jako předchozí, ale LM je hexagram. | 7.9.2010 | |
| |
| ===== Pokusy s uvozovkami ===== |
| |
| Na začátku léta 2011 jsem se pokoušel poloautomaticky opravit a sjednotit uvozovky ve všech jazycích WMT 2011. Myslím, že to nebylo dodělané, a momentálně to nemůžu najít. Šlo o úpravu trénovacích korpusů. Výsledkem měla být "v6b" (verze 6b) všech korpusů, na nich se měly všechny pokusy pustit znova. Asi. |
| |
| ''$STATMT/scripts/specchar.pl'' |
| a co historie loňských commitů? |
| |
| Podle časových značek u korpusů v ''augmented_corpora'' se zdá, že poslední "v6b" jsem vytvořil 21.4.2011. Vypadá to, že mám news-commentary+europarl ve verzi v6b pro všechny čtyři jazykové páry (cs-en, de-en, es-en, fr-en). |
| |
| ===== Infrastruktura a zarovnání ===== |
| |
| Kromě toho jsem někdy v roce 2011 zkoušel předělat Joshuovy skripty, které pouštěly Gizu, aby mohly obě půlky běžet paralelně. Obávám se, že to zůstalo rozvrtané a nefunkční. |
| |
| ===== Inventura 16.1.2012 ===== |
| |
| 16.1.2012 21:12: Pouštím znova pokus ''encs-stc-allcstem4-tmnews+parl-lmnews+parl-lm6-test2011''. Zřejmě to neobsahuje opravené uvozovky (v6b), ale potřebuju zjistit, zda se to vůbec rozběhne. |
| |
| ===== Eman ===== |
| |
| Ondrův e-mail z 4.2.2011: |
| |
| musim se pochlubit, ze (az na jeste par much) mam ukazku pouziti emana pro preklad i pro ty, kdo to jeste vubec nezkouseli: |
| |
| <code bash>svn co https://svn.ms.mff.cuni.cz/svn/statmt/trunk statmt |
| cd statmt/playground |
| # podivejte se na README |
| export PATH=$PATH:$(pwd)/../scripts |
| eman init binaries |
| # to jen proto, abyste mohla potvrdit certifikat sourceforge |
| # a pak uz podle readme spustit mikropokus |
| SKIP_IRSTLM=yes eman clone --start < eman.samples/cs-en-mini.traceback</code> |
| |
| Prikaz: |
| |
| eman --man |
| |
| ukaze manualovou stranku |
| |
| ==== Zakládání nových kroků ==== |
| |
| Jako příklad viz eman.seeds/lm. Toto je šablona na všechny kroky, které vytvářejí jazykové modely. Povinně vyžaduje nastavit tyto vstupní proměnné: |
| * BINARIES: odkaz na krok, ve kterém byly zkompilovány externí nástroje, např. SRILM. Spustitelné binární soubory leží zřejmě přímo ve složce tohoto kroku jako výstupní soubor. |
| * CORP: zkrácený název trénovacího korpusu. I jednotlivým korpusům odpovídají kroky, které vyrábějí či zpřístupňují dotyčné datové soubory. Na to slouží mj. nový skript ''makecorp.pl'' (nebo tak nějak), který částečně přebírá práci staršího ''augment.pl''. |
| * CORPAUG: faktory dotyčného korpusu, které se mají použít pro trénování. |
| * ORDER: řád modelu (např. 3 pro trigram). |
| Volitelně lze nastavit i další vstupní proměnné. |
| |
| Konstruktor (skript ''eman.seeds/lm'') vytvoří soubor ''eman.tag'', obsahující stručnou jednořádkovou charakteristiku kroku (v tomto případě zejména charakteristiku korpusu, ze kterého byl jazykový model vyroben). |
| |
| Dále vytvoří soubor ''eman.vars'', kam opíše všechny vstupní proměnné a jejich hodnoty ve formě přiřazení (tj. sourcnutí tohoto souboru umožní kdykoli zrekonstruovat příslušnou část prostředí). |
| |
| Dále vytvoří soubor ''eman.deps'', kde jsou názvy kroků, na kterých tento krok závisí, tj. dotyčné kroky musí úspěšně skončit ještě před spuštěním tohoto kroku. V případě jazykového modelu je závislost pouze na BINARIES (proč ne taky na trénovacím korpusu?) Pro korpus se v tomto případě sahá přímo do ''augmented_corpora'' – že by zastaralé použití? Pokud je seed skript puštěn v přípravném režimu a dotyčný korpus v ''augmented_corpora'' nevidí, skončí chybou. |
| |
| Teprve v přípravném režimu se také vyrobí hlavní skript ''eman.command'', který bude na clusteru vykonávat hlavní činnost kroku. |
| |
| ==== Sestavování experimentu jako posloupnosti kroků ==== |
| |
| Pokusit se alespoň zpočátku využít existující kroky pro alignment, jazkový model apod. a nekonvertovat ty svoje. Vytvořit nějakou šablonu ''joshua'', která jednou bude instalovat Joshuu, ale v tuto chvíli pouze vyrobí symlinky na moji existující instalaci. Potom určitě budu potřebovat alespoň tyto kroky: |
| * binarizace korpusu a alignmentu |
| * extrakce gramatiky pro vývojová i testovací data (jeden, nebo dva různé kroky?); analogicky ke kroku ''tm'', který vyrábí frázovou tabulku pro Mosese, by se tento krok mohl jmenovat třeba ''joshtm''. |
| * volání dekodéru Joshuy (''translate''?) s příslušnými modely a konfiguračním souborem s vahami |
| * asi i nějaká úprava mertu, byť současný eman už samozřejmě obsahuje konfiguraci mertu pro Mosese |