written by Eric J. Ma on 2023-08-07 | tags: machine learning phylogenetics protein engineering protein sequences ancestral sequences bioinformatics computational biology deep learning differentiable computing gradient-based optimization phylogenetic trees sequence representation tree adjacency vae protein design jax python
I've just explored a fascinating paper on differentiable search of evolutionary trees. It's a creative blend of math and biology, using mathematical structures to solve a biological problem. The authors have developed a way to infer both phylogenetic trees and ancestral protein sequences in a continuous, differentiable manner. This opens up exciting new avenues for protein engineering and design. Plus, the paper's figures are top-notch! 🧬🌳📊
Read on... (4001 words, approximately 21 minutes reading time)written by Eric J. Ma on 2023-08-04 | tags: wayne gretzky tech adoption data science emerging tech competitive advantage foresight execution capability risk management teamwork profit innovation strategic thinking technology ladder individual contributor team strategy thought framework
In this post, I discuss the 'Wayne Gretzky move' in tech adoption, especially in data science. It's about foreseeing the future of tech and making bold moves to stay ahead of the game. It's risky but with the right team, it can lead to significant gains. 🏒💻🚀
Read on... (269 words, approximately 2 minutes reading time)written by Eric J. Ma on 2023-07-24 | tags: data science technology ladder technological trinity decision making protein engineering methodologies innovation team building technical strategy bayesian optimization graph neural networks variational autoencoder machine learning library design lead optimization
In this post, I discuss how to decide which technological models to adopt in our work. I introduce two frameworks: the 'technological trinity' and the 'technology ladder'. The former helps us evaluate if a new technology is worth investing in, while the latter places it within a broader context. I illustrate these concepts using protein engineering as an example.
Read on... (1474 words, approximately 8 minutes reading time)written by Eric J. Ma on 2023-07-21 | tags: llamabot openai gpt4 chatbot software development ai innovation langchain llama_index code ghostwriting zotero
Just built LlamaBot, a chatbot using OpenAI GPT-4, and it's been a wild ride! 🎢 From dealing with rapid innovation and versioning issues to discovering the power of code ghostwriting, it's been a learning curve. 🧠💡 Also, I explored some cool LLM frameworks. Dive in to learn more! 🏊♂️
Read on... (2403 words, approximately 13 minutes reading time)written by Eric J. Ma on 2023-07-12 | tags: til python python310 pythonversioning pyproject.toml pythontips llamabot
In today's blog post, we dive into setting the minimum and maximum Python versions in pyproject.toml
🐍.
We explore how this impacts llamabot
and discuss the new syntax for indicating the union of types in Python 3.10.
This new syntax is visually easier to understand, making our coding journey a bit smoother! 🚀👩💻👨💻
written by Eric J. Ma on 2023-06-20 | tags: git commit messages gpt-4 llamabot cli tool openai api conventional commits collaboration project management debugging code review versioning machine learning outlines library coding bot
Tired of writing boring commit messages? 😴 I've got you covered! Introducing llamabot
, a CLI tool that uses GPT-4 to craft meaningful commit messages following the Conventional Commits specification. 🚀 Improve collaboration, project management, and debugging with just one command! 🌟 Try it out with pip install llamabot
. 🦙
written by Eric J. Ma on 2023-06-16 | tags: outlines python coding bot ghostwriting docstrings unit tests prompt management composable prompts llamabot gpt-4 code generation ui design jinja2 clean code
Today, I explored the outlines
library and built a coding bot that ghostwrites code, docstrings, and tests! 🤖 With clean prompt design, I was able to create a compact and efficient Python program. The best part? It's super easy to map this to a user interface! 🎉 Check out how I did it and learn about the benefits of using outlines
for prompt management. 😄
written by Eric J. Ma on 2023-05-13 | tags: gpt4 pull requests code review python llamabot github automation machine learning ai coding programming data science nlp open source software development
Today, I discovered a fantastic use for GPT-4: writing improved pull request messages! 🎉 I used a Python package I developed, llamabot, to generate summaries for pull requests. The results were impressive, making the task of reviewing PRs with long diffs much less daunting. 😌
Read on... (625 words, approximately 4 minutes reading time)written by Eric J. Ma on 2023-05-02 | tags: python context manager llamabot code snippet contextvars programming til
I’ve been working on llamabot
and wanted to implement a feature to automatically record prompts and LLM responses.
I used a PromptRecorder object with a context manager, similar to PyMC’s pm.Model()
.
However, I faced a challenge: making the context manager aware of its internal code. 🤔
After some research, I found a solution using the built-in contextvars
module.
By creating a globally-referenceable prompt_recorder variable,
I was able to modify the instantiated PromptRecorder object’s state
and call its methods while keeping it hidden from the front-end code. 🎉
Now, llamabot
can easily record prompt-response pairs! 🤖
written by Eric J. Ma on 2023-04-29 | tags: chromatography numpy jax vmap lax programming tips coding til
🧐I encountered a tricky problem when working on chromatography: I needed to find x-values on concave curves at a specific height without solving simultaneous equations. Check out my blog post 📝 to see how I went from a simple for-loop solution to using JAX's vmap
for a more effective, expressive, and compatible solution. This was a fun programming problem to solve! 🔎📈📊😃