一、前言
去年 GPT-3.5 的问世,让很多国内外企业看到了大模型的强大能力和巨大价值,都在纷纷自研自己的大语言模型或者探索如何将大语言模型应用到解决业务难题、提高工作和生产效率上来。
现在,我们通过自然语言编写提示词就可以和大语言模型进行交互,实现自己想要的功能。提示词对大语言模型的性能和输出质量起着至关重要的作用。
在实际的 AI 业务落地过程中,提示词通常需要经历多轮调优,而且在调用大语言模型之前,通常需要动态构造提示词。如何让提示词模板更易于修改,如何让提示词模板渲染的效率更高,如何避免提示词的误修改对线上程序产生负面影响很关键。
二、架构设计考量
基于上述背景,在做架构设计时,我们重点考虑以下几个软件质量属性:
1 可修改性 。可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。由于提示词需要多轮调优,上线以后经常需要根据 Bad Case 不断优化提示词,因此需要采用更易于修改的方式。
2 安全性。安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如果提示词模板需要存储在云端,需要通过鉴权进行访问,那么秘钥的安全存储非常关键。良好的安全性可以避免秘钥泄露,从而对系统安全造成负面影响。
3 可靠性。 可靠性是指系统能够处理错误和异常情况,并继续运行或安全地停机。通过合理的错误处理机制和冗余设计,系统能够避免单点故障导致的整体崩溃。在设计软件架构时,我们还应该考虑可靠性,任何在预发布环境中发现的问题都可以在不影响生产系统的情况下进行修复,从而减少了线上环境出现问题的概率,提高了系统的可靠性。
4 性能。性能是指系统的响应能力,处理任务所需时间或单位时间内的处理量。如果提示词模板存储在远端,提示词模板的读取性能也很重要,高性能达成良好的用户体验的关键因素。
三、架构设计描述
为了满足上述软件质量属性,如性能、可修改性、安全性、可靠性。设计如下图所示的架构:
将提示词存储在 OSS 文件中,以便更方便地修改提示词,提高系统的可修改性。可以通过 Git 将不同的版本进行保存,方便分析和恢复到特定版本。
同时存储在 OSS 中时,可以通过不同的文件夹进行环境区分,可以现在 pre 环境编辑和测试好提示词后再覆盖 gray 和 prod 避免因错误的提示词修改对线上环境造成负面影响,以提高系统的可靠性。
同时,我们一个提示词可能无法适应所有场景,因此我们可以设计提示词模板路由器,根据不同的情况使用不同的提示词模板。
由于读取提示词模板相对频率较高,为了提高读取提示词模板性能,可以使用本地缓存,对提示词模板进行缓存。
同时,使用 Git 提交提示词时或者 使用 OSS Browser 工具直接修改 OSS 文本时,有 Diff 效果,可以很大程度上避免对提示词的误修改。
同时为了提高提示词模板的灵活性,我们可以采用模板引擎来编写提示词模板,使用时只需要构造好模板所需的数据进行渲染即可。
在调用 OSS 客户端或者大语言模型时,通常需要在请求头或参数中传入秘钥信息进行鉴权,我们可以将秘钥信息存储在机密信息加密系统中,避免将密钥信息存储在代码仓库中造成秘钥泄露。
可以在配置中心中配置模板本地缓存的时间,配置当前使用的模型列表等,方便动态调整。
调用大语言模型后,我们可以将相关信息起来用户展示和分析。
四、总结
本文讲述在 AI 应用中常见的 AI 提示词相关的架构设计,该架构设计中重点考虑性能、可修改性、安全性和可靠性,希望对大家能够有帮助。
如果大家想系统学习提示词技巧,可以阅读我的相关文章:《一文掌握大模型提示词技巧:从战略到战术》。
如果本文对你有帮助,可以点赞、收藏一下。
麻烦帮我在活动页 的“投稿作品”部分帮我点赞投你的宝贵一票: