"); //-->
作者:小戏
在闲极无聊百无聊赖的刷着推特的时候,突然看到了这样一条消息让我手指一停。
眼睛很快捕捉到了关键词,嗯?PromptIDE? 不知道大家看到 Prompt 和 IDE 这两个词组合在一起是一种什么样的感受,我的第一反应可能是“啊?Prompt 开发也要有 IDE 了?”,尽管这一年多来 Prompt 在 NLP 领域几乎占据了绝对的高地,“第四范式”带着大模型高歌猛进,但是当一眼看到 Prompt 与 IDE 的组合时,倒没有感受到那种“终于我等到你,还好我没放弃”的惊喜,反倒是更像是两种相隔甚远的东西突然被组合成了一个新名词的不适应。
因此,带着好奇,我便点开了这篇站在 Prompt IDE 背后的论文,论文题为《Interactive and Visual Prompt Engineering for Ad-hoc Task Adaptation with Large Language Models》。看到标题,应该可以大致感受到,论文开门见山就把自己的方向定在了信息检索这样一个 NLP 的子领域中。OK,这其实不是一个通用的 IDE,而是需要添加“在信息检索领域中的”这样一个定语才能成立的 IDE。
细分领域先按住不表,阅读摘要,在简单陈述了这一年多大模型 + Prompt 在 NLP 领域辉煌的战绩之后,笔锋一转,“However”,找到良好的 Prompt 模板需要大量实验,不同的 Prompt 变种可能导致正确率的显著差异。也因此,这样的问题呼唤着一个可以做到帮助使用者实验不同的 Prompt 模板,可视化不同 Prompt 模板效果的 IDE 出现。
听着还不错,继续读下去,正文中,为了解构 Prompt 的工作流程,以匹配 Prompt IDE 应该实现的功能,作者将使用者使用 Prompt IDE 的主要流程划分为:
1. M1-Prompt Template:即使用者构建任务描述模板
2. M2-Answer Choices:即使用者构建答案选择模板
3. M3-Evaluation:即IDE评估并展示模板效果
同时,紧接着流程,作者又提出了一个 Prompt IDE 应该实现的四个目标:
1. G1:IDE应该广泛支持不同的信息检索的下游任务
2. G2:更快,更好的写作 Prompt
3. G3:通过量化的指标选择出更好的 Prompt
4. G4:方便的部署模型
根据这四个目标,作者再次细化归纳出了一个 Prompt IDE 应该完成的四项任务
1. Task1:构建并尝试不同的 Prompt 模板[G1,G2]
2. Task2:体现出详细的预测细节[G2,G3]
3. Task3:测试不同 Prompt 的性能[G3]
4. Task4:导出最优的 Prompt[G4]
最终,根据这层层递进的流程目标任务的逻辑推理与排列组合,作者设计出了这款具有四部分功能的 Prompt IDE:
从左到右,依次为数据选择([Task1-Task3],[G1-G3])、模板选择([Task1],[G1,G2])、模板精炼([Task1-Task3],[G1,G2])以及模板测试([Task2,Task3],[G2,G3])。
数据选择部分主要用于浏览并选择相关测试数据集,模板选择主要用于探索不同的问题描述与答案选择的模板组合,模板精炼可以针对一个表现效果好的模板选用不同的数据进行微调并最终构建效果最好的模板,而模板测试主要用于展示模板在大规模数据集上的表现。
讲了这么多M、G和Task的排列组合,层层递进下对这个 Prompt IDE 还有点心动。于是乎我点开了作者提供的一个示例 Demo,但这一入眼怎么跟论文的图里有一点点区别
原本四个的功能变成了两个,仔细一看,作者讲这是一个轻量级的模型,于是我点进了他的完整模型
好吧,还是两个。不过这毕竟不重要,点开模板选择的功能,是如下一个页面:
在左上侧的 Prompt Template 处,可以自定义不同的问题描述模板,其中{{q1}}处陈列不同的模板变体,内容在右上侧的 Prompt variable variants 处展示,例如,在这个例子中,就有 "Text" 、 "Article" 、 "Read this article" 三种变体。而{{q2}}处展示不同的答案选择模板变体,在该示例中,有 "Possible answers:"、"Chose between A, B, C, or D"两种选择。根据不同的模板样式,自定义的{{q1}}与{{q2}}还可以继续扩展。
而最终 IDE 所测试的 Prompt 模板,是 {{q1}} 与 {{q2}} 处的选择的乘积,例如在这里例子中,供评估的模板就有 2 x 3 一共 6 种。点击这里的 Preview 6 Variants for 20 samples 就可以展示评估结果(放一段官方的GIF)
展示的效果看起来非常不错,但当我打算看看模型精炼的板块时,却发现:
好的,原来只有一个静态的展示页面,可以对单个模板进行更加深入的测试与微调:
再往下是一个预先计算好的结果展示的页面,分别展示了正确率、混淆矩阵等信息。
然后就,没了?
是的,Demo 到此戛然而止,论文里逻辑严密叙述清洗的功能阅读下来倒成了论文仅供参考,一切以实物为准。回顾一下这篇论文的大饼,这其实是一篇告诉了我做了一个有四个功能的 Prompt IDE 但 Demo 里只有两个功能因为没法导入数据因此两个功能其实都是静态的展示页面的论文。而深究这个工作的意义,IDE 的功能应当在于好上手与方便使用,至少将复杂的流程简化到易于人类理解的逻辑去操作,这款 IDE 或者在论文里确实做到了良好的分析与可视化,但是对于当下这款 Demo 却只能期待一下它未来的表现。
最后,化用论文里反复重复的M、G、Task,也许引用一个家居博主的经典发言,倒挺适合评价这款 Prompt IDE:
1. Tips1:在各种限制条件下才能好用的东西不叫好用
2. Tips2:如果一个东西给你带来的麻烦超过了带给你的方便,那就应该果断舍弃
3. Tips3:以前不需要,以后也不必买
4. Tips4:使人显得不聪明的产品已经太多了,不要再添砖加瓦
论文题目:
Interactive and Visual Prompt Engineering for Ad-hoc Task Adaptation with Large Language Models
论文链接:
https://arxiv.org/pdf/2208.07852.pdf
项目地址:
http://promptide.vizhub.ai/
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。