[ 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
user:zeman:malt-parser [2013/07/11 18:41]
zeman Aktualizace úkolů.
user:zeman:malt-parser [2013/07/11 22:15] (current)
zeman Odstraněn záznam o ladění před 3 lety.
Line 5: Line 5:
 Od května 2012 používám Malt Parser 1.7.1 z ''/home/zeman/nastroje/parsery/maltparser-1.7.1''. Od května 2012 používám Malt Parser 1.7.1 z ''/home/zeman/nastroje/parsery/maltparser-1.7.1''.
  
-Podle Joakima trénování na celém PDT trvá 3 až 5 dní, a to ještě jen při použití splitting triku (bez něj několik týdnů). Trénování SVM má kvadratickou složitost vzhledem k počtu trénovacích příkladů; těch z PDT vypadnou asi 3 milióny. (S Joakimem jsem se o tom bavil na jaře 2010 a šlo o Malt Parser 1.3.)+Podle Joakima trénování na celém PDT trvá 3 až 5 dní, a to ještě jen při použití splitting tricku (bez něj několik týdnů). Trénování SVM má kvadratickou složitost vzhledem k počtu trénovacích příkladů; těch z PDT vypadnou asi 3 milióny. (S Joakimem jsem se o tom bavil na jaře 2010 a šlo o Malt Parser 1.3. Tehdy jsem také zkoušel trénovat bez splitting tricku. Jeden experiment běžel i 60 dní, řada experimentů ale vůbec nedoběhla, protože jejich stroj cestou chcípnul.)
  
 Celá trénovací data mají 68562 vět (někde mám chybně uvedeno 68563 kvůli nejasnostem s počítáním od nuly a od jedničky, ale teď jsem to kontroloval a dvojím způsobem přepočítával prázdné řádky v souboru ''dtrain.conll'' a je to opravdu 68562). Testování je vždy, když není řečeno jinak, na celém dtestu, tedy 9270 vět. Tam, kde je explicitně uvedeno testování na etestu, jde o 10148 vět; v tom případě pak trénuju na sjednocení trénovacích a d-test dat, celkem 77832 vět. Celá trénovací data mají 68562 vět (někde mám chybně uvedeno 68563 kvůli nejasnostem s počítáním od nuly a od jedničky, ale teď jsem to kontroloval a dvojím způsobem přepočítával prázdné řádky v souboru ''dtrain.conll'' a je to opravdu 68562). Testování je vždy, když není řečeno jinak, na celém dtestu, tedy 9270 vět. Tam, kde je explicitně uvedeno testování na etestu, jde o 10148 vět; v tom případě pak trénuju na sjednocení trénovacích a d-test dat, celkem 77832 vět.
Line 26: Line 26:
 ===== Nové výsledky s Malt Parserem 1.7 ===== ===== Nové výsledky s Malt Parserem 1.7 =====
  
-Měl jsem dva cíle: 1. Natrénovat nové modely, protože ty staré nejsou kompatibilní s novou verzí parseru, a 2. získat výsledky na e-testu, protože dosud jsem pracoval jen s d-testem. I když jsem novou verzi parseru pouštěl se stejnými parametry jako před třemi lety tu starou, dostal jsem jiné výsledky (nepatrně horší).+Experimenty probíhaly v červnu 2013. Měl jsem dva cíle: 1. Natrénovat nové modely, protože ty staré nejsou kompatibilní s novou verzí parseru, a 2. získat výsledky na e-testu, protože dosud jsem pracoval jen s d-testem. I když jsem novou verzi parseru pouštěl se stejnými parametry jako před třemi lety tu starou, dostal jsem jiné výsledky (nepatrně horší).
  
 D-test (9270 vět): D-test (9270 vět):
Line 44: Line 44:
 parsing time = 9 hodin (34135285 ms), tj. 1 věta průměrně za 3,36 s parsing time = 9 hodin (34135285 ms), tj. 1 věta průměrně za 3,36 s
  
-===== BEST: Javová implementace libsvm, splitting trick =====+===== BEST: Malt parser 1.3, javová implementace libsvm, splitting trick =====
  
-Vyžaduje více času a paměti než céčková implementace, ale nepadá. Podle dokumentace může dojít i k drobným odchylkám v úspěšnosti způsobeným odlišným zpracováním racionálních čísel.+Vyžaduje více času a paměti než céčková implementace, ale nepadá. Podle dokumentace může dojít i k drobným odchylkám v úspěšnosti způsobeným odlišným zpracováním racionálních čísel. Tato sada pokusů používala splitting trick, jinak by trénování v rozumném čase nedoběhlo. Dole mám ještě jednu, u které si nejsem jist, čím přesně se její nastavení liší. Zdůrazňuje právě splitting trick. Protože rozdíl nemůže tkvět v tom, zda vůbec byl splitting trick nasazen, bude pravděpodobně v tom, podle jaké hodnoty se dělilo. Předpokládám, že tady to byl slovní druh, zatímco tam (jak se tam i říká) poddruh.
  
 | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum |
Line 65: Line 65:
 | 68563 | 1177906, 1305554 | 10 dní 4:40 h | 46999 s = 13:03 h | 1 věta / 5,07 s | **86,08 %** | 27.4.-14.5.2010 | | 68563 | 1177906, 1305554 | 10 dní 4:40 h | 46999 s = 13:03 h | 1 věta / 5,07 s | **86,08 %** | 27.4.-14.5.2010 |
  
-Tohle je nejlepší výsledek, jaký jsem zatím Malt parserem dosáhl, ale se splitting trickem (viz níže) je to téměř stejné a ušetří se dva dny času.+===== Trénování větších modelů čkovou implementací libsvm padá =====
  
-===== Bez splitting tricku ===== +//Malt Parser 1.3 jsem nedokázal použít s céčkovou implementací libsvmkterá má být sice rychlejšíale mně náhodně padala. Postupně jsem od ní zcela upustil a používám pomalejšíale bezpečnější Javovou implementaciPřesto tady zatím nechávám tuhle kapitolu, protože odkrývá některé detaily o Malt Parseru (které by snad mohly platit v současné verzi).//
- +
-Trénování bez "splitting tricku" na celých trénovacích datechTestování je vždy na celém dtestutedy 9270 vět. +
- +
-| Algoritmus | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | +
-| nivreeager | 24 dní 17 hodin 13 minut (2135575 s) | 180062 s (50:01 hodin) | 1 věta / 19,4 s | 80,73 % | +
-| nivrestandard | 32 dní 16 hodin 47 minut (2825227 s) | 225021 s (62:30 hodin) | 1 věta / 24,3 s | 79,98 % | +
-| covproj | 60 dní 15 hodin 28 minut (5239706 s) | 348001 s (96:40 hodin) | 1 věta / 37,5 s | 79,69 % | +
-| covnonproj | Skončilo restartem fireball6 někdy v lednu nebo únoru 2010. V ''/tmp'' bohužel nezůstala po výpočtu žádná stopa. | | | | +
-| stackproj | 42 dní 12 hodin 55 minut (3675303 s) | 183676 s (51:01 hodin) | 1 věta / 19,8 s | 78,49 % | +
-| stacklazy | Skončilo chybou Java VM (''memcpy'') po 36 dnech 14 hodinách 21 minutách | | | | +
-| stackeager | 39 dní 11 hodin 38 minut (3375472 s) | 227927 s (63:19 hodin) | 1 věta / 24,6 s | 82,93 % | +
- +
-===== Nastavení od Švédů ===== +
- +
-26.3.2010 po měsíci další pokus pustit to na datech upravených stejným způsobem a se stejnými rysy jako Joakim a Marco. +
- +
-<code>foreach i (1000 2000 5000 10000 20000 50000) +
-  $PARSINGROOT/malt-parser/marco-kuhlmann-czech-settings/conll-pdttags2conll.pl < dtrain-$i.conll > dtrain-$i.conll2009tags.conll +
-end +
-foreach i (dtrain dtest) +
-  $PARSINGROOT/malt-parser/marco-kuhlmann-czech-settings/conll-pdttags2conll.pl < $i.conll > $i.conll2009tags.conll +
-end +
-foreach i (25000 30000 35000 40000 45000 55000 60000 65000) +
-  split_conll.pl < dtrain.conll2009tags.conll -head $i dtrain-$i.conll2009tags.conll /dev/null +
-end</code> +
- +
-Učení: +
- +
-<code>qsub.csh mf=31g $PARSINGROOT/malt-parser/scripts/train.pl '<' dtrain-1000.conll2009tags.conll1 '>' d.pokus1000-30g-clibsvm.mco</code> +
- +
-Rozbor: +
- +
-<code>qsub.csh mf=31g $PARSINGROOT/malt-parser/scripts/parse.pl -g d.pokus1000-30g-clibsvm.mco '<' dtest.conll2009tags.conll '>' dtest.malt-pokus1000-30g-clibsvm.conll</code> +
- +
-Vyhodnocení: +
- +
-<code>$PARSINGROOT/tools/conll-eval07.pl -g dtest.conll2009tags.conll -s dtest.malt-pokus1000-30g-clibsvm.conll > dtest.malt-pokus1000-30g-clibsvm.eval.txt</code> +
- +
-===== Trénování větších modelů s céčkovou implementací libsvm padá =====+
  
 Chybu hlásí ''sdm0.004.libsvm.mod'', což je dílčí model pro hodnotu ''CPOSTAG'' číslo 4. Značky jsou číslovány podle pořadí, v&nbsp;jakém se v&nbsp;trénovacích datech objevily. Pokud tedy všechny podmnožiny trénovacích dat, které zkouším, začínají na začátku trénovacích dat, mají číslování značek stejné. Číslování je také možné ověřit tak, že rozbalíme model, vznikne stejnojmenná složka, v&nbsp;ní se pak podíváme do souboru ''symboltables.sym'' na část ''CPOSTAG'': Chybu hlásí ''sdm0.004.libsvm.mod'', což je dílčí model pro hodnotu ''CPOSTAG'' číslo 4. Značky jsou číslovány podle pořadí, v&nbsp;jakém se v&nbsp;trénovacích datech objevily. Pokud tedy všechny podmnožiny trénovacích dat, které zkouším, začínají na začátku trénovacích dat, mají číslování značek stejné. Číslování je také možné ověřit tak, že rozbalíme model, vznikne stejnojmenná složka, v&nbsp;ní se pak podíváme do souboru ''symboltables.sym'' na část ''CPOSTAG'':
Line 117: Line 78:
  
 Joakim navrhuje, abychom zkusili dělení zjemnit, např. místo CPOSTAGu dělit modely podle slovního poddruhu (druhá pozice české značky). Pak by dílčí modely byly menší a libsvm by třeba nespadlo. Ve skutečnosti budu asi muset zjemňovat jiným způsobem, protože právě u podstatných jmen žádné zvláštní dělení na poddruhy neexistuje. Mohly by ale pomoct pády. Joakim navrhuje, abychom zkusili dělení zjemnit, např. místo CPOSTAGu dělit modely podle slovního poddruhu (druhá pozice české značky). Pak by dílčí modely byly menší a libsvm by třeba nespadlo. Ve skutečnosti budu asi muset zjemňovat jiným způsobem, protože právě u podstatných jmen žádné zvláštní dělení na poddruhy neexistuje. Mohly by ale pomoct pády.
- 
-===== Trénovací data rozsekaná na pětitisícové úseky ===== 
- 
-| N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Poznámka | 
-| 00000-04999 | 1032102 | | | | | Nevysvětlitelná náhlá smrt během trénování. | 
-| 05000-09999 | 1032103 | 24:24 min | | | 80,59 % | | 
-| 10000-14999 | 1032104 | 31:56 min | | | 80,23 % | | 
-| 15000-19999 | 1032116 | 30:27 min | | | 80,52 % | | 
-| 20000-24999 | 1032106 | 21:35 min | | | 80,45 % | | 
-| 25000-29999 | 1032107 | | | | | Nevysvětlitelná náhlá smrt během trénování. | 
-| 30000-34999 | 1032108 | 28:30 min | | | 80,48 % | | 
-| 35000-39999 | 1032109 | | | | | Nevysvětlitelná náhlá smrt během trénování. | 
-| 40000-44999 | 1032110 | 19:17 min | | | 80,51 % | | 
-| 45000-49999 | 1032111 | 22:54 min | | | 80,62 % | | 
-| 50000-54999 | 1032112 | 22:31 min | | | 80,58 % | | 
-| 55000-59999 | 1032113 | | | | | Nevysvětlitelná náhlá smrt během trénování. | 
-| 60000-64999 | 1032114 | | | | | Nevysvětlitelná náhlá smrt během trénování. | 
-| 65000-68562 | 1032115 | 12:43 min | | | 79,69 % | | 
  
 ===== Splitting trick podle slovního poddruhu, jlibsvm ===== ===== Splitting trick podle slovního poddruhu, jlibsvm =====
Line 158: Line 101:
  
 ===== Stackeager, java libsvm, švédské rysy ===== ===== Stackeager, java libsvm, švédské rysy =====
- 
-<code>job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
------------------------------------------------------------------------------------------------------------------ 
-1473932 0.55500 malt02000. zeman        r     06/02/2010 10:15:02 all.q@tauri5.ufal.hide.ms.mff.     1 
-1473933 0.55500 malt05000. zeman        r     06/02/2010 10:16:17 all.q@tauri9.ufal.hide.ms.mff.     1 
-1473934 0.55500 malt10000. zeman        r     06/02/2010 10:18:17 all.q@tauri2.ufal.hide.ms.mff.     1 
-1473935 0.55500 mert.31733 zeman        r     06/02/2010 10:19:32 all.q@sol3.ufal.hide.ms.mff.cu     1 
-1473956 0.55500 malt20000. zeman        r     06/02/2010 10:20:17 all.q@fireball4.ufal.hide.ms.m     1 
-1473957 0.55500 malt25000. zeman        r     06/02/2010 10:22:17 all.q@tauri10.ufal.hide.ms.mff     1 
-1473958 0.55500 malt30000. zeman        r     06/02/2010 10:24:17 all.q@orion9.ufal.hide.ms.mff.     1 
-1473982 0.55500 malt35000. zeman        r     06/02/2010 10:26:17 all.q@tauri3.ufal.hide.ms.mff.     1 
-1473983 0.55500 malt40000. zeman        r     06/02/2010 10:28:17 all.q@orion8.ufal.hide.ms.mff.     1 
-1473984 0.55500 malt45000. zeman        r     06/02/2010 10:30:17 all.q@orion3.ufal.hide.ms.mff.     1 
-1474005 0.55500 malt50000. zeman        r     06/02/2010 10:32:17 all.q@fireball8.ufal.hide.ms.m     1 
-1474009 0.55500 malt55000. zeman        r     06/02/2010 10:34:17 all.q@orion1.ufal.hide.ms.mff.     1 
-1474010 0.55500 malt60000. zeman        r     06/02/2010 10:36:17 all.q@orion4.ufal.hide.ms.mff.     1 
-1474011 0.55500 malt65000. zeman        r     06/02/2010 10:38:17 all.q@fireball3.ufal.hide.ms.m     1 
-1474032 0.55500 malt-full. zeman        r     06/02/2010 10:40:17 all.q@fireball2.ufal.hide.ms.m     1 
-1474041 0.45734 pardec.03. zeman        r     06/02/2010 10:41:47 all.q@tauri1.ufal.hide.ms.mff.     1 
-10:42 lrc-two:/ha/work/people/zeman/parsing/projects/maltpdt/uppsala-features/stackeager> 
-</code> 
  
 | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka |
Line 197: Line 119:
  
 ===== Stackproj, java libsvm, švédské rysy ===== ===== Stackproj, java libsvm, švédské rysy =====
- 
-<code>Log *.o1474105 má 74 malt01000.9528.csh.o1474105 řádků, takže snad úloha doběhla úspěšně. 
-Všechny úlohy se úspěšně rozeběhly. 
-job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
------------------------------------------------------------------------------------------------------------------ 
-1474106 0.55500 malt02000. zeman        r     06/07/2010 10:39:08 all.q@tauri6.ufal.hide.ms.mff.     1 
-1474107 0.55500 malt05000. zeman        r     06/07/2010 10:41:08 all.q@tauri4.ufal.hide.ms.mff.     1 
-1474108 0.55500 malt10000. zeman        r     06/07/2010 10:43:08 all.q@tauri8.ufal.hide.ms.mff.     1 
-1474109 0.55500 malt20000. zeman        r     06/07/2010 10:45:08 all.q@tauri7.ufal.hide.ms.mff.     1 
-1474110 0.55500 malt25000. zeman        r     06/07/2010 10:47:08 all.q@tauri1.ufal.hide.ms.mff.     1 
-1474111 0.55500 malt30000. zeman        r     06/07/2010 10:49:08 all.q@fireball6.ufal.hide.ms.m     1 
-1474112 0.55500 malt35000. zeman        r     06/07/2010 10:51:08 all.q@fireball1.ufal.hide.ms.m     1 
-1474113 0.55500 malt40000. zeman        r     06/07/2010 10:53:08 all.q@orion6.ufal.hide.ms.mff.     1 
-1474114 0.55500 malt45000. zeman        r     06/07/2010 10:55:08 all.q@orion2.ufal.hide.ms.mff.     1 
-1474115 0.55500 malt50000. zeman        r     06/07/2010 10:57:08 all.q@orion10.ufal.hide.ms.mff     1 
-1474116 0.55500 malt55000. zeman        r     06/07/2010 10:59:08 all.q@fireball10.ufal.hide.ms.     1 
-1474117 0.55500 malt60000. zeman        r     06/07/2010 11:01:08 all.q@fireball7.ufal.hide.ms.m     1 
-1474118 0.55500 malt65000. zeman        r     06/07/2010 11:03:08 all.q@orion7.ufal.hide.ms.mff.     1 
-1474119 0.55500 malt-full. zeman        r     06/07/2010 11:05:08 all.q@fireball9.ufal.hide.ms.m     1 
-</code> 
  
 | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka | | N | Úloha | Délka trénování | Délka parsingu | Rychlost parsingu | Úspěšnost | Datum | Poznámka |

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