Skip to main content

Newest Post: Emergent Trade and Tolerated Theft Using Multi-Agent Reinforcement Learning

Hi, my name’s Jack Garbus. I’m a graduate student in computer science interested in artificial societies, cultural evolution, machine learning, and decentralization.

Featured Projects:

  • emergent trade
    • emergent trading protocols between embodied agents using reinforcement learning
  • kittyplot
    • a repl-based terminal plotting program
  • dtree
    • a vim-inspired mind-mapping program written in C
  • fe-alts
    • A single docker-compose of alternative front-ends to big tech services

Favorite Posts:

Contact me via:

Emergent Trade and Tolerated Theft Using Multi-Agent Reinforcement Learning

I’ve been an author on a few papers before, but I recently published the first research project where I was responsible for most of the work and direction. It’s in the first 2024 issue of the journal Artificial Life, which you can find here (I’ll post camera-ready paper here later this year, but for now, you can view the pre-print on arxiv. Below, I tell the chronology of the project and summarize our findings.

Take the Road Most Documented

How great would it be if the solution to most errors you face were in the first place you looked? That’s what the Arch Wiki has been for me: a massive wealth of information and troubleshooting resources to help me navigate the various configuration and installation issues I’ve encountered. Some people claim Arch Linux is too difficult for new users, but for me it’s been the only distribution I’ve been able to get consistently working, and it’s all thanks to the detailed documentation and known workarounds.

The Way of Zen

Excerpts I found interesting from Alan Watt’s The Way of Zen, grouped by vibes: Definition Convention Feel Growing Spontaneity Pointing Ego Interference Present Negation Liberation Za-zen Widespread Art Definition Zen Buddhism is a way and a view of life which does not belong to any of the formal categories of modern Western thought. As will soon be obvious, a way of liberation can have no positive definition. It has to be suggested by saying what it is not, somewhat as a sculptor reveals an image by the act of removing pieces of stone from a block.

Numerical Stability in Flash Attention

Flash attention, a recent implementation of attention which makes less calls to high-bandwidth memory, uses a version of the softmax function which is numerically stable. In this post, I’ll briefly showcase how this is done and an example of an unstable softmax. The softmax function is used in machine learning to convert a vector of real numbers to a vector of probabilities which sum to 1, and is defined as:

Introducing Kittyplot

Kittyplot is a program designed to plot experiment data in the kitty terminal using the kitty graphics protocol, primarily for use on HPC clusters. Plots are rendered using matplotlib, and users can zoom into different regions of the plots by setting x and y limits using their editor. I use prompt_toolkit to accept regexp input and I override the tab-completion to instead display a list of all metrics that are matched by the current regexp.

Owen, Make Your Website Already

Make a fucking website already, Owen. You’ve been playing around with the idea of making a blog for like two years, but you’ve been dragging your feet. Maybe you can’t decide what framework to use, or where to host it, or blah blah blah. If you want excuses not to make a site, I’m sure you’ll find them. But it literally just takes a few hours, less if you don’t set up a domain name or theme to start.

Unexpected Benefits of Testing Code

Matthew Carlson’s blog post “Fighting Distraction With Unit Tests” inspired me to share some extra benefits of writing test code I’ve discovered during my PhD program. I’m working on a weird project that’s constantly changing as I try new things, and naturally, debugging and ensuring correctness was a nightmare. So I started writing tests, cursing myself for needing to write so much code I’ll likely throw away soon. But as it turns out, testing can be pretty helpful in a few other ways:

I Dont Know Anyone Who Blogs

I don’t know anybody in real life who blogs regularly, and I think that kills my motivation to write blog posts myself. I actually started writing this post before realizing that a friend of mine has a blog, but in my defense he’s only posted twice in the past 2 years. I suppose that makes my title a lie, but I like the title, and the point still stands. I want to build a writing habit, but it feels hard to get the motivation to do it from within myself.

How to write LaTeX without writing LaTeX

I love the look of LaTeX but hate the experience of writing in LaTeX, at least compared to Markdown. Luckily, Pandoc can convert Markdown files to PDFs using a LaTeX engine as the renderer, and includes a custom Markdown specification that can fill almost all my LaTeX needs. First, let’s talk about where Pandoc Markdown falls short: No custom LaTeX style guides (although citation style files are supported) No Section Numbering There is, thanks to naruhodo on Hacker News for the correction Referencing labels doesn’t work well (Supposedly the pandoc-crossref filter fixes this but I couldn’t get it to work) Don’t even bother with complex page layouts or precise figure placements This might be a deal breaker for some, but for others who are writing lots of documents (such as students), this may not be.

AI Index

An ever-expanding list of concepts in the field of AI to give myself and others an easy reference. Each item in the list contains a short, rudimentary definition I’ve written, as well as a link to a resource that can explain it better. Ablation Study: Removing some parts of a machine learning model to measure impact on performance Advantage Function: The difference between a Q-value for a state-action pair and a value for the state.