This is an old revision of the document!
Table of Contents
Danovy pokusy s Joshuou na WMT 2012
http://matrix.statmt.org/
http://www.statmt.org/wmt11/translation-task.html
http://svn.ms.mff.cuni.cz/projects/statmt/wiki/enhi/joshua
/net/work/people/zeman/wmt
Aktuální úkoly
- 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).
- 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.
- 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.
Srovnávací testy mezi Joshuou 1.1 a 1.3: Je třeba otestovat nastavení maximální délky fráze 5
Po přechodu z Joshuy 1.1 na 1.3 u téměř všech pokusů pokleslo BLEU skóre. Je to sice malý pokles a pravděpodobně není statisticky významný, ale stejně mě to zaráží. Srovnání u češtiny ukázalo, že se liší extrahovaná gramatika. V konfiguraci se už teď nezadává, že maximální délka fráze má být 5. Hraje to nějakou roli?
Staré záznamy
obo-max: testuje na wmt102.test09, staré BLEU = 0.l300
obo-max3: testuje na wmt102.test10, staré BLEU = 0.1402
Oba používají Joshuu 1.3.
Oba používají Ondřejova velká data (7 miliónů párů vět z Czengu 0.92 na trénování, 13 miliónů českých vět (210 miliónů slov) pro český jazykový model (hexagram), nějaké tokenizační a technické úpravy (jazyky csNm a enNa2)). Oba využívají Ondrovy augmented_corpora
(/home/bojar/diplomka/granty/emplus/wmt10/playground/augmented_corpora
). V mých vlastních možná ani nejsou k dispozici zdrojové korpusy.
22.1.2012 obo-max-final
(předchozí aktivita 7.3.2010, podle názvu to bylo to, co jsem tehdy nakonec odeslal). I tohle se od obo-max
liší zřejmě jen použitým Makefilem a testovacími daty 2010. Od obo-max3
se to, zdá se, neliší vůbec, alespoň pokud jde o konfigurační skript setexp.pl
. Pro jistotu to pouštím také, po porovnání výsledků dva z nich asi smažu.
Nový výsledek 25.1.2012: obo-max
BLEU = 0.1381 (newstest2009).
Nový výsledek 25.1.2012: obo-max3
BLEU = 0.1477 (newstest2010).
Výhledově chci přejmenovat obo-max
na obo-max-test2009
a obo-max3
na obo-max-test2010
. A pustit analogický obo-max-test2011
.
Data
Vývojová data (news-test
) jsou k dispozici ve formátu SGML. Obsahují pouze jeden referenční překlad, takže stačí vykopat obsah prvků <seg>
. Výsledek strčit do augmented_corpora
.
Ondřejova 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ý.
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ářiaugmented_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 jakoNa
, 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
).
Pro český jazykový model chtěl Ondřej později ještě přidat korpusy wmt09mono
, webcoll
a syn200x
.
Testovací data by měl mít stejná jako já, tj. wmt102.test08
pro MERT a wmt102.test09
pro testování.
Náročnost
obo-max
Binarizace ve verzi 1.3 zahrnuje počítání tabulky lexikálních pravděpodobností a trvá asi 1:20 hodiny. Paměťová náročnost: až do počítání lexikálních pravděpodobností včetně vystačil s 9,8 GB. Pak se ale pustil do předpočítávání indexů nejčastějších frází a s pamětí vyletěl na 22 GB, což je strop, který jsem mu dal, takže je otázka, jestli by nedokázal využít i větší množství paměti. Podle Lanova vyjádření by mohl být problém s větami o 100 a více slovech, proto jsem z korpusu takové věty odstranil. Můj čistící skript vybral z 7 544 465 řádků 7 543 152 takových, které měly 1-99 tokenů.
Extrakce gramatiky nabíhala přes 20 minut, vyčerpala 11 GB. Teď už běží vlastní extrakce, ale je hodně pomalá, jedna věta trvá třeba i 10 minut. Průměrný čas je zatím 3 minuty na 1 větu, takže 2500 vět by trvalo 5 dní. Paměť stoupla zatím na 15 GB. Chtělo by to paralelizovat minimálně na 20 procesů!
Výsledky
Není-li řečeno jinak, váhy se ladí na newstest2008 a testuje se na newstest2009. Trénuje se zatím na news-commentary, a to jak překladový, tak jazykový model. U testu WMT 2010 se jako základní uvádí BLEU skóre, které mi spočítal Joshua, v závorce pak skóre, které mi spočítali organizátoři, lowercase / truecase. Hodnoty se někdy výrazně liší, zřejmě kvůli odlišné tokenizaci.
Pokus | Dev WMT08 | Test WMT09 | Test WMT10 | Poznámka | Datum |
encs-allcstem4-tmnews-lmnews | 0.0918 | 0.0905 | 24.2.2010 | ||
encs-clean | 0.0913 | 0.0897 | Joshua 1.1, z trénovacích dat odstraněny věty o 100 a více slovech. | 21.3.2010 | |
encs-josh13 | 0.0878 | 0.0869 | 9.3.2010 | ||
encs-the | 0.0901 | 0.0863 | Pokus: ze zdrojové (anglické) strany trénovacích dat byly odstraněny všechny výskyty slova “the”. Jinak je tento běh identický s encs-josh13. | 10.3.2010 | |
decs-josh13 | 0.0935 | 0.0886 | 15.3.2010 | ||
escs-josh13 | 0.0922 | 0.0872 | 15.3.2010 | ||
frcs-josh13 | 0.0885 | 0.0818 | Zřetelně menší trénovací data než pro encs, decs a escs. | 15.3.2010 | |
csen-allcstem4-tmnews-lmnews | 0.1439 | 0.1471 | 0.1518 (14.2/10.5) | 26.2.2010 | |
csen-clean | 0.1441 | 0.1458 | 21.3.2010 | ||
csen-josh13 | 0.1420 | 0.1455 | 9.3.2010 | ||
ende-allcstem4-tmnews-lmnews | 0.1168 | 0.1114 | 0.1199 (11.5/4.3) | 26.2.2010 | |
ende-clean | 0.1162 | 0.1118 | 21.3.2010 | ||
ende-josh13 | 0.1161 | 0.1096 | 9.3.2010 | ||
deen-allcstem4-tmnews-lmnews | 0.1725 | 0.1617 | 0.1728 (16.1/11.4) | 26.2.2010 | |
deen-clean | 0.1718 | 0.1624 | 21.3.2010 | ||
deen-josh13 | 0.1703 | 0.1616 | 9.3.2010 | ||
enes-allcstem4-tmnews-lmnews | 0.1954 | 0.1966 | 0.2150 (21.1/16.5) | Pokus s WMT 2010 bez úspěšného MERTu, váhy jsem si vypůjčil z en-fr. | 6.3.2010 |
enes-clean | 0.1953 | 0.1979 | 21.3.2010 | ||
enes-josh13 | 0.1969 | 0.1978 | 9.3.2010 | ||
esen-allcstem4-tmnews-lmnews | 0.1945 | 0.2025 | 0.2268 (21.7/16.1) | 8.3.2010 | |
esen-clean | 0.1945 | 0.2023 | 21.3.2010 | ||
esen-josh13 | 0.1335 | 0.1411 | Tady je pokles při přechodu na Joshuu 1.3 výraznější než jinde. | 10.3.2010 | |
enfr-allcstem4-tmnews-lmnews | 0.1991 | 0.2001 | 0.2034 (15.7/12.2) | 26.2.2010 | |
enfr-clean | 0.1979 | 0.1990 | 21.3.2010 | ||
enfr-josh13 | 0.1982 | 0.1999 | 9.3.2010 | ||
fren-allcstem4-tmnews-lmnews | 0.1869 | 0.2020 | 0.1991 (18.9/13.7) | 26.2.2010 | |
fren-clean | 0.1873 | 0.2008 | 21.3.2010 | ||
fren-josh13 | 0.1861 | 0.2036 | 9.3.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).
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.
Nový průběh všech osmi starých pokusů (supervised truecasing, žádná normalizace uvozovek, nové je na nich paralelní počítání alignmentu, ale výsledek by měl být identický – nekontroloval jsem): $SRC$TGT-stc-allcstem4-tmnews+parl-lmnews+parl-lm6-test2011
Jazyky | BLEU |
---|---|
en-cs | 0.1191 |
cs-en | 0.1692 |
en-de | 0.1337 |
de-en | 0.1885 |
en-es | 0.2573 |
es-en | 0.2446 |
en-fr | 0.2591 |
fr-en | 0.2243 |
Od jara mám vytvořené také pokusy s korpusy, ve kterých jsou upravené uvozovky (verze 6b), takže je teď taky pustím. Je to spíš na oprášení starého kódu, ale bude se to muset pustit ještě jednou, protože momentálně se uvozovky opravují pouze v trénovacích datech, ale ne ve vývojových a testovacích. (Opravu testovacích dat bych si mohl ospravedlnit např. budoucím hodnocením lidmi. A nebo alespoň normalizovat testovací data tím brutálnějším skriptem od Philippa.)
$SRC$TGT-stc-allemma-tmv6b-lmv6b-lm6-test2011
První výsledky jsou zatím bez záruky, protože v průběhu Gizy jsem narazil na kvótu. Procesy sice nespadly, ale nejsem si jistý, co prováděly těch několik hodin, kdy nemohly psát na disk. Takže raději pustit ještě jednou (ostatně jeden z nich dokonce nedoběhl).
24.1.2012 už mám i skoro všechny kontrolní výsledky druhého běhu, ale mezitím jsem zjistil chybu v počítání alignmentu, takže pouštím potřetí (zatím šest pokusů pro češtinu, němčinu a španělštinu, později pustím i francouzštinu, až i u ní skončí druhý běh).
Jazyky | BLEU | Kontrolní běh | Třetí běh |
---|---|---|---|
en-cs | FAILED | 0.1267 | 0.1246 |
cs-en | 0.1748 | 0.1748 | 0.1792 |
en-de | 0.1268 | 0.1268 | 0.1274 |
de-en | 0.1869 | 0.1869 | 0.1859 |
en-es | 0.2542 | 0.2542 | |
es-en | 0.2428 | FAILED | 0.2375 |
en-fr | 0.2586 | 0.2628 | |
fr-en | 0.2294 | 0.2294 |