forked from filipg/gonito
4REAL presentation
This commit is contained in:
parent
92fcae3d12
commit
14005932ce
@ -13,17 +13,39 @@ import Text.Hamlet (hamletFile)
|
|||||||
sampleChallengeName :: Text
|
sampleChallengeName :: Text
|
||||||
sampleChallengeName = "petite-difference-challenge"
|
sampleChallengeName = "petite-difference-challenge"
|
||||||
|
|
||||||
|
sampleChallengeName' :: Text
|
||||||
|
sampleChallengeName' = "retroc"
|
||||||
|
|
||||||
|
|
||||||
|
sampleUserIdent :: Text
|
||||||
|
sampleUserIdent = "ptlen@ceti.pl"
|
||||||
|
|
||||||
getPresentation4RealR :: Handler Html
|
getPresentation4RealR :: Handler Html
|
||||||
getPresentation4RealR = do
|
getPresentation4RealR = do
|
||||||
readme <- challengeReadme sampleChallengeName
|
readme <- challengeReadme sampleChallengeName
|
||||||
|
|
||||||
(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName sampleChallengeName
|
challengeEnt@(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName sampleChallengeName
|
||||||
Just repo <- runDB $ get $ challengePublicRepo challenge
|
|
||||||
(test, leaderboard) <- getLeaderboardEntries challengeId
|
(Just (Entity sampleUserId _)) <- runDB $ getBy $ UniqueUser sampleUserIdent
|
||||||
let leaderboardWithRanks = zip [1..] leaderboard
|
let condition = (\(Entity _ submission) -> (submissionSubmitter submission == sampleUserId))
|
||||||
|
(evaluationMaps', tests) <- getChallengeSubmissionInfos condition challengeId
|
||||||
|
let evaluationMaps = take 10 evaluationMaps'
|
||||||
|
|
||||||
|
sampleLeaderboard <- getSampleLeaderboard sampleChallengeName
|
||||||
|
sampleLeaderboard' <- getSampleLeaderboard sampleChallengeName'
|
||||||
|
|
||||||
presentationLayout $(widgetFile "presentation-4real")
|
presentationLayout $(widgetFile "presentation-4real")
|
||||||
|
|
||||||
|
|
||||||
|
getSampleLeaderboard name = do
|
||||||
|
challengeEnt@(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName sampleChallengeName
|
||||||
|
|
||||||
|
Just repo <- runDB $ get $ challengePublicRepo challenge
|
||||||
|
(test, leaderboard) <- getLeaderboardEntries challengeId
|
||||||
|
let leaderboardWithRanks = zip [1..] (take 10 leaderboard)
|
||||||
|
|
||||||
|
return $ Table.buildBootstrap (leaderboardTable Nothing (challengeName challenge) test) leaderboardWithRanks
|
||||||
|
|
||||||
presentationLayout widget = do
|
presentationLayout widget = do
|
||||||
master <- getYesod
|
master <- getYesod
|
||||||
mmsg <- getMessage
|
mmsg <- getMessage
|
||||||
|
@ -59,6 +59,10 @@ h2 {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
/* HTML5 display-role reset for older browsers */
|
/* HTML5 display-role reset for older browsers */
|
||||||
article, aside, details, figcaption, figure,
|
article, aside, details, figcaption, figure,
|
||||||
footer, header, hgroup, menu, nav, section {
|
footer, header, hgroup, menu, nav, section {
|
||||||
@ -704,3 +708,7 @@ a:focus {
|
|||||||
Thanks for reading. I hope you enjoyed it at least as much as I enjoyed writing it
|
Thanks for reading. I hope you enjoyed it at least as much as I enjoyed writing it
|
||||||
for you.
|
for you.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.readme {
|
||||||
|
line-height: 130%;
|
||||||
|
}
|
||||||
|
@ -1,20 +1,23 @@
|
|||||||
<div id="title" class="step slide" data-x="0" data-y="-1500">
|
<script src="/static/js/sigma.min.js">
|
||||||
<h2>Gonito.net
|
<script src="/static/js/sigma.parsers.json.min.js">
|
||||||
<p>open platform for research competition, cooperation and reproducibility
|
|
||||||
<p>Filip Graliński, Rafał Jaworski, Łukasz Borchmann, Piotr Wierzchoń
|
|
||||||
<p>LREC 2016 / 4REAL Workshop
|
|
||||||
|
|
||||||
<div class="step slide" data-x="0" data-y="0">
|
<div id="title" class="step" data-x="0" data-y="-1500">
|
||||||
|
<h1>Gonito.net
|
||||||
|
<p>open platform for research competition, cooperation and reproducibility
|
||||||
|
<p class="footnote">Filip Graliński, Rafał Jaworski,<br/>Łukasz Borchmann, Piotr Wierzchoń
|
||||||
|
<p class="footnote">LREC 2016 / 4REAL Workshop
|
||||||
|
|
||||||
|
<div class="step slide" data-x="0" data-y="-500">
|
||||||
<h2>Motivation
|
<h2>Motivation
|
||||||
<ul>
|
<ul>
|
||||||
<li>We needed a place to keep track of our results for
|
<li>We needed a place to keep track of our results for:
|
||||||
<ul>
|
<ul>
|
||||||
<li>our research
|
<li>our research
|
||||||
<li>teaching our students
|
<li>teaching our students
|
||||||
<li>just playing with our data sets
|
<li>just playing with our data sets
|
||||||
<li>(but didn't want to save the world and earn $$$)
|
<li>(but didn't want to save the world and earn $$$)
|
||||||
|
|
||||||
<div class="step slide" data-x="0" data-y="1500">
|
<div class="step slide" data-x="0" data-y="500">
|
||||||
<h2>Alternatives?
|
<h2>Alternatives?
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://www.kaggle.com">Kaggle</a>
|
<li><a href="https://www.kaggle.com">Kaggle</a>
|
||||||
@ -27,11 +30,11 @@
|
|||||||
<li>more or less similar to Kaggle</li>
|
<li>more or less similar to Kaggle</li>
|
||||||
<li><a href="https://codalab.org">CodaLab</a>
|
<li><a href="https://codalab.org">CodaLab</a>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>trying hard but hadn't found it ☹
|
||||||
<li>open!
|
<li>open!
|
||||||
<li>trying hard but didn't find it ☹
|
|
||||||
<li>no git
|
<li>no git
|
||||||
|
|
||||||
<div class="step slide" data-x="1000" data-y="1500">
|
<div class="step slide" data-x="1000" data-y="500">
|
||||||
<p>That's why we created
|
<p>That's why we created
|
||||||
<h1>Gonito.net
|
<h1>Gonito.net
|
||||||
<p>open platform for machine learning competition
|
<p>open platform for machine learning competition
|
||||||
@ -49,7 +52,7 @@
|
|||||||
<li>Solutions can be forked and reused
|
<li>Solutions can be forked and reused
|
||||||
<li>Even if a Gonito.net ceases to exist, Git repos may live
|
<li>Even if a Gonito.net ceases to exist, Git repos may live
|
||||||
|
|
||||||
<div class="step slide" data-x="2000" data-y="1500">
|
<div class="step slide" data-x="2000" data-y="500">
|
||||||
<p>… and
|
<p>… and
|
||||||
<h1>GEval
|
<h1>GEval
|
||||||
<p>companion Haskell library and stand-alone tool for machine learning evaluation
|
<p>companion Haskell library and stand-alone tool for machine learning evaluation
|
||||||
@ -59,13 +62,115 @@
|
|||||||
<li>BLEU
|
<li>BLEU
|
||||||
<li>… more to come
|
<li>… more to come
|
||||||
|
|
||||||
<div class="step slide" data-x="1000" data-y="3000">
|
<div class="step slide" style="height: 800px;" data-x="1000" data-y="1500">
|
||||||
<h2>A challenge…
|
<h2>A challenge…
|
||||||
<div style="font-size: 50%">
|
<div style="font-size: 50%" class="readme">
|
||||||
^{readme}
|
^{readme}
|
||||||
|
|
||||||
<div class="step slide" data-x="1000" data-y="4000">
|
<div class="step slide" data-x="2000" data-y="2000">
|
||||||
|
<h2>Install GEval
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
git clone git://gonito.net/geval
|
||||||
|
cd geval
|
||||||
|
stack setup
|
||||||
|
stack install
|
||||||
|
# add ~/.local/bin to $PATH
|
||||||
|
|
||||||
|
<div class="step slide" style="height: 800px;" data-x="1000" data-y="2500">
|
||||||
<h2>Current status…
|
<h2>Current status…
|
||||||
|
|
||||||
<div style="font-size: 50%">
|
<div style="font-size: 50%">
|
||||||
^{Table.buildBootstrap (leaderboardTable Nothing (challengeName challenge) test) leaderboardWithRanks}
|
^{sampleLeaderboard}
|
||||||
|
|
||||||
|
<div class="step slide" data-x="2000" data-y="3000">
|
||||||
|
<h2>How to replicate the best result?
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Let's assume you know Git commit hash
|
||||||
|
<ul>
|
||||||
|
<li>(e.g. you found it in the paper)
|
||||||
|
<li>see the submission number at http://gonito.net/q/db43f2
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
git clone git://gonito.net/petite-difference-challenge -b submission-00115
|
||||||
|
cd petite-difference-challenge
|
||||||
|
make clean
|
||||||
|
make
|
||||||
|
geval --test-name dev-0
|
||||||
|
|
||||||
|
<div class="step slide" data-x="2000" data-y="4000">
|
||||||
|
<h2>I wanna do something better
|
||||||
|
|
||||||
|
<p>Sign up, add SSH key etc.
|
||||||
|
|
||||||
|
<p>Clone the repo:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
git clone ssh://gitolite@gonito.net/john/petite-difference-challenge
|
||||||
|
cd petite-difference-challenge
|
||||||
|
git pull ssh://gitolite@gonito.net/petite-difference-challenge
|
||||||
|
git push origin master
|
||||||
|
cd petite-difference-challenge
|
||||||
|
|
||||||
|
<p>Work on your solution and check locally:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
geval --test-name dev-0
|
||||||
|
|
||||||
|
<p>Push your brilliant solution:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
git add dev-0/out.tsv test-A/out.tsv # ...
|
||||||
|
git commit -m 'my brilliant solution'
|
||||||
|
git push origin master
|
||||||
|
|
||||||
|
<p>… and let Gonito.net know about your submission (or configure a Git hook)
|
||||||
|
|
||||||
|
<div class="step slide" style="height: 800px;" data-x="1000" data-y="4500">
|
||||||
|
<h2>… and see your results
|
||||||
|
|
||||||
|
<div style="font-size: 50%">
|
||||||
|
^{Table.buildBootstrap (submissionsTable Nothing (challengeName challenge) tests) evaluationMaps}
|
||||||
|
|
||||||
|
<div class="step slide" data-x="2000" data-y="5000">
|
||||||
|
<h2>Be open!</h2>
|
||||||
|
|
||||||
|
<p>You can open <span class="glyphicon glyphicon-share"></span> your submission so that everybody could see it
|
||||||
|
|
||||||
|
<p>… and you fork somebody else's submission <span class="glyphicon glyphicon-folder-open"></span> and build on it
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
git clone ssh://gitolite@gonito.net/john/petite-difference-challenge
|
||||||
|
cd petite-difference-challenge
|
||||||
|
git fetch ssh://gitolite@gonito.net/petite-difference-challenge submission-00115
|
||||||
|
git reset --hard FETCH_HEAD
|
||||||
|
|
||||||
|
<div class="step slide" data-x="1000" data-y="5500">
|
||||||
|
<h2>Who forked and submitted what and when?
|
||||||
|
|
||||||
|
<div id="graph-container">
|
||||||
|
|
||||||
|
<div class="step slide" style="height: 800px;" data-x="1000" data-y="6500">
|
||||||
|
<h2>Yet another challenge
|
||||||
|
|
||||||
|
<div style="font-size: 50%">
|
||||||
|
^{sampleLeaderboard'}
|
||||||
|
|
||||||
|
<div class="step slide" data-x="0" data-y="7000">
|
||||||
|
<h2>Future?
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>works for us!
|
||||||
|
<ul>
|
||||||
|
<li>as an auxiliary teaching tool
|
||||||
|
<li>for keeping track of our research
|
||||||
|
<li>when writing a paper in a team
|
||||||
|
<li>why not for other people?
|
||||||
|
<ul>
|
||||||
|
<li>for organizing shared tasks
|
||||||
|
<li>for tracking effort of a research community in a longer-term perspective
|
||||||
|
<li>TODOs
|
||||||
|
<ul>
|
||||||
|
<li>Git annex for storing models
|
||||||
|
<li>?
|
||||||
|
6
templates/presentation-4real.julius
Normal file
6
templates/presentation-4real.julius
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
sigma.parsers.json("@{ChallengeGraphDataR $ challengeName challenge}", {
|
||||||
|
container: 'graph-container',
|
||||||
|
settings: {
|
||||||
|
defaultNodeColor: '#ec5148'
|
||||||
|
}
|
||||||
|
});
|
@ -11,7 +11,11 @@ $newline never
|
|||||||
<meta name="viewport" content="width=1024" />
|
<meta name="viewport" content="width=1024" />
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
|
||||||
<link href="http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic" rel="stylesheet" />
|
<link href="http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic" rel="stylesheet" />
|
||||||
|
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js">
|
||||||
|
<script src="/static/js/jquery.js" type="text/javascript">
|
||||||
|
|
||||||
|
|
||||||
<link href="/static/css/impress-demo.css" rel="stylesheet" />
|
<link href="/static/css/impress-demo.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user