- 结构感知:SAMMO能够识别和操作提示的内部结构,将其视为由多个组件构成的程序。这种方法使得SAMMO可以对提示的不同部分进行细粒度的调整。
- 多目标优化:SAMMO不仅关注单一的性能指标,如准确性,还能够同时考虑多个优化目标,例如减少提示的长度、提高响应速度或降低计算成本。
- 丰富的变异操作:SAMMO提供了一系列变异操作符,这些操作符可以对提示的结构和内容进行各种修改,如改写文本、调整格式、增减示例等。
- 灵活的搜索算法:根据所使用的变异操作符的不同,SAMMO可以采用不同的搜索策略,例如穷举搜索(如网格搜索)和迭代搜索(如束搜索、随机搜索等)。
- 编译时优化:SAMMO专注于在提示部署之前的编译时阶段进行优化,这意味着通过一次性的优化过程,可以生成适用于多次调用的高效提示。
- 黑盒优化:SAMMO设计为在黑盒设置中工作,其中用户只能从LLMs的输出中采样,这反映了当前API能力的常见情况。
- 指令微调评测:SAMMO始终优于所有其他指令调整方法,Llama-2-70B观察到相对性能提升最大(大约2倍),Mixtral 7x8B提升适中,而GPT-3.5的提升最小(与基线指令相比约为10%)。
- RAG优化评测:SAMMO在仅有24个候选评估的情况下,有效地提高了所有语义解析数据集和后端大型语言模型(LLMs)的基线提示准确性。Llama-2的平均提升率为133**%,Mixtral为44%。即使是GPT-4也能从SAMMO探索的变化中受益,平均相对提升率为30%。