[ 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 Both sides next revision
user:zeman:joshua [2009/06/01 21:13]
zeman JOSHUA_HOME
user:zeman:joshua [2009/06/01 21:25]
zeman Reorganizace.
Line 6: Line 6:
   * Soubory ''INSTALL'' a ''README'' přímo v balíčku s Joshuou.   * Soubory ''INSTALL'' a ''README'' přímo v balíčku s Joshuou.
  
-===== Instalace SRILM =====+===== Instalace =====
  
-SRILM je nástroj pro jazykové modelováníse kterým pracují mnohé ekladače včetně Mosese a Joshuy. Je napsaný v céčkuZpůsob, jak ho získat a přeložit, je popsaný tutoriálu k Mosesovi(Ten není na webu normálně vidětale jeden odkaz na něj vede např. z Trac wiki Gaurav.Stručně zde opakuji:+Prerekvizity: 
 +  * Ant: kompilátor a make Javy. Máme ho v ''/usr/bin/ant'' 
 +  * Swig: nástroj na propojení kódu napsaného v různých jazycíchv tomto ípadě Joshuy (Java) na SRILM (céčko)Máme ho v ''/usr/bin/swig'' 
 +  * [[SRILM]]: nástroj Andrease Stolckeho na trénování používání jazykových modelů, běžně používaný se strojovými ekladačijako je Pharaoh, Hiero, Moses, Joshua. Máme nainstalováno nejspíš mnohokrát, podstatě si každý instaluje svou kopiiPodrobnosti o instalaci viz odkaz na začátku tohoto bodu. Pozoraby instalace fungovala na stroji (architektuře), na kterém chceme překládat (podrobnosti viz tamtéž).
  
-Získat balík se SRILM lze zde: http://www.speech.sri.com/projects/srilm/download.html+Nastavit důležité proměnné (to by se hodilo přidat do ''.cshrc'' nebo nějakého podobného konfiguračního souboru).
  
-Stažený balík srilm.tgz má asi 49 MB<nowiki>!</nowiki> Pozor, rozbaluje se do aktuální složky, takže před rozbalováním vytvořit složku srilm a vlézt do ní. +<code>setenv JAVA_HOME /opt/jdk1.6 
- +setenv SRILM /home/zeman/nastroje/srilm 
-<code>mkdir srilm +setenv JOSHUA_HOME /net/work/people/zeman/joshua</code>
-cd srilm +
-unzip.pl ../srilm.tgz</code> +
- +
-nebo +
- +
-<code>tar -xzvf ../srilm.tgz</code> +
- +
-Přečíst si soubor README, je tam mnoho tipů. Upravit Makefile, aby obsahoval cestu do mé složky. +
- +
-<code>chmod +w Makefile +
-vi Makefile</code> +
- +
-diff: +
- +
-<code>7c7 +
-< # SRILM = /home/speech/stolcke/project/srilm/devel +
---- +
-> SRILM = /home/zeman/nastroje/srilm</code> +
- +
-Není tam popsaný akorát tento zádrhel: z neznámých důvodů SRILM očekává grafickou knihovnu TCL. Pokud tato knihovna není k dispozici, musíme mu říct, že se na ni má vykašlat. K tomu je potřeba ve složce SRILM vlézt do common, najít dílčí Makefile pro naši architekturu (lze zjistit pomocí ''$SRILM/sbin/machine-type''), otevřít ho v nějakém editoru a upravit 3 řádky: zakomentovat 2 začínající na TCL a zajistit, že je tam ten třetí (NO_TCL): +
- +
-<code># Tcl support (standard in Linux) +
-# TCL_INCLUDE = +
-# TCL_LIBRARY = -ltcl +
-NO_TCL = x</code> +
- +
-Nyní jsme připraveni přeložit SRILM. Pokud nejsme v kořenové složce ''srilm'', vrátíme se do ní a spustíme: +
- +
-<code>make World</code> +
- +
-Nyní bychom měli otestovat, že SRILM je přeložen a běží správně. K tomu ho musíme přidat do své cesty (i když pro použití s Mosesem a Joshuou to zřejmě není potřeba). Musíme do cesty přidat jednak bin, jednak jeho podsložku pro naši architekturu. +
- +
-<code>setenv PATH /home/zeman/nastroje/srilm/bin/i686:/home/zeman/nastroje/srilm/bin:${PATH} +
-cd test +
-make all</code> +
- +
-Josh Schroeder: "Prohlédneme si výstup, budeme hledat zprávy IDENTICAL a DIFFERS. Občas se může stát, že není vše identické, ale přesto lze poznat, jestli nástroj funguje, nebo padá." Dan: Úplně všechny testy mi hlásily DIFFERS, ale zdá se mi, že problém je spíš v pojmenování souborů (mnou vygenerované výstupy mají ve jménu navíc ".unknown"; namátkou jsem zkusil jeden z nich porovnat se vzorem a byl identický). +
- +
-==== Kompatibilita architektur ==== +
- +
-Předpokládal bych, že když něco přeložím pro 32bitový počítač, poběží to i na 64bitovém, ale není to tak. Přeložil jsem SRILM na zenu a úspěšně jsem ho otestoval. Potom jsem se pokusil tentýž test zopakovat na luciferovi (lucifer.ufal.hide). Hlásilo to následující chybu: +
- +
-<code>ngram: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ngram)</code> +
- +
-Jako kdyby na luciferovi byla jiná verze céčka (a standardních knihoven) než na zenu. +
- +
-**zen:** +
- +
-<code>17:38 zen:/ha/home/zeman/nastroje/srilm/test> gcc -v +
-Using built-in specs. +
-Target: i486-linux-gnu +
-Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu +
-Thread model: posix +
-gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)</code> +
- +
-**lucifer:** +
- +
-<code>17:37 lucifer:/ha/home/zeman/nastroje/srilm/test> gcc -v +
-Using built-in specs. +
-Target: x86_64-redhat-linux +
-Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-cpu=generic --host=x86_64-redhat-linux +
-Thread model: posix +
-gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)</code> +
- +
-Možná je problém v tom, že na luciferovi ještě není Ubuntu, ale Red Hat. Zkusíme to tedy přímo na clusteru, např. **sol1:** +
- +
-<code>17:42 sol1:/ha/work/people/zeman/zeh/zeman/tectomt/devel/external_code_compilation> gcc -v +
-Using built-in specs. +
-Target: x86_64-linux-gnu +
-Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +
-Thread model: posix +
-gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)</code> +
- +
-Tentokrát test běží bez chyb! +
- +
- +
-===== Instalace ===== +
- +
-Pozor, aby to běželo na clusteru LRC, je potřeba to překládat pro 64bitovou architekturu. V nejhorším případě přímo na clusteru samém.+
  
 Stáhnout aktuální verzi Joshuy: Stáhnout aktuální verzi Joshuy:
  
-<code>setenv JOSHUA_HOME /net/work/people/zeman/joshua +<code>cd $JOSHUA_HOME
-cd $JOSHUA_HOME+
 svn co https://joshua.svn.sourceforge.net/svnroot/joshua/trunk joshua</code> svn co https://joshua.svn.sourceforge.net/svnroot/joshua/trunk joshua</code>
  
-Nastavit důležité proměnné (to by se hodilo přidat do ''.cshrc'' nebo nějakého podobného konfiguračního souboru) a zkontrolovat, že máme nainstalované prerekvizity. Ant je překladač nebo spíš make pro Javu. Swig je nástroj, který umí propojovat kód napsaný v různých jazycích, v tomto případě jde o napojení céčkového SRILM (jazykové modelování) na zbytek Joshuy, který je v Javě. 
- 
-<code>setenv JAVA_HOME /opt/jdk1.6 
-which ant # /usr/bin/ant 
-which swig # /usr/bin/swig 
-setenv SRILM /home/zeman/nastroje/srilm</code> 

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