5 ms·
Hi! I'm one of the miniKanren peeps. Happy to talk miniKanren and relational programming!
by will_byrd 2y ago
Hi! I'm one of the miniKanren peeps. Happy to talk miniKanren and relational programming!
- eihli 2y agoHey! Thanks for all of the work you do. I love reading your stuff. Lately, I've been playing a lot with the code from Neural Guided Constraint Logic Programming for Program Synthesis [1]. I want to apply it to searching for neural network architectures. Something like: (define-relation (layero layer in out) ;; [2] (conde ((== layer `(Linear ,in ,out))) ((== layer `(Relu ,in ,out)) (== in out)) ((fresh (percent) (== layer `(Dropout ,in ,out ,percent)) (== in out) (countero percent) (<o '(1) percent) (<o percent '(0 0 1 0 0 1 1)))))) And a `layerso` that is just a sequence of `layers`. And then use some metric that captures how effective the training run was and use that metric for teaching the search network. I'm sure there's better ways to do it than the way I'm going about it. But it's a fun way to learn a bunch of cool new stuff. Thanks for getting me started down this path! [1] https://arxiv.org/abs/1809.02840 https://arxiv.org/abs/1809.02840 [2] https://github.com/eihli/reason/blob/523920773b7040325c8098a959cfabb12100823b/nas.rkt#L252 https://github.com/eihli/reason/blob/523920773b7040325c8098a...
- anotherhue 2y agoLove your talks! The enthusiasm is infectious.
- simonw 2y agoI have a feature request for the https://minikanren.org/ https://minikanren.org/ website: just one prominent block of example code on that homepage (as early as possible) would be REALLY useful for helping understand at a glance what kind of language this is. I even clicked through quite a few of those prominent early links and didn't find a code example!
- ffsm8 2y agoIs that even possible for something like this? You've got a pretty long list of implementations, each having its own language specific syntax, e.g. https://github.com/pythological/kanren https://github.com/pythological/kanren for one python version - and there are several Python versions linked on the homepage.
- simonw 2y agoIn that case an example box with tabs at the top - "miniKanren in Python / Go / Ruby" or whatever - would really help illustrate that point.
- will_byrd 2y agoThank you for the feedback! We are working on a new version of the website, with HTTPS, and with better examples and a better layout. I love your blog posts on LLMs, BTW! We've been experimenting with combining LLMs and miniKanren in various ways.
- yoz 2y agoOn top of that: some examples of the kinds of problems miniKanren can solve, based on real world examples rather than purely abstract concepts (e.g. "given a set of available air flights with origins, destinations, and prices, find me the cheapest way to get from Seattle to London")
- kazinator 2y agoI'm interested in a miniKanren port, or something like it, to TXR Lisp. I would possibly make it a part of the standard library of the language, so programs could rely on it just being there.
- selimthegrim 2y agoI wonder if this might be able to help make LLM output compliant to a schema you can reverse engineer from an API endpoint like NEMSIS.
- akrotkov 2y agoHello! miniKanren was my introduction to relational programming (SQL aside!), and I had hours of trying to wrap my head around the Reasoned Schemer. Were you aware a miniKanren-inspired language was the foundation of a large chunk of Amazon's retail data aggregation stack? I'm no longer there, but it might be one of the larger deployments out there. We spent many many hours trying to figure out the best way to run the relational engine at scale and with acceptable performance.
- jasonhemann 2y agoNo, but I would so love to hear someone from the team give a talk about it. That's so darn awesome
- jerome-jh 2y agoHi! Sorry to be late to the party. I don't really understand how relational programming relates to discrete optimization and constraint programming. I did several MOOCs on discrete optimization and I understand how a constraint solver works, and how local search works, for example. I also understand how a SAT solver works. I just do not understand what logic/relational programming does. Is that a constraint solver solving just one kind of constraint, ie logic equations, a bit like a SAT solver? [Edit] on my side I was really impressed by a paper using Minikanren to generate an algorithm, a sorting function if I remember well. It was about 8 years ago. Tried to fully understand the paper but gave up at some point.