看点:给机器人一本说明书,但说明书是它自己写的

2026-10-28 14:33:28 来源: 科技行者

你有没有遇到过这种情况:想找人帮你做一件专业的事,比如报税,但你不知道怎么描述需求,对方也不知道你到底要什么标准的结果。于是你们来回磨合,他先按自己的理解做一版,你反馈哪里不对,他再改,改了好几轮才勉强对上。


(资料图片仅供参考)

现在把这个场景搬到AI身上。

你想让一个大语言模型帮你做阅读理解,只说了一句话:"我想要一个能读文章回答问题的模型。"没有例子,没有数据,没有标准答案。模型能不能无师自通,自己摸索出一套靠谱的工作方法?

这正是来自Vanderbilt大学、南加州大学和Adobe的研究者们在最新论文里要解决的问题。他们管这套方法叫Prompt2Skill,翻译过来就是"从提示词到技能"。这个名字听起来平平无奇,但它解决的问题其实挺刁钻的。

**技能是什么,为什么AI需要它**

先说清楚一个背景。现在的大语言模型越来越流行一种用法:给它配一个"技能包"。

技能*:一份放在模型上下文里的文本文件,通常是markdown格式,里面写着完成某项任务的具体步骤、行业惯例、注意事项。模型读了这份说明书,就能在不改变自身参数的情况下,把某个专业任务做得更好。

这个思路很像给一个聪明但没有行业经验的新人发一本岗位手册。新人本身智商在线,但手册里写明了"客户问价格时要先问预算区间""报价单必须包含三项内容"这种细节,新人照着做,表现立刻专业起来。Anthropic等公司已经在实际产品里采用这套机制。

问题是,这些技能手册目前基本靠人工写。专家写一份技能文档,要懂这个领域,还要懂markdown格式,还要反复试验才知道模型读了之后效果好不好。这个成本很高,而且换一个模型,原来写好的手册可能就不管用了,因为不同模型的毛病不一样,新手册得重新磨合。

**现有方法的死角:它们都需要一份"标准答案"**

学术界已经有人尝试让AI自己优化技能文档,而不是全靠人工。比如论文里提到的Trace2Skill,是把AI执行任务时留下的轨迹整理归纳成技能手册;还有SkillOpt,把技能优化变成一个带验证集的文本编辑过程,每次改动都要先在验证集上跑分,分数提高了才保留。

这些方法有个共同的前提:你得先有一批标好答案的训练数据,机器才能在上面打分、挑选、迭代。

但现实情况往往是,用户根本没有这批数据。你只有一个念头,比如"我想要个能回答问题的模型",外加也许两三个例子。论文里专门提到一个细节:之前的研究做过测试,如果把训练集砍到只剩一个样本,优化效果就会退化到跟完全没数据时差不多。

这就是本文要啃的硬骨头:在没有任何标注数据、只有一句任务描述的情况下,AI能不能自己把技能文档从零写出来,还要写得比直接裸问模型效果好。

**Prompt2Skill的整体思路:派两个助手去干活**

研究者设计了一套多智能体系统,核心是两个角色分工明确的"助手"。

第一个助手叫数据代理*(Data Agent),它的工作是把一句模糊的任务描述,翻译成一份清晰的任务规格书,顺便去网上搜罗或者自己编造一批练习题,用来后续测试和打磨技能文档。

第二个助手叫技能代理*(Skill Agent),拿着数据代理准备好的练习题,不断地让目标模型去做,观察它哪里做错了,然后针对性地修改技能文档,改完再测试,测试通过才保留这次修改。

整个流程走完,最后导出一份叫SKILL.md的文件,这就是给目标模型配的"上岗手册"。

这个分工有点像一家新开的培训机构。数据代理相当于教务组,负责弄清楚这门课到底要教什么、去哪里找或编练习题;技能代理相当于带班老师,拿着学生的练习题做批改,发现学生某类题型总出错,就调整教学方法,再出一套新题验证效果有没有提升。

**第一步:把一句话变成可执行的任务规格**

模型收到用户那句模糊的话之后,第一件事不是立刻动手找数据,而是先弄清楚自己到底要做什么。

系统会让一个大语言模型根据这句任务描述,同时生成两样东西:一份任务规格,和一份初始的"种子技能"。

任务规格里记录的信息包括:输入是什么样子、这是个什么类型的任务(是问答还是数学题还是表格操作)、期望的答案应该是什么风格(一个词、一个数字、一段长文本)、以及怎么判断答案对不对。

这里有个很实际的问题。模型自己是不知道标准答案该怎么打分的,所以系统会根据任务规格,自动推导出一个可执行的判分规则,比如字符串完全匹配、数值等价判断、或者看答案里有没有包含某个关键词。论文里特别强调,这个系统推断出来的判分方式和任务本身真实的评价标准是两回事。前者是系统"猜"出来的替代品,后者是真正藏在用户脑子里、从没说出来的东西。这个区分很重要,因为整个后续优化都建立在这个"猜"出来的代理指标上。

这步骤有点像你去一家从没去过的餐厅点菜,服务员只说"随便来点家常菜",厨房里没人知道你的口味,只能先按常规做法准备几道菜探探路,之后看你反馈再调整。如果厨房一开始就乱做,不先定个大致方向,后面的调整会毫无章法,越改越偏。

**第二步:数据代理去哪里找练习题**

光有任务规格还不够,得有实际的例子让目标模型去练手、去犯错、去被纠正。数据代理在这一步要完成三件事:找数据、改数据、造数据。

找数据这块,系统内置了对接Hugging Face数据集库和维基百科的检索接口。数据代理会根据任务规格生成搜索请求,甚至会先凭空想象一份"假想中最适合这个任务的数据集长什么样",然后拿这份想象出来的描述去反推搜索关键词。这个操作听起来有点绕,其实逻辑很简单:与其干巴巴地搜"问答数据集",不如先想清楚理想中的数据集应该长什么样,再拿这个画像去匹配真实世界里存在的东西。

检索工具*:能根据一个查询词返回候选数据源的接口,这里具体指连接Hugging Face数据集目录和维基百科的程序。

找到候选数据源之后,未必能直接用。比如用户想要"读维基百科文章回答问题"的模型,但维基百科原始文章只是一堆正文,没有现成的问题和答案,这时候就需要改数据,把原始材料重新组装成"文章+问题+答案"这种三元组格式。如果连改都改不出来,系统会进一步生成全新的练习题,凭空编一些问题和参考答案。

这个过程很像你想办一场读书会,但手头的书都是小说原文,没有配套的讨论题。你要么从小说内容里提炼出几个讨论问题,要么如果找不到合适的素材,干脆自己原创几道讨论题。如果不这么处理,直接拿小说原文让参会者"讨论",大家根本不知道该聊什么,这场读书会就废了。

无论是改出来的还是编出来的数据,都要经过一道验证关卡才能进入正式的练习题库。验证包括检查格式是否完整、答案是否可用,还有一道叫"可答性筛选"的测试:让种子技能配上目标模型,去尝试回答这批候选数据,如果模型在抽样题目上全军覆没,这批数据就被判定为不适合,直接淘汰。对于新编造的题目,还要再加一道一致性检查,种子技能模型或者裸提示模型里至少有一个能答对,这道题才算数。

**第三步:技能代理怎么一轮轮改进技能文档**

数据准备好之后,真正的优化循环开始了。

系统先让目标模型配上当前这份技能文档,去做一批"反思集"里的题目,记录下哪些题做错了,错在哪里。这批做错的记录会连同原始输入、标准答案、模型的错误回答,一起喂给一个叫反思模型*(这里具体用的是GPT-5.5)的角色,让它诊断问题所在,写出几个改进版的技能文档候选。

拿到候选修改版之后,不能直接替换掉旧版本,还得走一道验收程序。系统会专门拿出一批全新的、候选版本和旧版本都没见过的题目,这批题目叫"验收批次",让新旧两个版本的技能文档在同一批题目上同台竞技。

这里有个很关键的设计:只看谁独有的对错。如果一道题新旧版本都答对了,或者都答错了,这道题不计分,只有"新版本独有做对、旧版本独有做错"和反过来的情况才会被记录。

研究者还引入了一个统计量来判断这个胜负差距是不是靠谱,而不是碰巧。公式里减去了一个数值做连续性校正,意思是哪怕新版本多赢了一两道题,也不轻易算数,除非这个优势足够明显才会被采纳。只有真正站得住脚的改进才会被接受,成为下一轮的基准版本。

这套验收机制很像公司招聘时的AB测试。你不会因为新的招聘流程录用的第一个人表现好就全面推广,你得拿新旧两套流程,在同一批候选人身上各跑一遍,比较通过率有没有统计学意义上的明显差距。如果只凭一两次个案就下结论,很容易被偶然性误导,白白推翻一套本来还不错的旧流程。

**最后一步:为什么要留着"老版本"不扔**

这里有个容易被忽略但其实很巧妙的设计。系统在整个优化过程中,会把每一次被验收通过的技能文档都存档下来,而不是只保留最后一版。

等到所有轮次的优化都跑完,系统会拿出一批从未被用来做过反思或验收、彻底冻结不动的"选拔集",让初始版本和所有历史上被采纳过的版本,在这批题目上做最后一次比拼,分数最高的那个,才是最终真正导出的SKILL.md。

论文里给出了一个理论证明,说明只要这个选拔集和之前用过的数据是独立的,并且代理指标和真实评价标准之间的偏差有界,那么最终选出来的这份技能文档,其真实表现和"理论上能选出来的最好版本"之间的差距,是可以被严格框定的。

这个做法背后的担忧很现实:优化过程不是单调向好的。有时候后面几轮的修改,看起来在反思集和验收批次上表现不错,但可能只是过拟合了那几批特定的题目,换一批题目反而不如更早期的某个版本。

这就像你在健身,每周都调整训练计划,有的周调整后体测成绩更好,但未必是真进步,可能只是那周恰好状态好或者测试项目刚好适应了。如果你从不回头比较,只认准"最新的计划肯定最好"这个假设,很可能在某次调整里悄悄退步了却毫无察觉。留一个独立的、从没被污染过的"体检日"做最终裁决,才能真正知道哪个阶段的自己状态最好。

**实验结果:这套方法到底行不行**

研究者在四个任务上做了测试:事实型问答(SearchQA数据集)、阅读理解(SQuAD)、电子表格操作(SpreadsheetBench)、数学推理(AIME)。测试的目标模型覆盖了开源的Qwen3-8B、Qwen3-32B、Llama-3.2-1B,以及商业模型Claude Haiku 4.5和GPT-5.5。

结果显示,Prompt2Skill在每一个目标模型上都取得了最高的平均相对提升。对于Qwen和商业模型,提升幅度在22.0%到29.1%之间;对于参数量很小的Llama-3.2-1B,提升幅度达到了93.5%。

这里有个对照组很说明问题。研究者还拿了网上现成发布的通用技能文档去测试,结果发现这些"别人写好的"技能手册不一定管用,甚至会帮倒忙。比如一份现成的技能文档,把Llama-3.2-1B在SQuAD任务上的得分从0.207硬生生拖到了0.048,而Prompt2Skill针对同一个模型优化出来的技能文档,把分数拉到了0.492。

这个对比揭示了一个很朴素但容易被忽视的道理:技能文档这种东西,好不好用取决于具体是哪个模型在用。一份对GPT-5.5管用的说明书,拿给参数量小得多的Llama模型,很可能水土不服。这也正是为什么人工预先写好的通用技能库会有天花板,它没办法针对每个具体模型的具体毛病去调整。

研究者还做了一组对照实验,把Prompt2Skill和前面提到的SkillOpt放在同样的数据和同样的初始技能上公平对比,结果Prompt2Skill在SearchQA任务上的精确匹配率比SkillOpt高出将近3个百分点,在SQuAD上也有小幅领先,说明Prompt2Skill的优化流程本身确实比单纯的编辑验证机制更有效,而不只是因为它多抓了点数据。

**几个值得琢磨的细节**

论文里还测试了两件事,挺有意思。

第一件是看初始技能文档的选择重不重要。研究者分别用系统自己生成的种子技能,和网上现成的通用技能文档作为起点,跑同一套优化流程,结果发现两种起点最后收敛到的效果差不多。这说明Prompt2Skill的优化能力比较稳健,不太依赖一个完美的起点,就像一个好厨子,不管你给他的食材一开始切得整不整齐,他最后都能做出一道差不多水准的菜。

第二件是关于用户要不要提供示例。研究者测试了零个、一个、四个输入输出示例的情况,发现额外给示例对结果的影响并不稳定,有时候甚至没什么帮助。这其实呼应了整篇论文的出发点:系统本来就会自己去检索和生成数据,用户给不给示例不是决定性因素。

论文作者在附录里还专门做了一次数据泄漏审计,检查自动抓取的练习题有没有和最终测试集重合,结果显示没有发现任何文本重叠或表格文件哈希匹配,这个细节算是给结果的可信度上了道保险。

**这个方法能不能用在别的地方**

研究者顺手还探索了一下Prompt2Skill在自动机器学习领域的潜力,把它和之前的工作Prompt2Model做对比。Prompt2Model的思路是把任务描述转换成训练数据,然后微调出一个专门的模型。Prompt2Skill走的是另一条路,不改模型参数,只靠配一份技能文档来适配任务。研究者在日语转Python代码生成、时间表达式标准化这两个任务上做了初步对比,发现效果相当,说明"不动模型参数,只靠外挂说明书"这条路,在某些场景下可以替代传统的微调方案。

**写在后面**

读完这篇论文,有个细节让我反复想了一会儿。系统推断出来的那个判分指标,和真正藏在用户心里的评价标准,始终是两回事。论文里专门用符号区分了这两者,一个叫代理评价指标,一个叫真实评价指标,中间那道理论证明,其实就是在量化这个"猜测"和"真相"之间可能存在的偏差到底有多大影响。

这让我想到,很多所谓的"自动化"系统,本质上都在做一件事:用一个可以被计算、可以被验证的替代目标,去逼近一个说不清道不明、只存在于人脑子里的真实需求。技能优化是这样,很多推荐系统、很多考核指标的设计也是这样。这篇论文没有回避这个问题,反而把它明确写进了理论框架里,这种诚实的态度挺少见的。

另一个值得玩味的地方是,论文反复强调"留住旧版本"这个设计。很多自动优化系统会有种执念,觉得迭代就应该是单调向好的,最后一版肯定最强。但这篇论文用理论和实验共同说明,优化过程完全可能在某一步走偏,而发现走偏的唯一办法,是留一个从未被污染过的考场,让所有候选人重新站到同一个起跑线上比一次。

一个只会往前跑、从不回头检查的系统,和一个愿意保留历史、随时准备承认"也许三步之前那个版本才是最好的"系统,哪一个更值得信任?

Q&A

Q1:Prompt2Skill是什么?

A:Prompt2Skill是一个多智能体框架,能够仅凭一句自然语言任务描述,在没有任何用户提供的标注数据的情况下,自动为大语言模型构建并优化出一份可复用的技能文档,涵盖问答、阅读理解、表格操作和数学推理等多个任务领域。

Q2:Prompt2Skill和人工写的技能文档相比效果怎么样?

A:实验显示,网上现成的通用技能文档有时反而会拖累模型表现,比如让Llama-3.2-1B在SQuAD任务上的得分从0.207降到0.048,而Prompt2Skill针对同一模型优化出的技能文档能把得分提升到0.492,说明技能文档必须针对具体模型定制才有效。

Q3:Prompt2Skill需要用户提供训练数据吗?

A:不需要。它的核心设计就是解决没有标注训练集的情况,用户只需要给出一句任务描述,系统会自动通过数据代理检索或生成练习题,再通过技能代理反复测试打磨,全程不依赖用户提供的数据集。

每日热点