Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
user:zeman:eman [2012/10/20 22:47] zeman Tahák ke gitu. |
user:zeman:eman [2013/01/23 15:39] (current) zeman harvest.pl |
====== Eman ====== | ====== Eman ====== |
| |
Ondrův e-mail z 4.2.2011: | ===== Instalace ===== |
| |
musim se pochlubit, ze (az na jeste par much) mam ukazku pouziti emana pro preklad i pro ty, kdo to jeste vubec nezkouseli: | <code bash>git clone https://daniel.zeman@redmine.ms.mff.cuni.cz/eman.git eman |
| git clone https://daniel.zeman@redmine.ms.mff.cuni.cz/ufal-smt-playground.git statmt |
| export PATH=$PATH:`pwd`/eman/bin |
| cd statmt/playground</code> |
| |
| Mělo by to jít vybalit i bez toho uživatelského jména (''daniel.zeman@'' apod., vyžaduje samozřejmě heslo), ale bude to pak bez práva ukládat změny zpět na server pomocí ''git push''. |
| |
| Příkaz ''<nowiki>eman --man</nowiki>'' ukáže příručku s nápovědou. |
| |
| Ondrův příklad pro rychlý start (říjen 2012): |
| <code bash>eman clone (--dry-run) < eman.samples/cs-en-mini.traceback</code> |
| |
| ==== Archiv ==== |
| |
| Eman z SVN dle Ondrova e-mailu z 4.2.2011: |
| |
<code bash>svn co https://svn.ms.mff.cuni.cz/svn/statmt/trunk statmt | <code bash>svn co https://svn.ms.mff.cuni.cz/svn/statmt/trunk statmt |
SKIP_IRSTLM=yes eman clone --start < eman.samples/cs-en-mini.traceback</code> | SKIP_IRSTLM=yes eman clone --start < eman.samples/cs-en-mini.traceback</code> |
| |
Prikaz: | [[Přechod z SVN/Trac na Git/Redmine]] (podzim 2012) |
| |
eman --man | |
| |
ukaze manualovou stranku | |
| |
===== Tvorba šablon (nové druhy kroků, seeds) ===== | ===== Tvorba šablon (nové druhy kroků, seeds) ===== |
V současnosti je k dispozici několik různých šablon pro vyhodnocení výsledků překladu na testovacích datech. Šablona ''eval'' pouští Ondrův program ''testbleu'', šablona ''evaluator'' pouští vyhodnocovací program Mosese upravený Matoušem Macháčkem, který umí několik různých metrik včetně BLEU, šablona ''daneval'' spolupracuje s Joshuou. | V současnosti je k dispozici několik různých šablon pro vyhodnocení výsledků překladu na testovacích datech. Šablona ''eval'' pouští Ondrův program ''testbleu'', šablona ''evaluator'' pouští vyhodnocovací program Mosese upravený Matoušem Macháčkem, který umí několik různých metrik včetně BLEU, šablona ''daneval'' spolupracuje s Joshuou. |
| |
Eman umí projít všechny kroky s výsledky a spojit je v jednom výstupu. K tomu slouží příkaz **''eman collect''**, který na základě ''eman.results.conf'' vyrobí ''eman.results''. Ukázkový a funkční konfigurační soubor je ''eman.results.conf.sample-wmt12''. Výstup ''eman.results'' lze pak ještě dále vylepšit pomocí ''make bleu'' (make bleu vlastně ten collect samo volá). | Eman umí projít všechny kroky s výsledky a spojit je v jednom výstupu. K tomu slouží příkaz **''eman collect''**, který na základě ''eman.results.conf'' vyrobí ''eman.results''. Ukázkový a funkční konfigurační soubor je ''eman.results.conf.sample''. Já používám jako obálku skript **''harvest.pl > harvest.txt''**, který výsledky zformátuje tak, jak chci (seskupí podle jazykových párů a seřadí podle skóre). |
| |
(Podle Ondřeje make bleu ještě možná závisí na skriptu ./sitename, který je tam pro konsolidaci výsledků z mnoha hřišť.) | |
| |
===== Kombinace dvou a více hřišť ===== | ===== Kombinace dvou a více hřišť ===== |
| |
Jestliže stěhujete kroky, které jsou ve stavu FAILED, na novém hřišti je pravděpodobně nebudete moci spustit pomocí ''eman continue'', protože jejich ''eman.command'' (který už se znova nepřegeneruje) nejspíš obsahuje cesty na staré hřiště (a např. když zavoláte corpman starého hřiště, bude vám hledat korpusy tam, ne tady). Můžete ale použít ''eman redo --start'', čímž se na novém hřišti vytvoří kopie kroku s novým ''eman.command'', bez přegenerování všech kroků, na kterých krok závisí. | Jestliže stěhujete kroky, které jsou ve stavu FAILED, na novém hřišti je pravděpodobně nebudete moci spustit pomocí ''eman continue'', protože jejich ''eman.command'' (který už se znova nepřegeneruje) nejspíš obsahuje cesty na staré hřiště (a např. když zavoláte corpman starého hřiště, bude vám hledat korpusy tam, ne tady). Můžete ale použít ''eman redo --start'', čímž se na novém hřišti vytvoří kopie kroku s novým ''eman.command'', bez přegenerování všech kroků, na kterých krok závisí. |
| |
===== Přechod na nové úložiště Redmine/git ===== | |
| |
ÚFALí server Redmine je na adrese https://redmine.ms.mff.cuni.cz/projects. Ondra na něj v říjnu 2012 přestěhoval podstatnou část repozitáře StatMT z svn/trac (https://svn.ms.mff.cuni.cz/trac/statmt). Konkrétně jsou tu teď projekty [[https://redmine.ms.mff.cuni.cz/projects/ufal-smt-playground|ufal-smt-playground]] a [[https://redmine.ms.mff.cuni.cz/projects/eman|eman]] (na něj se z playgroundu odkazuje jako na podmodul). | |
| |
Pro vybalení hřiště Ondra doporučil studentům následující příkaz. Předpokládám, že studenti, neznajíce Ondrovo heslo, to museli volat bez toho ''ondrej.bojar@'' na začátku a získali nějaký read-only přístup. A já na rozdíl od nich můžu použít daniel.zeman a získám přístup i pro zápis. | |
| |
<code bash>git clone https://ondrej.bojar@redmine.ms.mff.cuni.cz/ufal-smt-playground.git jmeno_pracovni_kopie | |
# Raději pracovat na 64bitovém stroji kvůli kompilacím. | |
ssh sol12 | |
cd /net/cluster/TMP/zeman | |
git clone https://daniel.zeman@redmine.ms.mff.cuni.cz/ufal-smt-playground.git redplayground</code> | |
| |
Eman jako podmodul se asi neaktualizuje sám. Nějakou verzi k nějakému datu zřejmě získám automaticky s hřištěm, ale pokud chci mít jistotu, že budu mít ten aktuální, můžu/měl bych? udělat | |
| |
<code bash>cd redplayground | |
git submodule init | |
git submodule update</code> | |
| |
Další Ondrova doporučení (ale to druhé, vizualizace commitů, bude asi fungovat jen v ixech): | |
| |
<code bash>git svn crashcourse | |
gitk -a</code> | |
| |
Dokumentace ke gitu je například [[http://git-scm.com/documentation|tady]]. | |
| |
* ''git clone <url>'' ... naklonovat existující repozitář (dělá se na začátku podobně jako ''svn checkout'', ale sémantika není stejná) | |
* ''git status'' ... v jakém stavu jsou jednotlivé soubory? (untracked / committed / modified / staged) | |
* ''git add <file>'' ... zkopírovat změněný soubor do staging oblasti nebo zahrnout do verzování dosud neverzovaný soubor (rovnou se dostane do staging oblasti) | |
* ''git reset HEAD <file>'' ... vyřadit soubor ze staging oblasti | |
* ''git checkout -- <file>'' ... zapomenout změny v pracovní kopii a vrátit se k verzi souboru uložené v repozitáři | |
* ''git commit -m 'log<nowiki>'</nowiki>'' ... uložit soubory ze staging oblasti do (lokálního!) repozitáře; na vzdálený server to pořád nemá vliv | |
* ''git commit -a'' ... přeskočit stageování a uložit i soubory, které už sledujeme, změnily se, ale nejsou ve staging oblasti | |
* ''.gitignore'' ... soubor se jmény či šablonami jmen souborů, které se nemají verzovat a nemají se ani hlásit jako neverzované | |
* ''git diff'' ... co jsem změnil, ale ještě nezkopíroval do staging oblasti | |
* ''git diff --cached'' ... co jsem změnil a zkopíroval do staging oblasti | |
* ''git log'' ... historie uložených verzí | |
* ''gitk'' ... grafický program, který vizualizuje výstup ''git log'' | |
* ''git rm <file>'' ... odstranit soubor z pracovní složky a říct gitu, že ho má přestat sledovat | |
* ''git rm --cached <file>'' ... přestat sledovat soubor, ale jeho kopii v pracovní složce ponechat | |
* ''git mv <file1> <file2>'' ... přejmenovat nebo přesunout soubor | |
* ''git remote -v'' ... zobrazit názvy nakonfigurovaných vzdálených repozitářů včetně jejich URL. "origin" je ten, ze kterého jsme se naklonovali. | |
* ''git remote add <shortname> <url>'' ... přidat vzdálený repozitář, se kterým se můžeme synchronizovat | |
* ''git fetch origin'' ... stáhnout nové změny ze vzdáleného repozitáře origin. Stáhnou se jako nová větev a neslijí se s mou aktuální větví, dokud to neudělám ručně. | |
* ''git pull origin'' ... stáhnout nové změny a pokusit se je automaticky slít s mými. Musíme mít nakonfigurováno automatické sledování vzdálené větve. Ale u originu to tak defaultně je. | |
* ''git push origin master'' ... odeslat změny v mé hlavní (master) větvi zpět na server, ze kterého jsem se naklonoval (origin) | |
* ''git remote show origin'' ... zobrazit informace o stavu vzdáleného repozitáře ve vztahu ke mně | |
| |