AI框架SemanticKernel系列随笔(3) -- Prompt

大模型参数

在介绍Prompt之前,我们先来了解大模型的两个参数:Temperature和Top_p

Temperature

模型输出的随机性参数。temperature 的参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果。对于需要创造性回答的场合,更高的temperature有助于提高回答的创造性和多样性,而对于需要精准性的回答的场景,需要降低该参数以期获得精准的回答

Top_p

同用来控制模型返回结果的真实性的参数。如果你需要准确和事实的答案,就把参数值调低。如果你想要更多样化的答案,就把参数值调高一些。

Prompt工程

Prompt简介

大模型输出场景下,用于引导模型生成特定的输出。对比传统编程,使用代码来构建方法,使用编译器来解释,而对于AI场景来说,则是使用Prompt来构建方法,使用大模型来解释和执行代码。
一个优秀的prompt,通常包含几个部分

  • 指令:模型需要执行的任务或指令
  • 上下文:外部的知识库信息,历史对话等,帮助模型更好的输出结果
  • 输入:用户本次输入的内容和问题
  • 输出样式:需要模型提供的输出格式

另外,为了让模型更合理的输出结果,我们通常在Prompt中加入角色,让大模型以指定角色回答问题,以期获得更合理的回答效果

Prompt分类

目前Prompt有多种分类,包括零样本提示,少样本提示,链式思考CoT等,网上Prompt参考资料很多,这不一一细说了。可以参考: promptingguide

Prompt最佳实践

  • 为AI提供一个角色
  • 将重要指令放在开头,对于较长的输入,在结尾处可以再次补充提示以便强化模型输出
  • 使用精准的要求而非模糊的要求,如“限制200字以内”来替代“简短的输出”
  • 使用###或"""等来分隔各部分
  • 对于复杂的任务,可以使用逐步思考等提示,让AI分部执行来完成
  • 可以提供样例输入输出来帮助大模型更好的理解指令
  • 谨防Prompt注入攻击

SK中的Prompt

prompt参数

在sk中,prompt参数使用 {{$argName}}形式来表示,例:

@"请参考上下文回答用户问题
###
上下文:{{$context}}
###
用户输入:{{$input}}
###
输出:"

在调用sk函数时,传入名为context/input的参数,即可完成方法的调用

prompt调用function

在prompt中,也可以完成任意注入的function调用,prompt如下:

@"{{namespace.functionName $functionArgs}}"

其中,functionName为注册到kernel中的函数名称,而functionArgs则是调用该函数的参数

prompt中的特殊参数

当prompt参数中出现引号时,为了避免需要特殊的语法,在处理包含单引号的值时,我们建议用双引号包装该值。类似地,当使用包含双引号的值时,用单引号将值括起来。
例:

...text... {{ functionName "one 'quoted' word" }} ...text...
...text... {{ functionName 'one "quoted" word' }} ...text...

对于复杂场景,使用""进行转义和包围使用引号相同的引号,例如:

... {{ "quotes' \"escaping\" example" }} ... //""中,使用\"来转义",使用\'同样可以转义',即使不需要
... {{ 'quotes\' "escaping" example' }} ... //''中,使用\'来转义',使用\"同样可以转义",即使不需要

参考资料:
微软官方文档:https://learn.microsoft.com/en-us/semantic-kernel/prompts/
promptingguide: https://www.promptingguide.ai/zh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新上路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值