[ 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/18 16:53]
zeman Nová šablona (seed).
user:zeman:wmt [2012/01/19 08:37]
zeman Spuštění kroku.
Line 142: Line 142:
 ukaze manualovou stranku ukaze manualovou stranku
  
-==== Zakládání nových kroků ====+==== Tvorba šablon (nové druhy kroků, seeds) ====
  
 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é: 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é:
Line 157: Line 157:
 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. 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+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 ==== 
 + 
 +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 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 emanem se musíme nacházet na hřišti): 
 + 
 +<code bash>cd $STATMT/playground 
 +SRC=en TGT=cs eman init dandata</code> 
 + 
 +==== Spuštění kroku ==== 
 + 
 +Spuštění kroku znamená, že se vygeneruje jeho skript (pustí se ''eman.seed'' a z&nbsp;něj vypadne ''eman.command'') a odešle se jako úloha na cluster. Provádí se pomocí ''eman start'', např. 
 + 
 +<code bash>eman start dandata</code> 
 + 
 +(V&nbsp;tomto případě ovšem předpokládáme, že na hřišti leží jen jeden krok typu ''dandata''. Eman ho pak dokáže identifikovat.) 
 + 
 +Kroky, které už byly spuštěny v&nbsp;minulosti a skončily úspěšně (jsou ve stavu ''DONE''), se fyzicky znova nespustí. Předpokládá se, že by výsledek byl stejný jako ten, který už leží nebo má ležet ve složce kroku. Jestliže chceme vynutit přepočítání kroku (třeba teprve ladíme způsob, jakým se krok počítá), musíme nejdříve ručně změnit stav na ''INITED'' nebo ''PREPARED'': 
 + 
 +<code bash>cat s.dandata.038e9f18.20120118-2212/eman.status 
 +DONE 
 +echo PREPARED > s.dandata.038e9f18.20120118-2212/eman.status</code> 
 + 
 +Druhou možností je příkaz ''eman redo''. Ten ale vyrobí kopii stávajícího kroku a tu spustí. Jestliže předcházející běh kroku neskončil úspěšně (je ve stavu ''FAILED''), můžeme zkusit ''eman continue'', který pracuje v&nbsp;původní složce kroku a pokusí se krok dotáhnout do stavu ''DONE''
 + 
 +==== Korpusové kroky ==== 
 + 
 +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 ''corpman.info'', který popisuje, jaký korpus nám to tady vznikl. Skript pro tvorbu korpusů ho potom může využít při tvorbě kombinovaných korpusů, jiných faktorů apod. 
 + 
 +==== 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 ''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 ]