|
1 | 1 | # Gen.jl |
2 | 2 |
|
3 | | -[](https://github.com/probcomp/Gen/actions) |
4 | | -[](https://probcomp.github.io/Gen.jl/docs/stable) |
5 | | -[](https://probcomp.github.io/Gen.jl/docs/dev) |
| 3 | +[](https://github.com/probcomp/Gen.jl/actions) |
| 4 | +[](https://probcomp.github.io/Gen.jl/docs/stable) |
| 5 | +[](https://probcomp.github.io/Gen.jl/docs/dev) |
| 6 | + |
6 | 7 |
|
7 | | -Gen: A General-Purpose Probabilistic Programming System with Programmable Inference |
8 | | - |
9 | | -*Warning: This is rapidly evolving research software.* |
| 8 | +A general-purpose probabilistic programming system with programmable inference, embedded in Julia. |
10 | 9 |
|
11 | 10 | See [https://gen.dev](https://gen.dev/) for introduction, documentation, and tutorials. |
12 | 11 |
|
13 | | -Gen was created at the [MIT Probabilistic Computing Project ](http://probcomp.csail.mit.edu/). To get in contact, please email [email protected]. |
| 12 | +## Features |
| 13 | + |
| 14 | +* Multi-paradigm Bayesian inference via [Sequential Monte Carlo](https://www.gen.dev/docs/stable/ref/inference/pf/), [variational inference](https://www.gen.dev/docs/stable/ref/inference/vi/), [MCMC](https://www.gen.dev/docs/stable/ref/inference/mcmc/), and more. |
| 15 | +* Gradient-based training of generative models via [parameter optimization](https://www.gen.dev/docs/stable/ref/inference/parameter_optimization/), [wake-sleep learning](https://www.gen.dev/docs/stable/ref/inference/wake_sleep/), etc. |
| 16 | +* An expressive and intuitive [modeling language](https://www.gen.dev/docs/stable/ref/modeling/dml/) for writing and composing probabilistic programs. |
| 17 | +* Inference algorithms are _programmable_: Write [custom proposals](https://www.gen.dev/tutorials/data-driven-proposals/tutorial), [variational families](https://www.gen.dev/docs/stable/tutorials/vi/), [MCMC kernels](https://www.gen.dev/docs/stable/ref/inference/mcmc/) or [SMC updates](https://www.gen.dev/docs/stable/ref/inference/trace_translators/) without worrying about the math. |
| 18 | +* Support for Bayesian structure learning via [involutive MCMC](https://www.gen.dev/docs/stable/ref/inference/mcmc/#involutive_mcmc) and [SMCP³](https://www.gen.dev/docs/stable/ref/inference/pf/#advanced-particle-filtering). |
| 19 | +* [Specialized modeling constructs](https://www.gen.dev/docs/stable/tutorials/scaling_with_sml/) that speed-up inference by supporting incremental computation. |
| 20 | +* Well-defined APIs for implementing [custom generative models](https://www.gen.dev/docs/stable/how_to/custom_gen_fns/), [distributions](https://www.gen.dev/docs/stable/how_to/custom_distributions/), [gradients](https://www.gen.dev/docs/stable/how_to/custom_gradients/), etc. |
| 21 | + |
| 22 | +## Installation |
| 23 | + |
| 24 | +The Gen package can be installed with the Julia package manager. From the Julia REPL, type `]` to enter the Pkg REPL mode and then run: |
| 25 | + |
| 26 | +``` |
| 27 | +add Gen |
| 28 | +``` |
| 29 | + |
| 30 | +To install the latest development version, you may instead run: |
| 31 | + |
| 32 | +``` |
| 33 | +add https://github.com/probcomp/Gen.jl.git |
| 34 | +``` |
| 35 | + |
| 36 | +Gen can now be used in the Julia REPL, or at the top of a script: |
| 37 | + |
| 38 | +```julia |
| 39 | +using Gen |
| 40 | +``` |
| 41 | + |
| 42 | +To test the installation locally, you can run the tests with: |
| 43 | + |
| 44 | +```julia |
| 45 | +using Pkg; Pkg.test("Gen") |
| 46 | +``` |
| 47 | + |
| 48 | +## Questions and Contributions |
| 49 | + |
| 50 | +If you have questions about using Gen.jl, feel free to open a [discussion on GitHub](https://github.com/probcomp/Gen.jl/discussions). If you encounter a bug, please [open an issue](https://github.com/probcomp/Gen.jl/issues). We also welcome bug fixes and feature additions as [pull requests](https://github.com/probcomp/Gen.jl/pulls). Please refer to our [contribution guidelines](https://github.com/probcomp/Gen.jl/blob/master/CONTRIBUTING.md) for more details. |
| 51 | + |
| 52 | +## Supporting and Citing |
| 53 | + |
| 54 | +Gen.jl is part of ongoing research at the [MIT Probabilistic Computing Project ](http://probcomp.csail.mit.edu). To get in contact, please email [email protected]. |
14 | 55 |
|
15 | 56 | If you use Gen in your research, please cite our 2019 PLDI paper: |
16 | 57 |
|
17 | | -Gen: A General-Purpose Probabilistic Programming System with Programmable Inference. Cusumano-Towner, M. F.; Saad, F. A.; Lew, A.; and Mansinghka, V. K. |
18 | | -In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ‘19). ([pdf](https://dl.acm.org/doi/10.1145/3314221.3314642)) ([bibtex](https://www.gen.dev/assets/gen-pldi.txt)) |
| 58 | +> *Gen: A General-Purpose Probabilistic Programming System with Programmable Inference.* Cusumano-Towner, M. F.; Saad, F. A.; Lew, A.; and Mansinghka, V. K. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ‘19). ([pdf](https://dl.acm.org/doi/10.1145/3314221.3314642)) ([bibtex](https://www.gen.dev/assets/gen-pldi.txt)) |
0 commit comments