当前位置: 首页 > news >正文

深入理解Prompt工程

前言:因为大模型的流行,衍生出了一个小领域“Prompt工程”,不知道大家会不会跟小编一样,不就是写提示吗,这有什么难的,不过大家还是不要小瞧了Prompt工程,现在很多大模型把会“Prompt工程”作为招聘条件,甚至作为一个岗位,小编在这里浅浅的总结一下

1. 什么是Prompt工程?

Prompt工程(Prompt Engingering),也被称为上下文提示(In-Context Prompting),指的是通过结构化文本等方式来完善提示词,引导LLM输出我们期望的结果。
简单一点来说,就是给LLM模型一些提示或者说指令,让LLM模型清晰准确的知道我们要干什么

  • 那给什么样的提示或者指令能更好更准确输出我们想要的结果呢???怎么设计这样的指令呢???
    这就是Prompt工程要考虑的事情!!!

2. Prompt工程由哪些部分组成?

Prompt工程针对不同的任务设计了不同的提示模版,一般包含下述几部分:

  • 角色: 给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」
  • 指示: 对任务进行描述
  • 上下文: 给出与任务相关的其它背景信息(尤其在多轮交互中)
  • 例子: 必要时给出举例,学术中称为 one-shot learning, few-shot learning 或 in-context learning;实践证明其对输出正确性有很大帮助
  • 输入: 任务的输入信息;在提示词中明确的标识出输入
  • 输出: 输出的格式描述,以便后继模块自动解析模型的输出结果

3. 如何写好Prompt工程(调优)

(1)学会定义角色

大模型对 prompt 开头和结尾的内容更敏感。
先定义角色,其实就是在开头把问题域收窄,减少二义性。

(2)学会举例

举例子可以让模型快速get到我们的意图,方便好用,并且效果不错

4. 案例说明

举一个小编深有体会的栗子~
相信读研的小伙伴都会遇到的场景,假如小编现在在写论文,需要将下述这段中文翻译成一段英文:

Yaowei Li等人设计了一个跨模态表示对齐器,使用一组正交基和双门机制来学习全局跨模态对齐,并通过三重对比损失进行全局对齐。

以chatgpt4为例:

prompt:请将下述内容翻译成英文:
【prompt+上述内容】输入到chatgpt4中,得到如下输出:


Yaowei Li and colleagues designed a cross-modal representation aligner that employs a set of orthogonal bases and a dual-gating mechanism to learn global cross-modal alignment. This alignment is achieved through a triplet contrastive loss.


prompt:假如你是一名专业的学术论文撰稿者,你现在正在写论文,对下述内容进行翻译,使其符合学术论文表达: 【prompt+上述内容】 输入到chatgpt4中,得到如下输出:


Yaowei Li et al. have developed a cross-modal representation aligner that leverages a set of orthogonal bases and a dual-gate mechanism to facilitate global cross-modal alignment. The alignment process is optimized using a triplet contrastive loss function to ensure comprehensive alignment across modalities.


5. 参考

  • https://blog.csdn.net/qq_36372352/article/details/138027055
  • https://zhuanlan.zhihu.com/p/666572032
http://www.lryc.cn/news/407536.html

相关文章:

  • 代码随想录算法训练营day6 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1.两数之和
  • vue3 vxe-table 点击行,不显示选中状态,加上设置isCurrent: true就可以设置选中行的状态。
  • Linux没有telnet 如何测试对端的端口状态
  • 花几千上万学习Java,真没必要!(二十九)
  • C#如何引用dll动态链接库文件的注释
  • WordPress原创插件:自定义文章标题颜色
  • Unity分享:继承自MonoBehaviour的脚步不要对引用类型的字段在声明时就初始化
  • .NET Core中如何集成RabbitMQ
  • 嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化:智能物流管理系统设计思路流程(附代码示例)
  • .net core docker部署教程和细节问题
  • php数据库链接
  • python+vue3+onlyoffice在线文档系统实战20240726笔记,左侧菜单实现和最近文档基本实现
  • vue中的nexttrick
  • 【BUG】已解决:ModuleNotFoundError: No module named ‘requests‘
  • 深入理解JS中的发布订阅模式和观察者模式
  • 网站IPv6支持率怎么检测?
  • react中简单的配置路由
  • RocketMQ消息短暂而又精彩的一生(荣耀典藏版)
  • Linux中的文件操作
  • [排序]hoare快速排序
  • freertos的学习cubemx版
  • PyQt 信号与槽功能
  • navicat premium安装和破解
  • OSI七层模型
  • Qt自定义MessageToast
  • 自动化测试 pytest 中 scope 限制 fixture使用范围!
  • 软件-vscode-plantUML-drawio
  • Python爬虫实战案例(爬取图片)
  • 智慧工地视频汇聚管理平台:打造现代化工程管理的全新视界
  • ASP.NET中的六大对象有哪些?以及各自的功能以及使用方式