The flagship, glm-5, is $1/M input tokens. glm-4.7 is $0.60/M input tokens.
6,214 karma · joined July 28, 2009
Contact: peterghamilton at gmail.com
[ my public key: https://keybase.io/hamiltop; my proof: https://keybase.io/hamiltop/sigs/iT3lXY45vko-hON9jbhSpUAmvUmARKbXDVxVGYrviy4 ]
The flagship, glm-5, is $1/M input tokens. glm-4.7 is $0.60/M input tokens.
I have a hypothesis that I can verify the result against the original ROM. With that as the goal, I believe the agent can continue to grind on the problem until it passes that verification. I've seen it in that of other areas, but this is something larger and more tedious and I wanted to see how far it could go.
Step 2: Integrate libultraship. Launching the game natively is the next criteria. Then ideally we could do differential testing on a frame by frame basis comparing emulated vs native.
Step 3: Semantic documentation of source. If it gets this far, I will be very impressed.
This is absolutely an experiment. It's a hard problem with low stakes. There a lot to learn from it.
100M input tokens is $40 and anywhere from 2-6 kWh.
Certainly excessive for my $3/month.
The task is to decompile Wave Race 64 and integrate with libultraship and eventually produce a runnable native port of the game. (Same approach as the Zelda OoT port Ship of Harkinian).
It set up a timer ever 30 minutes to check in on itself and see if it gave up. It reviews progress every 4 hours and revisits prioritization. I hadn't checked on it in days and when I looked today it was still going, a few functions at a time.
It set up those times itself and creates new ones as needed.
It's not any one particular thing that is novel, but it's just more independent because of all the little bits.
Intelligence per <consumable> feels closer. Per dollar, or per second, or per watt.
With historical development, investing in hypotheticals can be wasteful. Make the fewest assumptions until you get real user feedback.
With AI, we make more decisions upfront. Being wrong about those decisions has a low cost because the investment in implementation is cheap. We are less worried about building the wrong things because we can just try again quickly. It's cheap to be wrong.
The more decisions we make upfront, the more hands-off we can be. A shallow set of decisions might stall out earlier than a deeper set of decisions could. So we need to think through things more deeply. So we need to think more.
But beyond that, I have been thinking deeply about AI itself, which has all sorts of new problems. Permissions, verification, etc.
I have to think more rigorously. I have to find ways to tie up loose ends, to verify the result efficiently, to create efficient feedback loops and define categorical success criteria.
I've thought harder about problems this last year than I have in a long time.
Getting back into coding is doing more. Updating an old project to the latest libraries is doing more.
It often feels ambiguous. Shipping a buggy, vibe-coded MVP might be doing less. But getting customer feedback on day one from a real tangible product can allow you to build a richer and deeper experience through fast iteration.
Just make sure we're doing more, not less, and AI is a wonderful step forward.
We're not quite seeing that on the trn1 instances yet, so someone is using them.
It had the fascinating property of being a full multi-writer SQL engine when using Page Level Conflict Checking. Even more fascinating: every single client itself becomes a writer.
One iteration of insertion sort will place one additional element in its correct place, but it leaves the unsorted portion basically untouched.
One iteration of bubble sort will place one additional element into the sorted section and along the way do small swaps/corrections. The % of data in the correct location is the same, but the overall "sortedness" of the data is much better.
Bubble sort seems pretty terrible, until you realize that it's interruptible. The set is always a little more sorted than before. So if you have realtime requirements and best-effort sorting, you can sort things between renders and live with the possibility of two things relative close to each other appearing a little glitched for a frame.
Some examples:
It should be far more common for http clients to have well supported and heavily used Cookie jar implementations.
We should lean on Accept headers much more, especially with multiple mime-types and/or wildcards.
Http clients should have caching plugins to automatically respect caching headers.
There are many more examples. I've seen so much of HTTP reimplemented on top of itself over the years, often with poor results. Let's stop doing that. And when all our clients are doing those parts right, I suspect our APIs will get cleaner too.
Will the ability to use AI to write such a solution correctly be enough motivation to push C++ shops to adopt rust? (Or perhaps a new language that caters to the blindspots of AI somehow)
There will absolutely be a tipping point where the potential benefits outweigh the costs of such a migration.
What if we could persist this final LLM context state? Think of it like a queryable snapshot of the 'why' behind code or docs. Instead of just reading a comment, you could load the associated context and ask an LLM questions based on the original author's reasoning state.
Yes, context is model-specific, a major hurdle. And there are many other challenges. But ignoring the technical implementation for a moment, is this concept – capturing intent via persistent, queryable LLM context – a valuable problem to solve? I feel it would be.
At some point we will stop making decisions about what future readers want. We will just capture the concrete inputs and the reader's LLM will explain it.
I have it write doc strings. I later ask it to explain a section of code, wherein it uses the doc strings to understand and explain the code to me.
A less lossy way to capture this will probably emerge at some point.
Source: I used it to write this post.
I used to create PRs and then review my own code. If I liked it, I'd +1 it. If I saw problems, I'd -1 it. Other engineers would yell at me that I couldn't +1 my own code. When I showed them PRs that had my -1 on it, they just threw their hands up and moved on, exasperated.
I've carried that habit of reviewing my own code forward, even though we now have real checks that enforce a separate reviewer. It's a good habit.
Models will improve, but also I predict code style and architecture will evolve towards something easier for machine review.
Initially we can absolutely just review them like any other PR, but at some point code review will be the bottleneck.