用途:引导使用 dspy.BootstrapFewShot,为 DSPy 程序自动生成并筛选高质量少样本演示。它是最简单的优化器,建议在尝试更重的优化器之前先做。
主要能力:接收程序、训练集与度量函数,在训练样本上运行程序,保留度量通过的轨迹(输入输出对),并把最佳轨迹作为少样本演示附加到程序的预测器上,得到带可用示例的程序。
必要用法:configure 配置 LM 后定义程序与带 .with_inputs() 的 dspy.Example 训练集,用 Evaluate 先测基线,再编译并对比优化后结果。
optimizer = dspy.BootstrapFewShot(metric=metric, max_bootstrapped_demos=4) optimized = optimizer.compile(my_program, trainset=trainset)
保存与加载:optimized_qa.save("optimized_qa.json"),loaded_qa.load("optimized_qa.json"),仅保存学习到的演示与参数,程序结构仍在代码中。
关键参数:metric、max_bootstrapped_demos(默认 4)、max_labeled_demos(默认 16)、max_rounds(默认 1)、max_errors、metric_threshold、teacher_settings(可用 {"lm": teacher_lm} 让强模型生成轨迹)。
适用场景:约 50 条以上带标签样本、想免手写加入少样本示例、需要先建立快速基线。多步程序也可用,每一步预测器各自获得演示。
限制与注意:度量过严会导致几乎无演示被引导;需保证训练集与开发集不重叠、每个 Example 调用 .with_inputs()、先测基线再比较;max_labeled_demos 过大可能挤占上下文;准确率停滞时可升级到 BootstrapFewShotWithRandomSearch、MIPROv2 或 BootstrapFinetune。安装:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。