[ 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
Last revision Both sides next revision
user:zeman:moses [2008/12/15 16:44]
zeman Kompiluji.
user:zeman:moses [2009/08/12 10:20]
ptacek
Line 1: Line 1:
 ====== Ondrův návod, jak pouštět Mosese ====== ====== Ondrův návod, jak pouštět Mosese ======
 +
 +===== Instalace =====
 +
 +**Ptica: pozor, toto je navod na stary moses_playground, novy lezi na [[https://svn.ms.mff.cuni.cz/projects/statmt/]]**
  
 <code bash>svn co https://svn.ms.mff.cuni.cz/svn/treedecode/moses_playground</code> <code bash>svn co https://svn.ms.mff.cuni.cz/svn/treedecode/moses_playground</code>
Line 16: Line 20:
 make workspace</code> make workspace</code>
  
-Pro jistotu pouštím na ''sol2'', aby měl make podobné 64bitové prostředí, jako bude mít Moses puštěný na clusteru.+Pro jistotu pouštím na ''sol2'', aby měl make podobné 64bitové prostředí, jako bude mít Moses puštěný na clusteru. Zdá se, že to proběhlo bez potíží, řeklo to: 
 + 
 +<code>## Don't forget to set your SCRIPTS_ROOTDIR with: 
 +   export SCRIPTS_ROOTDIR=/export/work/people/zeman/moses/moses_playground/workspace.20081215-1642/bin/scripts-20081215-1646</code>
  
 <code bash># vyrobi to podadresar workspace.DATUM-CAS, <code bash># vyrobi to podadresar workspace.DATUM-CAS,
-# nastav cesty v playground/Makefile+# nastav cesty v moses_playground/Makefile</code> 
 + 
 +Nastavuju cesty ''PWD'' a ''WS'' na začátku Makefilu. ''PWD'' vede na právě vytvořený ''moses_playground'', ''WS'' je název právě vytvořeného pracovního prostoru ''workspace.20081215-1642''
 + 
 +===== Příprava korpusů =====
  
-# priprav korpusy:+<code bash># priprav korpusy:
  
-cd playground/augmented_corpora+cd moses_playground/augmented_corpora
  
 # co (paralelni) korpus, to adresar # co (paralelni) korpus, to adresar
Line 33: Line 44:
 mujkorpus/en.info mujkorpus/en.info
  
-Priklad viz /home/bojar/diplomka/granty/euromatrix/moses_icon08/augmented_corpora/icon-eilmt+Priklad viz /home/bojar/diplomka/granty/euromatrix/moses_icon08/augmented_corpora/icon-eilmt</code>
  
-Pak nechas vyrobit alignment, bud rucne, nebo napr.:+Nějaké podsložky už tam jsou. Vytvářím novou ''enhi-dan'' a kopíruju do ní Ondrovy příklady souborů .gz a .info. Tím jsem získal kopii anglicko-hindského korpusu EILMT (7000 vět). Korpus je tokenizovaný a spárovaný po větách. 
 + 
 +**Před dalšími operacemi raději přepínám z tcsh do bashe, který používá Ondra.** 
 + 
 +<code bash>Pak nechas vyrobit alignment, bud rucne, nebo napr.:
  
 cd augmented_corpora cd augmented_corpora
Line 47: Line 62:
 (Vystup viz napr. /a/merkur1/bojar/moses_icon08/augmented_corpora/icon-eilmt/lcstem4-lcstem4.gz) (Vystup viz napr. /a/merkur1/bojar/moses_icon08/augmented_corpora/icon-eilmt/lcstem4-lcstem4.gz)
  
-Princip je ten, ze pro kazdy korpus K maji vsechny soubory augmented_corpora/K/*.gz mit stejny pocet radek. Mohou mit ruzny pocet tokenu na radce.+Princip je ten, ze pro kazdy korpus K maji vsechny soubory augmented_corpora/K/*.gz 
 +mit stejny pocet radek. Mohou mit ruzny pocet tokenu na radce.</code>
  
-Pak je skript augment.pl, ktery podle navodu z daneho korpusu vyreze potrebne faktory, napr.:+Cíl ''align'' v příslušném Makefilu nevolá Hunalign, ale Gizu, takže už zřejmě nejde o párování vět, ale tokenů. O Hunalignu (párování vět) se tiše předpokládá, že jsme si ho pustili už dříve sami, nebo že jsme si párování vět zařídili nějak jinak. Viz Ondrova poznámka: paralelní korpusy, které jsme sem nakopírovali, už musí mít na obou stranách stejný počet řádek (= segmentů = vět). 
 + 
 +Pozor, tady už některé věci vyžadují úpravy, např. se tam přistupuje k ''~/diplomka'', čímž se ale má na mysli zřejmě ''/home/bojar/diplomka''. Taky se tam předpokládá existence příkazu ''qsubmit'', což je jednak Ondrova obálka na ''qsub'', kterou normální lidi nemají v cestě (velmi pravděpodobně je to tohle: ''~bojar/tools/shell/qsubmit''), jednak musíme ''make align'' volat z počítače, ze kterého lze odeslat výpočet na cluster (tedy z ''lrc''). 
 + 
 +Vyžaduje se také perlový modul ''File::NFSLock'', který normálně nemám v ''@INC'', takže asi není ve standardní ÚFALí distribuci Perlu. Zjistil jsem, že Ondra tuhle knihovnu má v ''/home/bojar/myperl/lib'' (kromě toho má ještě ''/home/bojar/perllib'', tam jsou nějaké další balíčky z CPANu). Protože normálně nepoužívám ''bash'', nedokázal jsem ho rychle přinutit, aby tuhle cestu standardně přidal do ''PERLLIB'' a ''PERL5LIB''. Nakonec jsem raději přidal na začátek ''augment.pl'' řádek ''use lib '/home/bojar/myperl/lib';''
 + 
 +<code bash>Pak je skript augment.pl, ktery podle navodu z daneho korpusu vyreze potrebne faktory, napr.:
  
 cd augmented_corpora cd augmented_corpora
 ./augment.pl icon-eilmt/hi+form+lcstem4 ./augment.pl icon-eilmt/hi+form+lcstem4
  
-Pozor: v soucasne dobe stale jeste nefunguji zamky v augment.pl a NFS je debilni. Muze se tedy stat, ze kdyz ma augment vyrobit nejakou novou kombinaci, ktera se sklada z take vyrabenych soucastek, tak se vyrobi neuplne gzipy!+Pozor: v soucasne dobe stale jeste nefunguji zamky v augment.pl a NFS je debilni. 
 +Muze se tedy stat, ze kdyz ma augment vyrobit nejakou novou kombinaci, 
 +ktera se sklada z take vyrabenych soucastek, tak se vyrobi neuplne gzipy!
  
-To byla priprava. :-)+To byla priprava. :-)</code>
  
 +Z tohohle to skoro vypadá, že se augment má pouštět před alignem, a ne až po něm. Z Makefilu je ale vidět, že se volání augmentu předává jako parametr alignu, který si ho zřejmě obsluhuje sám.
  
-Samotne pokusy pak pripravuji a spoustim takto:+===== Pouštění pokusů =====
  
-cd playground+<code bash>Samotne pokusy pak pripravuji a spoustim takto: 
 + 
 +cd moses_playground
 SRCCORP=icon-eilmt \ SRCCORP=icon-eilmt \
 SRCAUG=enR+lc \ SRCAUG=enR+lc \
Line 88: Line 115:
 Kdyz das RUN=yes, tak to i rovnou submitne. Kdyz das RUN=yes, tak to i rovnou submitne.
  
-Princip tech seeds je, ze seed je bashovy skript, ktery neco obratem pripravi, a zejmena pripravi bashovy skript 'command', no a make exp..run jen ten command spusti.+Princip tech seeds je, ze seed je bashovy skript, ktery neco obratem pripravi, 
 +a zejmena pripravi bashovy skript 'command', no a make exp..run jen ten command spusti.
  
 +Cili kdyz se nejaky experiment nedari spustit (nebo dokoncit)
 +vlezes do jeho adresare exp.NAZEV.TIMESTAMP, prostudujes ./command,
 +treba si ho spustis rucne atp.
  
-Cili kdyz se nejaky experiment nedari spustit (nebo dokoncit) vlezes do jeho adresare exp.NAZEV.TIMESTAMP, prostudujes ./command, treba si ho spustis rucne atp. +Snazim se o to, aby adresare experimentu obsahovaly uplne vsechny vstupy, 
- +proto hojne v priprave experimentu pouzivam /home/bojar/tools/shell/wiseln, 
-Snazim se o to, aby adresare experimentu obsahovaly uplne vsechny vstupy, proto hojne v priprave experimentu pouzivam /home/bojar/tools/shell/wiseln, ktery podle situace dela bud symlink, hardlink, nebo i kopii, a taky tam pripise md5 sumu, abych mohl i zpetne hlidat, ze jsem neco spoustel na tom, na cem jsem to spoustet chtel. +ktery podle situace dela bud symlink, hardlink, nebo i kopii, a taky tam 
 +pripise md5 sumu, abych mohl i zpetne hlidat, ze jsem neco spoustel na tom, 
 +na cem jsem to spoustet chtel.
  
 Postup pres experimenty je tento: Postup pres experimenty je tento:
Line 106: Line 138:
  
 Take byvalo make exp.align.prepare, ale to je ted zastarale. Take byvalo make exp.align.prepare, ale to je ted zastarale.
- 
  
 Nejspis se v tom ale nevyznas :-( Nejspis se v tom ale nevyznas :-(
-Dej mi vedet, kdybys zacal citit nejakou nadeji. </code>+Dej mi vedet, kdybys zacal citit nejakou nadeji.</code> 
 + 
 + 
 + 
 +===== Výroba jazykového modelu ===== 
 + 
 +Pokouším se použít výše popsaný Ondrův postup pro korpus ''enhi-dan''. Vynechávám Ondrův parametr ''wc10'' (shlukování na 10 slovních tříd; pro baseline výsledek ale nic takového nechci). Místo toho se zřejmě musí uvést ''form''. Nevím, co znamená ''ORDER=10'', ale když to vyhodím, make si stěžuje, že tam má být nastaven "lm order". Tím se myslí, kolika-gramový model se má vytvořit. 10 je tedy asi moc (sloužilo pro slovní třídy, ale pro celá slova bychom měli použít nižší číslo). Karthik použil pentagram. 
 + 
 +<code bash>CORP=enhi-dan \ 
 +CORPAUG=hi+form \ 
 +ORDER=5 \ 
 +RUN=yes \ 
 +make exp.lm.prepare</code> 
 + 
 +Neustále narážím na volání Ondrových nástrojů, které nemám v cestě (např. ''qsubmit'', ''makeargs'', ''mkdiruniq'', ''wiseln''). Pár jsem jich přepsal s plnou cestou, ale je toho moc. Tak si snad raději přidám do ''.bashrc'' rozšíření ''PATH'' o ''/home/bojar/tools/shell''. (Nestačí to nastavit ručně před pouštěním pokusů, protože výpočty se odesílají na cluster a tam běží nový bash s čistým prostředím.) 
 + 
 +Teď už se jazykový model vyrábí pěkně, ale vycházejí mi jiné (menší) počty n-gramů než Karthikovi. Takže by to chtělo dál pátrat, čím se od něj lišíme. Nejbližší další podezřelý je to kódování WX.

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