10 ms·
A general-purpose probabilistic programming system with programmable inference
- adamnemecek 7y agoGithub repo https://github.com/probcomp/Gen https://github.com/probcomp/Gen
- applecrazy 7y agoBunch of tutorials using the language: https://probcomp.github.io/Gen/tutorials.html https://probcomp.github.io/Gen/tutorials.html Paper: https://dl.acm.org/citation.cfm?id=3314221.3314642 https://dl.acm.org/citation.cfm?id=3314221.3314642 (is this article paywalled? I'm on my university's network so I don't have a paywall) The syntax doesn't seem to be changed compared to Julia (so is it actually a new language or just a library? Not sure, haven't seen Julia code in a while.)
- seanmcdirmid 7y agoDSpace link, no paywall: https://dspace.mit.edu/handle/1721.1/119255 https://dspace.mit.edu/handle/1721.1/119255
- byt143 7y ago>The syntax doesn't seem to be changed compared to Julia (so is it actually a new language or just a library? And the semantics are the same with some additions. This is a good thing as it allow interop with Julia code, low mental overhead and shows the power of Julia :)
- Vanit 7y agoSeems to be a Julia lib unless I'm missing something?
- tejtm 7y agoGithub says it is Julia 100.0% (click colored bar at the top of a repo)
- ipsum2 7y agoPretty clickbaity, this looks like another probabilistic programming framework. Others include Pyro (pyro.ai) and Edward (http://edwardlib.org/ http://edwardlib.org/).
- 6gvONxR4sf7o 7y agoMaybe the title's clickbaity, but steps forward in probabilistic programming are great. From the paper, it looks interesting. https://dl.acm.org/citation.cfm?id=3314221.3314642 https://dl.acm.org/citation.cfm?id=3314221.3314642
- flensortow 7y agoMy observation is that a lot of the MIT News and MIT Technology Review titles read like this. It seems to work to get exposure for work being done there.
- sandGorgon 7y agoThis press release is super weird. They are trying really really hard to not mention Julia. A "new language" versus "a DSL built on Julia". "Swift for Tensorflow" is still Swift. I wonder why.
- FridgeSeal 7y agoThey don't even link to Julia like they have for other languages...
- kgwgk 7y agoMaybe the link has changed, but now one can read: “Building off concepts used in their earlier probabilistic-programming system, Church, the researchers incorporate several custom modeling languages into Julia, a general-purpose programming language that was also developed at MIT.”
- Semiapies 7y agoMaybe HN just needs to ban submitting university press releases.
- cocochanel 7y agoThe title is confusing. Can anyone please explain if this is Julia or a new programming language?
- linux_devil 7y agoThis is based on Julia.
- dagw 7y agoIt's a set of macros and helper functions build on top of Julia to provide a sort of probabilistic programming DSL. The actual project describes themselves as a "programming system" rather that a programming language.
- baalimago 7y agoThe problem with frameworks like this is when you try to do something which isn't strictly standard, or lack understanding on whatever the framework is actually doing. Things will no doubt break, and then you have a 15 layered framework stack trace to try to debug. You can't dodge knowledge with frameworks, only use frameworks to effectivize your knowledge.
- seanmcdirmid 7y agoThis is exactly the premise of the paper, which isn’t presenting a framework, rather a language for general open ended computation for ML.
- ChrisRackauckas 7y agoI haven't had that problem with Julia-based probabilistic programming frameworks. I stick functions from pre-existing packages into Turing.jl and it seems to work fine as long as the library is compatible with AD.
- amval 7y agoCould anyone point me in the direction of resources to learn more about probabilistic programming? (e.g.: text books, practical applications, introductory articles)
- linux_devil 7y agoFound this : https://medium.com/tensorflow/an-introduction-to-probabilistic-programming-now-available-in-tensorflow-probability-6dcc003ca29e https://medium.com/tensorflow/an-introduction-to-probabilist...
- espeed 7y agoMIT Probabilistic Computing Project http://probcomp.csail.mit.edu/ http://probcomp.csail.mit.edu/ The Design and Implementation of Probabilistic Programming Languages (https://dippl.org https://dippl.org) by Noah D. Goodman https://cocolab.stanford.edu/ndg.html https://cocolab.stanford.edu/ndg.html Stanford CS 228: Probabilistic Graphical Models https://cs228.stanford.edu https://cs228.stanford.edu and book by Daphne Koller http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=ProbabilisticGraphicalModels http://openclassroom.stanford.edu/MainFolder/CoursePage.php?... ProbTorch: Library for deep generative models that extends PyTorch https://github.com/probtorch/probtorch https://github.com/probtorch/probtorch Anglican: Probabilistic programming language integrated with Clojure and ClojureScript https://probprog.github.io/anglican/index.html https://probprog.github.io/anglican/index.html Discussion: https://news.ycombinator.com/item?id=18585465 https://news.ycombinator.com/item?id=18585465
- tr352 7y ago[shameless plug] Ranked programming is like probabilistic programming but you don't use probabilities. Instead, you state how your program normally behaves and how it may exceptionally behave. Conceptually it's very similar to probabilistic programming, but the underlying uncertainty formalism is replaced with ranking theory. You can find an implementation of this idea (based on Scheme/Racket) here: https://github.com/tjitze/ranked-programming https://github.com/tjitze/ranked-programming For more detailed information check the paper linked to on that page.
- pinouchon 7y ago
- linux_devil 7y agoI was really looking forward to probabilistic programming but then I saw this project is based on Julia. Not to keen on leaning Julia as I already know Python/C++/Java/Scala/R. Wish it was based on c++/python to at least get started with. Please let me know if there are other interesting probabilistic programming frameworks available or tutorials to get started with. Edit: https://medium.com/tensorflow/an-introduction-to-probabilistic-programming-now-available-in-tensorflow-probability-6dcc003ca29e https://medium.com/tensorflow/an-introduction-to-probabilist... There is support in tensorflow for probabilistic programming. How is this any different?
- espeed 7y agoJulia is fast becoming one of the great programming languages of our era. Julia is not going away, its usage is only becoming more pervasive. Imagine if you had learned Python 20 years ago. Julia's founding sponsor is Dr. Jeremy Kepner [1] who is the founder of MIT Lincoln Laboratory Supercomputing Center [2] and the founder of GraphBLAS [3]. Kepner's got a good eye for things, he knows what's coming down the pipe and what will be important in a language of the future. Learning Julia now means you'll be ahead of the curve for years to come. Your time will not be wasted. [1] https://en.wikipedia.org/wiki/Julia_(programming_language)#Sponsors https://en.wikipedia.org/wiki/Julia_(programming_language)#S... [2] http://www.mit.edu/~kepner/ http://www.mit.edu/~kepner/ [3] http://graphblas.org http://graphblas.org
- sischoel 7y agoSpoiler alert: There is a GSoC student working on getting GraphBLAS working together with Julia.
- langitbiru 7y agoJulia needs something like PyTorch or Tensorflow equivalents.
- ChrisRackauckas 7y agohttps://fluxml.ai/ https://fluxml.ai/ ?
- zwaps 7y agoMakes sense to write it in Julia. Pretty much the only non commercial language that deals natively with mathematical objects in a way that makes sense to non CS people doing statistics. Plus, it is fast out of the box. Like, when I first saw how you work with matrices in Python, I had a stroke. I dont really get why we use Python for everything. The matlab style syntaxt is infinitly better for ML, stats and math.
- j88439h84 7y agoThere's progress in Python with the new `a @ b` operator for matrix multiplication.
- ioquatix 7y agoThe email operator.
- GorgeRonde 7y agoIn Romance languages the at-sign is called an arobase/arroba.
- locoman88 7y agoHow this is relevant here
- valw 7y ago> The matlab style syntaxt is infinitly better for ML, stats and math. Syntax is a secondary concern for all but short-term, small-scale programming. When it comes to making scalable software systems (scalable in every sense of the term, not just performance but also feature growth etc.), syntax is really not the biggest concern; as such, optimizing for syntax can be detrimental to other more important aspects (e.g composability, reusability, programmability), and focusing on syntax means you're not paying attention to the really critical stuff. I mostly work in Clojure where _all_ operations use prefix syntax (e.g you write (+ A B C) instead of (A + B + C) for addition, and + is just a function). Trust me, it's unfamiliar at first, but it makes reasoning about the program MUCH saner than all the special cases and irregularities that language designer bake into the language just to make some operations infix.
- langitbiru 7y agoI think this is an exciting time for programming language designers. As we can see in blockchain space, on which there are new programming languages like Solidity and Vyper, I believe there will be new programming languages to make it easier for the programmers to express themselves (something different compared to Julia, R, Swift, or Python) in AI. Right now people solve the problem with frameworks like Keras so the programmers have easier time to express themselves (for example designing neural networks). Imagine you have a new programming language on which it is much clearer and easier to create a neural network (in Deep Learning).
- DigitalTerminal 7y agoSounds spiffy. Also, I must find time to learn Julia. One problem with these 'out of a box' cookbook systems is that you only know approximately what you are doing. If it works, that may be fine, but for statistical systems the outcome depends heavily on the formulation, is strongly influence by random or irrational correlations and is more art than science. If you remove the element of experience that animates the "art", you get nonsense. Big box programming tools can make it hard to know what correlations are being established, and this is true with even simple neural networks. By the time they have many layers and filters in them, all hope is fled. You buy the result or you don't: simple as that.
- xiphias2 7y agoI have nowhere experienced more looking under the hood feeling then when I am using Julia. The source code of the packages sit on my computer, I can (and sometimes do) modify it, and I can still compile the same function to SIMD or GPU.
- GorgeRonde 7y agoAlthough I have never used Julia, this is something that is possible in Ruby, and I think this feature is seriously underrated – i.e. to be able to jump quickly to the definition of external code, modify it and run it. When you work with multiple libraries/repo this is very valuable when debugging, saves a lot of time. It should also be possible with Node.js I think (node_modules).
- xiphias2 7y agoDon't get me wrong, I love Ruby, and my code was originally in Ruby, but the 20x speedup and better math libraries in Julia without sacrificing the speed of development too much made the switch for me very easy. Actually translating Ruby code to Julia was much easier than I thought (the only real difference is the indexing). The 1 based indexing really sucks in the PTX assembly output of Julia as well, I see a lot of useless increment and decrement operations when I don't expect it.
- sgt101 7y agoVery exciting; I've found using STAN really hard, I really struggle to model real problems, perhaps this will make it easier - and I far prefer Julia to R in project work (not analytics or episodic data science; but when developing systems I find it hard to structure and decompose). I wonder if the HN crowd think this system is AI ?
- is_your_mom_ok 7y agoWhat is episodic data science?
- sgt101 7y agoRandom comment : by episodic data science I mean one of question answering quests. These are often created by incidents or by new stakeholders asking unexpected questions. Basically - collect, curate, explore, answer, explain, dump.
- scottlocklin 7y agoTypical MIT press release balognia; their publicist really should get a job in industry and stop misleading the scientific community. What they really mean is "new probabilistic graphical model language." Yet another BUGS/JAGS/Stan like system.
- byt143 7y agoThis goes way way beyond graphical models.
- Fishysoup 7y agoIt's not a PGM package. It's designed to work with arbitrary Julia programs and can be used for program induction etc. In that regard it's more like WebPPL or Church than Stan.
- scottlocklin 7y agoOP originally linked it to some breathy MIT press release which said "New AI programming language goes beyond deep learning General-purpose language works for computer vision, robotics, statistics, and more" https://news.mit.edu/2019/ai-programming-gen-0626 https://news.mit.edu/2019/ai-programming-gen-0626 I'm pretty sure most sane people agree this is a giant pile of meaningless marketing horse pookey, which is par for the course with MIT these days. That's what I was responding to. And characterizing it as "like stan" is a lot closer to descriptive than anything in that article. I picture whoever writes this stuff for MIT as wearing tap out t-shirts with neck tattoos.
- Fishysoup 7y agoSure, the article is largely meaningless. But I've spent a couple months playing with this package and it is a lot more general than Stan etc.
- wtdata 7y agoThe only place were they make it clear this is a Julia package is in the installation instructions: "The, install the Gen package with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and then run: pkg> add https://github.com/probcomp/Gen" https://github.com/probcomp/Gen" https://probcomp.github.io/Gen/ https://probcomp.github.io/Gen/
- nerdponx 7y agoLess-clickbait dupe: https://news.ycombinator.com/item?id=20302158 https://news.ycombinator.com/item?id=20302158
- ChrisRackauckas 7y agoI'm excited for the probabilistic programming symposium at JuliaCon :). We had so many submissions around PP languages and approaches that we decided to bunch them all together to get people talking about the pros/cons of various approaches and find out what kinds of problems to collectively tackle. PP seems like a very promising field.
- pizza 7y agoVideo abstract: https://www.youtube.com/watch?v=DImI6l_0yiM https://www.youtube.com/watch?v=DImI6l_0yiM
- dmix 7y agoThere seems to be an opportunity for a language to fill the data science/AI space for people who want something more performant and safe (ie, statically typed) than Python. I see people coming into /r/Haskell and other forums all the time looking for something that fits this category but there's never a really good answer that is better than the compromise that is Python with some C or whatever based optimizations.
- xvilka 7y agoThere is a missing piece in the Julia subsystem - first class support for GNN (Graph Neural Networks). So if someone wants to help - he can take an issue[1] at the GitHub repository of FluxML[2]. [1] https://github.com/FluxML/Flux.jl/issues/625 https://github.com/FluxML/Flux.jl/issues/625 [2] https://fluxml.ai/ https://fluxml.ai/
- ChrisRackauckas 7y agoThere's a JSoC developing this IIRC.