| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
user:zeman:moses [2008/12/15 17:42] zeman qsubmit |
user:zeman:moses [2009/11/16 14:00] (current) zeman Workspace. |
| |
| ===== Instalace ===== | ===== 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> |
| |
| 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''. | 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ů ===== | ===== Příprava korpusů ===== |
| 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). | 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ě, jednak musíme ''make align'' volat z počítače, ze kterého lze odeslat výpočet na cluster (tedy z ''lrc''). | 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.: | <code bash>Pak je skript augment.pl, ktery podle navodu z daneho korpusu vyreze potrebne faktory, napr.: |
| |
| To byla priprava. :-)</code> | 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. |
| |
| ===== Pouštění pokusů ===== | ===== Pouštění pokusů ===== |
| <code bash>Samotne pokusy pak pripravuji a spoustim takto: | <code bash>Samotne pokusy pak pripravuji a spoustim takto: |
| |
| cd playground | cd moses_playground |
| SRCCORP=icon-eilmt \ | SRCCORP=icon-eilmt \ |
| SRCAUG=enR+lc \ | SRCAUG=enR+lc \ |
| 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: |
| |
| 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. |
| | |
| | ===== Workspace ===== |
| | |
| | Nemám teď čas prolejzat nahoře, jestli už to tam není napsané, ale rychle si potřebuju poznamenat další Ondřejova moudra :-) |
| | |
| | //Asi jsem Ti to nikdy nevysvetloval. 'workspace' je podadresare moses_playground, ktery obsahuje zkompilovane vsechny nastroje. Ten adresar vznikne prikazem 'make workspace'. Zamerne ale vznika pod nazvem workspace.DATUM, aby joch mohlo byt vic. |
| | |
| | Pri uspesnem konci 'make workspace' na zaver napise neco jako: |
| | ... a vas novy workspace je workspace.2009-12-12-1212, poznamenejte |
| | si to do souboru 'workspace' |
| | |
| | Cili clovek udela: |
| | |
| | echo workspace.2009-12-12-1212 > workspace |
| | |
| | A playground/Makefile (a nove i playground/augmented_corpora/Makefile) se timto souborem ridi pri startu novych experimentu. |
| | |
| | O.// |