提示词工程(Prompt Engineering)是人工智能时代的一项关键技能,它研究如何设计最佳提示词,以引导大型语言模型产生我们所需的结果。本文将深入探讨提示词工程的核心概念、组成部分及其与微调的区别,并通过实际代码展示如何实现提示词工程。

提示词与微调:两种提升模型表现的方法

提示词和微调都是用来提高模型表现的方法,但它们的工作方式有本质区别:

  • 提示词:通过给模型提供特定的指令或上下文,直接引导模型生成合适的回答。这种方法灵活便捷,无需额外训练,但需要精心设计提示内容。
  • 微调:需要对模型进行额外的训练,使用特定任务的数据来调整模型参数,使其在该任务上表现更佳。这种方法需要更多时间和计算资源,但可以使模型在特定领域获得持久的能力提升。

提示工程的核心概念

提示(Prompt)是用户提供的文本输入,用以引导模型的输出。提示工程则研究如何设计出最佳提示词,使语言模型能高效完成特定任务。

一个完整的提示通常包含三个关键要素:指令 + 问题 + 输出标准

提示词的四大组成部分

一个有效的提示词通常由以下四个部分组成:

  1. 指令(Instruction):告诉模型需要执行的具体任务或指令
  2. 上下文(Context):提供额外的背景信息,帮助模型更好地理解任务
  3. 输入数据(Input Data):用户输入的具体问题或内容
  4. 输出指示(Output Indicator):指定期望输出的类型或格式

提示词工程的代码实现

以下是一个Python实现的提示词工程示例,展示了如何将提示词的四个组成部分封装到代码中:

from openai import OpenAI
from dotenv import load_dotenv
from typing import List, Dict load_dotenv()
client = OpenAI() class PromptSession:
def __init__(self, instruction: str):
"""初始化:设置系统指令"""
self.messages: List[Dict[str, str]] = [{
"role": "system",
"content": instruction
}] def add_user_input(self, user_input: str):
"""输入数据(Input Data)"""
self.messages.append({
"role": "user",
"content": user_input
}) def get_response(self, model: str = "gpt-3.5-turbo") -> str:
"""输出指示(Output Indicator)"""
response = client.chat.completions.create(
model=model,
messages=self.messages
)
reply = response.choices[0].message.content
self.messages.append({
"role": "assistant",
"content": reply
})
return reply def run_interactive(self):
"""运行交互式对话"""
print("开始对话(输入 '退出' 结束)")
while True:
user_input = input("你:")
if user_input.lower() == "退出":
print("对话结束。")
break
self.add_user_input(user_input)
reply = self.get_response()
print(f"melon:{reply}") if __name__ == "__main__":
instruction = "你是一个名叫 melon 的 AI 助手,你可以帮助用户解决各种问题,包括写代码、查资料、日常建议等。"
session = PromptSession(instruction)
session.run_interactive()

代码中的提示词组成部分对应关系

结语

提示词工程是与大型语言模型有效交互的关键技能。通过精心设计提示词的各个组成部分,我们可以引导AI模型产生更加准确、有用的回答,从而更好地满足特定任务需求。相比微调,提示词工程更加灵活,不需要额外的模型训练过程,是快速适应各种AI应用场景的有效方法。

随着人工智能技术的发展,掌握提示词工程的技巧将成为每个与AI打交道的开发者、研究者和普通用户的必备技能。

提示词工程:引导AI高效完成任务的艺术的更多相关文章

  1. 免费Midjourney AI绘画Prompt提示词平台合集

    Midjourney AI绘图最关键的地方在于Prompt提示词写的好,一个好的提示词可以让AI模型创造出更优质的绘图,以下是8个免费的Midjourney Prompt提示词辅助平台. ​ 编辑切换 ...

  2. AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...

  3. Midjourney 提示词工具(10 个国内外最好最推荐的)

    Midjourney,是一个革命性的基于人工智能的艺术生成器,可以从被称为提示的简单文本描述中生成令人惊叹的图像.Midjourney已经迅速成为艺术家.设计师和营销人员的首选工具(包括像我这样根本不 ...

  4. Semantic Kernel 入门系列:🥑突破提示词的限制

    无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM ...

  5. SublimeCodeIntel 所有代码提示和补全插件 All Autocomplete 插件搜索所有打开的文件来寻找匹配的提示词

    SublimeCodeIntelSublimeCodeIntel 作为一个代码提示和补全插件,支持 JavaScript.Mason.XBL.XUL.RHTML.SCSS.Python.HTML.Ru ...

  6. 《花雕学AI》17:关注提示工程—本世纪最重要的技能可能就是与AI人工智能对话

    本文目录与主要结构 引言:介绍提示工程的概念和背景,说明为什么它是本世纪最重要的技能之一. 正文: 一.提示工程的基本原理和方法:介绍什么是提示.如何设计和优化提示.如何使用提示与语言模型进行交互. ...

  7. 学会提示-AI时代职场必修课

    作者:京东 何雨航 " 上个时代要学会提问,这个时代要学会提示." 引言 当你在写提数代码时,小张已经完成了数据分析:当你正在整理材料时,小王却在和对象逛环球影城:述职时,你发现小 ...

  8. 最新版本 Stable Diffusion 开源 AI 绘画工具之中文自动提词篇

    目录 标签生成器 提示词自动补全 标签生成器 由于输入正向提示词 prompt 和反向提示词 negative prompt 都是使用英文,所以对学习母语的我们非常不友好 使用网址:https://t ...

  9. Js_Ajax_输入词提示

    输入"1",有提示,否则没有 suggest.jsp #suggest { background-color: #e0e0e0; width: 200px; } var xhr; ...

  10. 【English】主语从句的引导词是如何选择?

    在英语中,主要有三大从句,即名词性从句(包括主语从句,宾语从句,表语从句,同位语从句).形容词性从句(即定语从句).副词性从句(即状语从句,包括时间.条件.结果.目的.原因.让步.地点.方式等). 引 ...

随机推荐

  1. 【多进程并发笔记】Python-Multiprocess

    目录 调用函数后,函数内的变量如何释放? python2.7怎么使用多线程加速for loop 多进程进程池,函数序列化错误的处理 Time模块计算程序运行时间 使用多进程,Start()后,如何获得 ...

  2. WSL2 - Ubuntu 22.04使用记录

    1 安装 搭配Windows Terminal使用为佳,在微软商店可下载: 然后依照官网描述即可. 命令行中运行wsl --install即可.不过由于想自行指定发行版,于是: wsl --list ...

  3. 【抓包】Fidder Script自动修改包

    Fiddler Script的本质是用JScript.NET编写的一个脚本文件CustomRules.js 但是它的语法很像C#但又有些不一样,比如不能使用@符号 通过修改CustomRules.js ...

  4. Delphi 模糊查询和字段查询

    procedure TFrmain.scGPEdit1Change(Sender: TObject); var ASql, AKey: string; //模糊查询和字段查询 const vsql1: ...

  5. 关于Transformer中Decoder模块是如何预测下一个字符的算法

    关于Transformer模型的Encoder-Decoder模块网上介绍的文章非常多,写的非常详尽,可谓汗牛充栋,尤其关于注意力计算这块,不仅给出了公式而且还有具体的计算步骤.关于Transform ...

  6. Tampermonkey 油猴脚本中文手册(出处:https://www.itblogcn.com/article/2233.html)

    文章目录 @name @namespace @copyright @version @description @icon, @iconURL, @defaulticon @icon64, @icon6 ...

  7. Win10隐藏托盘图标-注册表

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoTrayItemsDisplay(类型: ...

  8. B站,首战告捷!

    大家好,我叫良许,本来是一名写代码的博主,万万没想到,我居然我会放下脸皮在B站当UP主,还全程露脸不戴口罩! 到目前为止,已经拥有 1.1 万粉丝啦~ 我是从去年12月中旬开始正式进驻B站,但是,因为 ...

  9. 正反代理-nginx安装

    参考文章:https://www.cnblogs.com/ysocean/p/9384877.html 先预祝一下成功 废话不多说,开始吧,步骤不多 下载地址 https://nginx.org/en ...

  10. Electron 开发:获取当前客户端 IP

    Electron 开发:获取当前客户端 IP 一.背景与需求 1. 项目背景 客户端会自启动一个服务,Web/后端服务通过 IP + port 请求以操作客户端接口 2. 初始方案与问题 2.1. 初 ...