☰
复现little-coder论文数据:9.7B Qwen在Aider Polyglot拿下45.56%,领先基线2.4倍
2026/10/3 20:09:01 网站建设 项目流程

复现little-coder论文数据:9.7B Qwen在Aider Polyglot拿下45.56%,领先基线2.4倍

【免费下载链接】little-coderA harness optimized to smaller LLMs项目地址: https://gitcode.com/gh_mirrors/li/little-coder

little-coder 是一个专为本地小参数模型优化的编码智能体(coding agent)框架。在它的论文数据中,9.7B 的 Qwen3.5 模型在 225 道题的 Aider Polyglot 多语言编程基准上平均拿下45.56%,而同一模型用原版 Aider 只得到19.11%——框架差距达2.4 倍。这篇教程带你拆解论文数据的生产过程:硬件、配置、跑分方法与关键结论,新手也能照着复现。

一、45.56% 是什么水平?先看论文成绩单

系统模型Aider Polyglot 成绩
little-coder + Qwen3.5-9B(两次跑分均值)9.7B 本地模型45.56%
原版 Aider + Qwen3.5-9B(同权重同协议)9.7B 本地模型19.11%
GPT-4.5 preview(公开基准参考线)云端大模型44.9%
gpt-oss-120b(公开基准参考线)云端 120B 模型41.8%

一个 8GB 显存笔记本上跑的 9.7B 量化模型,追平了云端前沿模型在公开榜单上的成绩——这就是论文标题 "Honey, I Shrunk the Coding Agent" 的底气。

论文级跑分环境(全部来自官方报告):

配置项值
CPUIntel Core i9-14900HX
GPURTX 5070 Laptop,8 GB 显存
内存31 GiB
模型ollama/qwen3.5(9.7B,Q4_K_M,约 6.6 GB)
推理后端Ollama 0.20.5(Docker)
上下文窗口32,768 tokens
思考预算2,048 tokens / 轮
温度0.3

全程离线、零云端推理,一台消费级笔记本就是全部算力。

二、一键安装与复现环境准备 🚀

第 1 步:拿到论文版代码。45.56% 产生于 v0.0.2(commit1d62bde),复现必须切到该 tag:

git clone https://gitcode.com/gh_mirrors/li/little-coder cd little-coder git checkout v0.0.2 # 按该版本 README 完成 Python 环境安装

第 2 步:起本地模型。ollama pull qwen3.5拉取 9.7B 权重,保持num_ctx=32768与论文一致。

第 3 步:跑基准。测试驱动脚本在 benchmarks/aider_polyglot.py,对 225 道练习逐题起 agent 会话(读文件→写代码→跑测试→失败重试一次),用各语言原生测试器判分。

💡 每轮完整跑分约20–23 小时。论文数字 45.56% 是两轮(46.22% / 44.89%)的均值,波动仅 ±0.94 pp——建议至少跑两轮再下结论。

三、逐语言拆解:Python 与 Java 是强项,Rust 是硬顶

语言题数little-coder原版 Aider差距
Python3452.9%17.6%−35 pp
Java4752.1%23.4%−28 pp
C++2650.0%26.9%−23 pp
JavaScript4946.9%18.4%−27 pp
Go3938.5%12.8%−26 pp
Rust3030.0%16.7%−13 pp(最窄)

三个值得记住的结论:

  • Python 差距最大(−35 pp):little-coder 的工作区发现 + 技能注入在 Python 这种语法简洁、测试驱动的语言上收益最明显。
  • Rust 差距最窄:借用检查器是"模型能力天花板",架构再怎么优化也推不动——9.7B 模型在 Rust 上就是会撞到语义理解的墙。
  • 跨语言难度高度一致:book-store、bowling等组合优化/状态机题在所有语言下双系统全灭,瓶颈在算法推理深度而非语言语法。

四、2.4 倍领先从哪来?5 个"反小模型缺陷"机制

小模型不是"笨",而是失败模式高度确定——同一个坑反复踩。little-coder 的思路就是:用确定性的架构对策,堵确定性的坑。

1️⃣ Write-guard(读写不变量):Write 工具对已存在文件一律拒绝,结构化报错强制模型改用 Edit 做局部修改。实测每轮在57% 的练习上拦截过整文件重写——这是开发期观察到的第一大失败模式。

2️⃣ 思考预算上限(2,048 tokens):实时监控推理 token 流,超限即截断,把已产生的部分思考回注上下文后关闭思考重试。每轮触发约 200 次——意味着大量练习上模型本来会把思考跑到上下文爆炸。

3️⃣ 测试输出引导的重试:第一次失败后把测试输出喂回上下文再试一次,救回17.6%的通过题(约 +8 pp)。

4️⃣ 工作区发现 + 知识注入:编码类关键词触发时注入技能卡片,指导模型先 Glob 出.docs/instructions.md、README.md再动手。67% 的练习用到了 Glob,100% 用到了 Read——"先读规范再写代码"直接翻盘了 affine-cipher 等具体题目。

5️⃣ 质量监控 + 20 轮上限:检测空响应/幻觉工具名/死循环;通过的题平均 11.6 轮收敛,失败的题烧满 19 轮——41% 的练习触顶被截断,而不是无限烧显卡。

📁 机制对应的技能与知识文件见 skills/(skills/knowledge/dynamic_programming.md、skills/protocols/research_protocol.md),架构总览见 docs/architecture.md。

五、时间经济学:慢一点,但赢面大得多

指标little-coder原版 Aider
通过题平均耗时176s141s
失败题平均耗时491s224s
每小时通过题数4.742.75

Aider 失败得快(2 次全文件重写就放弃),但 little-coder 在难题上多探索的那 20 轮换来1.72 倍的"通过吞吐"。代价是失败题消耗 2.8 倍于通过题的时间——约56% 的总跑分时长花在了最终失败的题上,这也是作者提出"预测性提前终止"优化方向的原因。

六、复现避坑清单 📌

论文跑分时踩过的三个坑,比数据本身更有参考价值(详见 docs/benchmark-reproduction.md):

  • Ollama runner 会静默崩溃:长跑 6–10 小时后推理子进程死掉被替换,崩溃后的语言赛道通过率从 ~52% 掉到 ~32%,且不报错。对策:每个 API 请求加"keep_alive": -1。
  • 测试进程必须沙箱化:一道 Go 题的 buggy 测试二进制吃掉 27.7 GB 内存拖垮整机。用systemd-run --scope -p MemoryMax=4G给每道题套内存上限。
  • 别信单次跑分:runner 污染、热降频都会系统性压低成绩;两轮均值 ± SEM 才是可信口径。

七、结论:脚手架与模型匹配,是小模型的杠杆

关键数字含义
45.56% vs 19.11%同一 9.7B 权重,架构差 2.4 倍
69 题little-coder 解出而 Aider 失败的"架构增量题"(净贡献 +58 题)
+8 pp仅"测试输出重试"一个机制的贡献
8 GB 显存全部数据的生产硬件

想继续深入?完整叙事读 docs/benchmark-reproduction.md,基线对照读 docs/benchmark-baseline-aider.md,后续 35B-A3B 冲上 78.67% 的进阶数据见 docs/benchmark-qwen3.6-35b-a3b.md。

给新手的一句话总结:模型选不选得动是能力问题,但用不用得上是工程问题——little-coder 证明,在本地小模型上,后者恰恰是你最能发力的地方。

【免费下载链接】little-coderA harness optimized to smaller LLMs项目地址: https://gitcode.com/gh_mirrors/li/little-coder

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询