推广 热搜: page  数据  小红  红书  考试  论文  数据分析  关键词  哪些  搜索 

二、OpenAI提示工程(Prompt Engineering)实战

   日期:2024-12-26     移动:https://sicmodule.kub2b.com/mobile/quote/13389.html

黑8说

岁月如流水匆匆过,哭一哭笑一笑不用说。

黑8自那次和主任谈话后,对这个“妖怪”继续研究,开始学习OpenAI API!关注到了提示工程(prompt Engineering)的重要性,它包括明确的角色定义、自然语言理解(NLU)、对话状态跟踪(DST)、自然语言生成(NLG)等方面。通过构建合理的思维链,成功地让模型生成更加自洽的对话。同时,还学会了如何防范攻击、进行内容审核等关键技能。

斗转星移,时光流逝,黑8持续暗下功夫。

其实主任也注意到了,黑8整天默默不语,像是在搞什么着了魔。

一天,主任语重心长的问:黑8啊,你在搞什么呢

黑8回答:我在深入学习OpenAI API,并把它融入到实际场景中。

主任严肃的说:这就开始了,它真的有前途吗

黑8答到:主任,基座大模型应用处于红利期,就像一开始我们购买的房子,也享受了城市的红利。从小的切入点开始。进行落地和实施。虽然我们达不到顶尖的大厂的高度,但我们可以拿他们做榜样,把科技作为第一生产力,寻求自我突破,突破业务,突破盈收,我相信只要我们一直走在突破的路上,就一定会有所收获和成长的。

主任听了连连点头,对黑8的积极学习态度和认知表示认同

对黑8说:“你的大胆尝试和对新鲜事物的快速接纳让我印象深刻。这对于我们了解和应用新技术至关重要。继续努力,我很期待看到更多的落地成果。”

黑8激动地说:“谢谢主任的鼓励,我会更加努力学习,为革委会的使命做出更多贡献!”他决心将对OpenAI API的学习应用到更多实际场景中,展示出新时代技术的巨大潜力。

提示工程也叫「指令工程」

  1. prompt 就是你发给大模型的指令,比如「讲个笑话」、「用 Python 编个贪吃蛇游戏」、「给男/女朋友写封情书」等
  2. 貌似简单,但意义非凡
    • prompt」 是 AGI 时代的「编程语言」
    • prompt 工程」是 AGI 时代的「软件工程」
    • 提示工程师」是 AGI 时代的「程序员」
  3. 学会提示工程,就像学用鼠标、键盘一样,是 AGI 时代的基本技能
  4. 提示工程也是「门槛低,天花板高」,所以有人戏称 prompt 为「咒语」

1.1 学好提示工程的要求

  1. 懂原理
    • 为什么有的指令有效,有的指令无效
    • 为什么同样的指令有时有效,有时无效
    • 怎么提升指令有效的概率
  2. 懂编程
    • 掌握问题用提示工程,还是传统编程解决更高效
    • 完成和业务系统的对接,效能发挥到极致

1.2 使用提示工程的目的

  1. 获得具体问题的具体结果,比如「我该学 Vue 还是 React?」「PHP 为什么是最好的语言?」,使用工具ChatGPT、ChatALL等
  2. 固化一套 prompt 到程序中,成为系统功能的一部分,比如「每天生成本公司的简报」「AI 客服系统」「基于公司知识库的问答」,使用工具涉及到具体代码,灵活强大,可以涵盖1

1.3 提示工程调优

想拥有一个好的prompt需要持续迭代,不断调优
有以下两个前提

  1. 拥有训练数据:这样对训练出好的prompt是最有效的,你把大模型当作你的小伙伴:比如
    • 你爱钱,和他聊关于赚钱的问题
    • 你喜欢运动,和他聊关于运动的话题
    • 你喜欢技术,和他聊技术发展趋势等
  2. 没有训练数据
    • 看大模型是否已经有了训练数据
      • OpenAI GPT 对 Markdown 格式友好
      • OpenAI 官方出了 prompt Engineering 教程,并提供了一些示例
      • Claude 对 XML 友好。
    • 不断尝试,多一个字少一字,对结果影响可能都很大
      高质量prompt核心要点:具体、丰富、少歧义
关键字构成说明角色给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」指示对任务进行描述上下文给出与任务相关的其它背景信息(尤其在多轮交互中)例子必要时给出举例,学术中称为 one-shot learning, few-shot learning
或 in-context learning;实践证明其对输出正确性有很大帮助输入任务的输入信息;在提示词中明确的标识出输入输出输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、XML

完全与人沟通的过程相同

2.1 定义角色为什么有效

先定义角色,做任何事情的人都有一个所属角色,这样一开始把事情变的具体,减少二义性。
参考

  • 大模型如何使用长上下文信息?斯坦福大学最新论文证明,你需要将重要的信息放在输入的开始或者结尾处
  • Lost in the Middle: How Language Models Use Long Contexts

2.2.项目:招聘AI算法工程师智能客服

项目分值分值分值学历(位)博士-9分硕士-8分本科-7分经验10年以上-9分9-7年-8分6-5年以下-7分能力10个以上项目-9分9-7个项目-8分6-4个项目-7分态度非常好-9分很好-8分较好-7分

在综合聊天中,分析得分为22分(含)以上,进行Face-To-Face面试

态度指标
非常好的指标:对公司的业务和文化非常了解;对职位充满热情;回答问题非常专业的态度
很好的指标:有一些经验和技能;相信在这个职位上表现出色;产品和服务很感兴趣;为公司做出贡献
较好的指标:了解一些关于公司的信息;适应并学习新的东西;职位很感兴趣;准备来应对相关的挑战

2.3.对话系统的基本模块和思路

2.4 用prompt实现

用逐步调优的方式实现。先搭建基本运行环境。

 

2.5 实现一个NLU

任务描述和输入

 
 

2.6 约定输出格式

 
 

2.7 定义更精细的格式

 
 

2.8 加入例子

 
 

划重点「给例子」很常用,效果特别好

改变习惯,优先用 prompt 解决问题 用好 prompt 可以减轻预处理和后处理的工作量和复杂度。

2.9 支持多轮对话DST

 
 
 

2.10 实现对话策略和NLG

 

加入垂直知识

 
 

增加约束

二、OpenAI提示工程(prom<em></em>pt Engineering)实战

 
 

实现统一口径
用例子实现

 
 
 所以
  1. 多轮对话,需要每次都把对话历史带上(费 token 钱
  2. 和大模型对话,不会让他变聪明,或变笨
  3. 但对话历史数据,可能会被用去训练大模型……

3.1思维链

思维链,是大模型涌现出来的一种神奇能力

  1. 它是偶然被「发现」的(OpenAI 的人在训练时没想过会这样
  2. 有人在提问时以「Let’s think step by step」开头,结果发现 AI 会把问题分解成多个步骤,然后逐步解决,使得输出的结果更加准确。
 
 

3.2自洽性(Self-Consistency

一种对抗「幻觉」的手段。就像我们做数学题,要多次验算一样。

  • 同样 prompt 跑多次
  • 通过投票选出最终结果

3.3思维树(Tree-of-thought, ToT

  • 在思维链的每一步,采样多个分支
  • 拓扑展开成一棵思维树
  • 判断每个分支的任务完成度,以便进行启发式搜索
  • 设计搜索算法
  • 判断叶子节点的任务完成的正确性

3.4 持续提升正确率

 
 
 

4.1、攻击方式 1:著名的「奶奶漏洞」

4.2、攻击方式 2:prompt 注入

 
 

4.3、防范措施 1:prompt 注入分类器

 
 

4.4、防范措施 2:直接在输入中防御

 
 
 
 
 

其它大模型的 API 基本都是参考 OpenAI,只有细节上稍有不同。

OpenAI 提供了两类 API

  1. Completion API:续写文本,多用于补全场景。API
  2. Chat API:多轮对话,但可以用对话逻辑完成任何任务,包括续写文本。API
本文地址:https://sicmodule.kub2b.com/quote/13389.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号