HN user

kcorbitt

6,257 karma

Hi, my name is Kyle Corbitt.

Currently I'm working on openpipe.ai. Previously worked at YC and Google.

personal site: corbt.com email: kyle@ above. I respond to emails.

Posts43
Comments690
View on HN
corbt.com 4mo ago

Codex, File My Taxes. Make No Mistakes

kcorbitt
5pts1
corbt.com 5mo ago

A Pocket Guide to Surviving the Robot Apocalypse

kcorbitt
2pts0
openpipe.ai 1y ago

Show HN: RULER – Easily apply RL to any agent

kcorbitt
81pts11
openpipe.ai 1y ago

Everything I know about reward hacking

kcorbitt
3pts0
github.com 1y ago

Show HN: ART – a new open-source RL framework for training agents

kcorbitt
116pts12
openpipe.ai 1y ago

ART·E: how we built an email research agent that beats o3

kcorbitt
3pts2
openpipe.ai 1y ago

Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”

kcorbitt
199pts55
openpipe.ai 1y ago

Analyzing OpenAI's Reinforcement Fine-Tuning: Less Data, Better Results

kcorbitt
4pts0
openpipe.ai 1y ago

Using reinforcement learning and $4.80 of GPU time to find the best HN post

kcorbitt
217pts95
github.com 1y ago

Show HN: Agent.exe, a cross-platform app to let 3.5 Sonnet control your machine

kcorbitt
406pts232
openpipe.ai 1y ago

DPO fine-tuning outperforms SFT

kcorbitt
1pts0
openpipe.ai 2y ago

OpenPipe Mixture of Agents: Outperform GPT-4 at 1/25th the Cost

kcorbitt
13pts2
openpipe.ai 2y ago

What we've learned in 3 days of Llama 3

kcorbitt
3pts0
openpipe.ai 2y ago

Mixtral Curious? Comparing Mistral 7B and Mixtral for fine-tuning

kcorbitt
1pts0
openpipe.ai 2y ago

S-LoRA: Serving Thousands of Models from One GPU for Fun and Profit

kcorbitt
1pts0
openpipe.ai 2y ago

Is AI the next crypto? Insights from HN comments

kcorbitt
237pts367
news.ycombinator.com 2y ago

Fine-tune your own Llama 2 to replace GPT-3.5/4

kcorbitt
955pts181
news.ycombinator.com 2y ago

Show HN: Automatically convert your GPT-3.5 prompt to Llama 2

kcorbitt
13pts2
github.com 3y ago

TaxyAI: Open-source browser automation with GPT-4

kcorbitt
355pts99
news.ycombinator.com 5y ago

Tell HN: YC will help you find a co-founder

kcorbitt
433pts131
blog.ycombinator.com 5y ago

YC Startup School for future founders who aren't quite ready to start yet

kcorbitt
330pts87
blog.ycombinator.com 6y ago

YC's Startup School Relaunching as Continuous Program

kcorbitt
330pts58
arstechnica.com 8y ago

As Uber and Tesla struggle with driverless cars, Waymo moves forward

kcorbitt
76pts48
www.cnbc.com 8y ago

McKinsey: One-third of US workers could be jobless by 2030 due to automation

kcorbitt
5pts1
blog.ycombinator.com 8y ago

Startup Ideas

kcorbitt
614pts453
techcrunch.com 9y ago

Sam Altman presents a political vision for California and the U.S

kcorbitt
1pts0
jaredforsyth.com 9y ago

A ReasonReact Tutorial

kcorbitt
161pts28
www.nytimes.com 9y ago

US Household Debt Surpasses 2008 High

kcorbitt
250pts418
arstechnica.com 9y ago

New attack that cripples HTTPS crypto works on Macs, Windows, and Linux

kcorbitt
250pts68
arstechnica.com 10y ago

Evernote limits free tier to two devices, raises prices 40%

kcorbitt
13pts1

No, we don't do anything. Theoretically we could judge several times with different ordering.

We could measure order bias really easily though; we just need to look at the average score by rollout position across many runs. I'll add that to my list of experiments!

Looks cool! With vLLM v1, prefix caching is enabled by default and seems quite performant. Is the advantage of LMCache the fact that you can offload to CPU and disk as well? How much is throughput/latency affected if you need to pull a large KV cache from disk/cpu instead of GPU RAM?

Also, how realistic would it be to share the KV cache across vllm nodes within a data center? It would be really nice to be able to freely distribute requests to a pool of vLLM workers without worrying about prefix-aware routing, but maybe that isn't the right approach because moving the KV cache around would be too slow?

The real answer is that nobody trusts their automated evals enough to be confident that any given automatically-trained release actually improves performance, even if eval scores go up. So for now everyone batches up updates and vibe-checks them before rolling them out.

It seems like the speedups here are most useful for small models, since on larger models a smaller fraction of the total time would be spent swapping between kernels? Would be interesting to see at least theoretical results for LLMs in the 14-70B parameter range, which is what most folks deploy in practice.

And of course the effect on throughput at larger batch sizes, which they allude to at the end.

Overall a very interesting result!

There are many industries where you need lots of experience before you're a net contributor to productivity. This is true for everything from hairdressers to doctors. We have ways of dealing with this (eg. taking out loans to undergo years of training).

The problem comes if the number of years of experience you need to outperform the frontier AI models advances at more than 1 per year, which is not out of the question.

I wonder if they've trained the model to operate with a shallower stack; eg. the full model may be composed of 24 transformer blocks, but they've also trained it to accept embeddings at layer 8, so it can be operated with just 16 transformer blocks on lower-resourced devices.

Experimenters in the open source tinkering community have done the opposite (copy/pasting layers in existing models to make them deeper) and it seems to work... fine, with minimal post-training on the new, deeper model required to exceed the performance of the original model. So it's not a crazy idea.

It's very unlikely that they're doing their own pre-training, which is the longest and most expensive part of creating a frontier model (if they were, they'd likely brag about it).

Most likely they built this as a post-train of an open model that is already strong on coding like Qwen 2.5.

Ok good questions here.

By fine-tuning in this context I assume you mean "supervised fine-tuning", or SFT. SFT trains a model to produce a specific string of output tokens, given an input. With SFT, if you were trying to train an assistant to solve math problems using a code interpreter, you might train it on a dataset that looks like:

    input: 'What is 934+1208'  
    output: `print(934+1208)`

    input: 'how many "r"s in strawberry'
    output: `print(len([l for l in "strawberry" if l == 'r'])`
etc, etc.

RL, on the other hand, just means training a model not to produce a concrete string of output tokens, but rather to create an output that maximizes some reward function (you get to decide on the reward).

For the example above, you might create the following dataset for RL training:

    input: 'What is 934+1208'
    ground_truth: 2142

    input: 'how many "r"s in strawberry'
    ground_truth: 3
You would then train the model to write python code that produces the ground_truth output. Your training code would take the model's output, run the python it produced, and then check whether the output matches the expected ground_truth. Importantly, this doesn't require you actually writing the code to solve the problem (you don't even have to know if it's solvable, technically!). Over time, the training loop would make the model more likely to produce outputs that get high rewards, which hopefully means it gets better at producing valid and applicable python.

This is useful in lots of domains where it's easier to check the answer than actually produce it. In the blog post[1] linked above, we train the agent to effectively use keyword search to try to find the correct emails in an inbox. As the model trainer, I didn't actually know what the right strategy was to choose keywords that would most quickly find the relevant email, but through training with RL, the model was able to figure it out on its own!

[1] https://openpipe.ai/blog/art-e-mail-agent?refresh=1746030513...

Yep. And tbh you probably don't even have to do this; the R1 paper found that just running SFT the base model with a relatively small number of monolingual reasoning traces was enough for it to get the idea and iirc they didn't even bother selecting for language specifically in the RL training looop itself.

To be honest, I don't expect the performance to generalize to other task types with this specific training regime. If we had a panel of like 30 logic puzzles and cross-trained against all of them simultaneously it might though.

I think there's a lot of benefit to discovering a training regime that allows small specialized models to do extremely well in one narrow task; if we can figure out how to make small models that beat SOTA on a specific task and are cheap to train and run, that's in some ways a more useful outcome than a very large model that is good at many tasks (but is more expensive to run for each of them).

OpenPipe | ML & Full-Stack Engineers | Full-time | Seattle, WA (ONSITE) | https://openpipe.ai/ | Highly competitive pay + equity We've built the world's best fine-tuning platform in just over a year. First to launch self-service preference tuning, integrated evals/data prep/fine-tuning, and self-service learning from human feedback.

Our customers range from fast-growing startups to Fortune 500s. We're growing 40% MoM and have achieved this with a team of just 5 engineers, including the founders.

Seeking:

- ML Engineers: Help advance our fine-tuning capabilities. (We have thousands of datasets and evals; testing new ideas is really easy!)

- Systems Engineers: Scale our platform serving hundreds of millions of daily requests

- Full-stack Engineers: Build end-to-end features in TypeScript/Python

Ideal candidates:

- Strong programming skills (TypeScript/Python)

- Systems architecture expertise

- Self-starters (founder/founding engineer experience valued)

- Willing to relocate to Seattle

Highly competitive salary + equity. Well-funded with large customers. Perfect for future founders wanting startup experience or engineers breaking into AI/ML with immediate impact.

Email: kyle@openpipe.ai Include something impressive you've built.

OpenPipe | ML & Full-Stack Engineers | Full-time | Seattle, WA (ONSITE) | https://openpipe.ai/ | Highly competitive pay + equity

We've built the world's best fine-tuning platform in just over a year. First to launch self-service preference tuning, integrated evals/data prep/fine-tuning, and self-service learning from human feedback.

Our customers range from fast-growing startups to Fortune 500s. We're growing 40% MoM and have achieved this with a team of just 5 engineers, including the founders.

Seeking:

- ML Engineers: Help advance our fine-tuning capabilities. (We have thousands of datasets and evals; testing new ideas is really easy!)

- Systems Engineers: Scale our platform serving hundreds of millions of daily requests

- Full-stack Engineers: Build end-to-end features in TypeScript/Python

Ideal candidates:

- Strong programming skills (TypeScript/Python)

- Systems architecture expertise

- Self-starters (founder/founding engineer experience valued)

- Willing to relocate to Seattle

Highly competitive salary + equity. Well-funded with large customers. Perfect for future founders wanting startup experience or engineers breaking into AI/ML with immediate impact.

Email: kyle@openpipe.ai Include something impressive you've built.

No, generally speaking OpenAI doesn't re-use training data between customers. It's worth it to them anyway because they learn what does/doesn't work on different tasks

Of course, it isn't your IP free and clear either, because the base model isn't open so your fine-tuned model will always live inside OpenAI's walled garden.

If you're interested in reinforcement learning on top of truly open models where you own the end product, we're putting a lot of thought into that and are also looking for design partners! Feel free to email me at kyle@openpipe.ai.

This is a fair point. The reason why I think "correlation" is a better metric than "predicts the exact correct score" is because of how I'll be using this model in the next post.

Broadly, the main use case for this model (in the RL context) will be to take two different versions of the same post, and predict which of the two is more likely to be upvoted. So what matters isn't that it gets the exact number of upvotes correctly, but that it correctly predicts the relative difference in likely upvote count between two variants.

Now it still doesn't do a great job at that (the correlation is only 0.53 after all) but it still does a good enough job to provide some useful signal.

Yes! The architecture is almost identical. The only difference is in the final layer. In an LLM used for text generation, the final layer has a separate output for every potential token the model could produce, and we decide which token to generate by choosing the one with the highest likelihood at each generation step (at least that's what the simplest sampling methods do). In an LLM used as a reward model, we only have one output in the final layer, and we interpret its value as the predicted reward.

Everything else in the model before that final layer is exactly identical, architecture-wise.

I hadn't heard of isotonicregression before but I like it!

it's good to create two models, one for likelihood of zero karma, and another expected karma, conditional on it being non-zero.

Another way to do this is to keep a single model but have it predict two outputs: (1) likelihood of zero karma, and (2) expected karma if non-zero. This would require writing a custom loss function which sounds intimidating but actually isn't too bad.

If I were actually putting a model like this into production at HN I'd likely try modeling the problem in that way.

For me the objective of "most up votes" is not fully correlated with where I get the most value on HN. Most of the time, the most up voted I would have found them anyway on other platforms.

Yes, this is a fantastic point. I'm curious if there's some other measurable proxy metric for "things I get the most value out of on HN"? Upvotes seems like the most natural but optimizing for it too strongly would definitely take HN down a dark path.

I link to it from the post, but all the code is open source! You can find the specific training script here: https://github.com/OpenPipe/best-hn/blob/main/stories_train_...

And all the graphs for the blog are from this notebook: https://github.com/OpenPipe/best-hn/blob/main/blog-figures.i...

Lots of other good stuff in that repo, although it's only organized to a "working researcher" standard I'm afraid.