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 = "petite-difference-challenge"
|
||||
|
||||
sampleChallengeName' :: Text
|
||||
sampleChallengeName' = "retroc"
|
||||
|
||||
|
||||
sampleUserIdent :: Text
|
||||
sampleUserIdent = "ptlen@ceti.pl"
|
||||
|
||||
getPresentation4RealR :: Handler Html
|
||||
getPresentation4RealR = do
|
||||
readme <- challengeReadme sampleChallengeName
|
||||
|
||||
(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName sampleChallengeName
|
||||
Just repo <- runDB $ get $ challengePublicRepo challenge
|
||||
(test, leaderboard) <- getLeaderboardEntries challengeId
|
||||
let leaderboardWithRanks = zip [1..] leaderboard
|
||||
challengeEnt@(Entity challengeId challenge) <- runDB $ getBy404 $ UniqueName sampleChallengeName
|
||||
|
||||
(Just (Entity sampleUserId _)) <- runDB $ getBy $ UniqueUser sampleUserIdent
|
||||
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")
|
||||
|
||||
|
||||
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
|
||||
master <- getYesod
|
||||
mmsg <- getMessage
|
||||
|
@ -59,6 +59,10 @@ h2 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
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
|
||||
for you.
|
||||
*/
|
||||
|
||||
.readme {
|
||||
line-height: 130%;
|
||||
}
|
||||
|
@ -1,20 +1,23 @@
|
||||
<div id="title" class="step slide" data-x="0" data-y="-1500">
|
||||
<h2>Gonito.net
|
||||
<p>open platform for research competition, cooperation and reproducibility
|
||||
<p>Filip Graliński, Rafał Jaworski, Łukasz Borchmann, Piotr Wierzchoń
|
||||
<p>LREC 2016 / 4REAL Workshop
|
||||
<script src="/static/js/sigma.min.js">
|
||||
<script src="/static/js/sigma.parsers.json.min.js">
|
||||
|
||||
<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
|
||||
<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>
|
||||
<li>our research
|
||||
<li>teaching our students
|
||||
<li>just playing with our data sets
|
||||
<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?
|
||||
<ul>
|
||||
<li><a href="https://www.kaggle.com">Kaggle</a>
|
||||
@ -27,11 +30,11 @@
|
||||
<li>more or less similar to Kaggle</li>
|
||||
<li><a href="https://codalab.org">CodaLab</a>
|
||||
<ul>
|
||||
<li>trying hard but hadn't found it ☹
|
||||
<li>open!
|
||||
<li>trying hard but didn't find it ☹
|
||||
<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
|
||||
<h1>Gonito.net
|
||||
<p>open platform for machine learning competition
|
||||
@ -49,7 +52,7 @@
|
||||
<li>Solutions can be forked and reused
|
||||
<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
|
||||
<h1>GEval
|
||||
<p>companion Haskell library and stand-alone tool for machine learning evaluation
|
||||
@ -59,13 +62,115 @@
|
||||
<li>BLEU
|
||||
<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…
|
||||
<div style="font-size: 50%">
|
||||
<div style="font-size: 50%" class="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…
|
||||
|
||||
<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="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" />
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user