提供一个描述任务的提示(prompt)来引导模型生成正确的输出。在 Prompt 中描述 API 的功能、输入输出格式、传参方式等,使得模型理解 API 如何使用。如下图,Zero-shot Prompting 给出了 forecast weather API,描述其功能、返回信息等,然后去解决“下周北京的平均气温是多少”的问题。优点:不需要为每个新任务重新训练模型,节省了大量的计算资源;并且可以快速适应新任务,只需为任务编写新的提示即可。缺点:性能通常不如使用特定任务训练数据进行 Fine-tuning 的方法;且编写有效的提示需要一定的技巧和经验。
Few-shot Prompting
不仅给出任务描述性提示,还要直接展示少量(few-shot)的使用工具的示例,模型通过模拟人类的行为,理解如何使用工具。如下图,Few-shotPrompting 给出了调用 API 的示例(如何回答问题—明天上海的温度),然后再让大模型利用 API 去解决问题。优点:利用少量示例帮助模型理解任务,提高了模型的性能。比 Zero-shot Prompting 更灵活,可以应对更多种类的任务。缺点:需要选择有代表性的示例,这需要一定的专业知识和经验。对于一些复杂的任务,可能需要更多的示例才能达到满意的性能。
大模型默认解决方案,不断根据每一步的成败以及环境和人类的反馈,动态跟进该规划,直至整个流程完成。挑战:模型的自省式推理生成静态规划 Plan 存在一定问题,最优的方案是模型可以很好地在下游任务中落地。文章 Ahn, Michael, et al. "Do as i can, not as isay: Grounding language in robotic affordances." arXiv preprintarXiv:2204.01691 (2022) 提到:不是模型想做什么就做什么,而是让模型知道当前场景下能做什么才去做什么。方案1: