[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
user:zeman:wmt [2012/01/19 08:14]
zeman Musíme se nacházet na hřišti, aby to fungovalo.
user:zeman:wmt [2012/01/25 22:50]
zeman Odstraněny zastaralé poznámky o časové náročnosti.
Line 16: Line 16:
   * 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.
   * 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?
 +
 +===== 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 ===== ===== Data =====
Line 39: Line 57:
  
 Testovací data by měl mít stejná jako já, tj. ''wmt102.test08'' pro MERT a ''wmt102.test09'' pro testování. 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 ===== ===== Výsledky =====
Line 81: Line 91:
 | fren-clean | 0.1873 | 0.2008 | | | 21.3.2010 | | fren-clean | 0.1873 | 0.2008 | | | 21.3.2010 |
 | fren-josh13 | 0.1861 | 0.2036 | | | 9.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), ale zdá se, že jsem zapomněl dekodéru říct, že teď to bude šestigram. Tak to pouštím znova. | 5.3.2010 | 
-| 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 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 ===== ===== Pokusy s uvozovkami =====
Line 112: Line 100:
  
 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). 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 ===== ===== Inventura 16.1.2012 =====
Line 121: Line 105:
 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. 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 ===== +Nový průběh všech osmi starých pokusů (supervised truecasingžádná normalizace uvozovek, nové je na nich paralelní počítání alignmentuale výsledek by l být identický – nekontroloval jsem): ''$SRC$TGT-stc-allcstem4-tmnews+parl-lmnews+parl-lm6-test2011''
- +
-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 tykdo 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 protoabyste 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 +
- +
-==== Tvorba šablon (nové druhy kroků, seeds) ==== +
- +
-Jako příklad viz eman.seeds/lm. Toto je šablona na všechny krokykteré 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ů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''+
-  * CORPAUGfaktory 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.+
  
-==== Založení nového kroku podle šablony ====+^ 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 |
  
-Použijeme příkaz ''eman init''Typicky musíme předat nějaké vstupní parametry prostřednictvím proměnných prostředí. Můžeme samozřejmě nejdřív nastavit prostředí a pak zavolat ''eman init'', ale v&nbsp;bashové syntaxi můžeme také rovnou předřadit přiřazení do proměnných před příkaz, např. takhle vytvoříme nový krok typu ''dandata'' pro jazykový pár en-cs (na všechny operace s&nbsp;emanem se musíme nacházet na hřišti):+Od jara mám vytvořené také pokusy s korpusy, ve kterých jsou upravené uvozovky (verze 6b), takže je teď taky pustímJe 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.)
  
-<code bash>cd $STATMT/playground +''$SRC$TGT-stc-allemma-tmv6b-lmv6b-lm6-test2011''
-SRC=en TGT=cs eman init dandata</code>+
  
-==== Korpusové kroky ====+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).
  
-Některé kroky připravují části korpusů, které jsou pro experiment potřebaTakový 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 korpusje vhodné ve složce daného kroku založit soubor ''corpman.info''který popisuje, jaký korpus nám to tady vznikl. Skript pro tvorbu korpusů ho potom může využít přtvorbě kombinovaných korpusů, jiných faktorů apod.+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í alignmentutakže pouštím potřetí (zatím šest pokusů pro češtinu, němčinu a španělštinupozději pustím i francouzštinuaž i u ní skončí druhý běh).
  
-==== Sestavování experimentu jako posloupnosti kroků ====+^ 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 | |
  
-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 

[ Back to the navigation ] [ Back to the content ]