Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
user:zeman:wmt [2012/01/19 08:37] zeman Spuštění kroku. |
user:zeman:wmt [2012/02/04 23:41] zeman Jak označkovat newstest. |
||
---|---|---|---|
Line 2: | Line 2: | ||
http:// | http:// | ||
- | http:// | + | http:// |
http:// | http:// | ||
< | < | ||
Line 8: | Line 8: | ||
===== Aktuální úkoly ===== | ===== Aktuální úkoly ===== | ||
- | * Udělat pořádek v záznamech. | + | * Otestovat vliv omezení délky fráze na 5 tokenů (zkusit i default a 10). |
- | * Najít | + | * Otestovat jiná vývojová data (k dispozici je newstest 2008, 2009 a 2010, nebo všechny dohromady). |
- | * Převést všechny | + | * Otestovat morfematickou segmentaci (ale musí se doimplementovat závěrečné slepování). |
- | * Konečně převést Joshuu pod Emana. | + | * Dotáhnout do konce pokusy s uvozovkami |
- | * Převést všechny pokusy | + | * Zopakovat tytéž |
- | * Dotáhnout do konce obo-max. | + | * Pro všechny jazykové páry používat všechna dostupná data. Například velký Czeng pro češtinu, velké korpusy UN pro francouzštinu a španělštinu, gigawordy pro jazykové modely atd. |
- | * Při klonování experimentu se musí kopírovat mert/ | + | * Převést všechny pokusy |
- | * Pro všechny jazykové páry používat všechna dostupná | + | |
+ | ===== 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 | ||
+ | |||
+ | ===== obo-max | ||
+ | |||
+ | Nejúspěšnější nastavení z& | ||
+ | |||
+ | Vytvořil jsem ještě i analogické '' | ||
+ | |||
+ | ^ Výsledek ^ Test 2009 ^ Test 2010 ^ Test 2011 ^ | ||
+ | | Starý (Joshua 1.1) | 0.1300 | 0.1402 | | | ||
+ | | Nový (25.1.2012, Joshua 1.3) | 0.1381 | 0.1477 | 0.1452 | | ||
===== Data ===== | ===== Data ===== | ||
Line 39: | Line 52: | ||
Testovací data by měl mít stejná jako já, tj. '' | Testovací data by měl mít stejná jako já, tj. '' | ||
- | |||
- | ===== 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: | ||
- | |||
- | 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, | ||
- | |||
- | | **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 " | ||
- | | 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 | | ||
- | |||
- | 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? | ||
- | |||
- | | **Pokus** | **Dev WMT08** | **Test WMT09** | **Test WMT10** | **Poznámka** | **Datum** | | ||
- | | obo-base1 (encs) | 0.1084 | 0.0990 | | | 3.3.2010 | | ||
- | | obo-base3 (encs) | 0.1064 | 0.0990 | | Na rozdíl od obo-base1 použit šestigramový jazykový model místo třígramového. Výsledek je velmi podezřelý (velmi podezřele podobný tomu třígramovému), | ||
- | | obo-base3 (encs) | 0.1103 | 0.1012 | | Opravný pokus, tentokrát už dekodér snad ví, že máme šestigram. | 5.3.2010 | | ||
- | | obo-max(-final) (encs) | 0.1344 | 0.1300 | 0.1357 (13.4/12.6) | Ondrův maximální paralelní korpus a třígramový jazykový model. | 7.3.2010 | | ||
- | | obo-max3 (encs) | 0.1387 | | 0.1402 | Ondrův maximální paralelní korpus a šestigramový jazykový model. | 8.3.2010 | | ||
- | |||
- | Na konci srpna 2010 oživuju pokusy s& | ||
- | |||
- | | **Pokus** | **Dev WMT08** | **Test WMT09** | **Test WMT10** | **Poznámka** | **Datum** | | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
- | | encs: | ||
===== Pokusy s uvozovkami ===== | ===== 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" | + | Paralelní data, která máme k& |
- | '' | + | <code bash>$STATMT/ |
- | a co historie loňských commitů? | + | |
- | Podle časových značek u korpusů v '' | + | Takhle se upraví |
- | ===== Infrastruktura a zarovnání ===== | + | <code bash>cd / |
- | Kromě toho jsem někdy v roce 2011 zkoušel | + | Do Makefile |
- | ===== Inventura 16.1.2012 ===== | + | <code bash> |
+ | NEWSCOMM | ||
- | 16.1.2012 21:12: Pouštím znova pokus '' | + | Ale pozor! Jestliže jsme už předtím zpracovali jiný jazykový pár, musíme ho z& |
- | ===== Eman ===== | + | <code bash> |
- | Ondrův e-mail z 4.2.2011: | + | Teď použijeme TectoMT/ |
- | 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>cd $TMT_ROOT/ |
+ | nohup nice make CORPUS=europarl-v6b.fr-en LANGUAGE=fr >& make-euro-fren-fr.log & | ||
+ | nohup nice make CORPUS=europarl-v6b.fr-en LANGUAGE=en >& make-euro-fren-en.log & | ||
+ | nohup nice make CORPUS=news-commentary-v6b.fr-en LANGUAGE=fr >& make-news-fren-fr.log & | ||
+ | nohup nice make CORPUS=news-commentary-v6b.fr-en LANGUAGE=en >& make-news-fren-en.log & | ||
+ | for y in 2008 2009 2010 2011 ; do | ||
+ | for l in cs de en es fr ; do | ||
+ | nohup nice make CORPUS=newstest$y-v6b LANGUAGE=$l >& make-newstest$y-$l.log & | ||
+ | done | ||
+ | done</ | ||
- | <code bash>svn co https:// | + | No a nyní již můžeme naklonovat nové pokusy. I když můžeme naklonovat oba směry |
- | cd statmt/ | + | |
- | # podivejte se na README | + | |
- | export PATH=$PATH: | + | |
- | 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/ | + | |
- | Prikaz: | + | <code bash> |
+ | cd fren-stc-allemma-tmv6b-lmv6b-lm6-test2011 | ||
+ | $STATMT/ | ||
+ | vim scripts/ | ||
+ | $ac_tmtrain | ||
- | eman --man | + | Dotažení do konce: i vývojová a testovací data musí být ve verzi v6b. Můžeme přeskočit alignment a trénování jazykového modelu, ale musíme pustit '' |
- | ukaze manualovou stranku | + | <code bash> |
+ | cd encs-stc-allemma-tmv6b-lmv6b-lm6-test2011v6b | ||
+ | $STATMT/ | ||
+ | vim scripts/ | ||
+ | $ac_dev | ||
+ | $ac_test | ||
+ | (qsub.pl) scripts/ | ||
+ | nohup nice $STATMT/ | ||
- | ==== Tvorba šablon | + | Pokusy s& |
- | Jako příklad viz eman.seeds/ | + | Nový průběh |
- | * 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é | + | |
- | * 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 '' | + | ^ Jazyky ^ v6 ^ v6b-tr ^ v6b ^ |
+ | | en-cs | 0.1191 | 0.1246 | | | ||
+ | | cs-en | 0.1692 | 0.1792 | | | ||
+ | | en-de | 0.1337 | 0.1274 | | | ||
+ | | de-en | 0.1885 | 0.1859 | | | ||
+ | | en-es | 0.2573 | 0.2531 | | | ||
+ | | es-en | 0.2446 | 0.2375 | | | ||
+ | | en-fr | 0.2591 | 0.2619 | | | ||
+ | | fr-en | 0.2243 | 0.2285 | | | ||
- | Dále vytvoří soubor '' | + | ===== Pokusy s Emanem ===== |
- | Dále vytvoří soubor '' | + | Tohle jsou data, která Ondřej použil pro svůj „malý pokus“: |
+ | SRCAUG=enNmT1+stc | ||
+ | TGTAUG=csNmT1+stc | ||
+ | ALILABEL=enNmT1-lemma-csNmT1-lemma | ||
+ | DEV: wmt10 | ||
+ | TEST: wmt11 | ||
- | Teprve v přípravném režimu se také vyrobí hlavní skript '' | + | Kopie příslušných korpusů jsou na mém hřišti v těchto krocích (ukázáno rovnou |
- | ==== Založení nového kroku podle šablony ==== | + | < |
- | Použijeme příkaz '' | + | SRC=en TGT=cs IMPORTCORPUS=yes TRALS=s.corpus.60681730.20120201-2157 TRALT=s.corpus.892024c6.20120201-2157 TRTMS=s.corpus.402e5219.20120201-2302 TRTMT=s.corpus.d8e0b2d7.20120201-2157 TRLMT=s.corpus.d8e0b2d7.20120201-2157 DEVS=s.corpus.e46c791e.20120201-2159 DEVT=s.corpus.c3230ea2.20120201-2201 TESTS=s.corpus.7b9dc07b.20120201-2205 TESTT=s.corpus.d0ef157e.20120201-2208 |
+ | s.dandata.1d1f8734.20120203-1125 | ||
- | <code bash>cd $STATMT/playground | + | wmt10/enNmT1+stc = s.corpus.e46c791e.20120201-2159 |
- | SRC=en TGT=cs eman init dandata</code> | + | wmt10/ |
+ | wmt11/ | ||
+ | wmt11/csNmT1+stc = s.corpus.d0ef157e.20120201-2208 | ||
- | ==== Spuštění kroku ==== | + | Korpusy pro alignment: |
+ | s.corpus.60681730.20120201-2157 | ||
+ | s.corpus.892024c6.20120201-2157 | ||
- | Spuštění kroku znamená, že se vygeneruje jeho skript (pustí se '' | + | GIZASTEP=s.mosesgiza.8a492679.20120202-1628 DATASTEP=s.dandata.1d1f8734.20120203-1125 ALISYM=gdfa |
+ | s.danalign.9fb3696a.20120203-1128 | ||
+ | JOSHUASTEP=s.joshua.2723ccd9.20120131-1031 ALIGNSTEP=s.danalign.9fb3696a.20120203-1128 | ||
+ | s.binarize.4576151d.20120203-1524 | ||
+ | BINARIZESTEP=s.binarize.4576151d.20120203-1524 FOR=dev | ||
+ | s.extract.95792bfb.20120203-1528 | ||
+ | BINARIZESTEP=s.binarize.4576151d.20120203-1524 FOR=test eman init extract --start | ||
+ | s.extract.01f5693c.20120203-1528 | ||
+ | SRILMSTEP=s.srilm.e99247ad.20120201-0921 DATASTEP=s.dandata.1d1f8734.20120203-1125 ORDER=5 eman init danlm --start | ||
+ | s.danlm.06d337e0.20120203-1600 | ||
+ | LMSTEP=s.danlm.06d337e0.20120203-1600 EXTRACTSTEP=s.extract.95792bfb.20120203-1528 eman init zmert --start | ||
+ | s.zmert.884b636b.20120203-1602 | ||
+ | MERTSTEP=s.zmert.884b636b.20120203-1602 EXTRACTSTEP=s.extract.01f5693c.20120203-1528 eman init daneval --start | ||
+ | s.daneval.96709ff9.20120203-1603</ | ||
- | <code bash> | + | Výsledek Danova pokusu s Ondřejovými malými daty: |
+ | BLEU = 0.1185 | ||
+ | (Ondřej měl s Mosesem asi 0.1230.) | ||
+ | Ještě je potřeba to testovat stejným skriptem jako Ondřej, abychom použili stejnou tokenizaci a taky abychom dostali rozptyl skóre. | ||
- | (V& | + | ===== Čeština s němčinou, španělštinou a francouzštinou ===== |
- | Kroky, které už byly spuštěny v minulosti a skončily úspěšně (jsou ve stavu '' | + | Tyto jazykové páry nejsou součástí shared task. Organizátoři pro ně ani neposkytují trénovací data, ale ta je možné získat hledáním shodných vět v dotyčných jazycích v& |
- | <code bash>cat s.dandata.038e9f18.20120118-2212/eman.status | + | Není-li řečeno jinak, váhy se ladí na newstest2008 a testuje se na newstest2009. Trénuje se zatím na news-commentary, |
- | DONE | + | |
- | echo PREPARED > s.dandata.038e9f18.20120118-2212/ | + | |
- | Druhou možností je příkaz '' | + | | **Pokus** | **Dev WMT08** | **Test WMT09** | **Test WMT10** | **Poznámka** | **Datum** | |
- | + | | decs-josh13 | 0.0935 | 0.0886 | | | 15.3.2010 | | |
- | ==== Korpusové kroky ==== | + | | 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 | | |
- | Některé kroky připravují části korpusů, které jsou pro experiment potřeba. Takový krok asi typicky bude přímo zasvěcen přípravě korpusu, ale není ani vyloučeno, že korpus bude vedlejším produktem jiné činnosti. Každopádně pokud je výsledkem nebo jedním z výsledků kroku korpus, je vhodné ve složce daného kroku založit soubor '' | + | |
- | + | ||
- | ==== 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 '' | ||
- | * binarizace korpusu a alignmentu | ||
- | * extrakce gramatiky pro vývojová i testovací data (jeden, nebo dva různé kroky?); analogicky ke kroku '' | ||
- | * volání dekodéru Joshuy ('' | ||
- | * asi i nějaká úprava mertu, byť současný eman už samozřejmě obsahuje konfiguraci mertu pro Mosese |