学习笔记 | ChatGPT Prompt Engineering for Developers 4

2023-09-06 12:45:48 浏览数 (3)

01

2023-06

学习笔记|ChatGPT Prompt Engineering for Developers 4

吴恩达chatGPT课程学习笔记&简单翻译,有兴趣的同学还是去看原版的课程比较好~~

LEARN MORE

图片由Stable Diffusion绘制

首先

狗头保命,不是翻译,是学习笔记,也就是中间删了部分我觉得不重要的内容,部分我觉得有意思的内容稍稍扩展了一点。

感兴趣的同学请去看原版的课程,原本的课程是免费的:

https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

想要逐句翻译版本的同学可以看这里:

https://blog.csdn.net/youcans/article/details/130489953

摘要任务

摘要总结是大语言模型非常擅长的东西之一,这也是让人很兴奋的一个功能——世界上有那么多书,我不可能一一读完,但是可以用ai帮我快速总结精炼出来,这就使得快速了解什么东西有了可能。

比如商品评论可能非常长,就可以让AI快速总结精炼,比如30字以内,一下就能省去我很多时间。同理,也可以控制字数让AI来针对某个特定的方向进行总结。

这种功能对于只有一条商品评论的时候可能没什么用,但是有100条评论的时候就可以让AI协助快速把大量的文本识别为有规则的、可统计的表格数据。

推理任务

在传统的机器学习中,如果要训练AI识别一段文本是正面情绪还是负面情绪,通用的做法是要准备一个单独的模型和样本集并进行训练,来让AI完成这个任务。并且不同的推理任务需要设置不同的模型,甚至在不同的业务场景中,还需要单独配置停用词表。

但是有了大语言模型之后,这种推理任务就不需要写多个模型了,只需要一些简单的提示词就可以胜任多种推理任务:如识别情感,提取姓名等。比如,想要识别评论的情感,无需部署和训练模型了,只需要简单地输入prompt:

代码语言:javascript复制
prompt = f"""
What is the sentiment of the following product review, 
which is delimited with triple backticks?

Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

同样的,可以通过加一些提示词来控制模型输出的形式,如只输出 -或者输出五个情感词汇等等或者输出为json格式等,都是可以实现的。

我们可以利用这一点,让AI对大段文章做主题推断,提炼文章的关键词等。在机器学习中,这被称为"零样本学习算法“,因为我们没有给它任何标记的训练数据。所以,这就是零样本。只需要一个提示,它就可以确定这篇新闻报道涉及了哪些主题。

在舆情监控的场景,也是有很好的应用的,只需要把AI提取出来的文章关键词写入一个dict,然后写个循环去读取dict,一旦出现感兴趣的新闻直接报警就可以了:

代码语言:javascript复制
topic_dict = {i.split(': ')[0]: int(i.split(': ')[1]) for i in response.split(sep='n')}
if topic_dict['nasa'] == 1:
    print("ALERT: New NASA story!")

转换任务

让AI处理各种转换格式的任务简直是爽得不要不要的,比如把html转json,甚至是把SQL转dax。还可以拿来作检查,校验格式是否正确。

翻译也是AI很擅长的工作,识别语言并对应翻译,甚至还能指定翻译的语气和风格,如口语化表达、商务场合表达、学术场合表达。

扩充任务

比如针对客户的评论生成自动回复的邮件。就可以让AI先去总结客户的评论的情感方向是正面反馈还是负面反馈,针对正面的反馈回复表示感谢,针对负面的反馈道歉并建议客户联系客服之类的。

过去的这种任务,尤其是针对负面评论的回复,用通用的模板回复往往会让人觉得很没有诚意,但是chatgpt可以在回复的时候提到一些用户提到的问题“针对您提到的XX问题我们表示……”,让人没有通用回复道歉的感觉。

尽管AI生成电子邮件很方便,但还是不要大量尝试吧,垃圾邮件一旦泛滥,这一点点“智能”就无法打动客户了。

这里就要提到语言模型参数的一个参数了,称为温度(temperature)。这个参数在控制模型随机程度的,在 temperature=0 的情况下,每次执行相同的提示时,你可以期待相同的输出。而当 temperature=0.7 时,每次都会得到不同的输出。

如果你试图建立一个可靠的和可预测的系统,你就应该使用 temperature=0。而如果你希望模型更有创造性,你可能想获得更加多样性的不同输出,你可能需要使用更高的温度参数。

THANKS

0 人点赞