用好梯度信息GREATER,小模型也能成为提示词优化高手,PSU最新

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
AITNT-国内领先的一站式人工智能新闻资讯网站 搜索
用好梯度信息GREATER,小模型也能成为提示词优化高手,PSU最新
8778点击    2024-12-26 09:48

提示词优化的困境


有不少朋友认为,提示词工程没有前途。但扎心的事实是,提示词(Prompt)的设计和优化已经成为影响模型性能的关键因素。无论是在数学推理、常识判断还是逻辑分析等任务中,一个精心设计的提示词往往能让模型的表现有质的飞跃。然而,目前业界普遍认为,只有像GPT-4o或者Claude sonnet这样的超大规模语言模型才能胜任提示词优化的任务。这导致了一个尴尬的现实:为了优化小模型的提示词,我们不得不求助于计算成本高昂的大模型。这种依赖不仅增加了开发成本,还限制了小模型的应用场景。


Pennsylvania State University和Salesforce Research的研究团队提出了一个很有潜力的观点:通过巧妙地利用梯度信息,小型语言模型也能成为出色的提示词优化器。他们开发的GREATER(GRadiEnts ovEr ReAsoning)方法,让8-9B参数规模的小模型在提示词优化任务上达到甚至超越了GPT-4的水平。这一发现不仅挑战了业界的固有认知,更为提示词优化领域开辟了一条全新的技术路线。


用好梯度信息GREATER,小模型也能成为提示词优化高手,PSU最新


传统方法的局限性


在深入了解GREATER的创新之处前,我们有必要先理解当前提示词优化方法存在的问题。目前主流的方法,如APE(Automated Prompt Engineering)和APO(Automatic Prompt Optimization),都采用"文本反馈"的思路:使用大模型分析小模型在特定任务上的错误,然后基于这些反馈来改进提示词。这种方法存在几个明显的缺陷:首先,它完全依赖大模型的判断,这意味着优化过程的质量受限于大模型的能力;其次,文本反馈往往是模糊和主观的,缺乏明确的优化方向;最后,这种方法的计算成本很高,因为需要反复调用大模型来生成反馈。


更重要的是,研究者们发现,当使用小模型来生成这种文本反馈时,优化效果往往很差。这似乎印证了业界的普遍看法:小模型不具备足够的推理能力来优化提示词。然而,研究团队提出了一个关键洞察:问题不在于小模型的能力不足,而在于我们没有充分利用模型内部的梯度信息。


GREATER方法:基于推理的梯度优化


GREATER方法的核心创新在于将提示词优化问题转化为一个基于梯度的优化问题。与传统方法不同,GREATER不是简单地让模型生成文本反馈,而是巧妙地利用模型在推理过程中产生的梯度信息来指导提示词的优化。这个过程可以分为三个关键步骤:


用好梯度信息GREATER,小模型也能成为提示词优化高手,PSU最新


1.候选词生成:GREATER首先让模型基于当前输入生成一组可能的候选词。这些候选词不是随机选择的,而是通过模型的前向概率分布来确定的,确保它们与任务相关且语义合理。


2.推理链生成:对于每个候选词,模型都会生成一个完整的推理链。这个推理链不仅包含最终答案,还包含了模型是如何一步步推导出这个答案的。这一步的关键在于,它让我们能够评估每个候选词对模型推理过程的影响。


3.基于梯度的选择:最后,GREATER计算每个推理链相对于目标答案的损失,并通过反向传播获得相对于候选词的梯度。这些梯度信息直接反映了每个候选词对提升模型性能的潜在贡献。


这种方法的独特之处在于,它不需要外部模型的判断,而是充分利用了模型自身的梯度信息。这不仅大大降低了计算成本,更重要的是提供了一个明确的、可量化的优化方向。


GREATER方法的技术细节


候选词生成算法


GREATER的候选词生成过程采用了一种基于概率的筛选方法。具体来说,对于提示词中的每个位置i,系统会执行以下步骤:


1.初始筛选:


  • 从任务数据集中随机采样q个输入样本(实验中q=5)
  • 对每个样本,计算模型在该位置上的top-k个最可能的词(实验中k=10)
  • 取这些样本的候选词交集,确保选出的词对所有样本都有意义


2.概率阈值:


  • 计算每个候选词在所有样本上的平均概率
  • 设定最小概率阈值(例如0.01)过滤掉低概率词
  • 保留概率分布合理的候选词集合


3.语义相关性:


  • 使用模型的embedding层计算候选词与任务相关性
  • 过滤掉与任务上下文语义差异过大的词
  • 确保候选词集合的语义连贯性


这种多层筛选机制确保了候选词既符合语言模型的分布特征,又与具体任务相关。相比随机采样或固定词表,这种方法大大提高了优化效率。


梯度计算与优化原理


GREATER的核心创新在于其梯度计算方式。传统的提示词优化方法往往直接计算最终答案的损失梯度,而GREATER引入了"推理链梯度"的概念:


1.损失函数设计:


L = LCE(fLLM(x⊙p⊙r⊙pextract), y) + λLperpl


其中:


  • LCE是交叉熵损失
  • fLLM是语言模型
  • x是输入
  • p是提示词
  • r是推理链
  • pextract是答案提取提示
  • Lperpl是困惑度正则化项
  • λ是权重系数(实验中λ=0.2)


2.梯度计算流程:


  • 首先生成完整推理链r
  • 基于推理链提取最终答案
  • 计算损失相对于候选词的梯度
  • 通过反向传播获得梯度信息


3.优化策略:


  • 使用梯度信息对候选词排序
  • 选择top-3梯度最大的候选词
  • 通过前向验证选择最优替换词


这种基于推理链的梯度计算方法有两个关键优势:


  • 捕捉了提示词对整个推理过程的影响
  • 提供了更精确的优化方向


如下例所示:


def forward(*, model, input_ids, attention_mask, batch_size=512):
logits = []
for i in range(0, input_ids.shape[0], batch_size):
# Sequential Forced Batching
batch_input_ids = input_ids[i:i + batch_size]
if attention_mask is not None:
batch_attention_mask = attention_mask[i:i + batch_size]
else:
batch_attention_mask = None

logits.append(model(input_ids=batch_input_ids, attention_mask=batch_attention_mask).logits)

gc.collect()

del batch_input_ids, batch_attention_mask

return torch.cat(logits, dim=0)


def target_loss(logits, ids, target_slice):
crit = nn.CrossEntropyLoss(reduction='none')
loss_slice = slice(target_slice.start-1, target_slice.stop-1)
loss = crit(logits[:,loss_slice,:].transpose(1,2), ids[:,target_slice])
return loss.mean(dim=-1)


计算复杂度分析


相比传统的基于大模型反馈的方法,GREATER在计算效率上有显著优势:


1.时间复杂度:


  • 传统方法:O(N²L²),其中N是样本数,L是序列长度
  • GREATER:O(NL²)
  • 实际优化时间减少约65%


2.空间复杂度:


  • 传统方法需要存储大量中间反馈文本
  • GREATER只需要存储梯度信息
  • 内存使用减少约40%


3.计算资源对比:


  • 传统方法:需要同时部署大小模型
  • GREATER:只需要部署目标小模型
  • 硬件要求大幅降低


实验结果:小模型的惊人表现


研究团队在多个具有挑战性的任务上评估了GREATER的性能。他们选择了两个代表性的小模型:Llama-3-8B和Gemma-2-9B,并在以下三类任务上进行了测试:


用好梯度信息GREATER,小模型也能成为提示词优化高手,PSU最新


1.GSM8K数学推理任务:


  • Llama-3-8B使用GREATER优化后的准确率达到82.6%,比基线提升了3%
  • Gemma-2-9B达到89.4%的准确率,超过了所有基线方法


2.BBH(Big-Bench-Hard)任务集:


  • Llama-3-8B在21个任务上的平均准确率提升到68.7%
  • Gemma-2-9B达到76.6%的准确率,比现有最好的方法提高了3.7%


3.FOLIO逻辑推理任务:


  • 两个模型都实现了显著提升,分别达到62.6%和69.1%的准确率


更令人惊讶的是,GREATER优化后的提示词表现出了强大的迁移能力。例如,用Llama-3-8B优化的提示词直接应用到Gemma-2-9B上,性能几乎没有损失。这说明GREATER找到的是真正有效的提示词模式,而不是针对特定模型的过拟合结果。


案例分析:GREATER的优化效果


为了更直观地理解GREATER的优化效果,让我们来看论文中的几个具体案例:


1.电影推荐任务(Movie Recommendation):


  • 传统方法APO的提示词:"分析电影的类型、风格和主题,考虑动作、戏剧和喜剧元素。识别最符合给定电影列表特征的选项。"
  • GREATER优化后的提示词:"Use movie ratings data available here above movies for reference. ThisHOFF has an interesting analysis based solely options to options based movies ratings expect from the other movies you are asked ones mentioned here..."(使用电影评分数据作为参考基准,基于评分模式分析电影特征)
  • 效果:Llama-3-8B上的准确率从56%提升到58%,Gemma-2-9B上从48%提升到56%


2.因果推理任务(Causal Judgement):


  • 传统方法APO的提示词:"分析情况,识别直接和间接原因,考虑多个视角,评估反事实情况。"
  • GREATER优化后的提示词:"Use causal diagram. The correct option ask about whether there the variable C of about whether a specific cause is sufficient. The answer a causal relationship between C to D if the probability P that C occurs given E changes."(使用因果图,分析变量间的充分性关系和条件概率)
  • 效果:在Llama-3-8B上的准确率从51%提升到57%


3.形式逻辑任务(Formal Fallacies):


  • 传统方法的提示词:"让我们一步步分析论证的有效性。"
  • GREATER优化后的提示词:"Use formal notation and think step by step."(使用形式化符号进行逐步推理)
  • 效果:显著提升了逻辑分析的准确性


4.数学推理任务(Multistep Arithmetic):


  • 传统方法的提示词:"让我们按步骤解决这个问题。"
  • GREATER优化后的提示词:"Use parentheses and the step wise order..."(使用括号和严格的运算顺序)
  • 效果:通过引入明确的数学符号和运算规则,提高了计算准确率


这些案例展示了GREATER优化的几个关键特点:


1.特定格式的提示:


  • GREATER倾向于生成特定格式的提示词
  • 经常引入特定领域的方法论(如因果图、形式符号)
  • 提供明确的分析框架而不是泛泛而谈


2.任务特化:


  • 针对不同任务类型采用不同的优化策略
  • 充分利用领域特定知识
  • 生成的提示词更贴近任务本质


3.可迁移性:


  • 优化后的提示词表现出良好的跨模型迁移能力
  • 在不同规模的模型上都能取得显著提升
  • 说明找到了真正有效的提示模式


这些优化效果不仅体现在准确率的提升上,更重要的是展示了一种新的提示词设计范式:从简单的自然语言描述转向更有结构、更有方法论指导的形式。这种范式的转变对提示词工程实践具有重要的启发意义。


对Prompt工程师的启示


GREATER的成功对Prompt工程师有几个重要启示:


1.提示词设计的新思路:


  • 不要局限于自然语言描述
  • 考虑加入具体的分析框架和方法论


2.小模型的潜力:


  • 不要低估小模型的能力
  • 合理利用模型内部信息可能比简单扩大模型规模更有效
  • 在资源受限的场景下,优化提示词可能比升级模型更经济


3.优化方法的选择:


  • 考虑使用基于梯度的方法替代纯文本反馈
  • 重视模型的推理过程,而不仅仅是最终答案
  • 注意评估提示词的迁移能力


GREATER的研究表明,在提示词优化领域,创新的方法可能比简单地依赖更大的模型更有价值。这为构建更高效、更经济的AI应用开辟了新的可能性。对于Prompt工程师来说,这意味着我们需要重新思考提示词优化的方法论,将注意力从"找到最强大的模型"转向"最大化现有模型的潜力"。


文章来自微信公众号“AI修猫Prompt”,作者“AI修猫Prompt”


用好梯度信息GREATER,小模型也能成为提示词优化高手,PSU最新

关键词: AI , 梯度信息 , GREATER , 提示词
AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI数据分析

【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。

项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file

本地安装:https://www.deepbi.com/

【开源免费airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。

项目地址:https://github.com/hitsz-ids/airda

2
免费使用GPT-4o

【免费】ffa.chat是一个完全免费的GPT-4o镜像站点,无需魔法付费,即可无限制使用GPT-4o等多个海外模型产品。

在线使用:https://ffa.chat/

3
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0