Profile avatar
patrickkidger.bsky.social
I do SciML + open source! πŸ§ͺ ML+proteins @ http://Cradle.bio πŸ“š Neural ODEs: http://arxiv.org/abs/2202.02435 πŸ€– JAX ecosystem: http://github.com/patrick-kidger πŸ§‘β€πŸ’» Prev. Google, Oxford πŸ“ ZΓΌrich, Switzerland
65 posts 4,482 followers 654 following
Regular Contributor
Active Commenter
comment in response to post
...like `pdb`, but with a snappier interface, fewer commands overall, with a focus on a clean REPL/TUI experience to navigate the stack. Now used by me... and adopted by a host of my coworkers at Cradle! 3/3
comment in response to post
This library brought to you originally by my need to debug re-raised exceptions in some of the libraries I'm using. Then in my usual fashion I kept adding features, and now we have a whole library πŸ˜„ If like me your debugging experience has been a lot of `pdb`, then this library is for you... 2/3
comment in response to post
Me please! :) I work on bioML. Google scholar mostly reflecting past work in broader sciML: scholar.google.co.uk/citations?us...
comment in response to post
Agreed! I have no idea how that works. Is it a thing I submit to or a thing they pick up?
comment in response to post
Hehe! I originally intended to include the rest of bioML and was then like 'this post is becoming way too long' πŸ˜„
comment in response to post
A huge thanks to Owl, Johanna Haffner, and Jonathan Ziegler for their feedback on the article! I think we ended up with something great. (If a little intimidating.) Also as timing would have it, also check out @ncfrey.bsky.social's post from yesterday! ncfrey.substack.com/p/getting-st... 2/2
comment in response to post
And merged! πŸ˜ƒ
comment in response to post
Shall we add this to the Eqx ecosystem page? I really like it. docs.kidger.site/equinox/awes...
comment in response to post
I also went back and took at look at one of the very early READMEs. I think we've stayed true to these goals! (Also included: Equinox started out as a 'tech demo'. I had to procrastinate from real work somehow, after all. πŸ˜„)
comment in response to post
...the results are now back, and it turns out that *all* of them would have the won the competition! + now with bonus analysis on expression, immunogenicity/humanness! πŸŽ‰ [2/2]
comment in response to post
As for this, I'm pretty sure this exists in the main JAX repo! There's a cuDNN implementation here: docs.jax.dev/en/latest/_a... And there's a bunch of goodies hiding out here: github.com/jax-ml/jax/t... (Not super sure what the public API for those is meant to be though lol.)
comment in response to post
You may be surprised to know that... I have no idea :p We actually use PyTorch at Cradle! This implementation was something I wrote for the sake of an interviewee who was more familiar with JAX. :) FWIW it's possible to train protein models pretty efficiently: www.biorxiv.org/content/10.1...
comment in response to post
If they can fix its issues then yes. But realistically that's a big lift. :)
comment in response to post
... whilst my professional work has largely focused on things like protein language models! So I'm very happy to doing a better job bridging these two halves of my work. 🌟 I hope this will be a useful starting point for the JAX users of bioML :) [2/2]
comment in response to post
Nope, I think it's down :) I suspect it's just a transitory issue with my hosting provider -- this happened once before and it was resolved in a few hours. (Let's wait and see.)
comment in response to post
Basically, we want quantitative bio PhDs who care about translational/applied research: bridging the details of real-world protein design projects and the capabilities of ML. DMs open for any questions and link below! πŸ’₯⭐️ jobs.ashbyhq.com/cradlebio/45... [2/2]
comment in response to post
Would recommend github.com/patrick-kidg... as an updated+better version! (Even for pytorch, despite the name.)
comment in response to post
This is awesome! And it uses Equinox as well πŸ˜πŸ’―
comment in response to post
Time to write a JAX implementation? :)
comment in response to post
Yes please! :)
comment in response to post
Can I be added please? :)
comment in response to post
Me please! :)
comment in response to post
Interesting! I might have to try this out :)
comment in response to post
I think yes if hatch is used to manage the environments. But I think as a practical matter uv will be taking that crown soon. If they add a way to do something similar then I think that would work :)
comment in response to post
I have, very occasionally, been known to get mildly disgruntled. If that's not enough justification for inclusion then I promise to try harder to be grumpy in the future. πŸ˜ˆπŸ‘Ώ
comment in response to post
Would love to be added to the AI pack please :)
comment in response to post
I'm afraid not -- because even the notion of a pytree is something that is baked into JAX itself (`jax.tree_util.register_tree_blahblahetc`) But if you have your own JAX-independent pytree-like library then maybe you can use Equinox as inspiration to build something similar :)
comment in response to post
If you're referring to lockfiles, then I deliberately leave this out: when installed then folks often use the latest versions of deps / transitive deps, and this helps to stay on top of when breaking changes occur. 2/2
comment in response to post
So just running `uv sync` will actually work already. (Modulo the fact that Python 3.13 just came out and not all of the dependencies support it yet.) 1/2
comment in response to post
All of that said -- this is a pretty nitty detail. I can definitely see 'just use a src directory' as being a simpler best practice when recommending templates to others. Maybe I should do that just for this sake, actually. It's useful to have existing projects as exemplars like this. 2/2
comment in response to post
Right! :) So to guard against exactly this (and any other similar problems, like non-py files not getting packaged), my CD setup actually builds an {s,b}dist, installs from that, switches to an empty temporary directory, and then runs the tests. So we're actually covered from that problem! 1/2
comment in response to post
file. Do you know of any other reason to prefer the `src` approach? These days I do use uv :) But that's about handling environments+installation, which is not the same as libraries. (These often get conflated, as Poetry handled both.) What did you have in mind? 2/2