[ 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

Next revision
Previous revision
Next revision Both sides next revision
user:zeman:joshua [2009/06/01 16:42]
zeman vytvořeno
user:zeman:joshua [2009/06/01 23:40]
zeman Pro dnešek to stačilo.
Line 1: Line 1:
 ====== Joshua ====== ====== Joshua ======
  
-Toto jsou Danovy poznámky k práci s hierarchickým překladovým dekodérem Joshuou (reimplementace Hiera (David Chiang) v Javě od lidí z JHU).+Toto jsou Danovy poznámky k práci s hierarchickým překladovým dekodérem Joshuou (reimplementace Hiera (David Chiang) v Javě od lidí z JHU (Zhifei Li)).
  
 Zdroje informací: Zdroje informací:
   * Soubory ''INSTALL'' a ''README'' přímo v balíčku s Joshuou.   * Soubory ''INSTALL'' a ''README'' přímo v balíčku s Joshuou.
 +  * http://www.clsp.jhu.edu/wiki2/JosHUa_-_JHU_Open_Source_Architecture - wiki Joshuy na JHU, jenže jak sami říkají, zastaralá
 +  * http://www.clsp.jhu.edu/wiki2/Joshua_Lab - cvičení s Joshuou na JHU, všechno už mají nainstalováno, ale u nich. Nicméně z toho vyplývá, že to pouštějí na clusteru 64bitových strojů (dokonce něco mají zkompilováno pro ně a nepoběží to jinde) se Sun Grid Engine
 +  * http://sourceforge.net/projects/joshua - download (ale viz též níže), jinak toho tu moc není
  
 ===== Instalace ===== ===== Instalace =====
  
-Pozoraby to běželo na clusteru LRC, je potřeba to překládat pro 64bitovou architekturuV nejhorším případě přímo na clusteru samém.+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ích, v tomto případě Joshuy (Java) na SRILM (céčko). Máme ho v ''/usr/bin/swig'' 
 +  * [[SRILM]]: nástroj Andrease Stolckeho na trénování a používání jazykových modelů, běžně používaný se strojovými překladačijako je Pharaoh, Hiero, Moses, Joshua. Máme nainstalováno nejspíš mnohokrát, v podstatě si každý instaluje svou kopii. Podrobnosti o instalaci viz odkaz na začátku tohoto bodu. Pozor, aby instalace fungovala na stroji (architektuře), na kterém chceme překládat (podrobnosti viz tamtéž). 
 + 
 +Nastavit důležité proměnné (to by se hodilo idat do ''.cshrc'' nebo nějakého podobného konfiguračního souboru). 
 + 
 +<code>setenv JAVA_HOME /opt/jdk1.
 +setenv SRILM /home/zeman/nastroje/srilm 
 +setenv JOSHUA_HOME /net/work/people/zeman/joshua</code>
  
 Stáhnout aktuální verzi Joshuy: Stáhnout aktuální verzi Joshuy:
  
-<code>cd /net/work/people/zeman/joshua+<code>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 idat do ''.cshrc'' nebo nějakého podobného konfiguračního souboru) a zkontrolovat, že máme nainstalované prerekvizityAnt je ekladač nebo spíš make pro JavuSwig je nástroj, který umí propojovat kód napsaný v různých jazycíchv tomto ípadě jde o napojení céčkového SRILM (jazykové modelovánína zbytek Joshuy, který je v Javě.+Přeložit Joshuu: 
 + 
 +<code>cd $JOSHUA_HOME 
 +ant compile</code> 
 + 
 +Kdyby bylo potřeba v budoucnosti překompilovat Joshuu načisto, již zkompilované moduly se dají odstranit pomocí 
 + 
 +<code>ant clean</code> 
 + 
 +Otestujeme, že je Joshua funkční: 
 + 
 +<code>ant test 
 +./example/decode_example_javalm.sh 
 +./example/decode_example_srilm.sh</code> 
 + 
 +Joshuu jsem ekládal na zenuTeď je ještě potřeba otestovat, že funguje i na clusteru, třeba na počítači sol1A ejhle, na 64 bitech estala fungovat spolupráce se SRILM. 
 + 
 +<code>21:35 sol1:/ha/work/people/zeman/joshua> ./example/decode_example_srilm.sh 
 +Jun 1, 2009 9:35:43 PM joshua.decoder.JoshuaConfiguration readConfigFile 
 +INFO: you use a LM feature function, so make sure you have a LM grammar 
 +Exception in thread "main" java.lang.UnsatisfiedLinkError: /ha/work/people/zeman/joshua/lib/libsrilm.so: /ha/work/people/zeman/joshua/lib/libsrilm.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) 
 +        at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
 +        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1767) 
 +        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1692) 
 +        at java.lang.Runtime.loadLibrary0(Runtime.java:840) 
 +        at java.lang.System.loadLibrary(System.java:1047) 
 +        at joshua.corpus.vocab.SrilmSymbol.<init>(SrilmSymbol.java:46) 
 +        at joshua.decoder.JoshuaDecoder.initializeSymbolTable(JoshuaDecoder.java:322) 
 +        at joshua.decoder.JoshuaDecoder.initialize(JoshuaDecoder.java:259) 
 +        at joshua.decoder.JoshuaDecoder.<init>(JoshuaDecoder.java:108) 
 +        at joshua.decoder.JoshuaDecoder.main(JoshuaDecoder.java:684)</code> 
 + 
 +Přestože SRILM, který nebyl přeložen na 64 bitechběží jak na 32, tak na 64 bitech, s Joshuou na 64 bitech spolupracovat neumí (na 32 ano). Nepomůže ani když eklad Joshuy pustím až na 64 bitech (při spolupráci s 32bitovým SRILM). 
 + 
 +**Nicméně se zdá, že pomohlo následující:** 
 +  * Nalogoval jsem se na sol1 (aby kompilace probíhala na clusterové 64bitové architektuře). 
 +  * Upravil jsem $SRILM/sbin/machine-type tak, aby vracel i686-m64 (teď byl upravený, aby i zde dával jen i686)
 +  * Vlezl jsem do $SRILM/common/Makefile.machine.i686-m64. TCL proměnné tam byly v pořádku, ale přidal jsem do voleb překladu (ADDITIONAL_CFLAGS i ADDITIONAL_CXXFLAGS) volbu -fPIC. Pokud by se to přeložilo bez ní, knihovny SRILM by pak nešly slinkovat přes Swig s Joshuou. 
 +  * make clean, pak make World 
 +  * Vrátil jsem se do $JOSHUA_HOME a pustil ant clean, pak ant compile, nakonec ant test a hlavně ten ./example/decode_example_srilm.sh. 
 + 
 +==== Cluster ==== 
 + 
 +Ke spuštění Joshuy na clusteru se hodí např. Ondrova obálka (nebo i ta moje vlastníale tu bych neměl nutit např. Gauravovi, když jako jeden z mála pořád pracuju s tcsh). 
 + 
 +<code>kinit 
 +ssh lrc-two 
 +cd $JOSHUA_HOME 
 +~bojar/tools/shell/qsubmit ./example/decode_example_srilm.sh 
 +qstat -u '*'</code> 
 + 
 +===== Použití ===== 
 + 
 +Joshua je nainstalován a funguje. Nyní se musíme naučit, jak ho trénovat a jak ho použít k překladu.
  
-<code>setenv JAVA_HOME /opt/jdk1.6 
-which ant # /usr/bin/ant 
-which swig # /usr/bin/swig 
-# install SRILM</code> 

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