Skip to content

Commit

Permalink
tinker with README
Browse files Browse the repository at this point in the history
  • Loading branch information
kach committed Aug 17, 2024
1 parent 9e1970a commit 4d2befc
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ memo is a new probabilistic programming language for expressing computational co
memo stands for: mental modeling, memoized matrix operations, model-expressed-model-optimized, and metacognitive memos.

> [!NOTE]
> The version of memo in this repository is an early-stage research prototype. While we are making every effort to make memo safe and easy to use, there may be some sharp edges, and the language may occasionally change in backward-incompatible ways. Our goal is to offer a first stable release of memo in February 2025.
> The version of memo in this repository is an early-stage research prototype. We are making every effort to make memo safe and easy to use for our early adopters; however, there may be some sharp edges and the language may occasionally change in backward-incompatible ways. Our goal is to offer a first stable release of memo in February 2025.
## Installing memo

Expand Down Expand Up @@ -33,11 +33,11 @@ This repository also includes several classical examples of recursive reasoning

**When should I use memo rather than Gen or WebPPL?**

memo's core competence is fast tabular/enumerative inference on models with recursive reasoning. That covers a wide range of common models: from RSA, to POMDP planning (value iteration = tabular operations), to inverse planning.
memo's core competence is fast tabular/enumerative inference on models with recursive reasoning. That covers a wide range of common models: from RSA, to POMDP planning (value iteration = tabular operations), to inverse planning. In general, if you are making nested queries, we recommend using memo.

Two particular cases where you may prefer another PPL:
* If you are interested in modeling a sophisticated inference scheme, such as MCMC, particle filters, or variational inference, then we recommend trying Gen. _(But make sure you really need those tools — fast enumerative inference is often sufficient for many common kinds of models!)_
* If you are performing inference over an unbounded domain of hypotheses, such as programs generated by a grammar, then we recommend trying Gen or WebPPL because memo can only handle probability distributions with finite support. _(But if you are okay with inference over a "truncated" domain, e.g. the top 1,000,000 shortest programs, then memo can do that! Similarly, memo can only handle discretizations of continuous domains.)_
There are however two particular cases where you may prefer another PPL:
1. If you are interested specifically in modeling a sophisticated inference scheme, such as MCMC, particle filters, or variational inference, then we recommend trying Gen. _(But make sure you really need those tools — the fast enumerative inference provided by memo is often sufficient for many common kinds of models!)_
2. If you are performing inference over an unbounded domain of hypotheses with varied structure, such as programs generated by a grammar, then we recommend trying Gen or WebPPL because memo's tabular enumerative inference can only handle probability distributions with finite support. _(But if you are okay with inference over a "truncated" domain, e.g. the top 1,000,000 shortest programs, then memo can do that! Similarly, memo can handle continuous domains by discretizing finely.)_

**Why does memo have those two limitations?**

Expand Down

0 comments on commit 4d2befc

Please sign in to comment.