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/18 17:06] zeman Sestavování experimentu. |
user:zeman:wmt [2012/02/03 18:15] zeman Poznámky o Ondrových datech a o pokusech s Emanem. |
||
---|---|---|---|
Line 10: | Line 10: | ||
* Udělat pořádek v záznamech. | * Udělat pořádek v záznamech. | ||
* Najít a oživit loňské pokusy s interpunkcí, | * Najít a oživit loňské pokusy s interpunkcí, | ||
+ | * Zopakovat tytéž pokusy, ale nad letos distribuovanými daty. | ||
* Převést všechny pokusy pod aktuální verzi Joshuy. | * Převést všechny pokusy pod aktuální verzi Joshuy. | ||
* Konečně převést Joshuu pod Emana. | * Konečně převést Joshuu pod Emana. | ||
Line 16: | Line 17: | ||
* Při klonování experimentu se musí kopírovat mert/ | * Při klonování experimentu se musí kopírovat mert/ | ||
* 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. | * 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? | ||
+ | |||
+ | ===== 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 54: | ||
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 ===== | ===== Výsledky ===== | ||
Line 53: | Line 60: | ||
| **Pokus** | **Dev WMT08** | **Test WMT09** | **Test WMT10** | **Poznámka** | **Datum** | | | **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 | | | decs-josh13 | 0.0935 | 0.0886 | | | 15.3.2010 | | ||
| escs-josh13 | 0.0922 | 0.0872 | | | 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 | | | 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 ===== | ||
Line 113: | Line 73: | ||
Podle časových značek u korpusů v '' | Podle časových značek u korpusů v '' | ||
- | ===== Infrastruktura a zarovnání ===== | + | UPDATE: Tohle jsem k uvozovkám našel v textovém souboru s průběžnými výsledky z loňského WMT (Makefilem se tam primárně myslí Makefile dat pro WMT, tedy ''/ |
- | Kromě toho jsem někdy v roce 2011 zkoušel předělat Joshuovy skripty, které | + | |
+ | --------------------------------------- | ||
+ | Mám k dispozici trénovací data s opravenými uvozovkami, zatím jen pro angličtinu se španělštinou. | ||
+ | Potřebuju je označkovat, abych mohl pouštět experimenty s faktory lemma a stc. | ||
+ | cd / | ||
+ | # Přidat do Makefile nově upravené korpusy mající v názvu " | ||
+ | EUROPARL = $(foreach pair, | ||
+ | NEWSCOMM = $(foreach pair, | ||
+ | # Ale pozor! Jestliže už jsme předtím zpracovali jiný jazykový pár, musíme ho z Makefile alespoň dočasně vyhodit! | ||
+ | # Jinak si novým zkopírováním zdrojových korpusů | ||
+ | make corpus CORPUS=europarl-v6b.fr-en LANGUAGE=fr | ||
+ | # Teď použijeme TectoMT a cluster k označkování nových korpusů. | ||
+ | cd / | ||
+ | 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 & | ||
+ | # No a nyní již můžeme naklonovat nové pokusy. | ||
+ | # I když můžeme naklonovat oba směry (např. " | ||
+ | $STATMT/ | ||
+ | cd fren-stc-allemma-tmv6b-lmv6b-lm6-test2011 | ||
+ | $STATMT/ | ||
+ | vi scripts/ | ||
+ | $ac_tmtrain | ||
+ | |||
+ | Výsledky: | ||
+ | Skóre " | ||
+ | Skóre " | ||
+ | Vylaďovací ani testovací data zatím nijak upravována nebyla. | ||
+ | Jejich úpravu bychom ale měli taky otestovat, protože např. teď obsahují samé ASCII uvozovky, které jsou pro Joshuu neznámým tokenem. | ||
+ | |||
+ | es-en: dříve 0.2452, nyní 0.2428 | ||
+ | en-es: dříve 0.2590, nyní 0.2542 | ||
===== Inventura 16.1.2012 ===== | ===== Inventura 16.1.2012 ===== | ||
Line 121: | Line 113: | ||
16.1.2012 21:12: Pouštím znova pokus '' | 16.1.2012 21:12: Pouštím znova pokus '' | ||
- | ===== Eman ===== | + | 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): '' |
+ | |||
+ | ^ 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.) | ||
- | Ondrův e-mail z& | + | '' |
- | musim se pochlubit, ze (az na jeste par much) mam ukazku pouziti emana pro preklad i pro ty, kdo to jeste vubec nezkouseli: | + | První výsledky jsou zatím bez záruky, protože v průběhu Gizy jsem narazil |
- | <code bash>svn co https://svn.ms.mff.cuni.cz/ | + | 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í |
- | 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: | + | ^ 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 | 0.2531 | | ||
+ | | es-en | 0.2428 | FAILED | 0.2375 | | ||
+ | | en-fr | 0.2586 | 0.2628 | 0.2619 | | ||
+ | | fr-en | 0.2294 | 0.2294 | 0.2285 | | ||
- | eman --man | + | ===== Pokusy s Emanem ===== |
- | ukaze manualovou stranku | + | 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 | ||
- | ==== Zakládání nových kroků ==== | + | Kopie příslušných korpusů jsou na mém hřišti v těchto krocích (ukázáno rovnou na inicializaci kroku dandata): |
- | 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 '' | + | |
- | * 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 '' | + | 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 | ||
- | Dále vytvoří soubor '' | + | wmt10/ |
+ | wmt10/ | ||
+ | wmt11/ | ||
+ | wmt11/ | ||
- | Dále vytvoří soubor '' | + | Korpusy pro alignment: |
+ | s.corpus.60681730.20120201-2157 | ||
+ | s.corpus.892024c6.20120201-2157 | ||
- | Teprve v přípravném režimu se také vyrobí hlavní skript '' | + | 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 eman init binarize --start --mem 31g | ||
+ | s.binarize.4576151d.20120203-1524 | ||
+ | BINARIZESTEP=s.binarize.4576151d.20120203-1524 FOR=dev eman init extract --start | ||
+ | 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</ | ||
- | ==== Sestavování experimentu | + | 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 | ||
- | 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 |