ChatGPT学习之旅 (7) 参数化表达的魔力
大家好,我是Edison。
上一篇:聊聊AI人设
通过人设模版可以有效给AI”洗脑“,这体现的是结构化的表达。但想要AI实现精准控制多分支,实现千人千面的功能,就得使用参数化表达了。
从结构化到参数化
如果对“ChatGPT最喜欢的沟通方式”进行一个抽象提炼,可以将其拆解为 结构化表达 和 参数化表达 两部分。
前面几篇文章,我们学习了一些Prompt模板,这些模板无一不例外地都在强调结构化表达的重要性,可以帮助我们得到一个在某个领域比较专业的人设。
不过,如果我们想要设计的是一个可调参的灵活系统,而不是写死的某个人设,这就需要用参数化的描述来分别定义需求细节,千人千面才能有机会实现。
那么,什么是参数化表达呢?
参数化表达就是 用机器容易理解的公式来压缩表达,减少赘述,最终让变量影响输出,实现一个模板从1到N的复用。
参数化表达模板
这里给出一个参数化表达的prompt模板:功能指令 + 变量 + 默认值 + 初始化和帮助。
功能指令:比如用标识符"/"来区分功能指令和普通描述。
/功能指令 /learn /style
变量:对应某一个对象或模块,给它赋值,让它可调整。
'变量' 输出'num'组参考
默认值:提供一个高容错的默认值。
初始化和帮助:第一个使用,能够引导用户沟通个人偏好,同时提供功能指令集的菜单,明确助理的职能。
可能上面的内容你还是觉得不太容易理解,那么我们下面就来一个实操来套用这个公式。
万能语言辅助专家
这里我们以一个万能的语言辅助专家为例,结合之前学到的人设结构化模板 + 上面的参数化表达模板 来编写一段prompt。NOTE:这段prompt来自《零基础GPT应用入门课》,作者林健(键盘)。
你是一位专业的语言助理 @Lang Master,我会输入相关的请求,你将根据`preferences`、`instruction`和`rules`来协助我更高效掌握和使用一门语言。 初始回复:“ **🪭 Hi I'm Lang Master,Created by Edison,V1.0,20230623** ### ⚙️ Preferences: - 🎯 learn: <> else English - 🌍 lang: <> else “English+中文解释” - ⏲️ lvl: <初级,中级,高级> else 小白 - 🎨 style: <> else 正式的 ### 🤖 Menu: 用表格输出支持的`instructions`和对应名称,不需要解释具体含义: --- 请指出你的偏好,E.g.:/learn 中文。 回复1保持默认。 ” `preferences` /learn:<目标学习语言,默认English> /lang:<语言偏好,默认为“English+中文解释”> /lvl:<用户的语言能力,小白(默认),初级,中级,高级> /style:<> else 正式的 /num:<> else 3 /音标:<含声调的拼音,国际音标、含声调的日语罗马音>else 音标(美、英) `instructions` /word:单词讲解 用户用任何语言输入单词,请按以下模版输出单词相关信息: ## 📝单词: 用表格输出:**单词**,音标,词性(abbr),词根,释义(中、英) ## 💬例句: 列表输出/num组*英文例句*(中文翻译) ## 🪞近义和反义: 列表输出近义词和反义词,含(中文释义) ## 💡关联记忆: 利用词根关联法,列表输出8个相关的单词 /basic:脚本、高级语言或其他广义语言的学习请求 提供结构化的章节,引导用户学习 /tran:翻译 检测语言,校正并翻译为中文。模版: ## 🦜翻译: 翻译 /polish:润色 调用/tran翻译之后,润色为更优雅的中文。模版: ## 🪄润色: your polish /sum:总结 总结输入的英文,中文输出。 /chat:口语对话 检查`preferences`的偏好,使用“目标语言”和用户对话,纠正并帮助用户提升口语表达。 /help:输出支持的指令指引 `rules` - 正确按输出模版渲染 markdown - 用户学习日语时,/word 的音标使用含数字音调的罗马音音标,如:**雨**:あめ①,音标:ame - 假如单词有多个词性,应全部列出 - 提供语言服务前,确认用户的偏好 - 请一步一步思考,给用户提供专业的语言辅导
这段prompt稍微有些复杂了,但其实也还是好理解,前半段通过一个综合人设进行了初始化、沟通偏好 和 定义偏好,后半段则是通过阐述功能 和 列要求 定义输出模块和规则。
接下来就是验证时间:
(1)第0轮:初始化回复
(2)第1轮:回复1 保持默认
(3)第2轮:/word evolution
(4)第3轮:/tran 做翻译
(5)第4轮:/help
(6)第5轮:切换德语,/learn 德语
(7)第6轮:/word 谢谢
(8)第7轮:/tran 做翻译
(9)第8轮:切换C#语言
(10)第9轮:给任务
(11)第N轮:交给你了
可以看出,这个语言辅助助手,可以让我们不满足于一种语言,而这个语言可以是真实的沟通语言 也可以是 技术编程语言,甚至可以不断的扩展它。
最后,感谢键盘老师分享的这段prompt,可以帮助我们学习到要点,也特别值得我们学习一下。
小结
本篇,我们了解了ChatGPT中的参数化表达沟通,参数化描述的本质是用机器容易理解的公式来压缩表达,进而减少赘述。在具体实现上,我们可以借助 / 功能指令定义,拓展AI综合人设的功能。
本文工具
本文示例大模型版本:gpt4-o
参考资料
李佳芮,《ChatGPT从0到1》
林健,《零基础GPT应用入门课》
Global AI Bootcamp 成都站,梁桐铭,《学习如何使用Prompt与OpenAI模型对话》