大模型
dev.to ·
@Leon Odor
在动手构建前,先试着杀死你的想法
作者主张在 AI 让编码成本大幅降低的当下,先证伪决策背后的隐含假设,而非直接堆代码。他把“需要更大模型”“新检索技术能改善记忆”等偏好还原为可检验的断言,并只优先测试一旦错误会推翻最多工作的假设。文中给出具体失败案例:ShrekOS 上标准安装流程因 /etc 被密封为只读而失败;Mycelium 的关联记忆方案性能不如现有方案;某检索技术 6 个基准全部未通过。他还强调实验前先定义 PASS 标准,避免事后挪动目标。
AI推荐理由 作者提出在 AI 让实现成本极低时,先证伪想法中的隐含假设(如“需要更大模型”“新检索技术能提升记忆”),并给出 ShrekOS 安装器因 /etc 只读失败、Mycelium 关联记忆方案表现更差、某检索技术 6 个基准 0 通过等具体失败案例,以及“先定义 PASS 再实验”的方法。属于可操作的工程实践观点,但为个人博客经验,无量化数据或可复现实验,非官方或研究结论。
62
正文
AI makes it dangerously easy to build the wrong thing. I can point agents at a problem and have a mountain of code before I have proven the idea underneath it.
So before I build too much, I try to kill the idea first.
Not the whole project. The claim hiding inside the decision.
Most decisions are secretly a bet that something is true. Name the bet out loud and you can test it.
If I think we need a bigger model, that is not just a preference. It is a claim that the failure is caused by insufficient reasoning capacity.
If I believe a new retrieval technique will improve memory, I am claiming that the current method is the bottleneck.
If I assume the normal installer flow should work here, I am claiming that the environment behaves like a conventional writable Linux system.
Sometimes, once you check, the answer is just no.
The useful failures
On ShrekOS, I assumed the standard installer approach would work. It did not, because /etc is sealed and read-only, and the normal recipe quietly depends on writing there.
Finding that early instead of three layers of code later saved me from an architectural mess.
On Mycelium, I tested an associative-memory approach that sounded great and performed worse than what I already had. Another promising retrieval technique improved zero out of six benchmark cases.
Both died there.
A prototype should not just prove something works. It should give the idea a cheap, honest chance to fail.
It worked when I tried it isn't proof. It's a story about something that happened once.
Define PASS before you run it
Decide what success means before the experiment, not after.
If you skip this, you will get a mediocre result and immediately narrate why it is secretly encouraging. It is much harder to move the goalposts once you wrote them down.
For a security boundary, I define what must never happen.
For a retrieval change, I define what specifically has to improve.
For a new capability, I want a regression test before I trust it.
Without a hard definition of failure, you are just playing with toys.
When you write down the criteria for death, you stop lying to yourself. You stop tweaking parameters until the graph looks pretty, and you take the result you actually got.
Test the assumption that can hurt you most
I do not treat every unknown as equal.
Not knowing what a button looks like can wait forever.
Not knowing whether the security boundary underneath it is real gets tested now.
The question is always: which assumption, if wrong, invalidates the most work?
That one goes first.
Turn the idea into a claim that can be wrong.
Find the assumption that would invalidate the most work.
Build the cheapest thing that could kill it.
Decide what PASS means before running it.
Let bad results actually kill ideas.
This is not about being pessimistic. It is about being efficient.
AI makes implementation cheaper every month, and it makes building the wrong thing cheaper at exactly the same rate.
So I have stopped being impressed by how fast I can turn an idea into code.
What I care about now is whether the idea survives long enough to deserve the code.