前言:
最近在学习AIGC时,总是会碰到一个关键词就是prompt,起初我还不以为意,这不就是我要向chatGPT问的话吗,让它帮我写点文章啥的,没什么好看的,是个人都会用。不知道小伙伴你,是不是也这么想呢?或许我们都还没有真正利用到大模型的开发效率,没有真正得到Prompt Engneering给我们带来的巨大好处,所以就让我们一起来学习、了解一下吧。
什么是prompt 和 Prompt Engineering
说了这么久,还没有解释一下什么是prompt呢,所以就浅浅的解释一下:
Prompt(提示)在人工智能和自然语言处理领域中,通常指的是用来引导或激发AI模型生成特定响应的一段文本或指令。它作为与AI模型交互的桥梁,帮助模型理解用户需求、上下文或期望的输出类型。例如,在使用一个文本生成模型时,用户可能会输入一个prompt:“请描述一下未来城市的交通系统”,模型则会基于这个提示生成相关的描述性文本。
Prompt Engineering(提示工程)则是指一种技术实践,专注于设计、优化和调整这些prompts,以提高AI模型的输出质量和效率。通过调整细微差别以及用户需求,进而创造性地构造prompt,引导AI模型产生更加准确、有创意或符合特定场景的回应。Prompt Engineering 的目标就是通过精心构造输入,最大化模型的表现,同时解决模型的局限性,如偏差、误解、或不切题的回复。简而言之,Prompt Engineering是提升AI应用效果的关键技能之一,尤其是在自然语言生成、问答系统和对话系统等场景下。
效率高的智能体,往往需要质量高的prompt
所以在编辑prompt的时候,遵循这么一些模式可以让我们收到的回复更加准确:
总结的prompt设计模式
- 把时间花在设计prompt上 (好的问题比答案也许更重要)
- 提供清晰、明确的提示,长提示效果好
- 给它一些例子,few shot 展示LLM的学习能力
Prompt设计精髓在于精心构思问题,因为优质提问直接引领卓越答案。 关键技巧涉及构造清晰、详尽的指令,长Prompt往往能更精确地框定范围,引导AI理解复杂需求。融入“少样本学习”(Few-shot),即提供典型示例,不仅展示过往成功案例,还诱发AI模型展现其强大的学习与生成潜力。
下面是一段:
//node 里面的模块化里的关键字,引入模块
// 从本地node_modules 引入openai模块,OpenAI
require('dotenv').config();
const OpenAI = require('openai')
//环境变量
// console.log(process.env,'-----')
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.chatanywhere.tech/v1'
})
const getChatResponse = async function(model,prompt){
const response = await client.chat.completions.create({
model: model,
messages: [
{
role: 'user',
content: prompt
}
]
})
return response.choices[0].message.content
}
async function mian(){
let text= `
请描述一下未来城市的交通系统
`
//llm 的 npl 总结能力
// 转译符号 \`\
let prompt1 = `
${text},20字以内
`
let prompt2 = `
任务:将给定的英文句子转换为Pig Latin(一种英语游戏用语)。
示例1:
输入:"Hello World"
Pig Latin 输出:"Ellohay Orldway"
示例2:
输入:"Good Morning"
Pig Latin 输出:"Oodgay Orningmay"
现在,请执行:
输入:"The quick brown fox"
`
const content1 = await getChatResponse('gpt-3.5-turbo',prompt1)
const content2 = await getChatResponse('gpt-3.5-turbo',prompt2)
console.log(content1);
console.log('--------------------分割线-----------------------');
console.log(content2);
}
mian();
从代码可以看到这里的两个不同的prompt不同的风格: 如果我们给出prompt1一些限制和要求,它就会给你总结内容,拿到更加准确无误的答案。
但是当我们取消限制后它就会得到一大堆内容。
就好比prompt2,给出了具体的例子让LLM去学习,然后给出了它的简短答案。可见你的prompt给出的细节越多,就越能让大模型了解我们的需求,并帮我们完成它。
如果有小伙伴运行不了,请查看是否下载了openai包,以及dotenv包,不会的可以看我上一章的内容。
总结
总结来说,Prompt是与AI模型沟通的“问题”或“指引”,而Prompt Engineering则是研究如何提出更好的问题,以促使AI给出更理想答案的过程和技术。
大家可以试试别的好玩的prompt,就像上面代码内的prompt2内容一样,通过你的引导,让大模型去生成更加有趣的内容吧!