企业申请Azure OpenAI绿色通道
→记得评论私信~
大模型(Large Language Model, LLM)尤其是 OpenAI 推出的 ChatGPT 模型打破了人类语言和机器语言之间的障碍,人们通过自然语言(Prompt)就可以操作模型,而模型可以准确的捕获用户的复杂语义和目的,最后以人类可以理解的方式输出结果。
为了能更好的使用大模型,如何写提示词(Prompt)也就是提示词工程成为一门新的学科,这个学科关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。
在开发和优化提示词的过程中,新的问题又陆续出现,比如如何管理提示词的版本、如何比较不同的大模型、如何复现提示词的结果、如何评估提示词的效果等。
本文通过分析提示词工程的共性问题,然后介绍如何使用 Azure Machine Learning Prompt Flow(后文简称 Prompt Flow)解决这些问题。
#1
提示词工程的挑战
基于 LLM 模型的提示词工程开发生命周期
在阐述提示词工程的挑战之前,我们先理解基于 LLM 的应用程序开发的生命周期。了解生命周期之后,我们可以更好地利用 Prompt Flow 高效地处理整个周期中的每个步骤(特别是提示词工程),从而开发出更好的基于 LLM 的应用程序。
上图是基于 LLM 的应用程序开发的生命周期,主要有以下四步:
第一步:初始化,确定业务用例,收集示例数据,了解如何构建基本提示词,开发基本 Prompt Flow;
第二步:试验,我们需要设计提示词,并把提示词在少量样本中测试并评价提示词在小样本中的结果。然后根据结果优化提示词直到达到标准;
第三步:评估 & 优化,需要把第二步设计好的提示词在大量样本中测试,评估测试结果。如果结果不达标,返回第二步重新优化提示词。如果结果满足所需条件,可继续到下一步;
第四步:部署 Prompt Flow,监视生产环境中的性能,并收集使用情况数据和反馈。并为进一步迭代的提供依据。本文只关注提示词工程的优化和评估,所以只讨论上图的第 2 步试验(Experimentation)和第 3 步评估 & 优化(Evaluation & Refinement)。
挑战一:提示词的开发和优化
针对特定的问题,我们需要开发提示词和选择不同的模型来解决问题,需要能够灵活的使用各种模型比如 OpenAI、Azure OpenAI、Cognitive Search,需要能够管理不同的提示词版本来并比较不同提示词版本的效果,需要平台能够提供开箱即用的运行时环境来支持提示词工程的全生命周期开发。
Azure Machine Learning Prompt Flow 的功能可以解决这些挑战。
挑战二:提示词工程的效果评估
在提示词开发完成后,就要针对更大的数据集运行来评估提示的有效性,并根据需要进行优化。在这个过程中,我们需要平台能够评估不同提示词的运行结果,需要有数量化的指标来评估针对大数据集运行的提示词的最终效果。
Azure Machine Learning Prompt Flow 的功能可以满足上述需求。
#2
Prompt Flow vs. 挑战一
创建“连接”管理远程 API
Prompt Flow 提供了各种预生成连接,包括 Azure Open AI、Open AI 和 Azure Content Safety。这些预生成连接支持在内置工具中与这些资源无缝集成。此外,用户可灵活地使用键值对创建自定义连接类型,从而能够根据特定要求定制连接。
通过使用“连接”,在提示词工程中可以方便选择不同的大预言模型并比较不同模型的效果。
下图展示了如何创建 Azure OpenAI “连接”,“连接”可仅供创建者使用,也可以在整个工作区共享:
创建“运行时”
“运行时”充当运行应用程序所需的计算资源,例如包含所有必要的依赖项包的 Docker 映像。这是“Prompt Flow”执行的必备条件。因此,建议在开始“Prompt Flow”创建之前设置运行时。
创建和开发 Prompt Flow
为了方便演示,我们克隆一个现有的“Prompt Flow”中,选择“Web Classification”,如下图:
运行 Prompt Flow
你可以点击右上角的“Run”按钮运行整个 Prompt Flow,也可以点击每个单元上面的“小三角”运行一个单元。